Commit 3e575a2102b2e5f4ad8e8f22fd890fc75adfc2cc

Authored by 芋道源码
Committed by GitHub
2 parents 8003e3fb 8cd38b02

Merge pull request #1313 from dadiyang/fix/crm-product-delete-logrecord

[BUG] CRM 删除产品/产品分类:操作日志必然记录失败(日志模板变量未放入上下文)
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/product/CrmProductCategoryServiceImpl.java
@@ -71,10 +71,12 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService @@ -71,10 +71,12 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService
71 productCategoryMapper.updateById(updateObj); 71 productCategoryMapper.updateById(updateObj);
72 } 72 }
73 73
74 - private void validateProductCategoryExists(Long id) {  
75 - if (productCategoryMapper.selectById(id) == null) { 74 + private CrmProductCategoryDO validateProductCategoryExists(Long id) {
  75 + CrmProductCategoryDO productCategory = productCategoryMapper.selectById(id);
  76 + if (productCategory == null) {
76 throw exception(PRODUCT_CATEGORY_NOT_EXISTS); 77 throw exception(PRODUCT_CATEGORY_NOT_EXISTS);
77 } 78 }
  79 + return productCategory;
78 } 80 }
79 81
80 private void validateParentProductCategory(Long id) { 82 private void validateParentProductCategory(Long id) {
@@ -107,7 +109,7 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService @@ -107,7 +109,7 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService
107 success = CRM_PRODUCT_CATEGORY_DELETE_SUCCESS) 109 success = CRM_PRODUCT_CATEGORY_DELETE_SUCCESS)
108 public void deleteProductCategory(Long id) { 110 public void deleteProductCategory(Long id) {
109 // 1.1 校验存在 111 // 1.1 校验存在
110 - validateProductCategoryExists(id); 112 + CrmProductCategoryDO productCategory = validateProductCategoryExists(id);
111 // 1.2 校验是否还有子分类 113 // 1.2 校验是否还有子分类
112 if (productCategoryMapper.selectCountByParentId(id) > 0) { 114 if (productCategoryMapper.selectCountByParentId(id) > 0) {
113 throw exception(PRODUCT_CATEGORY_EXISTS_CHILDREN); 115 throw exception(PRODUCT_CATEGORY_EXISTS_CHILDREN);
@@ -118,6 +120,9 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService @@ -118,6 +120,9 @@ public class CrmProductCategoryServiceImpl implements CrmProductCategoryService
118 } 120 }
119 // 2. 删除 121 // 2. 删除
120 productCategoryMapper.deleteById(id); 122 productCategoryMapper.deleteById(id);
  123 +
  124 + // 3. 记录操作日志上下文
  125 + LogRecordContext.putVariable("productCategory", productCategory);
121 } 126 }
122 127
123 @Override 128 @Override
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/product/CrmProductServiceImpl.java
@@ -136,7 +136,7 @@ public class CrmProductServiceImpl implements CrmProductService { @@ -136,7 +136,7 @@ public class CrmProductServiceImpl implements CrmProductService {
136 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PRODUCT, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) 136 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PRODUCT, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
137 public void deleteProduct(Long id) { 137 public void deleteProduct(Long id) {
138 // 校验存在 138 // 校验存在
139 - validateProductExists(id); 139 + CrmProductDO product = validateProductExists(id);
140 // 校验未被合同/商机引用,避免删除后产生悬空引用 140 // 校验未被合同/商机引用,避免删除后产生悬空引用
141 if (contractService.getContractProductCountByProductId(id) > 0) { 141 if (contractService.getContractProductCountByProductId(id) > 0) {
142 throw exception(PRODUCT_DELETE_FAIL_CONTRACT_EXISTS); 142 throw exception(PRODUCT_DELETE_FAIL_CONTRACT_EXISTS);
@@ -147,6 +147,9 @@ public class CrmProductServiceImpl implements CrmProductService { @@ -147,6 +147,9 @@ public class CrmProductServiceImpl implements CrmProductService {
147 147
148 // 删除 148 // 删除
149 productMapper.deleteById(id); 149 productMapper.deleteById(id);
  150 +
  151 + // 记录操作日志上下文
  152 + LogRecordContext.putVariable("product", product);
150 } 153 }
151 154
152 @Override 155 @Override