Ver código fonte

提交账号角色关联相关代码

lixing 4 anos atrás
pai
commit
00bce69939

+ 63 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/client/SaasAccountRoleClient.java

@@ -0,0 +1,63 @@
+package com.persagy.fm.saas.accountrole.client;
+
+import com.persagy.fm.common.client.FeignConfig;
+import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.common.response.FmResponseMsg;
+import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.UpdateSaasAccountDTO;
+import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
+import com.persagy.fm.saas.accountrole.client.fallback.SaasAccountRoleClientFallbackFactory;
+import com.persagy.fm.saas.accountrole.model.SaasAccountRole;
+import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.DeleteSaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.QuerySaasAccountRoleDTO;
+import com.persagy.fm.saas.project.constant.FeignClientNameConstants;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * 运维平台账号角色关联接口feign客户端
+ *
+ * @author lixing
+ * @version V1.0 2021/3/22 2:13 下午
+ **/
+@FeignClient(name = FeignClientNameConstants.SAAS, fallbackFactory = SaasAccountRoleClientFallbackFactory.class,
+        configuration = FeignConfig.class)
+public interface SaasAccountRoleClient {
+    /**
+     * 查询账号角色关联列表
+     *
+     * @param querySaasAccountRoleDTO 查询条件
+     * @return 账号角色关联列表
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/accountRole/querySaasRoleMenuList")
+    FmResponseContent<List<SaasAccountRole>> querySaasAccountRoleList(@RequestBody QuerySaasAccountRoleDTO querySaasAccountRoleDTO);
+
+    /**
+     * 创建账号角色关联
+     *
+     * @param addSaasAccountRoleDTO 创建账号角色关联入参
+     * @return 账号角色关联id
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/accountRole/createSaasAccountRole")
+    FmResponseContent<String> createSaasAccountRole(@RequestBody AddSaasAccountRoleDTO addSaasAccountRoleDTO);
+
+    /**
+     * 删除账号角色关联
+     *
+     * @param deleteSaasAccountRoleDTO 删除账号角色关联入参
+     * @author lixing
+     * @return FmResponseMsg
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/accountRole/deleteSaasAccountRole")
+    FmResponseMsg deleteSaasAccountRole(@RequestBody DeleteSaasAccountRoleDTO deleteSaasAccountRoleDTO);
+}

+ 16 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/client/fallback/SaasAccountRoleClientFallbackFactory.java

@@ -0,0 +1,16 @@
+package com.persagy.fm.saas.accountrole.client.fallback;
+
+import com.persagy.fm.saas.accountrole.client.SaasAccountRoleClient;
+import feign.hystrix.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author drx
+ */
+@Component
+public class SaasAccountRoleClientFallbackFactory implements FallbackFactory<SaasAccountRoleClient> {
+    @Override
+    public SaasAccountRoleClient create(Throwable throwable) {
+        return null;
+    }
+}

+ 30 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/constant/enums/AccountRoleTypeEnum.java

@@ -0,0 +1,30 @@
+package com.persagy.fm.saas.accountrole.constant.enums;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 账号角色关联类型枚举类
+ *
+ * @author lixing
+ * @version V1.0 2021/3/25 10:16 上午
+ **/
+public enum AccountRoleTypeEnum {
+    /**
+     * 账号角色关联类型
+     */
+    MAIN_DUTY("0", "主岗"),
+    OTHER_DUTY("1", "副岗");
+
+    @Setter
+    @Getter
+    private String type;
+    @Setter
+    @Getter
+    private String desc;
+
+    AccountRoleTypeEnum(String type, String desc) {
+        this.type = type;
+        this.desc = desc;
+    }
+}

+ 44 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/ConvertSaasAccountRoleTool.java

@@ -0,0 +1,44 @@
+package com.persagy.fm.saas.accountrole.model;
+
+import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.UpdateSaasAccountRoleDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.NullValueCheckStrategy;
+import org.mapstruct.NullValueMappingStrategy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 账号-角色关联信息(SaasAccountRole) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:40 2021-03-25 09:39:40
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertSaasAccountRoleTool {
+
+    ConvertSaasAccountRoleTool INSTANCE = Mappers.getMapper(ConvertSaasAccountRoleTool.class);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addSaasAccountRoleDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:40
+     */
+    SaasAccountRole convertAddDto2Entity(AddSaasAccountRoleDTO addSaasAccountRoleDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param saasAccountRole          更新前的do对象
+     * @param updateSaasAccountRoleDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:40
+     */
+    SaasAccountRole convertUpdateDto2Entity(@MappingTarget SaasAccountRole saasAccountRole, UpdateSaasAccountRoleDTO updateSaasAccountRoleDTO);
+}
+

+ 42 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/SaasAccountRole.java

@@ -0,0 +1,42 @@
+package com.persagy.fm.saas.accountrole.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.fm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 账号-角色关联信息(SaasAccountRole)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:39
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "账号-角色关联信息")
+public class SaasAccountRole extends AuditableEntity<SaasAccountRole> implements Serializable {
+    private static final long serialVersionUID = -51495192565503821L;
+
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+
+    @ApiModelProperty("账号ID")
+    private String accountId;
+
+    @ApiModelProperty("角色ID")
+    private String roleId;
+
+    @ApiModelProperty("关联类型,0-主岗,1-副岗")
+    private String casType;
+
+
+    public static String PROP_GROUP_CODE = "GROUP_CODE";
+    public static String PROP_ACCOUNT_ID = "ACCOUNT_ID";
+    public static String PROP_ROLE_ID = "ROLE_ID";
+    public static String PROP_CAS_TYPE = "CAS_TYPE";
+
+}

+ 44 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/dto/AddSaasAccountRoleDTO.java

@@ -0,0 +1,44 @@
+package com.persagy.fm.saas.accountrole.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:39
+ */
+@Data
+@ApiModel(value = "创建账号-角色关联信息入参")
+public class AddSaasAccountRoleDTO {
+    @ApiModelProperty(value = "账号所属", required = true)
+    @NotNull(message = "账号所属不能为空")
+    private String accountBelong;
+
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") 
+    private String groupCode;
+
+    @ApiModelProperty(value = "应用ID", required = true)
+    @NotNull(message = "应用ID不能为空")
+    private String appId;
+
+
+    @ApiModelProperty(value = "账号ID", required = true)
+    @NotNull(message = "账号ID不能为空") 
+    private String accountId;
+
+    @ApiModelProperty(value = "角色ID", required = true)
+    @NotNull(message = "角色ID不能为空") 
+    private String roleId;
+
+    @ApiModelProperty(value = "关联类型,0-主岗,1-副岗", required = true)
+    @NotNull(message = "关联类型不能为空")
+    private String casType;
+
+}

+ 20 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/dto/DeleteSaasAccountRoleDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.fm.saas.accountrole.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:40
+ */
+@Data
+@ApiModel(value = "删除账号-角色关联信息入参")
+public class DeleteSaasAccountRoleDTO {
+    private String accountBelong;
+    private String accountId;
+    private String appId;
+    private String groupCode;
+}

+ 35 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/dto/QuerySaasAccountRoleDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.fm.saas.accountrole.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:40
+ */
+@Data
+@ApiModel(value = "查询账号-角色关联信息入参")
+public class QuerySaasAccountRoleDTO {
+    @ApiModelProperty(value = "账号所属", required = true)
+    private String accountBelong;
+
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+
+    @ApiModelProperty(value = "应用ID", required = true)
+    private String appId;
+
+    @ApiModelProperty(value = "账号ID", required = true)
+    private String accountId;
+
+    @ApiModelProperty(value = "角色ID", required = true)
+    private String roleId;
+
+    @ApiModelProperty(value = "关联类型,0-主岗,1-副岗", required = true)
+    private String casType;
+
+}

+ 35 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/model/dto/UpdateSaasAccountRoleDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.fm.saas.accountrole.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:40
+ */
+@Data
+@ApiModel(value = "更新账号-角色关联信息入参")
+public class UpdateSaasAccountRoleDTO {
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+
+    @ApiModelProperty(value = "账号ID", required = true)
+    @NotNull(message = "账号ID不能为空") // todo 更新校验规则
+    private String accountId;
+
+    @ApiModelProperty(value = "角色ID", required = true)
+    @NotNull(message = "角色ID不能为空") // todo 更新校验规则
+    private String roleId;
+
+    @ApiModelProperty(value = "关联类型,0-主岗,1-副岗", required = true)
+    @NotNull(message = "关联类型,0-主岗,1-副岗不能为空") // todo 更新校验规则
+    private String casType;
+
+}

+ 50 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/service/ISaasAccountRoleService.java

@@ -0,0 +1,50 @@
+package com.persagy.fm.saas.accountrole.service;
+
+import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.saas.accountrole.model.*;
+import com.persagy.fm.saas.accountrole.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 账号-角色关联信息(SaasAccountRole) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:38
+ */
+public interface ISaasAccountRoleService {
+
+    /**
+     * 创建账号-角色关联信息
+     *
+     * @param addSaasAccountRoleDTO addDTO
+     * @return 账号-角色关联信息主键
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:38
+     */
+    String createSaasAccountRole(AddSaasAccountRoleDTO addSaasAccountRoleDTO);
+
+    /**
+     * 删除账号-角色关联信息
+     *
+     * @param accountId 账号主键
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:38
+     */
+    void deleteSaasAccountRole(String accountId);
+
+    /**
+     * 查询账号-角色关联信息
+     *
+     * @param querySaasAccountRoleDTO queryDTO
+     * @return List<SaasAccountRole>
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:38
+     */
+    List<SaasAccountRole> querySaasAccountRoleList(QuerySaasAccountRoleDTO querySaasAccountRoleDTO);
+
+}

+ 85 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/service/impl/SaasAccountRoleServiceImpl.java

@@ -0,0 +1,85 @@
+package com.persagy.fm.saas.accountrole.service.impl;
+
+import com.persagy.fm.common.model.RequiredParamsStorage;
+import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.saas.account.constant.enums.AccountBelongEnum;
+import com.persagy.fm.saas.accountrole.client.SaasAccountRoleClient;
+import com.persagy.fm.saas.accountrole.model.SaasAccountRole;
+import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.DeleteSaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.QuerySaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.service.ISaasAccountRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 账号-角色关联信息(SaasAccountRole) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-03-25 09:39:39
+ */
+@Service
+public class SaasAccountRoleServiceImpl implements ISaasAccountRoleService {
+
+    @Autowired
+    SaasAccountRoleClient saasAccountRoleClient;
+
+    /**
+     * 创建账号-角色关联信息
+     *
+     * @return Long 账号-角色关联信息主键
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:39
+     */
+    @Override
+    public String createSaasAccountRole(AddSaasAccountRoleDTO addSaasAccountRoleDTO) {
+        setDefaultValue(addSaasAccountRoleDTO);
+        FmResponseContent<String> saasAccountRole = saasAccountRoleClient.createSaasAccountRole(addSaasAccountRoleDTO);
+        return saasAccountRole.getContent();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param addSaasAccountRoleDTO 创建账号-角色关联入参
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AddSaasAccountRoleDTO addSaasAccountRoleDTO) {
+        addSaasAccountRoleDTO.setGroupCode(RequiredParamsStorage.getGroupCode());
+        addSaasAccountRoleDTO.setAppId(RequiredParamsStorage.getAppId());
+        addSaasAccountRoleDTO.setAccountBelong(AccountBelongEnum.BUSINESS.getType());
+    }
+
+    /**
+     * 删除账号-角色关联信息
+     *
+     * @param accountId 账号主键
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:39
+     */
+    @Override
+    public void deleteSaasAccountRole(String accountId) {
+        DeleteSaasAccountRoleDTO deleteSaasAccountRoleDTO = new DeleteSaasAccountRoleDTO();
+        deleteSaasAccountRoleDTO.setAccountId(accountId);
+        deleteSaasAccountRoleDTO.setAccountBelong(AccountBelongEnum.BUSINESS.getType());
+        deleteSaasAccountRoleDTO.setAppId(RequiredParamsStorage.getAppId());
+        deleteSaasAccountRoleDTO.setGroupCode(RequiredParamsStorage.getGroupCode());
+        saasAccountRoleClient.deleteSaasAccountRole(deleteSaasAccountRoleDTO);
+    }
+
+    /**
+     * 查询账号-角色关联信息
+     *
+     * @return List<SaasAccountRole>
+     * @author lixing
+     * @version V1.0 2021-03-25 09:39:39
+     */
+    @Override
+    public List<SaasAccountRole> querySaasAccountRoleList(QuerySaasAccountRoleDTO querySaasAccountRoleDTO) {
+        FmResponseContent<List<SaasAccountRole>> responseContent = saasAccountRoleClient.querySaasAccountRoleList(querySaasAccountRoleDTO);
+        return responseContent.getContent();
+    }
+}

+ 72 - 0
fm-person/src/main/java/com/persagy/fm/saas/role/client/SaasRoleClient.java

@@ -0,0 +1,72 @@
+package com.persagy.fm.saas.role.client;
+
+import com.persagy.fm.common.client.FeignConfig;
+import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.common.response.FmResponseMsg;
+import com.persagy.fm.saas.project.constant.FeignClientNameConstants;
+import com.persagy.fm.saas.role.client.fallback.SaasRoleClientFallbackFactory;
+import com.persagy.fm.saas.role.model.SaasRole;
+import com.persagy.fm.saas.role.model.dto.AddSaasRoleDTO;
+import com.persagy.fm.saas.role.model.dto.DeleteSaasRoleDTO;
+import com.persagy.fm.saas.role.model.dto.PageQuerySaasRoleDTO;
+import com.persagy.fm.saas.role.model.dto.UpdateSaasRoleDTO;
+import com.persagy.fm.saas.role.model.vo.SaasRoleListItemVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * 运维系统角色接口
+ *
+ * @author lixing
+ * @version V1.0 2021/3/22 2:13 下午
+ **/
+@FeignClient(name = FeignClientNameConstants.SAAS, fallbackFactory = SaasRoleClientFallbackFactory.class,
+        configuration = FeignConfig.class)
+public interface SaasRoleClient {
+    /**
+     * 查询账号列表
+     *
+     * @param pageQuerySaasRoleDTO 查询条件
+     * @return 角色列表
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/role/queryRolePageList")
+    FmResponseContent<List<SaasRole>> queryRolePageList(@RequestBody PageQuerySaasRoleDTO pageQuerySaasRoleDTO);
+
+    /**
+     * 创建角色
+     *
+     * @param saasRole 创建角色入参
+     * @return 角色id
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/role/createSaasRole")
+    FmResponseContent<String> createSaasRole(@RequestBody SaasRole saasRole);
+
+    /**
+     * 更新角色
+     *
+     * @param saasRole 更新角色入参
+     * @author lixing
+     * @return FmResponseMsg
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/role/updateSaasRole")
+    FmResponseMsg updateSaasRole(@RequestBody SaasRole saasRole);
+
+    /**
+     * 删除角色
+     *
+     * @param deleteSaasRoleDTO 删除角色入参
+     * @author lixing
+     * @return FmResponseMsg
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/role/deleteSaasRole")
+    FmResponseMsg deleteSaasRole(@RequestBody DeleteSaasRoleDTO deleteSaasRoleDTO);
+}

+ 19 - 0
fm-person/src/main/java/com/persagy/fm/saas/role/client/fallback/SaasRoleClientFallbackFactory.java

@@ -0,0 +1,19 @@
+package com.persagy.fm.saas.role.client.fallback;
+
+import com.persagy.fm.saas.role.client.SaasRoleClient;
+import feign.hystrix.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 运维系统角色接口熔断处理类
+ *
+ * @author lixing
+ * @version V1.0 2021/3/24 2:59 下午
+ */
+@Component
+public class SaasRoleClientFallbackFactory implements FallbackFactory<SaasRoleClient> {
+    @Override
+    public SaasRoleClient create(Throwable throwable) {
+        return null;
+    }
+}