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

修改请求方式

上级 a100638d
...@@ -32,6 +32,9 @@ public class UserApplyTagVO implements Serializable { ...@@ -32,6 +32,9 @@ public class UserApplyTagVO implements Serializable {
groups = {Insert.class}) groups = {Insert.class})
private Integer cooperationTagId; private Integer cooperationTagId;
@ApiModelProperty(value = "加盟合同订单编号")
private String orderNo;
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id")
private Integer userAccountId; private Integer userAccountId;
......
...@@ -44,6 +44,8 @@ public class FddConstant { ...@@ -44,6 +44,8 @@ public class FddConstant {
public static final String YXF = "YXF"; public static final String YXF = "YXF";
public static final String FN = "FN";
public static final String SIGN_SUCCESS = "3000"; public static final String SIGN_SUCCESS = "3000";
public static final String SIGN_FAIL = "3001"; public static final String SIGN_FAIL = "3001";
......
...@@ -38,6 +38,13 @@ public interface CooperationDao { ...@@ -38,6 +38,13 @@ public interface CooperationDao {
UserApplyTagDO getUserApplyTag(Integer id); UserApplyTagDO getUserApplyTag(Integer id);
/** /**
* 根据合同编号查询用户
* @param contractNo
* @return {@link UserApplyTagDO}
*/
UserApplyTagDO getUserApplyTagByContractId(String contractNo);
/**
* 修改用户申请 * 修改用户申请
* *
* @param userApplyTagDO * @param userApplyTagDO
......
...@@ -28,6 +28,7 @@ public class UserApplyTagDO implements Serializable { ...@@ -28,6 +28,7 @@ public class UserApplyTagDO implements Serializable {
private String remark; private String remark;
private Date createTime; private Date createTime;
private Integer applyStatus; private Integer applyStatus;
private String orderNo;
/** /**
* 辅助字段start * 辅助字段start
...@@ -51,6 +52,7 @@ public class UserApplyTagDO implements Serializable { ...@@ -51,6 +52,7 @@ public class UserApplyTagDO implements Serializable {
.applyPhone(this.applyPhone) .applyPhone(this.applyPhone)
.remark(this.remark) .remark(this.remark)
.applyTime(createTime) .applyTime(createTime)
.orderNo(orderNo)
.approvalStatus(applyStatus) .approvalStatus(applyStatus)
.cooperationTagName(tagName) .cooperationTagName(tagName)
.attachmentList(this.attachmentList) .attachmentList(this.attachmentList)
......
...@@ -5,24 +5,38 @@ import com.fadada.sdk.base.client.FddBaseClient; ...@@ -5,24 +5,38 @@ import com.fadada.sdk.base.client.FddBaseClient;
import com.fadada.sdk.base.model.req.*; import com.fadada.sdk.base.model.req.*;
import com.fadada.sdk.utils.crypt.FddEncryptTool; import com.fadada.sdk.utils.crypt.FddEncryptTool;
import com.mmc.iuav.general.CodeUtil; import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.http.BizException;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum; import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.constant.fdd.FddConnectConstant; import com.mmc.iuav.user.constant.fdd.FddConnectConstant;
import com.mmc.iuav.user.constant.fdd.FddConstant; 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.UserServiceDao;
import com.mmc.iuav.user.dao.fdd.ContractDao; import com.mmc.iuav.user.dao.fdd.ContractDao;
import com.mmc.iuav.user.dao.fdd.UserFddAuthDao; 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.ContractInfoDO;
import com.mmc.iuav.user.entity.fdd.UserFddDO; 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.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO; import com.mmc.iuav.user.model.fdd.dto.ContractInfoDTO;
import com.mmc.iuav.user.model.fdd.vo.ContractVO; 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.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.ContractService;
import com.mmc.iuav.user.service.fdd.SealManageService; import com.mmc.iuav.user.service.fdd.SealManageService;
import com.mmc.iuav.user.service.fdd.UserFddAuthService; import com.mmc.iuav.user.service.fdd.UserFddAuthService;
import com.mmc.iuav.user.util.SmsUtil;
import com.mmc.iuav.user.util.TDateUtil; import com.mmc.iuav.user.util.TDateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -53,6 +67,20 @@ public class ContractServiceImpl implements ContractService { ...@@ -53,6 +67,20 @@ public class ContractServiceImpl implements ContractService {
@Resource @Resource
UserFddAuthDao userFddAuthDao; 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 { ...@@ -206,6 +234,7 @@ public class ContractServiceImpl implements ContractService {
} }
// 获取合同信息 // 获取合同信息
ContractInfoDO contractInfoDO = contractDao.contractInfoByOrderNo(null, contractId); ContractInfoDO contractInfoDO = contractDao.contractInfoByOrderNo(null, contractId);
String orderNo = contractInfoDO.getOrderNo();
ContractInfoDO updateSignStatus = new ContractInfoDO(); ContractInfoDO updateSignStatus = new ContractInfoDO();
updateSignStatus.setContractNo(contractId); updateSignStatus.setContractNo(contractId);
if (contractInfoDO.getSignStatus() == 0 && FddConstant.SIGN_SUCCESS.equals(resultCode) && contractInfoDO.getATransactionId().equals(transactionId)) { if (contractInfoDO.getSignStatus() == 0 && FddConstant.SIGN_SUCCESS.equals(resultCode) && contractInfoDO.getATransactionId().equals(transactionId)) {
...@@ -221,6 +250,19 @@ public class ContractServiceImpl implements ContractService { ...@@ -221,6 +250,19 @@ public class ContractServiceImpl implements ContractService {
updateSignStatus.setSignStatus(4); updateSignStatus.setSignStatus(4);
updateSignStatus.setBRemark(resultDesc); updateSignStatus.setBRemark(resultDesc);
updateSignStatus.setSingerTime(new Date()); 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 contractInfoDTO = contractInfoDO.buildContractInfoDTO();
contractInfoDTO.setSignStatus(4); contractInfoDTO.setSignStatus(4);
...@@ -267,4 +309,50 @@ public class ContractServiceImpl implements ContractService { ...@@ -267,4 +309,50 @@ public class ContractServiceImpl implements ContractService {
List<ContractInfoDO> contractInfoDOList = contractDao.listContractInfoByOrderNo(orderNos); List<ContractInfoDO> contractInfoDOList = contractDao.listContractInfoByOrderNo(orderNos);
return contractInfoDOList == null ? null : contractInfoDOList.stream().map(ContractInfoDO::buildContractInfoDTO).collect(Collectors.toList()); 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; ...@@ -2,10 +2,12 @@ package com.mmc.iuav.user.service.impl;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.http.BizException; import com.mmc.iuav.http.BizException;
import com.mmc.iuav.page.PageResult; import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum; 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.CompanyAuthDao;
import com.mmc.iuav.user.dao.CompanyDao; import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.dao.CooperationDao; import com.mmc.iuav.user.dao.CooperationDao;
...@@ -19,6 +21,7 @@ import com.mmc.iuav.user.service.CooperationService; ...@@ -19,6 +21,7 @@ import com.mmc.iuav.user.service.CooperationService;
import com.mmc.iuav.user.service.UserAccountService; import com.mmc.iuav.user.service.UserAccountService;
import com.mmc.iuav.user.util.LocationUtils; import com.mmc.iuav.user.util.LocationUtils;
import com.mmc.iuav.user.util.SmsUtil; import com.mmc.iuav.user.util.SmsUtil;
import com.mmc.iuav.user.util.TDateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -85,6 +88,9 @@ public class CooperationServiceImpl implements CooperationService { ...@@ -85,6 +88,9 @@ public class CooperationServiceImpl implements CooperationService {
} }
} }
UserApplyTagDO userApplyTagDO = new UserApplyTagDO(userApplyTagVO); UserApplyTagDO userApplyTagDO = new UserApplyTagDO(userApplyTagVO);
//自定义订单 加盟订单编号设置规则:FN + 年份 + 8位随机数
String orderNo = FddConstant.FN + TDateUtil.getCurrentYear() + CodeUtil.getRandomNum(8);
userApplyTagDO.setOrderNo(orderNo);
cooperationDao.addApply(userApplyTagDO); cooperationDao.addApply(userApplyTagDO);
List<AttachmentVO> attachmentList = userApplyTagVO.getAttachmentList(); List<AttachmentVO> attachmentList = userApplyTagVO.getAttachmentList();
if (!CollectionUtils.isEmpty(attachmentList)) { if (!CollectionUtils.isEmpty(attachmentList)) {
...@@ -202,15 +208,6 @@ public class CooperationServiceImpl implements CooperationService { ...@@ -202,15 +208,6 @@ public class CooperationServiceImpl implements CooperationService {
userTagDO.setCooperationTagId(userApplyTag.getCooperationTagId()); userTagDO.setCooperationTagId(userApplyTag.getCooperationTagId());
cooperationDao.insertUserTag(userTagDO); 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 { } else {
SmsUtil.sendNotPassCooperationApply(account.getPhoneNum()); SmsUtil.sendNotPassCooperationApply(account.getPhoneNum());
cooperationDao.updateApplyTagStatus(id, 2); cooperationDao.updateApplyTagStatus(id, 2);
......
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
<insert id="addApply" parameterType="com.mmc.iuav.user.entity.UserApplyTagDO" useGeneratedKeys="true" <insert id="addApply" parameterType="com.mmc.iuav.user.entity.UserApplyTagDO" useGeneratedKeys="true"
keyProperty="id"> keyProperty="id">
insert into user_apply_tag(cooperation_tag_id, user_account_id, apply_name, apply_phone, remark, create_time) 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()) values (#{cooperationTagId}, #{userAccountId}, #{applyName}, #{applyPhone}, #{remark}, NOW(),#{orderNo})
</insert> </insert>
<insert id="insertUserTag" useGeneratedKeys="true" parameterType="com.mmc.iuav.user.entity.UserTagDO" <insert id="insertUserTag" useGeneratedKeys="true" parameterType="com.mmc.iuav.user.entity.UserTagDO"
...@@ -171,6 +171,36 @@ ...@@ -171,6 +171,36 @@
AND ua.is_deleted = 0 AND ua.is_deleted = 0
</select> </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 id="listUserCooperationTag" resultType="com.mmc.iuav.user.entity.CooperationTagDO">
select ct.id, ct.tag_name select ct.id, ct.tag_name
from cooperation_tag ct from cooperation_tag ct
...@@ -223,6 +253,7 @@ ...@@ -223,6 +253,7 @@
ua.apply_phone, ua.apply_phone,
ua.apply_status, ua.apply_status,
ua.remark, ua.remark,
ua.order_no,
ua.create_time, ua.create_time,
ct.tag_name, ct.tag_name,
ci.id as company_info_id, ci.id as company_info_id,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论