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 | 11 | // ======================= CRM_LEADS 线索 ======================= |
| 12 | 12 | |
| 13 | 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 | 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 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.collection.ListUtil; |
| 5 | +import cn.hutool.core.lang.Assert; | |
| 5 | 6 | import cn.hutool.core.util.ObjectUtil; |
| 6 | 7 | import cn.hutool.core.util.StrUtil; |
| 7 | 8 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| ... | ... | @@ -23,6 +24,9 @@ import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; |
| 23 | 24 | import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; |
| 24 | 25 | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; |
| 25 | 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 | 30 | import jakarta.annotation.Resource; |
| 27 | 31 | import org.springframework.stereotype.Service; |
| 28 | 32 | import org.springframework.transaction.annotation.Transactional; |
| ... | ... | @@ -37,6 +41,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU |
| 37 | 41 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| 38 | 42 | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
| 39 | 43 | import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*; |
| 44 | +import static cn.iocoder.yudao.module.crm.enums.LogRecordConstants.*; | |
| 40 | 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 | 67 | |
| 63 | 68 | @Override |
| 64 | 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 | 73 | public Long createClue(CrmClueSaveReqVO createReqVO) { |
| 66 | 74 | // 1. 校验关联数据 |
| 67 | 75 | validateRelationDataExists(createReqVO); |
| ... | ... | @@ -79,20 +87,31 @@ public class CrmClueServiceImpl implements CrmClueService { |
| 79 | 87 | .setLevel(CrmPermissionLevelEnum.OWNER.getLevel()); |
| 80 | 88 | crmPermissionService.createPermission(createReqBO); |
| 81 | 89 | |
| 90 | + // 4. 记录操作日志上下文 | |
| 91 | + LogRecordContext.putVariable("clue", clue); | |
| 82 | 92 | return clue.getId(); |
| 83 | 93 | } |
| 84 | 94 | |
| 85 | 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 | 99 | @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#updateReqVO.id", level = CrmPermissionLevelEnum.WRITE) |
| 87 | 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 | 105 | validateRelationDataExists(updateReqVO); |
| 92 | 106 | |
| 93 | - // 更新 | |
| 107 | + // 3. 更新 | |
| 94 | 108 | CrmClueDO updateObj = BeanUtils.toBean(updateReqVO, CrmClueDO.class); |
| 95 | 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 | 117 | @Override |
| ... | ... | @@ -102,6 +121,8 @@ public class CrmClueServiceImpl implements CrmClueService { |
| 102 | 121 | |
| 103 | 122 | @Override |
| 104 | 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 | 126 | @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) |
| 106 | 127 | public void deleteClue(Long id) { |
| 107 | 128 | // 1. 校验存在 |
| ... | ... | @@ -113,6 +134,8 @@ public class CrmClueServiceImpl implements CrmClueService { |
| 113 | 134 | // 3. 删除数据权限 |
| 114 | 135 | crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_LEADS.getType(), id); |
| 115 | 136 | |
| 137 | + // 4. 记录操作日志上下文 | |
| 138 | + LogRecordContext.putVariable("clueName", clue.getName()); | |
| 116 | 139 | } |
| 117 | 140 | |
| 118 | 141 | private CrmClueDO validateClueExists(Long id) { | ... | ... |