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 5a3eec0f0..20ec8ddb4 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 @@ -38,8 +38,14 @@ public enum OperateLogFieldValueEnum { BEFORE_USERINFO_UPDATE("beforeUserinfoUpdate", "修改前的用户信息"), AFTER_USERINFO_UPDATE("afterUserinfoUpdate", "修改后的用户信息"), - BEFORE_INTENT_INFO_UPDATE("beforeIntentInfoUpdate", "修改前的意向申请"), - AFTER_INTENT_INFO_UPDATE("afterIntentInfoUpdate", "修改后的意向申请"), + BEFORE_BASE_INFO_UPDATE("beforeBaseInfoUpdate", "修改前的意向书基本信息"), + AFTER_BASE_INFO_UPDATE("afterBaseInfoUpdate", "修改后的意向书基本信息"), + + BEFORE_INTENT_INFO_UPDATE("beforeIntentInfoUpdate", "修改前的意向行业信息"), + AFTER_INTENT_INFO_UPDATE("afterIntentInfoUpdate", "修改后的意向行业信息"), + + BEFORE_CLERK_INFO_UPDATE("beforeClerkUpdate", "修改前的意向书员工信息"), + AFTER_CLERK_INFO_UPDATE("afterClerkUpdate", "修改后的意向书员工信息"), ; 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 bac7c5d30..49809a28e 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 @@ -29,8 +29,8 @@ public enum OperateTypeEnum { 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)), USERINFO_UPDATE("userinfo_update", "修改(修改意向信息)", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_USERINFO_UPDATE, AFTER_USERINFO_UPDATE)), - INTENT_INFO_SUBMIT("intent_info_submit", "提交意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE)), - INTENT_INFO_UPDATE("intent_info_update", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE)), + INTENT_INFO_SUBMIT("intent_info_submit", "提交意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_BASE_INFO_UPDATE, AFTER_BASE_INFO_UPDATE, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, BEFORE_CLERK_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)), + INTENT_INFO_UPDATE("intent_info_update", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, BEFORE_BASE_INFO_UPDATE, AFTER_BASE_INFO_UPDATE, BEFORE_INTENT_INFO_UPDATE, AFTER_INTENT_INFO_UPDATE, BEFORE_CLERK_INFO_UPDATE, AFTER_CLERK_INFO_UPDATE)), ADD_TAGS("add_tags", "修改意向申请书", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME)), ; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/WantInfoUpdateDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/WantInfoUpdateDTO.java index 992e4d49d..5bc8267dd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/log/WantInfoUpdateDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/log/WantInfoUpdateDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.experimental.SuperBuilder; import java.util.Date; +import java.util.List; /** * @Author: wxp @@ -20,8 +21,8 @@ public class WantInfoUpdateDTO extends LogBasicDTO{ private IntentInfoUpdate beforeIntentInfoUpdate; private IntentInfoUpdate afterIntentInfoUpdate; - private ClerkUpdate beforeClerkUpdate; - private ClerkUpdate afterClerkUpdate; + private List beforeClerkUpdate; + private List afterClerkUpdate; @Data public static class BaseInfoUpdate{ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java index 993ec77d1..8a87b5415 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java @@ -1,26 +1,37 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.RedisConstant; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.dao.HyPartnerClerkDAO; +import com.cool.store.dto.enterprise.SysDepartmentDTO; +import com.cool.store.dto.log.WantInfoUpdateDTO; import com.cool.store.entity.HyPartnerClerkDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.OperateTypeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.service.LogService; +import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerClerkVO; +import com.cool.store.vo.PartnerUserInfoVO; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -40,6 +51,9 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { @Resource private RedisUtilPool redisUtilPool; + @Autowired + private LogService logService; + @Override public List getPartnerClerkList(Long lineId) { List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); @@ -60,15 +74,18 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { @Override public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) { log.info("HyPartnerClerkServiceImpl#submitPartnerClerkInfo request:{}", JSONObject.toJSONString(request)); + if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } String cacheKey = MessageFormat.format(RedisConstant.PARTNER_CLERKINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId()); if(!request.getSubmitFlag()){ // 自动保存时 redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS); return Boolean.TRUE; } - if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){ - throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); - } + List beforeClerkUpdate = Lists.newArrayList(); + List afterClerkUpdate = Lists.newArrayList(); + List beforClerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); hyPartnerClerkDAO.deleteByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); List clerkDOList = new ArrayList<>(); ListUtils.emptyIfNull(request.getPartnerClerkRequestList()).stream().forEach(x->{ @@ -83,8 +100,18 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { }); if (CollectionUtils.isNotEmpty(clerkDOList)){ hyPartnerClerkDAO.batchInsert(clerkDOList); + afterClerkUpdate = JSONObject.parseArray(JSONObject.toJSONString(clerkDOList), WantInfoUpdateDTO.ClerkUpdate.class); + } + if (CollectionUtils.isNotEmpty(beforClerkDOList)){ + beforeClerkUpdate = JSONObject.parseArray(JSONObject.toJSONString(beforClerkDOList), WantInfoUpdateDTO.ClerkUpdate.class); } redisUtilPool.delKey(cacheKey); + //记录日志 + PartnerUserInfoVO operator = PartnerUserHolder.getUser(); + WantInfoUpdateDTO log = WantInfoUpdateDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername()) + .operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) + .beforeClerkUpdate(beforeClerkUpdate).afterClerkUpdate(afterClerkUpdate).build(); + logService.recordPartnerBizLog(operator, request.getPartnerLineId(), OperateTypeEnum.INTENT_INFO_UPDATE,log); return true; }