新增 CRM-数据权限 service

plp
puhui999 2 years ago
parent bec8a27a21
commit 19c9b6ae93

@ -41,4 +41,7 @@ public interface ErrorCodeConstants {
// ========== 客户管理 1_020_006_000 ==========
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_020_006_000, "客户不存在");
// ========== 客户管理 1_020_007_000 ==========
ErrorCode CRM_PERMISSION_NOT_EXISTS = new ErrorCode(1_020_007_000, "数据权限不存在");
}

@ -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,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;
}
Loading…
Cancel
Save