Commit 604611e1d2c3035db1457e11c7749571b1b91f33
1 parent
4ce9271e
CRM:【线索】补充相关日志
Showing
2 changed files
with
33 additions
and
4 deletions
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) { |