mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-02 03:34:58 +08:00
CRM:完善模块数据放入公海、公海数据领取
This commit is contained in:
parent
533b7295ab
commit
388e07c834
@ -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));
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user