Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

# Conflicts:
#	coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java
This commit is contained in:
俞扬
2023-06-27 15:42:48 +08:00
34 changed files with 663 additions and 202 deletions

View File

@@ -2,6 +2,7 @@ package com.cool.store.service;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.TransferInvestmentManagerRequest;
/**
* @author zhangchenbiao
@@ -18,4 +19,11 @@ public interface WorkFlowService {
*/
void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request);
/**
* 转让招商经理
* @param workflowStage
* @param request
*/
void transferInvestmentManager(WorkflowStageEnum workflowStage,TransferInvestmentManagerRequest request);
}

View File

@@ -81,7 +81,7 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
}
//转交 所有的招商经理
if (CommonConstants.TRANSFER.equals(type)){
enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, null);
enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(list), keyword, null);
}
return EnterpriseUserSingleInfoVO.convertVO(enterpriseUserDOS);
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -22,6 +23,7 @@ import com.cool.store.request.CreateQualifyVerifyReq;
import com.cool.store.request.QualificationCallbackReq;
import com.cool.store.request.RpcCreateQualifyVerifyReq;
import com.cool.store.request.RpcGetMdmTokenReq;
import com.cool.store.request.data.flow.KeyText;
import com.cool.store.service.FlowService;
import com.cool.store.utils.PDFUtils;
import com.cool.store.utils.PassLetterUtils;
@@ -37,10 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* @Author: young.yu
@@ -89,13 +88,29 @@ public class FlowServiceImpl implements FlowService {
public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException {
//1.发起加盟商资质审核
RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq();
RpcCreateQualifyVerifyReq.Data data = new RpcCreateQualifyVerifyReq().new Data();
rpcRequest.setData(data);
FraSourceDO fraSourceDO = new FraSourceDO();
fraSourceDO.setKey("HSAYPartner");
fraSourceDO.setText("沪上阿姨合伙人");
data.setFraSource(fraSourceDO);
data.setAmtDeposit(Integer.parseInt(request.getSecurityFund()));
RpcCreateQualifyVerifyReq.Data dataBody = rpcRequest.getData();
KeyText fraSource = new KeyText();
fraSource.setKey("HSAYPartner");
fraSource.setText("沪上阿姨合伙人");
dataBody.setFraSource(fraSource);
//copy properties
BeanUtil.copyProperties(request, rpcRequest);
dataBody.setIntendedSignDate(request.getWantSignTime());
dataBody.setAmtDeposit(request.getSecurityFund());
dataBody.setIntendedSigner(request.getIntentionSignerUsername());
dataBody.setIntendedSignerTel(request.getIntentionSignerMobile());
dataBody.setSignerEdu(request.getIntentionEdu());
dataBody.setSkrName(request.getRealControlUsername());
dataBody.setSkrIDCard(request.getRealControlIdcard());
dataBody.setSkrRelship(request.getSignerRealControlRelation());
String[] split = request.getSignerRealControlRelationCert().split(",");
//TODO 文件需要通过MDM上传并获取链接
// dataBody.setSkrRelshipProve();
dataBody.setSkrRelshipOther(request.getSignerOtherRealControlRelation());
dataBody.setAmtJoin(request.getPartnerFee());
dataBody.setAmtTechSer(request.getTechnicalServiceFee());
dataBody.setAmtIntended(request.getIntentionMoney());
rpcRequest.setData(dataBody);
//获取授权码
String authCode = null;
@@ -114,13 +129,11 @@ public class FlowServiceImpl implements FlowService {
}
rpcRequest.setDingUserId(dingdingUserDO.getUserid());
authCode = generateAuthCode(jobNumber);
data.setAuthCode(authCode);
rpcRequest.getData().setAuthCode(authCode);
}
}
}
data.setIntendedSigner(request.getIntentionSignerUsername());
data.setIntendedSignerTel(request.getIntentionSignerMobile());
//通过 rpc 请求审核系统获取返回数据
Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {});
@@ -131,18 +144,19 @@ public class FlowServiceImpl implements FlowService {
partnerCertificationInfoDO.setPartnerInterviewId(Long.valueOf(request.getInterviewId()));
partnerCertificationInfoDO.setPartnership(String.valueOf(request.getPartnership()));
partnerCertificationInfoDO.setWantSignTime(DateUtil.parse(request.getWantSignTime()));
partnerCertificationInfoDO.setPartnerFee(request.getPartnerFee());
partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund());
partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee());
partnerCertificationInfoDO.setIntentionMoney(request.getIntentionMoney());
partnerCertificationInfoDO.setPartnerFee(request.getPartnerFee().toString());
partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund().toString());
partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee().toString());
partnerCertificationInfoDO.setIntentionMoney(request.getIntentionMoney().toString());
partnerCertificationInfoDO.setIntentionSignerUsername(request.getIntentionSignerUsername());
partnerCertificationInfoDO.setIntentionSignerMobile(request.getIntentionSignerMobile());
partnerCertificationInfoDO.setIntentionEdu(request.getIntentionEdu());
partnerCertificationInfoDO.setIntentionEdu(request.getIntentionEdu().toString());
partnerCertificationInfoDO.setRealControlUsername(request.getRealControlUsername());
partnerCertificationInfoDO.setRealControlIdcard(request.getRealControlIdcard());
partnerCertificationInfoDO.setSignerRealControlRelation(request.getSignerRealControlRelation());
partnerCertificationInfoDO.setSignerRealControlRelation(request.getSignerRealControlRelation().toString());
partnerCertificationInfoDO.setSignerOtherRealControlRelation(request.getSignerOtherRealControlRelation());
partnerCertificationInfoDO.setSignerRealControlRelationCert(request.getSignerRealControlRelationCert());
partnerCertificationInfoDO.setSignerRealControlRelationCert(request.getSignerRealControlRelationCert().toString());
partnerCertificationInfoDO.setCreateTime(new Date());
partnerCertificationInfoDO.setUpdateTime(new Date());
//set 资质审核流程id

