mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	新增 CRM-数据权限 service
This commit is contained in:
		| @@ -0,0 +1,23 @@ | ||||
| package cn.iocoder.yudao.module.crm.convert.permission; | ||||
|  | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateBO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateBO; | ||||
| import org.mapstruct.Mapper; | ||||
| import org.mapstruct.factory.Mappers; | ||||
|  | ||||
| /** | ||||
|  * Crm 数据权限 Convert | ||||
|  * | ||||
|  * @author Wanwan | ||||
|  */ | ||||
| @Mapper | ||||
| public interface CrmPermissionConvert { | ||||
|  | ||||
|     CrmPermissionConvert INSTANCE = Mappers.getMapper(CrmPermissionConvert.class); | ||||
|  | ||||
|     CrmPermissionDO convert(CrmPermissionCreateBO createBO); | ||||
|  | ||||
|     CrmPermissionDO convert(CrmPermissionUpdateBO updateBO); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,57 @@ | ||||
| package cn.iocoder.yudao.module.crm.dal.dataobject.permission; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; | ||||
| import cn.iocoder.yudao.module.crm.framework.enums.CrmEnum; | ||||
| import com.baomidou.mybatisplus.annotation.KeySequence; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import lombok.*; | ||||
|  | ||||
| import java.util.Set; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 DO | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @TableName("crm_receivable") | ||||
| @KeySequence("crm_receivable_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class CrmPermissionDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * ID | ||||
|      */ | ||||
|     @TableId | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 数据类型 关联 {@link CrmEnum} | ||||
|      */ | ||||
|     private Integer crmType; | ||||
|     /** | ||||
|      * 数据编号 关联 {@link CrmEnum} 对应模块 DO#id | ||||
|      */ | ||||
|     private Integer crmDataId; | ||||
|     /** | ||||
|      * 负责人的用户编号 关联 AdminUser#id | ||||
|      */ | ||||
|     private Long ownerUserId; | ||||
|     /** | ||||
|      * 只读权限的用户编号数组 | ||||
|      */ | ||||
|     @TableField(typeHandler = JsonLongSetTypeHandler.class) | ||||
|     private Set<Long> roUserIds; | ||||
|     /** | ||||
|      * 读写权限的用户编号数组 | ||||
|      */ | ||||
|     @TableField(typeHandler = JsonLongSetTypeHandler.class) | ||||
|     private Set<Long> rwUserIds; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,14 @@ | ||||
| package cn.iocoder.yudao.module.crm.dal.mysql.permission; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; | ||||
| import org.apache.ibatis.annotations.Mapper; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 mapper | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @Mapper | ||||
| public interface CrmPermissionMapper extends BaseMapperX<CrmPermissionDO> { | ||||
| } | ||||
| @@ -0,0 +1 @@ | ||||
| package cn.iocoder.yudao.module.crm.dal.mysql.permission; | ||||
| @@ -0,0 +1,47 @@ | ||||
| package cn.iocoder.yudao.module.crm.service.permission; | ||||
|  | ||||
|  | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateBO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateBO; | ||||
|  | ||||
| import javax.validation.Valid; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 Service 接口 | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| public interface CrmPermissionService { | ||||
|  | ||||
|     /** | ||||
|      * 创建数据权限 | ||||
|      * | ||||
|      * @param createBO 创建信息 | ||||
|      * @return 编号 | ||||
|      */ | ||||
|     Long createCrmPermission(@Valid CrmPermissionCreateBO createBO); | ||||
|  | ||||
|     /** | ||||
|      * 更新数据权限 | ||||
|      * | ||||
|      * @param updateBO 更新信息 | ||||
|      */ | ||||
|     void updateCrmPermission(@Valid CrmPermissionUpdateBO updateBO); | ||||
|  | ||||
|     /** | ||||
|      * 删除数据权限 | ||||
|      * | ||||
|      * @param id 编号 | ||||
|      */ | ||||
|     void deleteCrmPermission(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 获得数据权限 | ||||
|      * | ||||
|      * @param id 编号 | ||||
|      * @return 数据权限 | ||||
|      */ | ||||
|     CrmPermissionDO getCrmPermission(Long id); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,66 @@ | ||||
| package cn.iocoder.yudao.module.crm.service.permission; | ||||
|  | ||||
| import cn.iocoder.yudao.module.crm.convert.permission.CrmPermissionConvert; | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; | ||||
| import cn.iocoder.yudao.module.crm.dal.mysql.permission.CrmPermissionMapper; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateBO; | ||||
| import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionUpdateBO; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||
| import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CRM_PERMISSION_NOT_EXISTS; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 Service 接口实现类 | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @Service | ||||
| @Validated | ||||
| public class CrmPermissionServiceImpl implements CrmPermissionService { | ||||
|  | ||||
|     @Resource | ||||
|     private CrmPermissionMapper crmPermissionMapper; | ||||
|  | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public Long createCrmPermission(CrmPermissionCreateBO createBO) { | ||||
|         CrmPermissionDO createDO = CrmPermissionConvert.INSTANCE.convert(createBO); | ||||
|         crmPermissionMapper.insert(createDO); | ||||
|         return createDO.getId(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void updateCrmPermission(CrmPermissionUpdateBO updateBO) { | ||||
|         validateCrmPermissionExists(updateBO.getId()); | ||||
|  | ||||
|         CrmPermissionDO updateDO = CrmPermissionConvert.INSTANCE.convert(updateBO); | ||||
|         crmPermissionMapper.updateById(updateDO); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public void deleteCrmPermission(Long id) { | ||||
|         validateCrmPermissionExists(id); | ||||
|  | ||||
|         crmPermissionMapper.deleteById(id); | ||||
|     } | ||||
|  | ||||
|     private void validateCrmPermissionExists(Long id) { | ||||
|         if (crmPermissionMapper.selectById(id) == null) { | ||||
|             throw exception(CRM_PERMISSION_NOT_EXISTS); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public CrmPermissionDO getCrmPermission(Long id) { | ||||
|         return crmPermissionMapper.selectById(id); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| package cn.iocoder.yudao.module.crm.service.permission.bo; | ||||
|  | ||||
| import cn.iocoder.yudao.module.crm.framework.enums.CrmEnum; | ||||
| import lombok.Data; | ||||
|  | ||||
| import javax.validation.constraints.NotNull; | ||||
| import java.util.Set; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 Create BO | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @Data | ||||
| public class CrmPermissionCreateBO { | ||||
|  | ||||
|     /** | ||||
|      * Crm 类型 关联 {@link CrmEnum} | ||||
|      */ | ||||
|     @NotNull(message = "Crm 类型不能为空") | ||||
|     private Integer crmType; | ||||
|     /** | ||||
|      * 数据编号 关联 {@link CrmEnum} 对应模块 DO#getId() | ||||
|      */ | ||||
|     @NotNull(message = "Crm 数据编号不能为空") | ||||
|     private Integer crmDataId; | ||||
|     /** | ||||
|      * 负责人的用户编号 关联 AdminUser#id, null 则为公海数据 | ||||
|      */ | ||||
|     private Long ownerUserId; | ||||
|     /** | ||||
|      * 只读权限的用户编号数组 | ||||
|      */ | ||||
|     private Set<Long> roUserIds; | ||||
|     /** | ||||
|      * 读写权限的用户编号数组 | ||||
|      */ | ||||
|     private Set<Long> rwUserIds; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,47 @@ | ||||
| package cn.iocoder.yudao.module.crm.service.permission.bo; | ||||
|  | ||||
| import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; | ||||
| import cn.iocoder.yudao.module.crm.framework.enums.CrmEnum; | ||||
| import lombok.Data; | ||||
|  | ||||
| import javax.validation.constraints.NotNull; | ||||
| import java.util.Set; | ||||
|  | ||||
| /** | ||||
|  * crm 数据权限 Update BO | ||||
|  * | ||||
|  * @author HUIHUI | ||||
|  */ | ||||
| @Data | ||||
| public class CrmPermissionUpdateBO { | ||||
|  | ||||
|     /** | ||||
|      * 数据权限编号 {@link CrmPermissionDO#getId()} | ||||
|      */ | ||||
|     @NotNull(message = "Crm 数据权限编号不能为空") | ||||
|     private Long id; | ||||
|  | ||||
|     /** | ||||
|      * Crm 类型 关联 {@link CrmEnum} | ||||
|      */ | ||||
|     @NotNull(message = "Crm 类型不能为空") | ||||
|     private Integer crmType; | ||||
|     /** | ||||
|      * 数据编号 关联 {@link CrmEnum} 对应模块 DO#getId() | ||||
|      */ | ||||
|     @NotNull(message = "Crm 数据编号不能为空") | ||||
|     private Integer crmDataId; | ||||
|     /** | ||||
|      * 负责人的用户编号 关联 AdminUser#id, null 则为公海数据 | ||||
|      */ | ||||
|     private Long ownerUserId; | ||||
|     /** | ||||
|      * 只读权限的用户编号数组 | ||||
|      */ | ||||
|     private Set<Long> roUserIds; | ||||
|     /** | ||||
|      * 读写权限的用户编号数组 | ||||
|      */ | ||||
|     private Set<Long> rwUserIds; | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 puhui999
					puhui999