From 0e2df3852842f4c6feac83aeb65c17cb30a976bd Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 27 Jun 2023 14:17:41 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/enums/OperateLogFieldValueEnum.java | 44 +++ .../com/cool/store/enums/OperateTypeEnum.java | 47 ++++ .../store/dao/HyPartnerTaskInfoLogDAO.java | 16 +- .../mapper/HyPartnerTaskInfoLogMapper.xml | 257 +++++++++--------- .../com/cool/store/dto/log/LineLogInfo.java | 93 +++++++ .../store/entity/HyPartnerTaskInfoLogDO.java | 4 + 6 files changed, 335 insertions(+), 126 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java 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 new file mode 100644 index 000000000..2eeefe170 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateLogFieldValueEnum.java @@ -0,0 +1,44 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: OperateLogFieldValue + * @Description: + * @date 2023-06-27 10:44 + */ +public enum OperateLogFieldValueEnum { + + ALLOCATION_USERNAME("allocationUsername","分配人姓名"), + MOBILE("mobile","手机号"), + OPERATE_TIME("operateTime","操作时间"), + 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", "转让后的招商经理手机好"), + ; + + + private String code; + + private String name; + + + OperateLogFieldValueEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} 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 new file mode 100644 index 000000000..e529e209d --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java @@ -0,0 +1,47 @@ +package com.cool.store.enums; + +import java.util.Arrays; +import java.util.List; + +import static com.cool.store.enums.OperateLogFieldValueEnum.*; + +/** + * @author zhangchenbiao + * @FileName: OperateTypeEnum + * @Description: + * @date 2023-06-27 10:41 + */ +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)); + + ; + + private String code; + + private String name; + + private List filedList; + + OperateTypeEnum(String code, String name, List filedList) { + this.code = code; + this.name = name; + this.filedList = filedList; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + public List getFiledList() { + return filedList; + } +} 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 78e1fa9c7..4f529c2af 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,6 +1,8 @@ package com.cool.store.dao; +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 org.springframework.stereotype.Repository; @@ -23,8 +25,20 @@ public class HyPartnerTaskInfoLogDAO { return hyPartnerTaskInfoLogMapper.updateByPrimaryKeySelective(hyPartnerTaskInfoLogDO); } - public int insertSelective( HyPartnerTaskInfoLogDO record){ + public int insertSelective( HyPartnerTaskInfoLogDO record){ return hyPartnerTaskInfoLogMapper.insertSelective(record); } + /** + * 新增操作日志 + * @param lineLogInfo + */ + public void addOperateLog(LineLogInfo lineLogInfo){ + if(!LineLogInfo.checkParams(lineLogInfo)){ + return; + } + HyPartnerTaskInfoLogDO logInfo = LineLogInfo.convertDO(lineLogInfo); + insertSelective(logInfo); + } + } diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerTaskInfoLogMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerTaskInfoLogMapper.xml index 5d102b0cd..5ebbb72d0 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerTaskInfoLogMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerTaskInfoLogMapper.xml @@ -1,129 +1,136 @@ - - - - - - - - - - - - - - - - - id, partner_line_id, operate_user_id, operate_username, workflow_stage, workflow_status, - message, create_time, update_time, partner_id - - - field_copy - - - insert into hy_partner_task_info_log - - - partner_line_id, - - - operate_user_id, - - - operate_username, - - - workflow_stage, - - - workflow_status, - - - message, - - - create_time, - - - update_time, - - - partner_id, - - - field_copy, - - - - - #{record.partnerLineId}, - - - #{record.operateUserId}, - - - #{record.operateUsername}, - - - #{record.workflowStage}, - - - #{record.workflowStatus}, - - - #{record.message}, - - - #{record.createTime}, - - - #{record.updateTime}, - - - #{record.partnerId}, - - - #{record.fieldCopy}, - - - - - update hy_partner_task_info_log - - - partner_line_id = #{record.partnerLineId}, - - - operate_user_id = #{record.operateUserId}, - - - operate_username = #{record.operateUsername}, - - - workflow_stage = #{record.workflowStage}, - - - workflow_status = #{record.workflowStatus}, - - - message = #{record.message}, - - - create_time = #{record.createTime}, - - - update_time = #{record.updateTime}, - - - partner_id = #{record.partnerId}, - - - field_copy = #{record.fieldCopy}, - - - where id = #{record.id} - + + + + + + + + + + + + + + + + + + id, partner_line_id, operate_user_id, operate_username, workflow_stage, workflow_status, + message, create_time, update_time, partner_id + + + field_copy + + + insert into hy_partner_task_info_log + + + partner_line_id, + + + operate_user_id, + + + operate_username, + + + operate_type, + + + workflow_stage, + + + workflow_status, + + + message, + + + create_time, + + + update_time, + + + partner_id, + + + field_copy, + + + + + #{record.partnerLineId}, + + + #{record.operateUserId}, + + + #{record.operateUsername}, + + + #{record.operateType}, + + + #{record.workflowStage}, + + + #{record.workflowStatus}, + + + #{record.message}, + + + #{record.createTime}, + + + #{record.updateTime}, + + + #{record.partnerId}, + + + #{record.fieldCopy}, + + + + + update hy_partner_task_info_log + + + partner_line_id = #{record.partnerLineId}, + + + operate_user_id = #{record.operateUserId}, + + + operate_username = #{record.operateUsername}, + + + workflow_stage = #{record.workflowStage}, + + + workflow_status = #{record.workflowStatus}, + + + message = #{record.message}, + + + create_time = #{record.createTime}, + + + update_time = #{record.updateTime}, + + + partner_id = #{record.partnerId}, + + + field_copy = #{record.fieldCopy}, + + + where id = #{record.id} + \ No newline at end of file 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 new file mode 100644 index 000000000..a6f29c679 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LineLogInfo.java @@ -0,0 +1,93 @@ +package com.cool.store.dto.log; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.cool.store.entity.HyPartnerTaskInfoLogDO; +import com.cool.store.enums.OperateLogFieldValueEnum; +import com.cool.store.enums.OperateTypeEnum; +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.enums.WorkflowStatusEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.util.*; + +/** + * @author zhangchenbiao + * @FileName: LineLogInfo + * @Description: + * @date 2023-06-27 13:44 + */ +@Slf4j +@Data +public class LineLogInfo { + + @ApiModelProperty("hy_partner_user_info.partner_id") + private String partnerId; + + @ApiModelProperty("hy_partner_line_info.id") + private Long partnerLineId; + + @ApiModelProperty("操作人id") + private String operateUserId; + + @ApiModelProperty("操作人姓名") + private String operateUsername; + + @ApiModelProperty("操作类型") + private OperateTypeEnum operateType; + + @ApiModelProperty("流程阶段:意向申请审核、预约面试时间、加盟资格面试、分配选址开发经理、商圈点位评估、上传店铺租赁信息、完善加盟签约信息、支付加盟费用、签订加盟合同") + private WorkflowStageEnum workflowStage; + + @ApiModelProperty("流程子状态") + private WorkflowStatusEnum workflowStatus; + + @ApiModelProperty("备注") + private String message; + + @ApiModelProperty("数据处理字段") + private T data; + + public static boolean checkParams(LineLogInfo params){ + if(StringUtils.isAnyBlank(params.getPartnerId(), params.getOperateUserId(), params.getOperateUsername())){ + log.info("lineLogInfo string:{}", JSONObject.toJSONString(params)); + return false; + } + if(Objects.isNull(params.getOperateType()) || Objects.isNull(params.getWorkflowStage()) || Objects.isNull(params.getWorkflowStatus())){ + log.info("lineLogInfo enum is null:{}", JSONObject.toJSONString(params)); + return false; + } + return true; + } + + public static HyPartnerTaskInfoLogDO convertDO(LineLogInfo params){ + OperateTypeEnum operateType = params.getOperateType(); + HyPartnerTaskInfoLogDO result = new HyPartnerTaskInfoLogDO(); + result.setPartnerId(params.getPartnerId()); + result.setPartnerLineId(params.getPartnerLineId()); + result.setOperateType(params.getOperateType().getCode()); + result.setWorkflowStage(params.getWorkflowStage().getCode()); + result.setWorkflowStatus(params.getWorkflowStatus().getCode()); + result.setOperateUserId(params.getOperateUserId()); + result.setOperateUsername(params.getOperateUsername()); + result.setMessage(params.getMessage()); + result.setCreateTime(new Date()); + result.setUpdateTime(new Date()); + Object data = params.getData(); + JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(data)); + List filedList = operateType.getFiledList(); + List> fieldMapList = new ArrayList<>(); + for (OperateLogFieldValueEnum field : filedList) { + Map fieldMap = new HashMap<>(); + fieldMap.put("code",field.getCode()); + fieldMap.put("name",field.getName()); + fieldMap.put("value",jsonObject.get(field.getCode())); + fieldMapList.add(fieldMap); + } + result.setFieldCopy(JSONObject.toJSONString(fieldMapList)); + return result; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerTaskInfoLogDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerTaskInfoLogDO.java index 436f55077..51f30265a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerTaskInfoLogDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerTaskInfoLogDO.java @@ -18,6 +18,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class HyPartnerTaskInfoLogDO implements Serializable { + @ApiModelProperty("") private Long id; @@ -30,6 +31,9 @@ public class HyPartnerTaskInfoLogDO implements Serializable { @ApiModelProperty("操作人姓名") private String operateUsername; + @ApiModelProperty("操作类型 参考代码中OperateTypeEnum") + private String operateType; + @ApiModelProperty("流程阶段:意向申请审核、预约面试时间、加盟资格面试、分配选址开发经理、商圈点位评估、上传店铺租赁信息、完善加盟签约信息、支付加盟费用、签订加盟合同") private String workflowStage; From 968e0f65e0de308f4271e097eef5ce8cd4b1d083 Mon Sep 17 00:00:00 2001 From: wxp01309236 Date: Tue, 27 Jun 2023 14:56:36 +0800 Subject: [PATCH 2/4] submitPartnerBaseInfo --- .../cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f8f9fc7fa..90a16631a 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 @@ -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); From 00867be9d7e0181f11b24ca7279335c28dec5f29 Mon Sep 17 00:00:00 2001 From: wxp01309236 Date: Tue, 27 Jun 2023 15:14:34 +0800 Subject: [PATCH 3/4] setAcceptAdjustType --- .../com/cool/store/service/impl/WechatMiniAppServiceImpl.java | 1 - 1 file changed, 1 deletion(-) 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 84c3614be..74a68385b 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 @@ -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); } From 2ef41b5722f1ee021df9162968468682d588a857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 27 Jun 2023 15:16:10 +0800 Subject: [PATCH 4/4] transferInvestmentManager --- .../com/cool/store/enums/WorkflowStageEnum.java | 15 +++++++++++++++ .../mapper/HyPartnerInterviewPlanMapper.xml | 2 +- .../resources/mapper/HyPartnerLineInfoMapper.xml | 4 +++- .../partner/PartnerLineInfoAndBaseInfoDTO.java | 2 ++ .../cool/store/vo/PartnerIntentApplyInfoVO.java | 4 ++-- .../com/cool/store/vo/PartnerInterviewInfoVO.java | 4 ++-- .../store/vo/PartnerLineInfoAndBaseInfoVO.java | 3 +++ .../com/cool/store/service/WorkFlowService.java | 8 ++++++++ .../service/impl/EnterpriseUserServiceImpl.java | 2 +- .../impl/HyPartnerInterviewPlanServiceImpl.java | 4 ++-- .../impl/HyPartnerLineInfoServiceImpl.java | 14 ++++++++------ .../store/service/impl/WorkFlowServiceImpl.java | 8 +++++++- .../impl/workflow/IntentWorkFlowService.java | 7 ++++++- .../impl/workflow/InterviewWorkFlowService.java | 6 ++++++ .../impl/workflow/ReservationWorkFlowService.java | 6 ++++++ .../impl/workflow/WorkFlowBaseService.java | 7 +++++++ .../com/cool/store/controller/TestController.java | 2 ++ 17 files changed, 81 insertions(+), 17 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java index d21df697f..8657255a8 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java @@ -1,6 +1,12 @@ package com.cool.store.enums; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Author suzhuhong @@ -44,4 +50,13 @@ public enum WorkflowStageEnum { return message; } + protected static final Map map = Arrays.stream(values()).collect( + Collectors.toMap(WorkflowStageEnum::getCode, Function.identity())); + + public static WorkflowStageEnum getWorkflowStageByCode(String code) { + if(StringUtils.isBlank(code)) { + return null; + } + return map.get(code); + } } diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index fe9bfaf3a..99e0f21d2 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -270,7 +270,7 @@