mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	CRM-客户: 新增关注和取消关注客户接口
This commit is contained in:
		| @@ -36,7 +36,6 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. | ||||
| import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSetByFlatMap; | ||||
| import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; | ||||
| import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | ||||
| import static java.util.Collections.singletonList; | ||||
|  | ||||
| @Tag(name = "管理后台 - CRM 客户") | ||||
| @RestController | ||||
| @@ -140,6 +139,24 @@ public class CrmCustomerController { | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/concern") | ||||
|     @Operation(summary = "关注客户") | ||||
|     @Parameter(name = "ids", description = "编号", required = true, example = "[1024]") | ||||
|     @PreAuthorize("@ss.hasPermission('crm:customer:update')") | ||||
|     public CommonResult<Boolean> concernCustomer(@RequestParam("ids") List<Long> ids) { | ||||
|         customerService.concernCustomer(ids, getLoginUserId()); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/cancel-concern") | ||||
|     @Operation(summary = "取消关注客户") | ||||
|     @Parameter(name = "ids", description = "编号", required = true, example = "[1024]") | ||||
|     @PreAuthorize("@ss.hasPermission('crm:customer:update')") | ||||
|     public CommonResult<Boolean> cancelConcernCustomer(@RequestParam("ids") List<Long> ids) { | ||||
|         customerService.cancelConcernCustomer(ids, getLoginUserId()); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     // ==================== 公海相关操作 ==================== | ||||
|  | ||||
|     @PutMapping("/put-pool") | ||||
| @@ -178,7 +195,7 @@ public class CrmCustomerController { | ||||
|     @GetMapping("/query-all-list") | ||||
|     @Operation(summary = "查询客户列表") | ||||
|     @PreAuthorize("@ss.hasPermission('crm:customer:all')") | ||||
|     public CommonResult<List<CrmCustomerQueryAllRespVO>> queryAll(){ | ||||
|     public CommonResult<List<CrmCustomerQueryAllRespVO>> queryAll() { | ||||
|         List<CrmCustomerDO> crmCustomerDOList = customerService.getCustomerList(); | ||||
|         List<CrmCustomerQueryAllRespVO> data = CrmCustomerConvert.INSTANCE.convertQueryAll(crmCustomerDOList); | ||||
|         return success(data); | ||||
|   | ||||
| @@ -90,6 +90,22 @@ public interface CrmCustomerService { | ||||
|      */ | ||||
|     void lockCustomer(@Valid CrmCustomerUpdateReqVO updateReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 关注客户 | ||||
|      * | ||||
|      * @param ids    客户编号 | ||||
|      * @param userId 用户编号 | ||||
|      */ | ||||
|     void concernCustomer(List<Long> ids, Long userId); | ||||
|  | ||||
|     /** | ||||
|      * 取消关注客户 | ||||
|      * | ||||
|      * @param ids    客户编号 | ||||
|      * @param userId 用户编号 | ||||
|      */ | ||||
|     void cancelConcernCustomer(List<Long> ids, Long userId); | ||||
|  | ||||
|     // ==================== 公海相关操作 ==================== | ||||
|  | ||||
|     /** | ||||
| @@ -109,8 +125,10 @@ public interface CrmCustomerService { | ||||
|  | ||||
|     /** | ||||
|      * 获取客户列表 | ||||
|      * | ||||
|      * @return 客户列表 | ||||
|      * @author zyna | ||||
|      */ | ||||
|     List<CrmCustomerDO> getCustomerList(); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,9 @@ | ||||
| package cn.iocoder.yudao.module.crm.service.customer; | ||||
|  | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.hutool.core.util.ObjUtil; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||
| import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.CrmCustomerCreateReqVO; | ||||
| import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.CrmCustomerPageReqVO; | ||||
| import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.CrmCustomerTransferReqVO; | ||||
| @@ -9,9 +11,11 @@ import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.CrmCustomerUpdat | ||||
| import cn.iocoder.yudao.module.crm.convert.customer.CrmCustomerConvert; | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; | ||||
| import cn.iocoder.yudao.module.crm.dal.mysql.customer.CrmCustomerMapper; | ||||
| import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; | ||||
| import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; | ||||
| import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; | ||||
| import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; | ||||
| import cn.iocoder.yudao.module.crm.service.concerned.CrmConcernedService; | ||||
| import cn.iocoder.yudao.module.crm.service.concerned.bo.CrmConcernedCreateReqBO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; | ||||
| import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||||
| @@ -23,6 +27,7 @@ import javax.annotation.Resource; | ||||
| import java.util.*; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||
| import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||||
| import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*; | ||||
| import static java.util.Collections.singletonList; | ||||
|  | ||||
| @@ -41,6 +46,9 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { | ||||
|     @Resource | ||||
|     private CrmPermissionService crmPermissionService; | ||||
|  | ||||
|     @Resource | ||||
|     private CrmConcernedService crmConcernedService; | ||||
|  | ||||
|     @Resource | ||||
|     private AdminUserApi adminUserApi; | ||||
|  | ||||
| @@ -151,6 +159,33 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { | ||||
|         customerMapper.updateById(updateObj); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void concernCustomer(List<Long> ids, Long userId) { | ||||
|         // 1. 校验客户是否存在 | ||||
|         validateCustomerExists(ids); | ||||
|  | ||||
|         // 2. 创建关注 | ||||
|         List<CrmConcernedCreateReqBO> createReqBOs = BeanUtils.toBean(convertList(ids, id -> new CrmConcernedCreateReqBO() | ||||
|                 .setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType()).setBizId(id).setUserId(userId)), CrmConcernedCreateReqBO.class); | ||||
|         crmConcernedService.createConcernedBatch(createReqBOs); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void cancelConcernCustomer(List<Long> ids, Long userId) { | ||||
|         // 1. 校验客户是否存在 | ||||
|         validateCustomerExists(ids); | ||||
|  | ||||
|         // 2. 取消关注 | ||||
|         crmConcernedService.deleteConcerned(CrmBizTypeEnum.CRM_CUSTOMER.getType(), ids, userId); | ||||
|     } | ||||
|  | ||||
|     private void validateCustomerExists(List<Long> ids) { | ||||
|         List<CrmCustomerDO> customerList = customerMapper.selectBatchIds(ids); | ||||
|         if (ObjUtil.notEqual(ids.size(), customerList.size())) { | ||||
|             throw exception(CUSTOMER_NOT_EXISTS); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) | ||||
|   | ||||
| @@ -108,16 +108,12 @@ public class CrmCrmReceivableServiceImplTest extends BaseDbUnitTest { | ||||
|            o.setPlanId(null); | ||||
|            o.setCustomerId(null); | ||||
|            o.setContractId(null); | ||||
|            o.setCheckStatus(null); | ||||
|            o.setProcessInstanceId(null); | ||||
|            o.setReturnTime(null); | ||||
|            o.setReturnType(null); | ||||
|            o.setPrice(null); | ||||
|            o.setOwnerUserId(null); | ||||
|            o.setBatchId(null); | ||||
|            o.setSort(null); | ||||
|            o.setDataScope(null); | ||||
|            o.setDataScopeDeptIds(null); | ||||
|            o.setAuditStatus(null); | ||||
|            o.setRemark(null); | ||||
|            o.setCreateTime(null); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 puhui999
					puhui999