View File

@@ -113,7 +113,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
HyPartnerTaskInfoLogDO logDO = new HyPartnerTaskInfoLogDO(request.getPartnerId(), request.getPartnerLineId(), WorkflowStageEnum.INTENT.getCode(), WorkflowStatusEnum.INTENT_1.getCode(), currentUser.getPartnerId(), currentUser.getUsername(), null);
hyPartnerTaskInfoLogDAO.insertSelective(logDO);
// hyPartnerTaskInfoLogDAO.insertSelective(logDO);
}
// 清空暂存信息
redisUtilPool.delKey(cacheKey);

View File

@@ -269,12 +269,12 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
partnerInterviewInfoVO.setProcessInfo(partnerInterviewInfoDTO.getProcessInfo());
partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setRoomId(partnerInterviewInfoDTO.getRoomId());
partnerInterviewInfoVO.setDeadline(partnerInterviewInfoDTO.getDeadline());
partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus());
partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode());
partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC));
partnerInterviewInfoVO.setApproveTime(partnerInterviewInfoDTO.getApproveTime());
partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC));
return partnerInterviewInfoVO;
}

View File

@@ -16,11 +16,7 @@ import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest;
import com.cool.store.request.QueryByInterviewPlanIdReq;
import com.cool.store.service.AliyunService;
import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.HyPartnerBaseInfoService;
import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.service.InterviewService;
import com.cool.store.service.*;
import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
@@ -31,6 +27,7 @@ import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.sql.Array;
@@ -72,6 +69,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
HyPartnerInterviewPlanDAO hyPartnerInterviewPlanDAO;
@Resource
private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource
WorkFlowService workFlowService;
@Override
@@ -252,6 +251,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId());
if (hyPartnerLineInfoDO==null){
@@ -282,7 +282,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
String workflowStatus = WorkflowStageEnum.getWorkflowStageMap().get(hyPartnerLineInfoDO.getWorkflowStage());
hyPartnerLineInfoDO.setWorkflowStatus(workflowStatus);
//15天 冷静期
// TODO: 2023/6/13 冷静期
String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, closeFollowRequest.getLineId());
redisUtilPool.setString(coolingPeriodFirstLoginCacheKey,JSONObject.toJSONString(closeFollowRequest));
hyPartnerLineInfoDO.setDeadline(CoolDateUtils.getDateBefore(new Date(),15));
@@ -294,6 +293,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode());
hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId);
//各阶段单独的逻辑
workFlowService.endProcess(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),closeFollowRequest);
}
//面试超时
@@ -628,6 +629,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType());
partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea());
partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea());
partnerLineInfoAndBaseInfoVO.setChannelName(partnerLineInfoAndBaseInfoDTO.getChannelName());
if (StringUtil.isNotEmpty(partnerLineInfoAndBaseInfoDTO.getCertifyFile())){
partnerLineInfoAndBaseInfoVO.setPassCertifyFile(JSONObject.parseArray(partnerLineInfoAndBaseInfoDTO.getCertifyFile(), String.class));
}

