Commit 604611e1d2c3035db1457e11c7749571b1b91f33

Authored by min
1 parent 4ce9271e

CRM:【线索】补充相关日志

yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/LogRecordConstants.java
@@ -11,6 +11,12 @@ public interface LogRecordConstants { @@ -11,6 +11,12 @@ public interface LogRecordConstants {
11 // ======================= CRM_LEADS 线索 ======================= 11 // ======================= CRM_LEADS 线索 =======================
12 12
13 String CRM_LEADS_TYPE = "CRM 线索"; 13 String CRM_LEADS_TYPE = "CRM 线索";
  14 + String CRM_LEADS_CREATE_SUB_TYPE = "创建线索";
  15 + String CRM_LEADS_CREATE_SUCCESS = "创建了线索{{#clue.name}}";
  16 + String CRM_LEADS_UPDATE_SUB_TYPE = "更新线索";
  17 + String CRM_LEADS_UPDATE_SUCCESS = "更新了线索【{{#clueName}}】: {_DIFF{#updateReqVO}}";
  18 + String CRM_LEADS_DELETE_SUB_TYPE = "删除线索";
  19 + String CRM_LEADS_DELETE_SUCCESS = "删除了线索【{{#clueName}}】";
14 20
15 // ======================= CRM_CUSTOMER 客户 ======================= 21 // ======================= CRM_CUSTOMER 客户 =======================
16 22
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.crm.service.clue; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.crm.service.clue;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.ListUtil; 4 import cn.hutool.core.collection.ListUtil;
  5 +import cn.hutool.core.lang.Assert;
5 import cn.hutool.core.util.ObjectUtil; 6 import cn.hutool.core.util.ObjectUtil;
6 import cn.hutool.core.util.StrUtil; 7 import cn.hutool.core.util.StrUtil;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -23,6 +24,9 @@ import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; @@ -23,6 +24,9 @@ import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
23 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; 24 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
24 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; 25 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
25 import cn.iocoder.yudao.module.system.api.user.AdminUserApi; 26 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  27 +import com.mzt.logapi.context.LogRecordContext;
  28 +import com.mzt.logapi.service.impl.DiffParseFunction;
  29 +import com.mzt.logapi.starter.annotation.LogRecord;
26 import jakarta.annotation.Resource; 30 import jakarta.annotation.Resource;
27 import org.springframework.stereotype.Service; 31 import org.springframework.stereotype.Service;
28 import org.springframework.transaction.annotation.Transactional; 32 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +41,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU @@ -37,6 +41,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
37 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; 41 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
38 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 42 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
39 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*; 43 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
  44 +import static cn.iocoder.yudao.module.crm.enums.LogRecordConstants.*;
40 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS; 45 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
41 46
42 /** 47 /**
@@ -62,6 +67,9 @@ public class CrmClueServiceImpl implements CrmClueService { @@ -62,6 +67,9 @@ public class CrmClueServiceImpl implements CrmClueService {
62 67
63 @Override 68 @Override
64 @Transactional(rollbackFor = Exception.class) 69 @Transactional(rollbackFor = Exception.class)
  70 + @LogRecord(type = CRM_LEADS_TYPE, subType = CRM_LEADS_CREATE_SUB_TYPE, bizNo = "{{#clue.id}}",
  71 + success = CRM_LEADS_CREATE_SUCCESS)
  72 + // TODO @min:补充相关几个方法的操作日志;
65 public Long createClue(CrmClueSaveReqVO createReqVO) { 73 public Long createClue(CrmClueSaveReqVO createReqVO) {
66 // 1. 校验关联数据 74 // 1. 校验关联数据
67 validateRelationDataExists(createReqVO); 75 validateRelationDataExists(createReqVO);
@@ -79,20 +87,31 @@ public class CrmClueServiceImpl implements CrmClueService { @@ -79,20 +87,31 @@ public class CrmClueServiceImpl implements CrmClueService {
79 .setLevel(CrmPermissionLevelEnum.OWNER.getLevel()); 87 .setLevel(CrmPermissionLevelEnum.OWNER.getLevel());
80 crmPermissionService.createPermission(createReqBO); 88 crmPermissionService.createPermission(createReqBO);
81 89
  90 + // 4. 记录操作日志上下文
  91 + LogRecordContext.putVariable("clue", clue);
82 return clue.getId(); 92 return clue.getId();
83 } 93 }
84 94
85 @Override 95 @Override
  96 + @Transactional(rollbackFor = Exception.class)
  97 + @LogRecord(type = CRM_LEADS_TYPE, subType = CRM_LEADS_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}",
  98 + success = CRM_LEADS_UPDATE_SUCCESS)
86 @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#updateReqVO.id", level = CrmPermissionLevelEnum.WRITE) 99 @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#updateReqVO.id", level = CrmPermissionLevelEnum.WRITE)
87 public void updateClue(CrmClueSaveReqVO updateReqVO) { 100 public void updateClue(CrmClueSaveReqVO updateReqVO) {
88 - // 校验线索是否存在  
89 - validateClueExists(updateReqVO.getId());  
90 - // 校验关联数据 101 + Assert.notNull(updateReqVO.getId(), "线索编号不能为空");
  102 + // 1. 校验线索是否存在
  103 + CrmClueDO oldClue = validateClueExists(updateReqVO.getId());
  104 + // 2. 校验关联数据
91 validateRelationDataExists(updateReqVO); 105 validateRelationDataExists(updateReqVO);
92 106
93 - // 更新 107 + // 3. 更新
94 CrmClueDO updateObj = BeanUtils.toBean(updateReqVO, CrmClueDO.class); 108 CrmClueDO updateObj = BeanUtils.toBean(updateReqVO, CrmClueDO.class);
95 clueMapper.updateById(updateObj); 109 clueMapper.updateById(updateObj);
  110 +
  111 + // 3. 记录操作日志上下文
  112 + LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldClue, CrmCustomerSaveReqVO.class));
  113 + LogRecordContext.putVariable("clueName", oldClue.getName());
  114 +
96 } 115 }
97 116
98 @Override 117 @Override
@@ -102,6 +121,8 @@ public class CrmClueServiceImpl implements CrmClueService { @@ -102,6 +121,8 @@ public class CrmClueServiceImpl implements CrmClueService {
102 121
103 @Override 122 @Override
104 @Transactional(rollbackFor = Exception.class) 123 @Transactional(rollbackFor = Exception.class)
  124 + @LogRecord(type = CRM_LEADS_TYPE, subType = CRM_LEADS_DELETE_SUB_TYPE, bizNo = "{{#id}}",
  125 + success = CRM_LEADS_DELETE_SUCCESS)
105 @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) 126 @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
106 public void deleteClue(Long id) { 127 public void deleteClue(Long id) {
107 // 1. 校验存在 128 // 1. 校验存在
@@ -113,6 +134,8 @@ public class CrmClueServiceImpl implements CrmClueService { @@ -113,6 +134,8 @@ public class CrmClueServiceImpl implements CrmClueService {
113 // 3. 删除数据权限 134 // 3. 删除数据权限
114 crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_LEADS.getType(), id); 135 crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_LEADS.getType(), id);
115 136
  137 + // 4. 记录操作日志上下文
  138 + LogRecordContext.putVariable("clueName", clue.getName());
116 } 139 }
117 140
118 private CrmClueDO validateClueExists(Long id) { 141 private CrmClueDO validateClueExists(Long id) {