|
@@ -3,28 +3,28 @@ package cn.iocoder.yudao.module.crm.service.business;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
-import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.*;
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.CrmBusinessCreateReqVO;
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.CrmBusinessPageReqVO;
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.CrmBusinessTransferReqVO;
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.CrmBusinessUpdateReqVO;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractPageReqVO;
|
|
|
import cn.iocoder.yudao.module.crm.convert.business.CrmBusinessConvert;
|
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
|
|
|
-import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
|
|
|
import cn.iocoder.yudao.module.crm.dal.mysql.business.CrmBusinessMapper;
|
|
|
-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.permission.CrmPermissionService;
|
|
|
import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
-import jakarta.annotation.Resource;
|
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
-import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.BUSINESS_NOT_EXISTS;
|
|
|
|
|
|
/**
|
|
@@ -71,7 +71,7 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- @CrmPermission(bizType = CrmBizTypeEnum.CRM_BUSINESS, level = CrmPermissionLevelEnum.WRITE)
|
|
|
+ @CrmPermission(bizType = CrmBizTypeEnum.CRM_BUSINESS, level = CrmPermissionLevelEnum.OWNER)
|
|
|
public void deleteBusiness(Long id) {
|
|
|
// 校验存在
|
|
|
validateBusinessExists(id);
|
|
@@ -88,38 +88,29 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @CrmPermission(bizType = CrmBizTypeEnum.CRM_BUSINESS,bizId = "#id", level = CrmPermissionLevelEnum.READ)
|
|
|
+ @CrmPermission(bizType = CrmBizTypeEnum.CRM_BUSINESS, bizId = "#id", level = CrmPermissionLevelEnum.READ)
|
|
|
public CrmBusinessDO getBusiness(Long id) {
|
|
|
return businessMapper.selectById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<CrmBusinessDO> getBusinessList(Collection<Long> ids) {
|
|
|
+ public List<CrmBusinessDO> getBusinessList(Collection<Long> ids, Long userId) {
|
|
|
if (CollUtil.isEmpty(ids)) {
|
|
|
return ListUtil.empty();
|
|
|
}
|
|
|
- return businessMapper.selectBatchIds(ids);
|
|
|
+ return businessMapper.selectBatchIds(ids, userId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public PageResult<CrmBusinessDO> getBusinessPage(CrmBusinessPageReqVO pageReqVO, Long userId) {
|
|
|
- // 1. 获取当前用户能看的分页数据
|
|
|
- // TODO @puhui999:如果业务的数据量比较大,in 太多可能有性能问题噢;看看是不是搞成 join 连表了;可以微信讨论下;
|
|
|
- List<CrmPermissionDO> permissions = crmPermissionService.getPermissionListByBizTypeAndUserId(
|
|
|
- CrmBizTypeEnum.CRM_BUSINESS.getType(), userId);
|
|
|
- Set<Long> ids = convertSet(permissions, CrmPermissionDO::getBizId);
|
|
|
- if (CollUtil.isEmpty(ids)) { // 没得说明没有什么给他看的
|
|
|
- return PageResult.empty();
|
|
|
- }
|
|
|
-
|
|
|
- // 2. 获取商机分页数据
|
|
|
- return businessMapper.selectPage(pageReqVO, ids);
|
|
|
+ return businessMapper.selectPage(pageReqVO, userId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#pageReqVO.customerId", level = CrmPermissionLevelEnum.READ)
|
|
|
public PageResult<CrmBusinessDO> getBusinessPageByCustomer(CrmContractPageReqVO pageReqVO) {
|
|
|
- return businessMapper.selectPageByCustomer(pageReqVO);
|
|
|
+ //return businessMapper.selectPageByCustomer(pageReqVO);
|
|
|
+ return null; // TODO puhui999: 可以跟分页合并吗?
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -128,10 +119,13 @@ public class CrmBusinessServiceImpl implements CrmBusinessService {
|
|
|
// 1 校验商机是否存在
|
|
|
validateBusinessExists(reqVO.getId());
|
|
|
|
|
|
- // 2. 数据权限转移
|
|
|
+ // 2.1 数据权限转移
|
|
|
crmPermissionService.transferPermission(
|
|
|
CrmBusinessConvert.INSTANCE.convert(reqVO, userId).setBizType(CrmBizTypeEnum.CRM_BUSINESS.getType()));
|
|
|
|
|
|
+ // 2.2 设置新的负责人
|
|
|
+ businessMapper.updateOwnerUserIdById(reqVO.getId(), reqVO.getNewOwnerUserId());
|
|
|
+
|
|
|
// 3. TODO 记录转移日志
|
|
|
}
|
|
|
|