CRM:完善模块数据放入公海、公海数据领取

This commit is contained in:
puhui999 2023-11-08 16:05:23 +08:00
parent 533b7295ab
commit 388e07c834
3 changed files with 68 additions and 7 deletions

View File

@ -32,10 +32,13 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "管理后台 - CRM 数据权限(数据团队成员操作)")
@RestController
@ -44,7 +47,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
public class CrmPermissionController {
@Resource
private CrmPermissionService crmPermissionService;
private CrmPermissionService permissionService;
@Resource
private AdminUserApi adminUserApi;
@ -59,11 +62,27 @@ public class CrmPermissionController {
@CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#reqVO.bizType", bizId = "#reqVO.bizId"
, level = CrmPermissionLevelEnum.OWNER)
public CommonResult<Boolean> addPermission(@Valid @RequestBody CrmPermissionCreateReqVO reqVO) {
// 2. 加入成员
crmPermissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO));
permissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO));
return success(true);
}
@PutMapping("/receive")
@Operation(summary = "领取公海数据")
@PreAuthorize("@ss.hasPermission('crm:permission:update')")
public CommonResult<Boolean> receive(@RequestParam("bizType") Integer bizType, @RequestParam("bizId") Long bizId) {
permissionService.receiveBiz(bizType, bizId, getLoginUserId());
return success(true);
}
@PutMapping("/put-pool")
@Operation(summary = "数据放入公海")
@PreAuthorize("@ss.hasPermission('crm:permission:update')")
@CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#bizType", bizId = "#bizId"
, level = CrmPermissionLevelEnum.OWNER)
public CommonResult<Boolean> putPool(@RequestParam(value = "bizType") Integer bizType, @RequestParam("bizId") Long bizId) {
permissionService.putPool(bizType, bizId, getLoginUserId());
return success(true);
}
@PutMapping("/update")
@Operation(summary = "编辑团队成员")
@ -71,7 +90,7 @@ public class CrmPermissionController {
@CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#updateReqVO.bizType", bizId = "#updateReqVO.bizId"
, level = CrmPermissionLevelEnum.WRITE)
public CommonResult<Boolean> updatePermission(@Valid @RequestBody CrmPermissionUpdateReqVO updateReqVO) {
crmPermissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO));
permissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO));
return success(true);
}
@ -88,7 +107,7 @@ public class CrmPermissionController {
public CommonResult<Boolean> deletePermission(@RequestParam("bizType") Integer bizType,
@RequestParam("bizId") Long bizId,
@RequestParam("id") Long id) {
crmPermissionService.deletePermission(id);
permissionService.deletePermission(id);
return success(true);
}
@ -101,12 +120,16 @@ public class CrmPermissionController {
@PreAuthorize("@ss.hasPermission('crm:permission:query')")
public CommonResult<List<CrmPermissionRespVO>> getPermissionList(@RequestParam("bizType") Integer bizType,
@RequestParam("bizId") Long bizId) {
List<CrmPermissionDO> permission = crmPermissionService.getPermissionByBizTypeAndBizId(bizType, bizId);
List<CrmPermissionDO> permission = permissionService.getPermissionByBizTypeAndBizId(bizType, bizId);
if (CollUtil.isEmpty(permission)) {
return success(Collections.emptyList());
}
// TODO @puhui999池子的逻辑
permission.removeIf(item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID)); // 排除
// 判断是否是公海数据
Predicate<CrmPermissionDO> filter = item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID);
if (anyMatch(permission, filter)) {
permission.removeIf(filter); // 排除
}
// 拼接数据
List<AdminUserRespDTO> userList = adminUserApi.getUserList(convertSet(permission, CrmPermissionDO::getUserId));

View File

@ -85,4 +85,22 @@ public interface CrmPermissionService {
*/
List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId);
/**
* 领取公海数据
*
* @param bizType 数据类型关联 {@link CrmBizTypeEnum}
* @param bizId 数据编号关联 {@link CrmBizTypeEnum} 对应模块 DO#getId()
* @param userId 用户编号AdminUser#id
*/
void receiveBiz(Integer bizType, Long bizId, Long userId);
/**
* 数据放入公海
*
* @param bizType 数据类型关联 {@link CrmBizTypeEnum}
* @param bizId 数据编号关联 {@link CrmBizTypeEnum} 对应模块 DO#getId()
* @param userId 用户编号AdminUser#id
*/
void putPool(Integer bizType, Long bizId, Long userId);
}

View File

@ -141,4 +141,24 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId);
}
@Override
public void receiveBiz(Integer bizType, Long bizId, Long userId) {
CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, CrmPermissionDO.POOL_USER_ID);
if (permission == null) { // 不存在则模块数据也不存在
throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType));
}
crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(userId));
}
@Override
public void putPool(Integer bizType, Long bizId, Long userId) {
CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, userId);
if (permission == null) { // 不存在则模块数据也不存在
throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType));
}
crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(CrmPermissionDO.POOL_USER_ID));
}
}