From ebdc60de1a0d0bcd024186c4edd8c1d54f97698b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Wed, 28 Jun 2023 15:13:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/enums/OperateLogFieldValueEnum.java | 13 ++- .../com/cool/store/enums/OperateTypeEnum.java | 11 ++- .../store/dto/log/CreateQualifyVerifyDTO.java | 16 ++++ .../cool/store/dto/log/EntrustOthersDTO.java | 18 ++++ .../com/cool/store/dto/log/LogBasicDTO.java | 22 +++++ .../store/dto/log/ModifyInterviewTimeDTO.java | 17 ++++ .../cool/store/dto/log/ReInterviewDTO.java | 16 ++++ .../store/dto/log/RejectInterviewDTO.java | 21 +++++ .../request/GetLastUpdateTimeInfoReq.java | 15 ++++ .../cool/store/service/InterviewService.java | 2 + .../com/cool/store/service/LogService.java | 16 ++++ .../store/service/impl/FlowServiceImpl.java | 18 +++- .../service/impl/InterviewServiceImpl.java | 72 ++++++++++++++-- .../store/service/impl/LogServiceImpl.java | 83 +++++++++++++++++++ .../workflow/InterviewWorkFlowService.java | 19 ++++- .../store/controller/InterviewController.java | 6 ++ 16 files changed, 346 insertions(+), 19 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/CreateQualifyVerifyDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/EntrustOthersDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/LogBasicDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/ModifyInterviewTimeDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/ReInterviewDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/log/RejectInterviewDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/LogService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/LogServiceImpl.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 index 443f4622d..c6530fb85 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 @@ -12,7 +12,7 @@ public enum OperateLogFieldValueEnum { ALLOCATION_USERNAME("allocationUsername","分配人姓名"), MOBILE("mobile","手机号"), OPERATE_TIME("operateTime","操作时间"), - OPERATE_USER_ID("operateUserId","操作人姓名"), + OPERATE_USER_ID("operateUserId","操作人id"), OPERATE_USER_NAME("operateUsername","操作人姓名"), REASON("reason","原因"), PASS_REASON("passReason","通过原因"), @@ -23,6 +23,17 @@ public enum OperateLogFieldValueEnum { BEFORE_INVESTMENT_MANAGER_MOBILE("beforeInvestmentManagerMobile", "转让前的招商经理手机号"), AFTER_INVESTMENT_MANAGER_USERNAME("afterInvestmentManagerUsername", "转让后的招商经理姓名"), AFTER_INVESTMENT_MANAGER_MOBILE("afterInvestmentManagerMobile", "转让后的招商经理手机好"), + + BEFORE_INTERVIEW_TIME("beforeInterviewTime", "修改前的面试时间"), + AFTER_INTERVIEW_TIME("afterInterviewTime", "修改后的面试时间"), + + BEFORE_INTERVIEWR_NAME("beforeInterviewrName", "委托前的面试官姓名"), + AFTER_INTERVIEWR_NAME("afterInterviewrName", "委托后的面试官姓名"), + BEFORE_INTERVIEWR_MOBILE("beforeInterviewrMobile", "委托前的面试官手机号"), + AFTER_INTERVIEWR_MOBILE("afterInterviewrMobile", "委托后的面试官手机号"), + + SUMMARY("summary", "面试总结"), + QUALI_VERIFY_CONTENT("qualiVerifyContent", "资质审核内容"), ; 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 c402b999c..16b374556 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 @@ -17,8 +17,17 @@ public enum OperateTypeEnum { 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)); + 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)), + INTERVIEW_APPOINTMENT("interview_appointment", "预约面试时间", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)), + MODIFY_INTERVIEW_TIME("modify_interview_time", "修改面试时间", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTERVIEW_TIME, AFTER_INTERVIEW_TIME)), + ENTRUST_OTHERS("entrust_others", "委托他人", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, BEFORE_INTERVIEWR_NAME, AFTER_INTERVIEWR_NAME, BEFORE_INTERVIEWR_MOBILE, AFTER_INTERVIEWR_MOBILE)), + FINISH_INTERVIEW("finish_interview", "合作资格面试-结束面试", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)), + + REINTERVIEW("reinterview", "合作资格面试-重新预约面试", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,REJECT_REAL_REASON, CERTIFY_FILE)), + + REJECT_INTERVIEW("reject_interview", "合作资格面试-拒绝并结束跟进", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REJECT_PUBLIC_REASON,REJECT_REAL_REASON, CERTIFY_FILE)), + CREATE_QUALIFYVERIFY("create_qualifyverify", "合作资格面试-创建资格审核", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME,SUMMARY,QUALI_VERIFY_CONTENT)), ; private String code; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CreateQualifyVerifyDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CreateQualifyVerifyDTO.java new file mode 100644 index 000000000..183120a54 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/CreateQualifyVerifyDTO.java @@ -0,0 +1,16 @@ +package com.cool.store.dto.log; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:54 + * @Description: + */ +@Data +@SuperBuilder +public class CreateQualifyVerifyDTO extends LogBasicDTO{ + private String summary; + private String qualiVerifyContent; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/EntrustOthersDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/EntrustOthersDTO.java new file mode 100644 index 000000000..ef66954fc --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/EntrustOthersDTO.java @@ -0,0 +1,18 @@ +package com.cool.store.dto.log; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:31 + * @Description: + */ +@Data +@SuperBuilder +public class EntrustOthersDTO extends LogBasicDTO{ + private String beforeInterviwerName; + private String beforeInterviwerMobile; + private String afterInterviwerName; + private String afterInterviwerMobile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LogBasicDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LogBasicDTO.java new file mode 100644 index 000000000..e40242f56 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/LogBasicDTO.java @@ -0,0 +1,22 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Author: young.yu + * @Date: 2023-06-27 23:00 + * @Description: + */ +@Data +@SuperBuilder +public class LogBasicDTO { + private String operateUsername; + + private String operateUserId; + + private String mobile; + + private String operateTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ModifyInterviewTimeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ModifyInterviewTimeDTO.java new file mode 100644 index 000000000..c78613219 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ModifyInterviewTimeDTO.java @@ -0,0 +1,17 @@ +package com.cool.store.dto.log; + +import lombok.Builder; +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:23 + * @Description: + */ +@Data +@SuperBuilder +public class ModifyInterviewTimeDTO extends LogBasicDTO{ + private String beforeInterviewTime; + private String afterInterviewTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ReInterviewDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ReInterviewDTO.java new file mode 100644 index 000000000..71d560ec0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/ReInterviewDTO.java @@ -0,0 +1,16 @@ +package com.cool.store.dto.log; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:43 + * @Description: + */ +@Data +@SuperBuilder +public class ReInterviewDTO extends LogBasicDTO{ + private String rejectRealReason; + private String certifyFile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/RejectInterviewDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/RejectInterviewDTO.java new file mode 100644 index 000000000..bbea1d415 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/RejectInterviewDTO.java @@ -0,0 +1,21 @@ +package com.cool.store.dto.log; + +import lombok.Data; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:43 + * @Description: + */ +@Data +@SuperBuilder +public class RejectInterviewDTO extends LogBasicDTO{ + private List certifyFile; + + private String rejectPublicReason; + + private String rejectRealReason; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java new file mode 100644 index 000000000..3b83b3b8a --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetLastUpdateTimeInfoReq.java @@ -0,0 +1,15 @@ +package com.cool.store.request; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +/** + * @Author: young.yu + * @Date: 2023-06-28 15:05 + * @Description: + */ +@Data +@ApiModel +public class GetLastUpdateTimeInfoReq { + @ApiModelProperty("线索id") + private String partnerLineId; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java index 461508e4f..f0fe7af35 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java @@ -68,4 +68,6 @@ public interface InterviewService { public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException; public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile); + + void getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LogService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LogService.java new file mode 100644 index 000000000..1b04f838b --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LogService.java @@ -0,0 +1,16 @@ +package com.cool.store.service; + +import com.cool.store.context.LoginUserInfo; +import com.cool.store.enums.OperateTypeEnum; +import com.cool.store.vo.PartnerUserInfoVO; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:10 + * @Description: + */ +public interface LogService { + + public void recordBizLog(LoginUserInfo operator, Long lineId, OperateTypeEnum operateTypeEnum, Object logData); + public void recordPartnerBizLog(PartnerUserInfoVO operator , Long lineId, OperateTypeEnum operateTypeEnum, Object logData); +} 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..11a9ef499 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 @@ -6,12 +6,17 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SerializerFeature; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyInterviewDAO; +import com.cool.store.dto.log.CreateQualifyVerifyDTO; +import com.cool.store.dto.log.ReInterviewDTO; import com.cool.store.dto.mdm.AccessTokenDTO; import com.cool.store.dto.response.MDMResultDTO; import com.cool.store.entity.*; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.OperateTypeEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; @@ -27,10 +32,8 @@ import com.cool.store.request.RpcGetMdmTokenReq; import com.cool.store.request.data.flow.KeyText; import com.cool.store.request.data.flow.SkrRelshipProve; import com.cool.store.service.FlowService; -import com.cool.store.utils.PDFUtils; -import com.cool.store.utils.PassLetterUtils; -import com.cool.store.utils.RedisUtilPool; -import com.cool.store.utils.RestTemplateUtil; +import com.cool.store.service.LogService; +import com.cool.store.utils.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -90,6 +93,8 @@ public class FlowServiceImpl implements FlowService { @Autowired private HyInterviewDAO interviewDAO; + @Autowired + private LogService logService; @Override @Transactional public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException, IOException { @@ -198,6 +203,11 @@ public class FlowServiceImpl implements FlowService { hyPartnerLineInfoDO.setDevelopmentDirector(request.getDevtDirectorId()); hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineInfoDO); } + //记录日志 + LoginUserInfo operator = CurrentUserHolder.getUser(); + CreateQualifyVerifyDTO log = CreateQualifyVerifyDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .summary(request.getSummary()).qualiVerifyContent(JSON.toJSONString(partnerCertificationInfoDO)).build(); + logService.recordBizLog(operator,hyPartnerInterviewDO.getPartnerLineId(), OperateTypeEnum.CREATE_QUALIFYVERIFY,log); } @Override diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java index 1ffc45c5e..c1b60c0c9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -6,8 +6,20 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.context.PartnerUserHolder; +import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyInterviewDAO; -import com.cool.store.dto.calendar.*; +import com.cool.store.dao.HyPartnerTaskInfoLogDAO; +import com.cool.store.dto.calendar.CreateCalendarEventDTO; +import com.cool.store.dto.calendar.DeleteCalendarEventDTO; +import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.calendar.UserFreeBusyInfoDTO; +import com.cool.store.dto.log.EntrustOthersDTO; +import com.cool.store.dto.log.LogBasicDTO; +import com.cool.store.dto.log.ModifyInterviewTimeDTO; +import com.cool.store.dto.log.ReInterviewDTO; import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.entity.*; @@ -15,19 +27,18 @@ import com.cool.store.enums.*; import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; import com.cool.store.http.ISVHttpRequest; -import com.cool.store.mapper.HyPartnerBaseInfoMapper; -import com.cool.store.mapper.HyPartnerInterviewMapper; -import com.cool.store.mapper.HyPartnerInterviewPlanMapper; -import com.cool.store.mapper.HyPartnerLineInfoMapper; +import com.cool.store.mapper.*; import com.cool.store.request.*; import com.cool.store.service.EnterpriseUserService; -import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.service.InterviewService; +import com.cool.store.service.LogService; import com.cool.store.service.SmsService; +import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.StringUtil; import com.cool.store.utils.TRTCUtils; import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.EnterpriseUserBaseInfoVO; +import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.interview.CreateAppointmentVO; import com.cool.store.vo.interview.InterviewVO; import lombok.extern.slf4j.Slf4j; @@ -85,12 +96,17 @@ public class InterviewServiceImpl implements InterviewService { @Autowired private SmsService smsService; - @Autowired - private HyPartnerLineInfoService hyPartnerLineInfoService; - @Autowired private HyInterviewDAO interviewDAO; + @Autowired + private LogService logService; + + @Autowired + private EnterpriseUserDAO enterpriseUserDAO; + + @Autowired + private HyPartnerTaskInfoLogMapper hyPartnerTaskInfoLogMapper; @Override public List getInterviewList(GetInterviewListReq request) { List interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request); @@ -188,6 +204,16 @@ public class InterviewServiceImpl implements InterviewService { hyPartnerInterviewDO.setUpdateTime(new Date()); hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + //记录日志 + LoginUserInfo operator = CurrentUserHolder.getUser(); + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoById(request.getNewInterviewerId()); + EntrustOthersDTO log = EntrustOthersDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()) + .operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .beforeInterviwerMobile(interviewInfo.getInterviewerMobile()) + .beforeInterviwerName(interviewInfo.getInterviewerName()) + .afterInterviwerMobile(enterpriseUserDO.getMobile()) + .afterInterviwerName(enterpriseUserDO.getName()).build(); + logService.recordBizLog(operator,interviewInfo.getPartnerLineId(),OperateTypeEnum.ENTRUST_OTHERS,log); } /** @@ -248,6 +274,13 @@ public class InterviewServiceImpl implements InterviewService { hyPartnerInterviewDO.setInterviewer(interviewInfo.getInterviewerId()); hyPartnerInterviewDO.setUpdateTime(new Date()); hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + //记录日志 + PartnerUserInfoVO operator = PartnerUserHolder.getUser(); + ModifyInterviewTimeDTO log = ModifyInterviewTimeDTO.builder().operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername()) + .operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .beforeInterviewTime(interviewInfo.getStartTime()).afterInterviewTime(request.getNewStartBookingTime()).build(); + logService.recordPartnerBizLog(operator,interviewInfo.getPartnerLineId(),OperateTypeEnum.MODIFY_INTERVIEW_TIME,log); } @Override @@ -273,6 +306,11 @@ public class InterviewServiceImpl implements InterviewService { // hyPartnerInterviewDO.setStatus(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_4.getCode())); hyPartnerInterviewDO.setUpdateTime(now); hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + //记录日志 + LoginUserInfo operator = CurrentUserHolder.getUser(); + LogBasicDTO log = LogBasicDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)).build(); + logService.recordBizLog(operator,interviewInfo.getPartnerLineId(),OperateTypeEnum.FINISH_INTERVIEW,log); } /** @@ -419,6 +457,12 @@ public class InterviewServiceImpl implements InterviewService { sendCardMessageDTO.setTitle("面试预约申请"); sendCardMessageDTO.setContent(generateFeiShuInterviewMsg(interviewVO.getPartnerName(), interviewVO.getPartnerMobile(), interviewVO.getStartTime())); isvHttpRequest.sendFeiShuCardMessage(sendCardMessageDTO); + + //记录日志 + PartnerUserInfoVO operator = PartnerUserHolder.getUser(); + LogBasicDTO log = LogBasicDTO.builder().operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)).build(); + logService.recordPartnerBizLog(operator,interviewVO.getPartnerLineId(),OperateTypeEnum.INTERVIEW_APPOINTMENT,log); + return vo; } @@ -501,6 +545,11 @@ public class InterviewServiceImpl implements InterviewService { hyPartnerLineDO.setWorkflowStatus(WorkflowStatusEnum.RESERVATION_0.getCode()); hyPartnerLineDO.setUpdateTime(new Date()); hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineDO); + //记录日志 + LoginUserInfo operator = CurrentUserHolder.getUser(); + ReInterviewDTO log = ReInterviewDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .rejectRealReason(request.getReason()).certifyFile(request.getCertifyFile()).build(); + logService.recordBizLog(operator,interviewVO.getPartnerLineId(),OperateTypeEnum.REINTERVIEW,log); } // @Override @@ -582,4 +631,9 @@ public class InterviewServiceImpl implements InterviewService { hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO); } + @Override + public void getLastUpdateTimeInfo(GetLastUpdateTimeInfoReq request) throws ApiException { + + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LogServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LogServiceImpl.java new file mode 100644 index 000000000..a493d8822 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LogServiceImpl.java @@ -0,0 +1,83 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.HyPartnerTaskInfoLogDAO; +import com.cool.store.dto.log.LineLogInfo; +import com.cool.store.dto.log.LogBasicDTO; +import com.cool.store.entity.HyPartnerLineInfoDO; +import com.cool.store.enums.OperateTypeEnum; +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.mapper.HyPartnerLineInfoMapper; +import com.cool.store.service.LogService; +import com.cool.store.utils.CoolDateUtils; +import com.cool.store.utils.Md5Utils; +import com.cool.store.vo.PartnerUserInfoVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-28 00:10 + * @Description: + */ +@Service +public class LogServiceImpl implements LogService { + private static final Logger LOG = LoggerFactory.getLogger(Md5Utils.class); + + @Autowired + private HyPartnerLineInfoMapper partnerLineInfoMapper; + @Autowired + private HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO; + + @Override + @Async + public void recordBizLog(LoginUserInfo operator,Long lineId,OperateTypeEnum operateTypeEnum,Object logData){ + try { + List lineInfos = partnerLineInfoMapper.getHyPartnerLineInfoListByIds(Arrays.asList(lineId)); + if (lineInfos == null || lineInfos.size() == 0) { + return; + } + HyPartnerLineInfoDO hyPartnerLineInfoDO = lineInfos.get(0); + LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), lineId, operator.getUserId(), + operator.getName(), operateTypeEnum, + WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()), + hyPartnerLineInfoDO.getWorkflowStatus(), ""); + lineLogInfo.setData(logData); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); + int i =1; + }catch (Exception e){ + LOG.error("recordBizLog error",e); + e.printStackTrace(); + } + } + + @Override + @Async + public void recordPartnerBizLog(PartnerUserInfoVO operator, Long lineId, OperateTypeEnum operateTypeEnum, Object logData){ + try { + List lineInfos = partnerLineInfoMapper.getHyPartnerLineInfoListByIds(Arrays.asList(lineId)); + if (lineInfos == null || lineInfos.size() == 0) { + return; + } + HyPartnerLineInfoDO hyPartnerLineInfoDO = lineInfos.get(0); + LineLogInfo lineLogInfo = new LineLogInfo(hyPartnerLineInfoDO.getPartnerId(), lineId, operator.getPartnerId(), + operator.getUsername(), operateTypeEnum, + WorkflowStageEnum.getWorkflowStageByCode(hyPartnerLineInfoDO.getWorkflowStage()), + hyPartnerLineInfoDO.getWorkflowStatus(), ""); + lineLogInfo.setData(logData); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); + }catch (Exception e){ + LOG.error("recordBizLog error",e); + e.printStackTrace(); + } + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java index 80d8d3c8d..b8b3258b1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java @@ -1,14 +1,15 @@ package com.cool.store.service.impl.workflow; import cn.hutool.core.date.DateUtil; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.log.ReInterviewDTO; +import com.cool.store.dto.log.RejectInterviewDTO; import com.cool.store.entity.HyPartnerInterviewDO; -import com.cool.store.enums.ErrorCodeEnum; -import com.cool.store.enums.RoomStatus; -import com.cool.store.enums.WorkflowStageEnum; -import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.enums.*; import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; import com.cool.store.http.ISVHttpRequest; @@ -18,6 +19,8 @@ import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.EntrustOthersReq; import com.cool.store.request.TransferInvestmentManagerRequest; import com.cool.store.service.InterviewService; +import com.cool.store.service.LogService; +import com.cool.store.utils.CoolDateUtils; import com.cool.store.vo.interview.InterviewVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -49,6 +52,9 @@ public class InterviewWorkFlowService extends WorkFlowBaseService { @Autowired private ISVHttpRequest isvHttpRequest; + + @Autowired + private LogService logService; @Override public WorkflowStageEnum getWorkFlowStage() { return WorkflowStageEnum.RESERVATION; @@ -64,6 +70,11 @@ public class InterviewWorkFlowService extends WorkFlowBaseService { } HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0); interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null); + //记录日志 + LoginUserInfo operator = CurrentUserHolder.getUser(); + RejectInterviewDTO log = RejectInterviewDTO.builder().operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .rejectRealReason(request.getRejectRealReason()).rejectPublicReason(request.getRejectPublicReason()).certifyFile(request.getCertifyFile()).build(); + logService.recordBizLog(operator,request.getLineId(), OperateTypeEnum.REJECT_INTERVIEW,log); } @Override diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java index b89b78d3f..22dfa211c 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java @@ -94,4 +94,10 @@ public class InterviewController { // interviewService.rejectInterview(request); // return ResponseResult.success(); // } + @PostMapping("/getLastUpdateTimeInfo") + @ApiOperation("获取面试最新更新信息") + public ResponseResult getLastUpdateTimeInfo(@RequestBody GetLastUpdateTimeInfoReq request) throws ApiException { + interviewService.getLastUpdateTimeInfo(request); + return ResponseResult.success(); + } }