View File

@@ -101,7 +101,6 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
// hyPartnerUserInfoDO.setUsername(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID());
hyPartnerUserInfoDO.setAcceptAdjustType(0);
hyPartnerUserInfoDO.setIsWritePartnerKnow(0);
hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO);
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service.impl;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.TransferInvestmentManagerRequest;
import com.cool.store.service.WorkFlowService;
import com.cool.store.service.impl.workflow.IntentWorkFlowService;
import com.cool.store.service.impl.workflow.InterviewWorkFlowService;
@@ -18,7 +19,6 @@ import org.springframework.stereotype.Service;
*/
@Service
public class WorkFlowServiceImpl implements WorkFlowService{
private WorkFlowBaseService getWorkflowService(WorkflowStageEnum workflowStage){
switch (workflowStage){
case INTENT:
@@ -32,8 +32,14 @@ public class WorkFlowServiceImpl implements WorkFlowService{
}
}
@Override
public void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request) {
getWorkflowService(workflowStage).endProcess(request);
}
@Override
public void transferInvestmentManager(WorkflowStageEnum workflowStage, TransferInvestmentManagerRequest request) {
getWorkflowService(workflowStage).transferInvestmentManager(request);
}
}

View File

@@ -2,7 +2,7 @@ package com.cool.store.service.impl.workflow;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.service.impl.WorkFlowServiceImpl;
import com.cool.store.request.TransferInvestmentManagerRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -25,4 +25,9 @@ public class IntentWorkFlowService extends WorkFlowBaseService {
public void endProcess(CloseFollowRequest request) {
log.info("意向申请结束~");
}
@Override
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
log.info("转让招商经理~");
}
}

View File

@@ -1,11 +1,8 @@
package com.cool.store.service.impl.workflow;
import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.mapper.HyPartnerInterviewMapper;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.service.InterviewService;
import com.cool.store.request.TransferInvestmentManagerRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -44,4 +41,9 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
}
@Override
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
log.info("转让招商经理~");
}
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service.impl.workflow;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.TransferInvestmentManagerRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -24,4 +25,9 @@ public class ReservationWorkFlowService extends WorkFlowBaseService {
public void endProcess(CloseFollowRequest request) {
log.info("预约面试结束~");
}
@Override
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
log.info("转让招商经理~");
}
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service.impl.workflow;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.TransferInvestmentManagerRequest;
/**
* @author zhangchenbiao
@@ -22,4 +23,10 @@ public abstract class WorkFlowBaseService {
* @param request
*/
public abstract void endProcess(CloseFollowRequest request);
/**
* 转让招商经理
* @param request
*/
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request);
}