mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-02-17 09:40:34 +08:00
crm:code review 数据权限
This commit is contained in:
parent
455f8e49fb
commit
492adfe8e5
@ -35,6 +35,7 @@ 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
|
||||
@ -114,6 +115,7 @@ public class CrmCustomerController {
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportCustomerExcel(@Valid CrmCustomerPageReqVO pageVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
// TODO @puhui999:看看复用 getCustomerPage 方法;然后可以禁用下分页;
|
||||
List<CrmCustomerDO> list = customerService.getCustomerPage(pageVO, getLoginUserId()).getList();
|
||||
// 导出 Excel
|
||||
List<CrmCustomerExcelVO> datas = CrmCustomerConvert.INSTANCE.convertList02(list);
|
||||
@ -167,7 +169,8 @@ public class CrmCustomerController {
|
||||
public CommonResult<Boolean> distributeCustomer(@RequestParam(value = "ids") List<Long> ids,
|
||||
@RequestParam(value = "ownerUserId") Long ownerUserId) {
|
||||
// 校验负责人是否存在
|
||||
adminUserApi.validateUserList(java.util.Collections.singletonList(ownerUserId));
|
||||
// TODO @puhui999:这个校验,是不是可以收到 validateUserList
|
||||
adminUserApi.validateUserList(singletonList(ownerUserId));
|
||||
// 领取公海数据
|
||||
customerService.receiveCustomer(ids, ownerUserId);
|
||||
return success(true);
|
||||
|
@ -61,6 +61,6 @@ public interface CrmPermissionConvert {
|
||||
id -> new CrmPermissionDO().setId(id).setLevel(updateReqVO.getLevel()));
|
||||
}
|
||||
|
||||
List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> createBOs);
|
||||
List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> list);
|
||||
|
||||
}
|
||||
|
@ -213,7 +213,6 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
|
||||
if (customer.getOwnerUserId() != null) {
|
||||
throw exception(CUSTOMER_OWNER_EXISTS, customer.getName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void validateCustomerIsLocked(CrmCustomerDO customer, Boolean pool) {
|
||||
@ -228,54 +227,6 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO @puhui999:合并到 receiveCustomer 里
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void receive(Long id, Long userId) {
|
||||
// 1. 校验存在
|
||||
CrmCustomerDO customer = customerMapper.selectById(id);
|
||||
if (customer == null) {
|
||||
throw exception(CUSTOMER_NOT_EXISTS);
|
||||
}
|
||||
// 1.2. 校验是否为公海数据
|
||||
if (customer.getOwnerUserId() != null) {
|
||||
throw exception(CUSTOMER_NOT_IN_POOL);
|
||||
}
|
||||
|
||||
// 2. 领取公海数据-设置负责人
|
||||
customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(userId));
|
||||
// 3. 创建负责人数据权限
|
||||
crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType())
|
||||
.setBizId(customer.getId()).setUserId(userId).setLevel(CrmPermissionLevelEnum.OWNER.getLevel())); // 设置当前操作的人为负责人
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
|
||||
public void putCustomerPool(Long id) {
|
||||
// 1. 校验存在
|
||||
CrmCustomerDO customer = customerMapper.selectById(id);
|
||||
if (customer == null) {
|
||||
throw exception(CUSTOMER_NOT_EXISTS);
|
||||
}
|
||||
// TODO puhui999:校验合并到 validateCustomerOwnerExists、validateCustomerIsLocked
|
||||
// 1.2. 校验是否为公海数据
|
||||
if (customer.getOwnerUserId() == null) {
|
||||
throw exception(CUSTOMER_IN_POOL);
|
||||
}
|
||||
// 1.3. 校验客户是否锁定
|
||||
if (customer.getLockStatus()) {
|
||||
throw exception(CUSTOMER_LOCKED_PUT_POOL_FAIL);
|
||||
}
|
||||
|
||||
// 2. 设置负责人为 NULL
|
||||
// TODO @puhui999:updateById 这么操作,是无法设置 null 的;
|
||||
customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(null));
|
||||
// 3. 删除负责人数据权限
|
||||
crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CUSTOMER.getType(), customer.getId(),
|
||||
CrmPermissionLevelEnum.OWNER.getLevel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CrmCustomerDO> getCustomerList() {
|
||||
return customerMapper.selectList();
|
||||
|
@ -61,6 +61,7 @@ public interface CrmPermissionService {
|
||||
* 批量删除数据权限
|
||||
*
|
||||
* @param ids 权限编号
|
||||
* @param userId 用户编号
|
||||
*/
|
||||
void deletePermissionBatch(Collection<Long> ids, Long userId);
|
||||
|
||||
|
@ -19,7 +19,6 @@ import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
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;
|
||||
@ -141,8 +140,8 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
|
||||
if (CollUtil.isEmpty(permissions)) {
|
||||
throw exception(CRM_PERMISSION_NOT_EXISTS);
|
||||
}
|
||||
Set<Long> bizIds = convertSet(permissions, CrmPermissionDO::getBizId);
|
||||
if (bizIds.size() > 1) { // 情况一:数据权限的模块数据编号是一致的不可能存在两个
|
||||
// 校验:数据权限的模块数据编号是一致的不可能存在两个
|
||||
if (convertSet(permissions, CrmPermissionDO::getBizId).size() > 1) {
|
||||
throw exception(CRM_PERMISSION_DELETE_FAIL);
|
||||
}
|
||||
// 校验操作人是否为负责人
|
||||
|
Loading…
Reference in New Issue
Block a user