diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 2e4c7bb1b..a6ca374b4 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -46,6 +46,7 @@ public enum ErrorCodeEnum { GET_INFO_ERROR(1021078, "获取信息异常", null), GET_PHONENUMBER_INFO_ERROR(1021079, "手机号归属地获取异常", null), IDENTITY_CARD_PARSE_FAIL(1021080, "身份证解析失败", null), + WECHAT_BIND_OTHER_MOBILE(1021081, "该微信已绑定其它手机号,请核对", null), PARAMS_REQUIRED(400002, "参数缺失!", null), DATA_CONVERT_ERROR(400002, "日期转换异常!", null), PARENT_NODE_NOT_EXIST(400002, "父节点不存在", null), @@ -58,6 +59,7 @@ public enum ErrorCodeEnum { PARTNER_BASEINFO_NOT_EXIST(500005, "基本信息不存在!", null), INTENT_INFO_NOT_EXIST(500006, "意向信息不存在!", null), INTENT_AREA_NOT_BING_ZONE(500007, "意向区域没有绑定战区 分配招商经理失败!", null), + PUBLIC_LINE_NOT_OPERATE(500008, "公海线索不允许操作!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java index 2eeefe170..443f4622d 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java @@ -8,19 +8,21 @@ package com.cool.store.enums; */ public enum OperateLogFieldValueEnum { + ALLOCATION_USERID("allocationUserId","分配人ID"), ALLOCATION_USERNAME("allocationUsername","分配人姓名"), MOBILE("mobile","手机号"), OPERATE_TIME("operateTime","操作时间"), + OPERATE_USER_ID("operateUserId","操作人姓名"), OPERATE_USER_NAME("operateUsername","操作人姓名"), REASON("reason","原因"), - PASS_REASON("pass_reason","通过原因"), - REJECT_PUBLIC_REASON("reject_public_reason", "公开拒绝原因"), - REJECT_REAL_REASON("reject_real_reason", "真实拒绝原因"), - CERTIFY_FILE("certify_file", "上传的证明文件或凭证"), - BEFORE_INVESTMENT_MANAGER_USERNAME("before_investment_manager_username", "转让前的招商经理姓名"), - BEFORE_INVESTMENT_MANAGER_MOBILE("before_investment_manager_mobile", "转让前的招商经理手机号"), - AFTER_INVESTMENT_MANAGER_USERNAME("after_investment_manager_username", "转让后的招商经理姓名"), - AFTER_INVESTMENT_MANAGER_MOBILE("after_investment_manager_mobile", "转让后的招商经理手机好"), + PASS_REASON("passReason","通过原因"), + REJECT_PUBLIC_REASON("rejectPublicReason", "公开拒绝原因"), + REJECT_REAL_REASON("rejectRealReason", "真实拒绝原因"), + CERTIFY_FILE("certifyFile", "上传的证明文件或凭证"), + BEFORE_INVESTMENT_MANAGER_USERNAME("beforeInvestmentManagerUsername", "转让前的招商经理姓名"), + BEFORE_INVESTMENT_MANAGER_MOBILE("beforeInvestmentManagerMobile", "转让前的招商经理手机号"), + AFTER_INVESTMENT_MANAGER_USERNAME("afterInvestmentManagerUsername", "转让后的招商经理姓名"), + AFTER_INVESTMENT_MANAGER_MOBILE("afterInvestmentManagerMobile", "转让后的招商经理手机好"), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java index e529e209d..c402b999c 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java @@ -13,11 +13,11 @@ import static com.cool.store.enums.OperateLogFieldValueEnum.*; */ public enum OperateTypeEnum { - ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)), - ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), - REMOVE_BLACKLIST("add_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), - CLOSE_FOLLOW("close_follow", "结束跟进", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)), - TRANSFER_INVESTMENT_MANAGER("transfer_investment_manager", "转让招商经理", Arrays.asList(OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE)); + ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERID,ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)), + ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), + REMOVE_BLACKLIST("add_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), + CLOSE_FOLLOW("close_follow", "结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON, REJECT_REAL_REASON, CERTIFY_FILE)), + TRANSFER_INVESTMENT_MANAGER("transfer_investment_manager", "转让招商经理", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INVESTMENT_MANAGER_USERNAME, BEFORE_INVESTMENT_MANAGER_MOBILE, AFTER_INVESTMENT_MANAGER_USERNAME, AFTER_INVESTMENT_MANAGER_MOBILE)); ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java index 9e40d4e3c..6cf5bf0a8 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java @@ -1,5 +1,12 @@ package com.cool.store.enums; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + /** * @Author suzhuhong * @Date 2023/6/9 16:35 diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index 1d98c27ac..4aecc64d6 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -46,8 +46,8 @@ public class CoolDateUtils { * @param day * @return */ - public static Date getDateFormatDayMinTime(int day){ - LocalDate today = LocalDate.now(); + public static Date getDateFormatDayMinTime(Date date,int day){ + LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate thirdDay = today.plusDays(day); LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT); LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MIN); @@ -55,6 +55,16 @@ public class CoolDateUtils { return Date.from(zonedDateTime.toInstant()); } + public static void main(String[] args) { + // 创建一个Date对象 + Date date = new Date(); + + // 将Date对象转换为LocalDate对象 + LocalDate today = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + + System.out.println("LocalDate: " + today); + } + /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerInterviewPlanDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerInterviewPlanDAO.java index a5ca2012f..6d4e544bd 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerInterviewPlanDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerInterviewPlanDAO.java @@ -61,11 +61,11 @@ public class HyPartnerInterviewPlanDAO { * @param currentDate * @return */ - public List getInterviewPlanList(String userId, String currentDate){ + public List getInterviewPlanList(String userId, String currentTime,String currentDay){ if (StringUtils.isEmpty(userId)){ return new ArrayList<>(); } - return hyPartnerInterviewPlanMapper.getInterviewPlanList(userId,currentDate); + return hyPartnerInterviewPlanMapper.getInterviewPlanList(userId,currentTime,currentDay); } /** diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java index 4f529c2af..44b92975b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java @@ -1,9 +1,11 @@ package com.cool.store.dao; +import com.alibaba.fastjson.JSONObject; import com.cool.store.dto.log.LineLogInfo; import com.cool.store.entity.HyPartnerTaskInfoLogDO; import com.cool.store.enums.OperateTypeEnum; import com.cool.store.mapper.HyPartnerTaskInfoLogMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -14,6 +16,7 @@ import javax.annotation.Resource; * @Version 1.0 */ @Repository +@Slf4j public class HyPartnerTaskInfoLogDAO { @@ -38,6 +41,7 @@ public class HyPartnerTaskInfoLogDAO { return; } HyPartnerTaskInfoLogDO logInfo = LineLogInfo.convertDO(lineLogInfo); + log.info("logInfo:{}", JSONObject.toJSON(lineLogInfo)); insertSelective(logInfo); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java index c395ab07d..c36dd2529 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java @@ -60,7 +60,8 @@ public interface HyPartnerInterviewPlanMapper { * @return */ List getInterviewPlanList(@Param("userId") String userId, - @Param("currentDate") String currentDate); + @Param("currentTime") String currentTime, + @Param("currentDay") String currentDay); /** * 工作台 招商经理 预约面试时间 合格资格面试 列表 diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml index ac4c6dc15..0d536c97b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml @@ -45,6 +45,12 @@ partnership, + + qualify_verify_id, + + + intention_contract_no, + want_sign_time, @@ -104,6 +110,12 @@ #{record.partnership}, + + #{record.qualifyVerifyId}, + + + #{record.intentionContractNo}, + #{record.wantSignTime}, diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml index d524dc189..4a92bc5fb 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -260,22 +260,23 @@ a.workflow_status as workflowStatus, b.id as id, b.create_time as partnerSubmitTime, - b.live_area as liveArea, - b.want_shop_area as wantShopArea, - b.accept_adjust_type as acceptAdjustType, - b.deadline as deadline - from hy_partner_line_info a left join hy_partner_intent_info b on a.id = b.partner_line_id - - - and a.investment_manager = #{userId} - - - and a.workflow_stage= #{workflowStage} - - - and a.workflow_status = #{workflowStatus} - - + b.deadline as deadline, + hpuinfo.live_area as liveArea, + hpuinfo.want_shop_area as wantShopArea, + hpuinfo.accept_adjust_type as acceptAdjustType + from hy_partner_line_info a + left join hy_partner_intent_info b on a.id = b.partner_line_id + LEFT JOIN hy_partner_user_info hpuinfo ON a.partner_id = hpuinfo.partner_id + where deleted = 0 and line_status!=3 + + and a.investment_manager = #{userId} + + + and a.workflow_stage= #{workflowStage} + + + and a.workflow_status = #{workflowStatus} + order by b.create_time diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index 54d1781eb..227fd07e5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -283,8 +283,8 @@ and interviewer = #{userId} - - and interview_date = #{currentDate} + + and interview_date = #{currentDay} and (start_time>now() or (start_timenow() and room_status!=2)) and application_approved = 1 @@ -312,6 +312,7 @@ left join hy_partner_interview a on hpli.id = a.partner_line_id left join hy_partner_interview_plan b on a.interview_plan_id = b.id + and hpli.deleted = 0 and hpli.line_status!=3 and b.deleted = 0 and hpli.workflow_stage = #{workflowStage} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index eb0a8bbca..0619d3e10 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -267,11 +267,10 @@ IFNULL(sum(if(workflow_stage=2 and workflow_status = 1,1,0)),0) as reservationInterviewCount, IFNULL(sum(if(workflow_stage=3 and workflow_status = 4,1,0)),0) as qualifiedInterviewCount from hy_partner_line_info - - - and investment_manager = #{userId} - - + where deleted = 0 and line_status!=3 + + and investment_manager = #{userId} + @@ -281,11 +280,10 @@ IFNULL(sum(if(workflow_stage=2 and workflow_status = 0,1,0)),0) as reservationInterviewCount, IFNULL(sum(if(workflow_stage=3 and workflow_status = 5,1,0)),0) as qualifiedInterviewCount from hy_partner_line_info - - - and investment_manager = #{userId} - - + where deleted = 0 and line_status!=3 + + and investment_manager = #{userId} + SELECT partner_id, IFNULL(COUNT(1), 0) AS followCount FROM hy_partner_line_info - where deleted = 1 + where (deleted = 1 or (deleted=0 and line_status=0 and close_time is not null)) GROUP BY partner_id; @@ -567,7 +569,7 @@ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/AllocationInvestmentManagerLogDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/AllocationInvestmentManagerLogDTO.java new file mode 100644 index 000000000..c65626221 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/AllocationInvestmentManagerLogDTO.java @@ -0,0 +1,23 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/27 15:52 + * @Version 1.0 + */ +@Data +@Builder +public class AllocationInvestmentManagerLogDTO { + + private String allocationUserId; + + private String allocationUsername; + + private String mobile; + + private String operateTime; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/BlackListLogDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/BlackListLogDTO.java new file mode 100644 index 000000000..986b0c06e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/BlackListLogDTO.java @@ -0,0 +1,25 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/27 16:51 + * @Version 1.0 + */ +@Data +@Builder +public class BlackListLogDTO { + + + private String operateTime; + + private String operateUsername; + + private String operateUserId; + + private String mobile; + + private String reason; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CloseOrPassFollowLogDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CloseOrPassFollowLogDTO.java new file mode 100644 index 000000000..cdc669963 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CloseOrPassFollowLogDTO.java @@ -0,0 +1,31 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/27 19:46 + * @Version 1.0 + */ +@Data +@Builder +public class CloseOrPassFollowLogDTO { + + private String operateTime; + + private String operateUsername; + + private String operateUserId; + + private String mobile; + + private String passReason; + + private String certifyFile; + + private String rejectPublicReason; + + private String rejectRealReason; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java index a6f29c679..36eaf062f 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java @@ -29,6 +29,7 @@ public class LineLogInfo { @ApiModelProperty("hy_partner_line_info.id") private Long partnerLineId; + @ApiModelProperty("操作人id") private String operateUserId; @@ -42,7 +43,7 @@ public class LineLogInfo { private WorkflowStageEnum workflowStage; @ApiModelProperty("流程子状态") - private WorkflowStatusEnum workflowStatus; + private String workflowStatus; @ApiModelProperty("备注") private String message; @@ -50,6 +51,22 @@ public class LineLogInfo { @ApiModelProperty("数据处理字段") private T data; + public LineLogInfo(){ + + } + public LineLogInfo(String partnerId, Long partnerLineId, String operateUserId, String operateUsername, + OperateTypeEnum operateType, WorkflowStageEnum workflowStage, + String workflowStatus, String message) { + this.partnerId = partnerId; + this.partnerLineId = partnerLineId; + this.operateUserId = operateUserId; + this.operateUsername = operateUsername; + this.operateType = operateType; + this.workflowStage = workflowStage; + this.workflowStatus = workflowStatus; + this.message = message; + } + public static boolean checkParams(LineLogInfo params){ if(StringUtils.isAnyBlank(params.getPartnerId(), params.getOperateUserId(), params.getOperateUsername())){ log.info("lineLogInfo string:{}", JSONObject.toJSONString(params)); @@ -69,7 +86,7 @@ public class LineLogInfo { result.setPartnerLineId(params.getPartnerLineId()); result.setOperateType(params.getOperateType().getCode()); result.setWorkflowStage(params.getWorkflowStage().getCode()); - result.setWorkflowStatus(params.getWorkflowStatus().getCode()); + result.setWorkflowStatus(params.getWorkflowStatus()); result.setOperateUserId(params.getOperateUserId()); result.setOperateUsername(params.getOperateUsername()); result.setMessage(params.getMessage()); @@ -81,6 +98,9 @@ public class LineLogInfo { List> fieldMapList = new ArrayList<>(); for (OperateLogFieldValueEnum field : filedList) { Map fieldMap = new HashMap<>(); + if(jsonObject.get(field.getCode())==null){ + continue; + } fieldMap.put("code",field.getCode()); fieldMap.put("name",field.getName()); fieldMap.put("value",jsonObject.get(field.getCode())); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/TransferInvestmentManagerLogDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/TransferInvestmentManagerLogDTO.java new file mode 100644 index 000000000..ab3299ea6 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/TransferInvestmentManagerLogDTO.java @@ -0,0 +1,31 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/27 20:20 + * @Version 1.0 + */ +@Data +@Builder +public class TransferInvestmentManagerLogDTO { + + private String operateTime; + + private String operateUsername; + + private String operateUserId; + + private String mobile; + + private String beforeInvestmentManagerUsername; + + private String beforeInvestmentManagerMobile; + + private String afterInvestmentManagerUsername; + + private String afterInvestmentManagerMobile; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java index 804717a70..bb9c5bd3b 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java @@ -78,4 +78,8 @@ public class PartnerLineInfoAndBaseInfoDTO { private Integer acceptAdjustType; private String channelName; + + private String idCard; + + private String education; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java index d4861e884..896feb12d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java @@ -71,4 +71,6 @@ public class PrivateSeaLineDTO { private Long interviewPlanId; + private Date startTime; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java index a56dde190..b572000fd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java @@ -100,6 +100,12 @@ public class RpcCreateQualifyVerifyReq { @ApiModelProperty(value = "实控人手机号", required = true) private String skrPhone; + @ApiModelProperty("客户/招商经理钉钉id") + private String userCustDingUserId; + + @ApiModelProperty("选址开发主管钉钉id") + private String userSiteDevDingUserId; + } @ApiModelProperty(value = "数据体", required = true) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/TransferInvestmentManagerRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/TransferInvestmentManagerRequest.java index 76e60a429..07c11a6e1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/TransferInvestmentManagerRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/TransferInvestmentManagerRequest.java @@ -18,4 +18,6 @@ public class TransferInvestmentManagerRequest { private String userId; + private String userName; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java index 6f798a2b4..10983242a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentApplyInfoVO.java @@ -72,11 +72,11 @@ public class PartnerIntentApplyInfoVO { partnerIntentApplyInfoVO.setId(partnerIntentApplyInfoDTO.getId()); partnerIntentApplyInfoVO.setPartnerId(partnerIntentApplyInfoDTO.getPartnerId()); partnerIntentApplyInfoVO.setLineId(partnerIntentApplyInfoDTO.getPartnerLineId()); - partnerIntentApplyInfoVO.setPartnerSubmitTime( DateUtil.format(partnerIntentApplyInfoDTO.getPartnerSubmitTime(), CoolDateUtils.DATE_FORMAT_SEC)); + partnerIntentApplyInfoVO.setPartnerSubmitTime( DateUtil.format(partnerIntentApplyInfoDTO.getPartnerSubmitTime(), CoolDateUtils.DATE_FORMAT_SEC_2)); partnerIntentApplyInfoVO.setAcceptAdjustType(partnerIntentApplyInfoDTO.getAcceptAdjustType()); partnerIntentApplyInfoVO.setLiveArea(partnerIntentApplyInfoDTO.getLiveArea()); partnerIntentApplyInfoVO.setWantShopArea(partnerIntentApplyInfoDTO.getWantShopArea()); - String deadLine = DateUtil.format(partnerIntentApplyInfoDTO.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC); + String deadLine = DateUtil.format(partnerIntentApplyInfoDTO.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2); partnerIntentApplyInfoVO.setDeadline(deadLine); HyPartnerUserInfoDO infoDOMapOrDefault = infoDOMap.getOrDefault(partnerIntentApplyInfoDTO.getPartnerId(), new HyPartnerUserInfoDO()); partnerIntentApplyInfoVO.setPartnerUserName(infoDOMapOrDefault.getUsername()); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java index 5d244e44c..bd116cbf7 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java @@ -86,4 +86,8 @@ public class PartnerLineInfoAndBaseInfoVO { @ApiModelProperty("线索来源名称") private String channelName; + + private String education; + + private String idCard; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoVO.java index 4703a817d..97441472e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoVO.java @@ -95,7 +95,7 @@ public class PartnerLineInfoVO { result.setWorkflowStage(line.getWorkflowStage()); result.setWorkflowStatus(line.getWorkflowStatus()); result.setLineStatus(line.getLineStatus()); - String deadLine = DateUtil.format(line.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC); + String deadLine = DateUtil.format(line.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2); result.setDeadline(deadLine); result.setPassReason(line.getPassReason()); result.setRejectPublicReason(line.getRejectPublicReason()); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java index bf304c86e..706513b4b 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java @@ -85,6 +85,8 @@ public class PrivateSeaLineListVo { private Long interviewPlanId; + private Date startTime; + public static List convertList(List list, Map finalDevManagerMap, Map wantShopAreaNameMap){ List resultList = new ArrayList<>(); @@ -94,7 +96,7 @@ public class PrivateSeaLineListVo { privateSeaLineListVo.setLineStatus(x.getLineStatus()); privateSeaLineListVo.setPartnerId(x.getPartnerId()); privateSeaLineListVo.setWorkflowStatus(x.getWorkflowStatus()); - String deadLine = DateUtil.format(x.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC); + String deadLine = DateUtil.format(x.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2); privateSeaLineListVo.setDeadline(deadLine); privateSeaLineListVo.setPartnerUserPhone(x.getPartnerUserPhone()); privateSeaLineListVo.setPartnerUserName(x.getPartnerUserName()); @@ -104,7 +106,7 @@ public class PrivateSeaLineListVo { privateSeaLineListVo.setInvestmentManagerName(x.getInvestmentManagerName()); privateSeaLineListVo.setStoreCode(x.getStoreCode()); privateSeaLineListVo.setStoreName(x.getStoreName()); - String updateTime = DateUtil.format(x.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC); + String updateTime = DateUtil.format(x.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC_2); privateSeaLineListVo.setUpdateTime(updateTime); privateSeaLineListVo.setRecommendPartnerId(x.getRecommendPartnerId()); privateSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType()); @@ -116,6 +118,7 @@ public class PrivateSeaLineListVo { privateSeaLineListVo.setInterviewPlanId(x.getInterviewPlanId()); privateSeaLineListVo.setWantShopArea(x.getWantShopArea()); privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage()); + privateSeaLineListVo.setStartTime(x.getStartTime()); privateSeaLineListVo.setDevelopmentManagerName(finalDevManagerMap.get(x.getDevelopmentManager())); resultList.add(privateSeaLineListVo); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java b/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java index 1d7b8e4cf..2978d5a41 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/context/LoginUserInfo.java @@ -12,6 +12,8 @@ public class LoginUserInfo { private String corpId; + private String mobile; + private String accessToken; /** diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java index 42b1a0e7f..2bee53a1a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java @@ -32,7 +32,7 @@ public interface HyPartnerBaseInfoService { Boolean changeBinding(String idCard, Long lineId, PartnerUserInfoVO currentUser); - HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId); + HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId, String userPortrait); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java index ddb861b1e..8303b40de 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java @@ -4,6 +4,7 @@ import com.cool.store.vo.InterviewDetailInfoVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.github.pagehelper.PageInfo; +import java.util.Date; import java.util.List; /** @@ -18,7 +19,7 @@ public interface HyPartnerInterviewPlanService { * @param userId * @return */ - List getInterviewPlanList(String userId); + List getInterviewPlanList(String userId, Date dateTime); /** * getPartnerInterviewInfoList diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java index 8c3f1cd88..c4ccf9195 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java @@ -1,5 +1,6 @@ package com.cool.store.service; +import com.cool.store.context.LoginUserInfo; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.exception.ApiException; import com.cool.store.request.CloseFollowRequest; @@ -56,7 +57,7 @@ public interface HyPartnerLineInfoService { * @param lineId * @return */ - Boolean transferInvestmentManager(String userId,Long lineId); + Boolean transferInvestmentManager(LoginUserInfo user,String userId,String userName,Long lineId); /** * 分配招商经理 @@ -64,7 +65,7 @@ public interface HyPartnerLineInfoService { * @param lineIdList * @return */ - Boolean allocationInvestmentManager(String userId, List lineIdList); + Boolean allocationInvestmentManager(LoginUserInfo user, List lineIdList); /** @@ -81,7 +82,7 @@ public interface HyPartnerLineInfoService { * @param joinReason * @return */ - Boolean joinBlackList(String userId, Long lineId, Integer status, String joinReason); + Boolean joinBlackList(LoginUserInfo user, Long lineId, Integer status, String joinReason); /** * 移除黑名单 @@ -90,7 +91,7 @@ public interface HyPartnerLineInfoService { * @param removeReason * @return */ - Boolean removeBlackList( Long lineId, Integer status, String removeReason); + Boolean removeBlackList( LoginUserInfo userInfo,Long lineId, Integer status, String removeReason); /** * 结束或者通过线索 @@ -98,7 +99,7 @@ public interface HyPartnerLineInfoService { * @param closeFollowRequest * @return */ - Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest); + Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest); /** * 公海线索 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index 8489cf301..5efb7d1bb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -64,8 +64,8 @@ public class DeskServiceImpl implements DeskService { InterviewScheduleInfoVO interviewScheduleInfoVO = new InterviewScheduleInfoVO(); //查询面试数量 - String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC); - String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(1), CoolDateUtils.DATE_FORMAT_SEC); + String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY); + String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(dateTime,1), CoolDateUtils.DATE_FORMAT_SEC); String endTime = DateUtil.format(CoolDateUtils.getDateFormatDay(7), CoolDateUtils.DATE_FORMAT_SEC); SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime); @@ -74,7 +74,7 @@ public class DeskServiceImpl implements DeskService { //查询面试列表 //当天时间 与入参无关 - List interviewPlanList = hyPartnerInterviewPlanService.getInterviewPlanList(userId); + List interviewPlanList = hyPartnerInterviewPlanService.getInterviewPlanList(userId,dateTime); interviewScheduleInfoVO.setInterviewDetailInfoVOS(interviewPlanList); return interviewScheduleInfoVO; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index 6cd828a13..087e581bd 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -93,6 +93,15 @@ public class FlowServiceImpl implements FlowService { @Override @Transactional public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException, IOException { + //根据面试id获取面试信息 + HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId()); + if (Objects.isNull(hyPartnerInterviewDO)) { + throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); + } + //根据面试状态限制 + if (!hyPartnerInterviewDO.getStatus().equals(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_4.getCode()))) { + throw new ApiException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR); + } //1.发起加盟商资质审核 RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq(); RpcCreateQualifyVerifyReq.Data dataBody = new RpcCreateQualifyVerifyReq().new Data(); @@ -101,8 +110,12 @@ public class FlowServiceImpl implements FlowService { fraSource.setText("沪上阿姨合伙人"); dataBody.setFraSource(fraSource); //copy properties - BeanUtil.copyProperties(request, rpcRequest); - dataBody.setIntendedSignDate(request.getWantSignTime()); + BeanUtil.copyProperties(request, dataBody); + //日期格式问题 + if (request.getWantSignTime().endsWith("00:00:00")) { + dataBody.setIntendedSignDate(request.getWantSignTime()); + } + dataBody.setIntendedSignDate(request.getWantSignTime() + " 00:00:00"); dataBody.setAmtDeposit(request.getSecurityFund()); dataBody.setIntendedSigner(request.getIntentionSignerUsername()); dataBody.setIntendedSignerTel(request.getIntentionSignerMobile()); @@ -126,10 +139,13 @@ public class FlowServiceImpl implements FlowService { HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId())); if (!Objects.isNull(hyPartnerLineInfoDO)) { String investmentManagerId = hyPartnerLineInfoDO.getInvestmentManager(); - EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoById(investmentManagerId); - if (!Objects.isNull(enterpriseUserDO)) { - String jobNumber = enterpriseUserDO.getJobnumber(); - String mobile = enterpriseUserDO.getMobile(); + String developmentDirectorId = hyPartnerLineInfoDO.getDevelopmentDirector(); + EnterpriseUserDO investmentManager = enterpriseUserDAO.getUserInfoById(investmentManagerId); + EnterpriseUserDO developmentDirector = enterpriseUserDAO.getUserInfoById(developmentDirectorId); + //招商经理信息(客户经理) + if (!Objects.isNull(investmentManager)) { + String jobNumber = investmentManager.getJobnumber(); + String mobile = investmentManager.getMobile(); DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile); if (Objects.isNull(dingdingUserDO)) { throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST); @@ -137,6 +153,16 @@ public class FlowServiceImpl implements FlowService { rpcRequest.setDingUserId(dingdingUserDO.getUserid()); authCode = generateAuthCode(jobNumber); rpcRequest.getData().setAuthCode(authCode); + rpcRequest.getData().setUserCustDingUserId(dingdingUserDO.getUserid()); + } + //开发主管信息 + if (!Objects.isNull(developmentDirector)) { + String mobile = developmentDirector.getMobile(); + DingdingUserDO dingdingUserDO = dingdingUserMapper.selectDingDingUserByMobile(mobile); + if (Objects.isNull(dingdingUserDO)) { + throw new ServiceException(ErrorCodeEnum.DINGDING_USER_NOT_EXIST); + } + rpcRequest.getData().setUserSiteDevDingUserId(dingdingUserDO.getUserid()); } } @@ -157,7 +183,6 @@ 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().toString()); partnerCertificationInfoDO.setSecurityFund(request.getSecurityFund().toString()); partnerCertificationInfoDO.setTechnicalServiceFee(request.getTechnicalServiceFee().toString()); @@ -179,14 +204,10 @@ public class FlowServiceImpl implements FlowService { hyPartnerCertificationInfoMapper.insertSelective(partnerCertificationInfoDO); //3.更新面试信息 - //根据面试id获取面试信息 - HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId()); - if (Objects.isNull(hyPartnerInterviewDO)) { - throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); - } hyPartnerInterviewDO.setUpdateTime(new Date()); //更新面试信息 //更新面试状态 + hyPartnerInterviewDO.setStatus(null); interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5); hyPartnerInterviewDO.setAuthCode(authCode); hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); @@ -273,7 +294,7 @@ public class FlowServiceImpl implements FlowService { param.add("file", resource); //上传文件 responseEntity = RestTemplateUtil.post(url, headers, param, MDMResultDTO.class); - log.info("url:{}, header:{}, request:{} response statusCode:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(param, SerializerFeature.IgnoreErrorGetter), JSONObject.toJSONString(responseEntity.getStatusCode())); + log.info("url:{}, header:{}, response statusCode:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(responseEntity.getStatusCode())); Map data = (Map) responseEntity.getBody().getData(); SkrRelshipProve skrRelshipProve= BeanUtil.fillBeanWithMap(data, new SkrRelshipProve(), false); relshipProves.add(skrRelshipProve); @@ -284,7 +305,6 @@ public class FlowServiceImpl implements FlowService { outputStream.close(); } } - return relshipProves; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java index 90a16631a..6a03c3041 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java @@ -180,7 +180,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { } @Override - public HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId) { + public HyPartnerBaseInfoDO generateBaseInfo(HyPartnerUserInfoDO hyPartnerUserInfoDO, Long partnerLineId, String userPortrait) { HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), partnerLineId); if(hyPartnerBaseInfoDO == null){ hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); @@ -190,6 +190,9 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { hyPartnerBaseInfoDO.setUsername(hyPartnerUserInfoDO.getUsername()); hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())); hyPartnerBaseInfoDO.setSex(1); + if(StringUtils.isNotBlank(userPortrait)){ + hyPartnerBaseInfoDO.setUserPortrait(userPortrait); + } hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO); } return hyPartnerBaseInfoDO; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index 4574ce45e..a40744d49 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.LineStatusEnum; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; @@ -19,6 +20,7 @@ import com.cool.store.request.IndustryCognitionInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.request.PartnerWantShopInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; +import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; @@ -62,6 +64,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic private RedisUtilPool redisUtilPool; @Resource HyOpenAreaInfoDAO hyOpenAreaInfoDAO; + @Resource + HyPartnerLineInfoService hyPartnerLineInfoService; @Override public PageInfo getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) { @@ -147,12 +151,21 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO); } redisUtilPool.delKey(cacheKey); - if(StringUtils.isNotBlank(request.getWantShopArea())){ - HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId()); - hyPartnerUserInfoDO.setWantShopArea(request.getWantShopArea()); + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId()); + if(!request.getWantShopArea().equals(hyPartnerUserInfoDO.getWantShopArea()) || !request.getAcceptAdjustType().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){ hyPartnerUserInfoDO.setLiveArea(request.getLiveArea()); + hyPartnerUserInfoDO.setWantShopArea(request.getWantShopArea()); hyPartnerUserInfoDO.setAcceptAdjustType(request.getAcceptAdjustType()); hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO); + // 更新线索状态和招商经理 + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId()); + Boolean flag = hyPartnerLineInfoService.assignFollowUser(request.getPartnerId(), request.getWantShopArea(), request.getAcceptAdjustType()); + hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode()); + if (flag){ + String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(request.getPartnerId(), "intent"); + hyPartnerLineInfoDO.setInvestmentManager(investmentManager); + } + hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(request.getWantShopArea())); return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : null; } @@ -333,7 +346,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic intentInfoDO.setWantShopArea(request.getWantShopArea()); intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType()); intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop()); - if (CollectionUtils.isNotEmpty(request.getWantShopInfo())){ + intentInfoDO.setWantShopInfo(""); + if (CollectionUtils.isNotEmpty(request.getWantShopInfo()) && request.getIsHaveWantShop() == 1){ intentInfoDO.setWantShopInfo(JSONObject.toJSONString(request.getWantShopInfo())); } intentInfoDO.setMaxBudget(request.getMaxBudget()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 9244be3bd..5a45b2067 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -67,9 +67,10 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan @Override - public List getInterviewPlanList(String userId) { - String currentTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_DAY); - List interviewPlanList = hyPartnerInterviewPlanDAO.getInterviewPlanList(userId, currentTime); + public List getInterviewPlanList(String userId,Date dateTime) { + String currentDay = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY); + String currentTime = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC); + List interviewPlanList = hyPartnerInterviewPlanDAO.getInterviewPlanList(userId, currentTime,currentDay); if (CollectionUtils.isEmpty(interviewPlanList)){ return Lists.newArrayList(); } @@ -267,14 +268,14 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan partnerInterviewInfoVO.setPartnerId(partnerInterviewInfoDTO.getPartnerId()); partnerInterviewInfoVO.setInterviewerId(partnerInterviewInfoDTO.getInterviewer()); partnerInterviewInfoVO.setProcessInfo(partnerInterviewInfoDTO.getProcessInfo()); - partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC)); + partnerInterviewInfoVO.setCreateTime(DateUtil.format(partnerInterviewInfoDTO.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); partnerInterviewInfoVO.setRoomId(partnerInterviewInfoDTO.getRoomId()); - partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC)); - partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC)); + partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC_2)); + partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus()); partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode()); - partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC)); - partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC)); + partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); + partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); return partnerInterviewInfoVO; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 1882a09b7..bea44f05a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -5,8 +5,10 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.constants.RedisConstant; +import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; +import com.cool.store.dto.log.*; import com.cool.store.dto.partner.*; import com.cool.store.entity.*; import com.cool.store.enums.*; @@ -27,6 +29,7 @@ import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -73,6 +76,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { private HyPartnerBaseInfoService hyPartnerBaseInfoService; @Resource WorkFlowService workFlowService; + @Resource + HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO; @Override @@ -94,7 +99,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); } PartnerLineInfoAndBaseInfoVO partnerLineInfoAndBaseInfoVO = convertPartnerLineInfoAndBaseInfoDTOToVo(partnerLineInfoAndBaseInfoDTO); - EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(partnerLineInfoAndBaseInfoDTO.getPassUserId()); if (userInfo!=null){ partnerLineInfoAndBaseInfoVO.setPassUserName(userInfo.getName()); @@ -133,17 +137,40 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { } @Override - public Boolean transferInvestmentManager(String userId, Long lineId) { + public Boolean transferInvestmentManager(LoginUserInfo user,String userId,String userName, Long lineId) { if (StringUtil.isBlank(userId)||lineId==null){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId); hyPartnerLineInfoDAO.updateInvestmentManager(userId, Arrays.asList(lineId)); + + List userIdList = new ArrayList<>(); + userIdList.add(userId); + if (StringUtils.isNotEmpty(hyPartnerLineInfoDO.getInvestmentManager())){ + userIdList.add(hyPartnerLineInfoDO.getInvestmentManager()); + } + List userList = enterpriseUserDAO.getUserInfoByUserIds(userIdList); + Map userDOMap = userList.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, data -> data)); + + //添加日志 + LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId(), user.getUserId(), + user.getName(), OperateTypeEnum.TRANSFER_INVESTMENT_MANAGER, + WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()), + hyPartnerLineInfoDO.getWorkflowStatus(), ""); + TransferInvestmentManagerLogDTO logDTO = TransferInvestmentManagerLogDTO.builder().operateUserId(user.getUserId()).operateUsername(user.getName()) + .beforeInvestmentManagerUsername(userDOMap.getOrDefault(hyPartnerLineInfoDO.getInvestmentManager(),new EnterpriseUserDO()).getName()) + .beforeInvestmentManagerMobile(userDOMap.getOrDefault(hyPartnerLineInfoDO.getInvestmentManager(),new EnterpriseUserDO()).getMobile()) + .afterInvestmentManagerMobile(userDOMap.getOrDefault(userId,new EnterpriseUserDO()).getMobile()) + .afterInvestmentManagerUsername(userDOMap.getOrDefault(userId,new EnterpriseUserDO()).getName()) + .mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(logDTO); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); return Boolean.TRUE; } @Override - public Boolean allocationInvestmentManager(String userId, List lineIdList) { - if (StringUtil.isBlank(userId)|| CollectionUtils.isEmpty(lineIdList)){ + public Boolean allocationInvestmentManager(LoginUserInfo user, List lineIdList) { + if (user==null|| CollectionUtils.isEmpty(lineIdList)){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } //加盟上线索集合 @@ -157,7 +184,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { closeLineList.stream().forEach(x->{ HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); hyPartnerLineInfoDO.setPartnerId(x.getPartnerId()); - hyPartnerLineInfoDO.setInvestmentManager(userId); + hyPartnerLineInfoDO.setInvestmentManager(user.getUserId()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setLineStatus(1); @@ -177,8 +204,19 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { //没有结束的线索直接分配招商经理 List otherLineList = partnerLineInfoList.stream().filter(x -> x.getCloseTime() == null).collect(Collectors.toList()); List otherLineIdList = otherLineList.stream().map(HyPartnerLineInfoDO::getId).collect(Collectors.toList()); - hyPartnerLineInfoDAO.updateInvestmentManager(userId, otherLineIdList); + hyPartnerLineInfoDAO.updateInvestmentManager(user.getUserId(), otherLineIdList); + //添加日志 + partnerLineInfoList.forEach(x->{ + LineLogInfo lineLogInfo = new LineLogInfo(x.getPartnerId(), x.getId(), user.getUserId(), + user.getName(), OperateTypeEnum.ALLOCATION_INVESTMENT_MANAGER, + WorkflowStageEnum.getWorkflowStageByCode(x.getWorkflowStage()), + x.getWorkflowStatus(), ""); + AllocationInvestmentManagerLogDTO logDTO = AllocationInvestmentManagerLogDTO.builder().allocationUserId(user.getUserId()).allocationUsername(user.getName()) + .mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(logDTO); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); + }); return Boolean.TRUE; } @@ -204,10 +242,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { } @Override - public Boolean joinBlackList(String userId,Long lineId, Integer status, String joinReason) { + public Boolean joinBlackList(LoginUserInfo user, Long lineId, Integer status, String joinReason) { if (lineId==null){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } + HyPartnerLineInfoDO line = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId); //加入黑名单 阶段回到第一步待提交状态 HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); hyPartnerLineInfoDO.setId(lineId); @@ -215,16 +254,26 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { hyPartnerLineInfoDO.setJoinBlackReason(joinReason); hyPartnerLineInfoDO.setRejectRealReason(joinReason); hyPartnerLineInfoDO.setCloseTime(new Date()); - hyPartnerLineInfoDO.setCloseUserId(userId); + hyPartnerLineInfoDO.setCloseUserId(user.getUserId()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); - hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); + + //添加日志 + LineLogInfo lineLogInfo = new LineLogInfo(line.getPartnerId(), line.getId(), user.getUserId(), + user.getName(), OperateTypeEnum.ADD_BLACKLIST, + WorkflowStageEnum.getWorkflowStageByCode(line.getWorkflowStage()), + line.getWorkflowStatus(), ""); + BlackListLogDTO logDTO = BlackListLogDTO.builder().operateUserId(user.getUserId()).reason(joinReason).operateUsername(user.getName()) + .mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(logDTO); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); + return Boolean.TRUE; } @Override - public Boolean removeBlackList(Long lineId, Integer status, String removeReason) { + public Boolean removeBlackList(LoginUserInfo user,Long lineId, Integer status, String removeReason) { //移除黑名单 黑名单线索置为删除状态 新增一条线索 if (lineId==null){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); @@ -245,20 +294,38 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { newHyPartnerLineInfoDO.setLineStatus(status); hyPartnerLineInfoDAO.insertSelective(newHyPartnerLineInfoDO); + HyPartnerBaseInfoDO oldHyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(lineId); + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); hyPartnerBaseInfoDO.setPartnerId(hyPartnerLineInfo.getPartnerId()); hyPartnerBaseInfoDO.setPartnerLineId(newHyPartnerLineInfoDO.getId()); + hyPartnerBaseInfoDO.setUserPortrait(oldHyPartnerBaseInfoDO.getUserPortrait()); hyPartnerBaseInfoDAO.insertSelective(hyPartnerBaseInfoDO); + + //添加日志 + LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfo.getPartnerId(), hyPartnerLineInfo.getId(), user.getUserId(), + user.getName(), OperateTypeEnum.REMOVE_BLACKLIST, + WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfo.getWorkflowStage()), + hyPartnerLineInfo.getWorkflowStatus(), ""); + BlackListLogDTO logDTO = BlackListLogDTO.builder().operateUserId(user.getUserId()).reason(removeReason).operateUsername(user.getName()) + .mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(logDTO); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); return Boolean.TRUE; } @Override @Transactional(rollbackFor = Exception.class) - public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) { + public Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) { HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId()); if (hyPartnerLineInfoDO==null){ throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); } + if (hyPartnerLineInfoDO.getLineStatus()==0){ + throw new ServiceException(ErrorCodeEnum.PUBLIC_LINE_NOT_OPERATE); + } + String oldWorkflowStage = hyPartnerLineInfoDO.getWorkflowStage(); + String oldWorkflowStatus = hyPartnerLineInfoDO.getWorkflowStatus(); //通过 if ("pass".equals(closeFollowRequest.getType())){ hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode()); @@ -271,7 +338,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { HyPartnerBaseInfoDO hy = hyPartnerBaseInfoDAO.getByPartnerLineId(hyPartnerLineInfoDO.getId()); hy.setPassReason(closeFollowRequest.getPassReason()); hy.setPassTime(new Date()); - hy.setPassUserId(userId); + hy.setPassUserId(user.getUserId()); if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){ hy.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile())); } @@ -294,7 +361,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { } hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode()); hyPartnerLineInfoDO.setCloseTime(new Date()); - hyPartnerLineInfoDO.setCloseUserId(userId); + hyPartnerLineInfoDO.setCloseUserId(user.getUserId()); //各阶段单独的逻辑 workFlowService.endProcess(WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()),closeFollowRequest); } @@ -313,9 +380,25 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { hyPartnerLineInfoDO.setCloseTime(new Date()); } hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); + + + //通过 拒绝添加日志 + if ("pass".equals(closeFollowRequest.getType())||"reject".equals(closeFollowRequest.getType())){ + LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerLineInfoDO.getId(), user.getUserId(), + user.getName(), OperateTypeEnum.REMOVE_BLACKLIST, + WorkflowStageEnum.getWorkflowStageByCode(oldWorkflowStage), + oldWorkflowStatus, ""); + CloseOrPassFollowLogDTO log = CloseOrPassFollowLogDTO.builder().operateUserId(user.getUserId()).passReason(closeFollowRequest.getPassReason()).rejectRealReason(closeFollowRequest.getRejectRealReason()) + .operateUsername(user.getName()).rejectPublicReason(closeFollowRequest.getRejectPublicReason()).certifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile())) + .mobile(user.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(log); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); + } return Boolean.TRUE; } + + @Override public PageInfo publicSeaLineList(String userId, LineRequest lineRequest) { //确认是招商经理还是部门负责人 @@ -356,13 +439,13 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { list.forEach(x->{ PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo(); publicSeaLineListVo.setPartnerId(x.getPartnerId()); - publicSeaLineListVo.setCreateTime(DateUtil.format(x.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC)); + publicSeaLineListVo.setCreateTime(DateUtil.format(x.getCreateTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); publicSeaLineListVo.setPartnerUserName(x.getUserName()); publicSeaLineListVo.setPartnerUserPhone(x.getMobile()); DescribePhoneNumberDTO phoneNumberAttribute = aliyunService.getPhoneNumberAttribute(x.getMobile()); publicSeaLineListVo.setPhoneAddress(phoneNumberAttribute.getCity()); publicSeaLineListVo.setWantShopArea(x.getWantShopArea()); - publicSeaLineListVo.setUpdateTime(DateUtil.format(x.getUpdateTime(),CoolDateUtils.DATE_FORMAT_SEC)); + publicSeaLineListVo.setUpdateTime(DateUtil.format(x.getUpdateTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); publicSeaLineListVo.setId(x.getLineId()); publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType()); publicSeaLineListVo.setFollowCount(countMap.getOrDefault(x.getPartnerId(),0)); @@ -370,7 +453,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason()); publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason()); publicSeaLineListVo.setWantShopAreaName(wantShopAreaNameMap.get(x.getWantShopArea())); - String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC); + String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2); publicSeaLineListVo.setLastCloseDate(closeTime); publicSeaLineListVo.setLastInvestmentManager(nameMobileMap.get(hy.getInvestmentManager())); result.add(publicSeaLineListVo); @@ -430,9 +513,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { List result = new ArrayList<>(); lineFollowHistoryList.forEach(x->{ LineFollowHistoryVO lineFollowHistoryVO = new LineFollowHistoryVO(); - lineFollowHistoryVO.setCloseCause(x.getRejectPublicReason()); - lineFollowHistoryVO.setCloseTime( DateUtil.format(x.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC)); - lineFollowHistoryVO.setStartTime(DateUtil.format(x.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC)); + lineFollowHistoryVO.setCloseCause(x.getRejectRealReason()); + lineFollowHistoryVO.setCloseTime( DateUtil.format(x.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2)); + lineFollowHistoryVO.setStartTime(DateUtil.format(x.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC_2)); result.add(lineFollowHistoryVO); }); return result; @@ -576,7 +659,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { // 生成一条新线索 HyPartnerLineInfoDO newLineInfoDO = this.generateDefaultLineInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType()); // 生成一条意向基本信息 - hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId()); + HyPartnerBaseInfoDO oldBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), lineId); + hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId(), oldBaseInfoDO.getUserPortrait()); return newLineInfoDO.getId(); } return hyPartnerLineInfoDO.getId(); @@ -594,8 +678,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { blackListVO.setPartnerId(partnerBlackListDTO.getPartnerId()); blackListVO.setPartnerUserName(partnerBlackListDTO.getPartnerUserName()); blackListVO.setPartnerUserPhone(partnerBlackListDTO.getMobile()); - String createTime = DateUtil.format(partnerBlackListDTO.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC); - String closeTime = DateUtil.format(partnerBlackListDTO.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC); + String createTime = DateUtil.format(partnerBlackListDTO.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC_2); + String closeTime = DateUtil.format(partnerBlackListDTO.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_2); blackListVO.setCreateTime(createTime); blackListVO.setCloseTime(closeTime); blackListVO.setJoinBlackReason(partnerBlackListDTO.getJoinBlackReason()); @@ -631,12 +715,14 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType()); partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea()); partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea()); + partnerLineInfoAndBaseInfoVO.setIdCard(partnerLineInfoAndBaseInfoDTO.getIdCard()); partnerLineInfoAndBaseInfoVO.setChannelName(partnerLineInfoAndBaseInfoDTO.getChannelName()); if (StringUtil.isNotEmpty(partnerLineInfoAndBaseInfoDTO.getCertifyFile())){ partnerLineInfoAndBaseInfoVO.setPassCertifyFile(JSONObject.parseArray(partnerLineInfoAndBaseInfoDTO.getCertifyFile(), String.class)); } partnerLineInfoAndBaseInfoVO.setPassUserId(partnerLineInfoAndBaseInfoDTO.getPassUserId()); - partnerLineInfoAndBaseInfoVO.setPassTime(DateUtil.format(partnerLineInfoAndBaseInfoDTO.getPassTime(),CoolDateUtils.DATE_FORMAT_SEC)); + partnerLineInfoAndBaseInfoVO.setEducation(partnerLineInfoAndBaseInfoDTO.getEducation()); + partnerLineInfoAndBaseInfoVO.setPassTime(DateUtil.format(partnerLineInfoAndBaseInfoDTO.getPassTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); return partnerLineInfoAndBaseInfoVO; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java index 2b936b990..81f3fed94 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LoginServiceImpl.java @@ -75,6 +75,7 @@ public class LoginServiceImpl implements LoginService { enterpriseUser.setFaceUrl(finalAvatar); currentUser.setUserId(enterpriseUser.getUserId()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); + currentUser.setMobile(enterpriseUser.getMobile()); currentUser.setSysRole(sysRole); currentUser.setCorpId(corpId); currentUser.setAvatar(enterpriseUser.getAvatar()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java index 73709444a..09af1c1b3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.request.PartnerUserInfoRequest; import com.cool.store.request.PartnerWantShopInfoRequest; import com.cool.store.service.HyPartnerBaseInfoService; @@ -98,7 +99,7 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { // 生成一条线索 HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoService.generateDefaultLineInfo(hyPartnerUserInfoDO.getPartnerId(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType()); // 生成一条意向基本信息 - hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId()); + hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId(), null); HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea())); List hyOpenAreaInfoDOS = null; if(hyOpenAreaInfoDO != null){ @@ -112,9 +113,9 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { applyBaseInfoVO.setProvinceHasOpenArea(true); } applyBaseInfoVO.setLineStatus(hyPartnerLineInfoDO.getLineStatus()); - String cacheKey = MessageFormat.format(RedisConstant.PARTNER_WANTSHOPINFO_CACHE_KEY, partnerUserInfoRequest.getPartnerId(), hyPartnerLineInfoDO.getId()); + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, partnerUserInfoRequest.getPartnerId(), hyPartnerLineInfoDO.getId()); if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) { - PartnerWantShopInfoRequest request = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerWantShopInfoRequest.class); + PartnerIntentInfoRequest request = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerIntentInfoRequest.class); if(!partnerUserInfoRequest.getWantShopArea().equals(request.getWantShopArea())){ request.setWantShopArea(partnerUserInfoRequest.getWantShopArea()); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index 74a68385b..f14ade503 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -113,6 +113,9 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { }else { hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerUserPlatformBindDO.getPartnerId()); } + if(!hyPartnerUserInfoDO.getMobile().equals(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){ + throw new ServiceException(ErrorCodeEnum.WECHAT_BIND_OTHER_MOBILE); + } BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); if (lineInfoDO != null){ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java index b86fd5851..56feba928 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java @@ -170,7 +170,7 @@ public class ZoneServiceImpl implements ZoneService { ZoneVO zoneVO = new ZoneVO(); zoneVO.setZoneName(hyIntendDevZoneInfoDO.getZoneName()); zoneVO.setId(hyIntendDevZoneInfoDO.getId()); - zoneVO.setUpdateTime(DateUtil.format(hyIntendDevZoneInfoDO.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC)); + zoneVO.setUpdateTime(DateUtil.format(hyIntendDevZoneInfoDO.getUpdateTime(), CoolDateUtils.DATE_FORMAT_SEC_2)); List organizationVOS = new ArrayList<>(); if (StringUtil.isNotEmpty(hyIntendDevZoneInfoDO.getAssociatedRegionId())){ List regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index f302bc185..76fd03581 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -194,14 +194,14 @@ public class DeskController { @ApiOperation("分配招商经理/批量分配招商经理") public ResponseResult allocationInvestmentManager(@RequestBody AllocationInvestmentManagerRequest request){ - return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(request.getUserId(),request.getLineIdList())); + return ResponseResult.success(hyPartnerLineInfoService.allocationInvestmentManager(CurrentUserHolder.getUser(),request.getLineIdList())); } @PostMapping(path = "/transferInvestmentManager") @ApiOperation("转让招商经理") public ResponseResult transferInvestmentManager(@RequestBody TransferInvestmentManagerRequest request){ - return ResponseResult.success(hyPartnerLineInfoService.transferInvestmentManager(request.getUserId(),request.getLineId())); + return ResponseResult.success(hyPartnerLineInfoService.transferInvestmentManager(CurrentUserHolder.getUser(),request.getUserId(),request.getUserName(),request.getLineId())); } @@ -230,21 +230,21 @@ public class DeskController { @ApiOperation("移出黑名单") public ResponseResult removeBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){ - return ResponseResult.success(hyPartnerLineInfoService.removeBlackList(lineBlackListRequest.getLineId(), LineStatusEnum.PUBLIC_SEAS.getCode(),lineBlackListRequest.getCause())); + return ResponseResult.success(hyPartnerLineInfoService.removeBlackList(CurrentUserHolder.getUser(),lineBlackListRequest.getLineId(), LineStatusEnum.PUBLIC_SEAS.getCode(),lineBlackListRequest.getCause())); } @PostMapping(path = "/joinBlackList") @ApiOperation("加入黑名单") public ResponseResult joinBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){ - return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(CurrentUserHolder.getUserId(),lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause())); + return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(CurrentUserHolder.getUser(),lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause())); } @PostMapping(path = "/closeOrPassFollow") @ApiOperation("意向申请审核 结束跟进/通过流程") public ResponseResult closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){ - return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUserId(),closeFollowRequest)); + return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUser(),closeFollowRequest)); } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java index 67079730c..f0562b9c6 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java @@ -110,6 +110,12 @@ public class PartnerController { return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest)); } + @PostMapping(path = "/submitPartnerIntentInfo") + @ApiOperation("提意向书意向信息/行业认知") + public ResponseResult submitPartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){ + return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest)); + } + @PostMapping(path = "/submitWantShopInfo") @ApiOperation("提意向书意向信息") public ResponseResult submitWantShopInfo(@RequestBody PartnerWantShopInfoRequest request){ @@ -176,6 +182,15 @@ public class PartnerController { return ResponseResult.success(hyPartnerClerkService.queryPartnerClerkInfo(userInfoVO.getPartnerId(), lineId)); } + @GetMapping(path = "/queryPartnerIntentInfo") + @ApiOperation("查看意向申请书-意向信息/行业信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), + }) + public ResponseResult queryPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerIntentInfoService.queryPartnerIntentInfo(userInfoVO, lineId)); + } @GetMapping(path = "/queryWantShopInfo") @ApiOperation("查看意向申请书-意向信息")