提交 7f37a3ae 作者: 刘明祎-运维用途

修改请求方式

上级 a100638d
......@@ -32,6 +32,9 @@ public class UserApplyTagVO implements Serializable {
groups = {Insert.class})
private Integer cooperationTagId;
@ApiModelProperty(value = "加盟合同订单编号")
private String orderNo;
@ApiModelProperty(value = "用户id")
private Integer userAccountId;
......
......@@ -44,6 +44,8 @@ public class FddConstant {
public static final String YXF = "YXF";
public static final String FN = "FN";
public static final String SIGN_SUCCESS = "3000";
public static final String SIGN_FAIL = "3001";
......
......@@ -38,6 +38,13 @@ public interface CooperationDao {
UserApplyTagDO getUserApplyTag(Integer id);
/**
* 根据合同编号查询用户
* @param contractNo
* @return {@link UserApplyTagDO}
*/
UserApplyTagDO getUserApplyTagByContractId(String contractNo);
/**
* 修改用户申请
*
* @param userApplyTagDO
......
......@@ -28,6 +28,7 @@ public class UserApplyTagDO implements Serializable {
private String remark;
private Date createTime;
private Integer applyStatus;
private String orderNo;
/**
* 辅助字段start
......@@ -51,6 +52,7 @@ public class UserApplyTagDO implements Serializable {
.applyPhone(this.applyPhone)
.remark(this.remark)
.applyTime(createTime)
.orderNo(orderNo)
.approvalStatus(applyStatus)
.cooperationTagName(tagName)
.attachmentList(this.attachmentList)
......
......@@ -5,24 +5,38 @@ import com.fadada.sdk.base.client.FddBaseClient;
import com.fadada.sdk.base.model.req.*;
import com.fadada.sdk.utils.crypt.FddEncryptTool;
import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.http.BizException;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.constant.fdd.FddConnectConstant;
import com.mmc.iuav.user.constant.fdd.FddConstant;
import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.dao.CooperationDao;
import com.mmc.iuav.user.dao.UserServiceDao;
import com.mmc.iuav.user.dao.fdd.ContractDao;
import com.mmc.iuav.user.dao.fdd.UserFddAuthDao;
import com.mmc.iuav.user.entity.CompanyAuthDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.UserApplyTagDO;
import com.mmc.iuav.user.entity.fdd.ContractInfoDO;
import com.mmc.iuav.user.entity.fdd.UserFddDO;
import com.mmc.iuav.user.enums.RoleEnums;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO;
import com.mmc.iuav.user.model.fdd.vo.ContractVO;
import com.mmc.iuav.user.model.vo.BUserAccountVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.mq.MqProducer;
import com.mmc.iuav.user.service.BackUserAccountService;
import com.mmc.iuav.user.service.UserAccountService;
import com.mmc.iuav.user.service.fdd.ContractService;
import com.mmc.iuav.user.service.fdd.SealManageService;
import com.mmc.iuav.user.service.fdd.UserFddAuthService;
import com.mmc.iuav.user.util.SmsUtil;
import com.mmc.iuav.user.util.TDateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -53,6 +67,20 @@ public class ContractServiceImpl implements ContractService {
@Resource
UserFddAuthDao userFddAuthDao;
@Autowired
private BackUserAccountService backUserAccountService;
@Autowired
private UserAccountService userAccountService;
@Autowired
private CompanyDao companyDao;
@Autowired
private CompanyAuthDao companyAuthDao;
@Autowired
private CooperationDao cooperationDao;
/**
* 上传合同
*
......@@ -206,6 +234,7 @@ public class ContractServiceImpl implements ContractService {
}
// 获取合同信息
ContractInfoDO contractInfoDO = contractDao.contractInfoByOrderNo(null, contractId);
String orderNo = contractInfoDO.getOrderNo();
ContractInfoDO updateSignStatus = new ContractInfoDO();
updateSignStatus.setContractNo(contractId);
if (contractInfoDO.getSignStatus() == 0 && FddConstant.SIGN_SUCCESS.equals(resultCode) && contractInfoDO.getATransactionId().equals(transactionId)) {
......@@ -221,6 +250,19 @@ public class ContractServiceImpl implements ContractService {
updateSignStatus.setSignStatus(4);
updateSignStatus.setBRemark(resultDesc);
updateSignStatus.setSingerTime(new Date());
if(orderNo.startsWith(FddConstant.FN)) {
// 乙方生成后台对应的账号
UserApplyTagDO userApplyTag = cooperationDao.getUserApplyTagByContractId(contractId);
BUserAccountVO bUserAccountVO = this.generateBackUserAccountVO(userApplyTag);
log.info("check apply cooperation tag, bUserAccountVO:{}", com.alibaba.fastjson2.JSONObject.toJSONString(bUserAccountVO));
ResultBody resultBody = backUserAccountService.insertBAccount(bUserAccountVO, null);
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
// 生成账号失败处理
throw new BizException(ResultEnum.COOPERATION_CHECK_NOT_PASS_ERROR);
}
SmsUtil.sendPassCooperationApply(bUserAccountVO.getPhoneNum());
}
// 同步订单状态
ContractInfoDTO contractInfoDTO = contractInfoDO.buildContractInfoDTO();
contractInfoDTO.setSignStatus(4);
......@@ -267,4 +309,50 @@ public class ContractServiceImpl implements ContractService {
List<ContractInfoDO> contractInfoDOList = contractDao.listContractInfoByOrderNo(orderNos);
return contractInfoDOList == null ? null : contractInfoDOList.stream().map(ContractInfoDO::buildContractInfoDTO).collect(Collectors.toList());
}
private BUserAccountVO generateBackUserAccountVO(UserApplyTagDO userApplyTagDO) {
BUserAccountVO bUserAccountVO = new BUserAccountVO();
UserAccountVO userAccountVO = userAccountService.getUserAccountById(userApplyTagDO.getUserAccountId());
bUserAccountVO.setAccountNo(userAccountVO.getPhoneNum());
bUserAccountVO.setUserName(userApplyTagDO.getApplyName());
bUserAccountVO.setPhoneNum(userAccountVO.getPhoneNum());
// String password = "YXF123456";
bUserAccountVO.setPassWord(userAccountVO.getPhoneNum());
bUserAccountVO.setAlertPwd(userAccountVO.getPhoneNum());
bUserAccountVO.setAccountStatus(1);
// 根据加盟类型分配角色
if (userApplyTagDO.getCooperationTagId().equals(3)) {
bUserAccountVO.setRoleId(RoleEnums.LEASE_FRANCHISEE.getId());
} else if (userApplyTagDO.getCooperationTagId().equals(5)) {
bUserAccountVO.setRoleId(RoleEnums.SERVICE_FRANCHISEE.getId());
} else {
bUserAccountVO.setRoleId(RoleEnums.FRANCHISEE.getId());
}
// 添加单位id
CompanyInfoDO companyInfo = this.getCompanyInfo(userApplyTagDO);
bUserAccountVO.setCompanyId(companyInfo.getId());
bUserAccountVO.setRemark("加盟商自动生成");
return bUserAccountVO;
}
private CompanyInfoDO getCompanyInfo(UserApplyTagDO userApplyTagDO) {
// 查询小程序用户认证单位信息
CompanyAuthDO companyAuth = companyAuthDao.getCompanyAuth(userApplyTagDO.getUserAccountId());
// 验证是否已经添加单位信息
CompanyInfoDO existCompanyInfo = companyDao.getCompanyInfoByName(companyAuth.getCompanyName());
// 添加单位信息
if (existCompanyInfo == null) {
CompanyInfoDO companyInfoDO = new CompanyInfoDO();
companyInfoDO.setCompanyType(1);
companyInfoDO.setCompanyName(companyAuth.getCompanyName());
companyInfoDO.setFullName(companyAuth.getCompanyName());
companyInfoDO.setCompanyUserName(userApplyTagDO.getApplyName());
companyInfoDO.setPhoneNum(userApplyTagDO.getApplyPhone());
companyDao.addCompanyInfo(companyInfoDO);
return companyInfoDO;
} else {
return existCompanyInfo;
}
}
}
......@@ -2,10 +2,12 @@ package com.mmc.iuav.user.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.http.BizException;
import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.constant.fdd.FddConstant;
import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.dao.CooperationDao;
......@@ -19,6 +21,7 @@ import com.mmc.iuav.user.service.CooperationService;
import com.mmc.iuav.user.service.UserAccountService;
import com.mmc.iuav.user.util.LocationUtils;
import com.mmc.iuav.user.util.SmsUtil;
import com.mmc.iuav.user.util.TDateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -85,6 +88,9 @@ public class CooperationServiceImpl implements CooperationService {
}
}
UserApplyTagDO userApplyTagDO = new UserApplyTagDO(userApplyTagVO);
//自定义订单 加盟订单编号设置规则:FN + 年份 + 8位随机数
String orderNo = FddConstant.FN + TDateUtil.getCurrentYear() + CodeUtil.getRandomNum(8);
userApplyTagDO.setOrderNo(orderNo);
cooperationDao.addApply(userApplyTagDO);
List<AttachmentVO> attachmentList = userApplyTagVO.getAttachmentList();
if (!CollectionUtils.isEmpty(attachmentList)) {
......@@ -202,15 +208,6 @@ public class CooperationServiceImpl implements CooperationService {
userTagDO.setCooperationTagId(userApplyTag.getCooperationTagId());
cooperationDao.insertUserTag(userTagDO);
}
// 审批通过生成后台对应的账号
BUserAccountVO bUserAccountVO = this.generateBackUserAccountVO(userApplyTag);
log.info("check apply cooperation tag, bUserAccountVO:{}", JSONObject.toJSONString(bUserAccountVO));
ResultBody resultBody = backUserAccountService.insertBAccount(bUserAccountVO, null);
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
// 生成账号失败处理
throw new BizException(ResultEnum.COOPERATION_CHECK_NOT_PASS_ERROR);
}
SmsUtil.sendPassCooperationApply(bUserAccountVO.getPhoneNum());
} else {
SmsUtil.sendNotPassCooperationApply(account.getPhoneNum());
cooperationDao.updateApplyTagStatus(id, 2);
......
......@@ -38,8 +38,8 @@
<insert id="addApply" parameterType="com.mmc.iuav.user.entity.UserApplyTagDO" useGeneratedKeys="true"
keyProperty="id">
insert into user_apply_tag(cooperation_tag_id, user_account_id, apply_name, apply_phone, remark, create_time)
values (#{cooperationTagId}, #{userAccountId}, #{applyName}, #{applyPhone}, #{remark}, NOW())
insert into user_apply_tag(cooperation_tag_id, user_account_id, apply_name, apply_phone, remark, create_time,order_no)
values (#{cooperationTagId}, #{userAccountId}, #{applyName}, #{applyPhone}, #{remark}, NOW(),#{orderNo})
</insert>
<insert id="insertUserTag" useGeneratedKeys="true" parameterType="com.mmc.iuav.user.entity.UserTagDO"
......@@ -171,6 +171,36 @@
AND ua.is_deleted = 0
</select>
<select id="getUserApplyTagByContractId" resultType="com.mmc.iuav.user.entity.UserApplyTagDO">
SELECT ua.id,
ua.cooperation_tag_id,
ua.user_account_id,
ua.apply_name,
ua.apply_phone,
ua.apply_status,
ua.remark,
ua.create_time,
ct.tag_name,
ci.id AS company_info_id,
ci.company_name,
ci.brand_name,
ci.brand_logo,
ci.credit_code,
ci.license_img,
ci.address,
ci.lat,
ci.lon,
ci.content,
ci.score
FROM user_apply_tag ua
INNER JOIN cooperation_tag ct ON ua.cooperation_tag_id = ct.id
INNER JOIN company_member cm ON cm.user_account_id = ua.user_account_id
INNER JOIN company_info ci ON cm.company_info_id = ci.id
INNER JOIN contract_info cti on cti.order_no = ua.order_no
WHERE cti.contract_no = #{contractNo}
AND ua.is_deleted = 0
</select>
<select id="listUserCooperationTag" resultType="com.mmc.iuav.user.entity.CooperationTagDO">
select ct.id, ct.tag_name
from cooperation_tag ct
......@@ -223,6 +253,7 @@
ua.apply_phone,
ua.apply_status,
ua.remark,
ua.order_no,
ua.create_time,
ct.tag_name,
ci.id as company_info_id,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论