Prechádzať zdrojové kódy

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

lixing 4 rokov pred
rodič
commit
b0bfe708d0

+ 8 - 14
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -1,14 +1,12 @@
 package com.persagy.fm.person.service.impl;
 
 import cn.hutool.extra.pinyin.PinyinUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.base.CaseFormat;
+import com.persagy.fm.common.constant.PageQueryConstants;
 import com.persagy.fm.common.constant.enums.ValidEnum;
 import com.persagy.fm.common.model.RequiredParamsStorage;
-import com.persagy.fm.common.model.dto.Sort;
 import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.person.dao.PersonMapper;
 import com.persagy.fm.person.model.ConvertPersonTool;
@@ -20,22 +18,16 @@ import com.persagy.fm.saas.account.client.SaasAccountClient;
 import com.persagy.fm.saas.account.constant.enums.AccountBelongEnum;
 import com.persagy.fm.saas.account.constant.enums.AccountTypeEnum;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
-import com.persagy.fm.saas.account.model.dto.QuerySaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
-import com.persagy.fm.workresume.model.WorkResume;
 import com.persagy.fm.workresume.model.dto.AddWorkResumeDTO;
-import com.persagy.fm.workresume.model.dto.PageQueryWorkResumeDTO;
 import com.persagy.fm.workresume.service.IWorkResumeService;
-import org.apache.commons.lang.StringUtils;
-import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 人员(Person) service层
@@ -147,10 +139,12 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      * @version V1.0 2021/3/23 3:15 下午
      */
     private void checkUserName(String username) {
-        QuerySaasAccountDTO querySaasAccountDTO = new QuerySaasAccountDTO();
-        querySaasAccountDTO.setGroupCode(RequiredParamsStorage.getGroupCode());
-        querySaasAccountDTO.setUsername(username);
-        FmResponseContent<List<SaasAccountListItemVO>> listFmResponseContent = saasAccountClient.querySaasAccountList(querySaasAccountDTO);
+        PageQuerySaasAccountDTO pageQuerySaasAccountDTO = new PageQuerySaasAccountDTO();
+        pageQuerySaasAccountDTO.setPage(PageQueryConstants.DEFAULT_PAGE);
+        pageQuerySaasAccountDTO.setSize(PageQueryConstants.DEFAULT_SIZE);
+        pageQuerySaasAccountDTO.setGroupCode(RequiredParamsStorage.getGroupCode());
+        pageQuerySaasAccountDTO.setUsername(username);
+        FmResponseContent<List<SaasAccountListItemVO>> listFmResponseContent = saasAccountClient.querySaasAccountPageList(pageQuerySaasAccountDTO);
         if (listFmResponseContent.getCount() > 0) {
             throw new IllegalArgumentException("账号已被使用");
         }

+ 7 - 6
fm-person/src/main/java/com/persagy/fm/saas/account/client/SaasAccountClient.java

@@ -5,7 +5,7 @@ import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.common.response.FmResponseMsg;
 import com.persagy.fm.saas.account.client.fallback.SaasAccountClientFallbackFactory;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
-import com.persagy.fm.saas.account.model.dto.QuerySaasAccountDTO;
+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.project.constant.FeignClientNameConstants;
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import java.util.List;
 
 /**
- * 接口说明
+ * 运维平台账号接口feign客户端
  *
  * @author lixing
  * @version V1.0 2021/3/22 2:13 下午
@@ -25,15 +25,15 @@ import java.util.List;
         configuration = FeignConfig.class)
 public interface SaasAccountClient {
     /**
-     * 查询账号列表
+     * 分页查询账号列表
      *
-     * @param querySaasAccountDTO 查询条件
+     * @param pageQuerySaasAccountDTO 查询条件
      * @return 账号列表
      * @author lixing
      * @version V1.0 2021/3/23 11:57 上午
      */
-    @PostMapping("/account/querySaasAccountList")
-    FmResponseContent<List<SaasAccountListItemVO>> querySaasAccountList(@RequestBody QuerySaasAccountDTO querySaasAccountDTO);
+    @PostMapping("/account/queryAccountPageList")
+    FmResponseContent<List<SaasAccountListItemVO>> querySaasAccountPageList(@RequestBody PageQuerySaasAccountDTO pageQuerySaasAccountDTO);
 
     /**
      * 创建账号
@@ -51,6 +51,7 @@ public interface SaasAccountClient {
      *
      * @param updateSaasAccountDTO 更新账号入参
      * @author lixing
+     * @return FmResponseMsg
      * @version V1.0 2021/3/23 11:57 上午
      */
     @PostMapping("/account/createSaasAccount")

+ 2 - 1
fm-person/src/main/java/com/persagy/fm/saas/account/model/dto/QuerySaasAccountDTO.java

@@ -1,5 +1,6 @@
 package com.persagy.fm.saas.account.model.dto;
 
+import com.persagy.fm.common.model.dto.PageDTO;
 import lombok.Data;
 
 /**
@@ -9,7 +10,7 @@ import lombok.Data;
  * @version V1.0 2021/3/23 11:55 上午
  **/
 @Data
-public class QuerySaasAccountDTO {
+public class PageQuerySaasAccountDTO extends PageDTO {
     private String accountBelong;
     private String groupCode;
     private String accountId;

+ 2 - 3
fm-person/src/main/java/com/persagy/fm/saas/role/controller/SaasRoleController.java

@@ -6,7 +6,6 @@ import com.persagy.fm.saas.role.service.ISaasRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import com.persagy.fm.saas.role.model.*;
 import com.persagy.fm.saas.role.model.vo.*;
 import com.persagy.fm.saas.role.model.dto.*;
@@ -78,10 +77,10 @@ public class SaasRoleController {
 
     @ApiOperation(value = "列表, 分页查询")
     @PostMapping("/query")
-    public FmResponseContent<List<ResponseSaasRoleListItemVO>> querySaasRole(
+    public FmResponseContent<List<SaasRoleListItemVO>> querySaasRole(
             @Valid @RequestBody PageQuerySaasRoleDTO pageQuerySaasRoleDTO) {
         IPage<SaasRole> pagedList = saasRoleService.pageQuerySaasRole(pageQuerySaasRoleDTO);
-        IPage<ResponseSaasRoleListItemVO> pagedResultList = pagedList.convert(item -> {
+        IPage<SaasRoleListItemVO> pagedResultList = pagedList.convert(item -> {
             try {
                return ConvertSaasRoleTool.INSTANCE.convert2ResponseListItemDTO(item);
             } catch (Exception e) {

+ 3 - 3
fm-person/src/main/java/com/persagy/fm/saas/role/model/ConvertSaasRoleTool.java

@@ -28,7 +28,7 @@ public interface ConvertSaasRoleTool {
      * @author lixing
      * @version V1.0 2021-03-22 19:04:28
      */
-    ResponseSaasRoleItemVO convert2ResponseItemDTO(SaasRole saasRole);
+    SaasRoleItemVO convert2ResponseItemDTO(SaasRole saasRole);
 
     /**
      * do转换为ResponseListItemVO
@@ -38,7 +38,7 @@ public interface ConvertSaasRoleTool {
      * @author lixing
      * @version V1.0 2021-03-22 19:04:28
      */
-    ResponseSaasRoleListItemVO convert2ResponseListItemDTO(SaasRole saasRole);
+    SaasRoleListItemVO convert2ResponseListItemDTO(SaasRole saasRole);
 
     /**
      * do列表转换为ResponseListItemVO列表
@@ -48,7 +48,7 @@ public interface ConvertSaasRoleTool {
      * @author lixing
      * @version V1.0 2021-03-22 19:04:28
      */
-    List<ResponseSaasRoleListItemVO> convert2List(List<SaasRole> saasRoleList);
+    List<SaasRoleListItemVO> convert2List(List<SaasRole> saasRoleList);
 
     /**
      * addDTO转换为do

+ 3 - 0
fm-person/src/main/java/com/persagy/fm/saas/role/model/SaasRole.java

@@ -25,6 +25,9 @@ public class SaasRole implements Serializable {
     @ApiModelProperty("角色编码")
     private String roleCode;
 
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+
     @ApiModelProperty("角色名称")
     private String roleName;
 

+ 6 - 1
fm-person/src/main/java/com/persagy/fm/saas/role/model/dto/PageQuerySaasRoleDTO.java

@@ -7,15 +7,20 @@ import java.util.Date;
 
 import com.persagy.fm.common.model.dto.PageDTO;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * @author lixing
  * @version V1.0 2021-03-22 19:04:24
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
 @ApiModel(value = "分页查询入参")
 public class PageQuerySaasRoleDTO extends PageDTO {
-    @ApiModelProperty(value = "角色名称", required = true)
+    @ApiModelProperty(value = "角色id")
+    private String id;
+
+    @ApiModelProperty(value = "角色名称")
     private String roleName;
 
     @ApiModelProperty(value = "角色类型", required = true)

+ 0 - 4
fm-person/src/main/java/com/persagy/fm/saas/role/model/dto/UpdateSaasRoleDTO.java

@@ -23,8 +23,4 @@ public class UpdateSaasRoleDTO {
     @ApiModelProperty(value = "角色名称", required = true)
     @NotNull(message = "角色名称不能为空") 
     private String roleName;
-
-    @ApiModelProperty(value = "角色类型", required = true)
-    @NotNull(message = "角色类型不能为空") 
-    private String roleType;
 }

+ 1 - 1
fm-person/src/main/java/com/persagy/fm/saas/role/model/vo/ResponseSaasRoleItemVO.java

@@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 @Data
 @ApiModel(value = "返回结果参数")
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class ResponseSaasRoleItemVO {
+public class SaasRoleItemVO {
     @ApiModelProperty("主键")
     private String id;
 

+ 1 - 1
fm-person/src/main/java/com/persagy/fm/saas/role/model/vo/ResponseSaasRoleListItemVO.java

@@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 @Data
 @ApiModel(value = "列表返回结果参数")
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class ResponseSaasRoleListItemVO {
+public class SaasRoleListItemVO {
     @ApiModelProperty("主键")
     private String id;
 

+ 57 - 46
fm-person/src/main/java/com/persagy/fm/saas/role/service/impl/SaasRoleServiceImpl.java

@@ -4,17 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.base.CaseFormat;
+import com.persagy.fm.common.model.RequiredParamsStorage;
 import com.persagy.fm.common.model.dto.Sort;
+import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.saas.account.constant.enums.AccountBelongEnum;
+import com.persagy.fm.saas.role.client.SaasRoleClient;
 import com.persagy.fm.saas.role.model.ConvertSaasRoleTool;
 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.service.ISaasRoleService;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -25,6 +32,8 @@ import java.util.List;
  */
 @Service
 public class SaasRoleServiceImpl implements ISaasRoleService {
+    @Autowired
+    SaasRoleClient saasRoleClient;
 
     /**
      * 创建
@@ -38,7 +47,8 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
         SaasRole saasRole = ConvertSaasRoleTool.INSTANCE.convertAddDto2Entity(addSaasRoleDTO);
         // 设置默认值
         setDefaultValue(saasRole);
-        return saasRole.getId();
+        FmResponseContent<String> response = saasRoleClient.createSaasRole(saasRole);
+        return response.getContent();
     }
 
     /**
@@ -49,27 +59,12 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
      * @version V1.0 2021/3/12 12:29 下午
      */
     private void setDefaultValue(SaasRole saasRole) {
-        // todo 其他默认的属性
-
+        saasRole.setAccountBelong(AccountBelongEnum.BUSINESS.getType());
+        saasRole.setAppId(RequiredParamsStorage.getAppId());
+        saasRole.setGroupCode(RequiredParamsStorage.getGroupCode());
+        saasRole.setRoleCode(String.valueOf(System.currentTimeMillis()));
     }
 
-//    /**
-//     * 详情
-//     *
-//     * @param id 主键
-//     * @return 部门do类
-//     * @author lixing
-//     * @version V1.0 2021-03-22 19:04:17
-//     */
-//    @Override
-//    public SaasRole querySaasRoleDetail(String id) {
-//        SaasRole saasRole = null;
-//        if (saasRole == null) {
-//            throw new IllegalArgumentException("查看SaasRole详情时发生异常,找不到要查看的记录,id=" + id);
-//        }
-//        return saasRole;
-//    }
-
     /**
      * 更新
      *
@@ -78,8 +73,33 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
      */
     @Override
     public void updateSaasRole(UpdateSaasRoleDTO updateSaasRoleDTO) {
-        SaasRole saasRole = null;
+        // 查询要更新的对象
+        SaasRole saasRole = getSaasRole(updateSaasRoleDTO.getId());
+        if (saasRole == null) {
+            throw new IllegalArgumentException("找不到要更新的数据,id: " + updateSaasRoleDTO.getId());
+        }
+        // 将更新的属性赋值给查询到的对象
         saasRole = ConvertSaasRoleTool.INSTANCE.convertUpdateDto2Entity(saasRole, updateSaasRoleDTO);
+
+        saasRoleClient.updateSaasRole(saasRole);
+    }
+
+    /**
+     * 获取运维平台角色对象
+     *
+     * @param roleId 角色id
+     * @return 角色对象
+     * @author lixing
+     * @version V1.0 2021/3/24 3:47 下午
+     */
+    private SaasRole getSaasRole(String roleId) {
+        PageQuerySaasRoleDTO pageQuerySaasRoleDTO = new PageQuerySaasRoleDTO();
+        pageQuerySaasRoleDTO.setId(roleId);
+        FmResponseContent<List<SaasRole>> listFmResponseContent = saasRoleClient.queryRolePageList(pageQuerySaasRoleDTO);
+        if (listFmResponseContent.getCount() <= 0) {
+            return null;
+        }
+        return listFmResponseContent.getContent().get(0);
     }
 
     /**
@@ -95,7 +115,7 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
             throw new IllegalArgumentException("删除SaasRole时发生异常,主键为空");
         }
 
-        SaasRole saasRole = null;
+        SaasRole saasRole = getSaasRole(id);
 
         if (saasRole == null) {
             throw new IllegalArgumentException("删除SaasRole时发生异常,找不到要删除的数据,id:" + id);
@@ -114,8 +134,11 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
     @Override
     public void deleteSaasRole(String id) {
         // 校验是否可删除
-        SaasRole saasRole = checkDeletable(id);
-
+        checkDeletable(id);
+        // 删除角色
+        DeleteSaasRoleDTO deleteSaasRoleDTO = new DeleteSaasRoleDTO();
+        deleteSaasRoleDTO.setId(id);
+        saasRoleClient.deleteSaasRole(deleteSaasRoleDTO);
     }
 
 //    /**
@@ -181,27 +204,15 @@ public class SaasRoleServiceImpl implements ISaasRoleService {
      */
     @Override
     public IPage<SaasRole> pageQuerySaasRole(PageQuerySaasRoleDTO pageQuerySaasRoleDTO) {
-        QueryWrapper<SaasRole> queryWrapper = new QueryWrapper<>();
-        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
-        IPage<SaasRole> pageParam = new Page<>(pageQuerySaasRoleDTO.getPage(), pageQuerySaasRoleDTO.getSize(), true);
-        // 排序信息
-        if (!CollectionUtils.isEmpty(pageQuerySaasRoleDTO.getOrders())) {
-            List<Sort> orders = pageQuerySaasRoleDTO.getOrders();
-            for (Sort sort : orders) {
-                // 将驼峰转换为下划线格式
-                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
-                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
-            }
-        }
-
-        if (StringUtils.isNotEmpty(pageQuerySaasRoleDTO.getRoleName())) {
-            queryWrapper.like(SaasRole.PROP_ROLE_NAME, pageQuerySaasRoleDTO.getRoleName());
-        }
-
-        if (StringUtils.isNotEmpty(pageQuerySaasRoleDTO.getRoleType())) {
-            queryWrapper.eq(SaasRole.PROP_ROLE_TYPE, pageQuerySaasRoleDTO.getRoleType());
-        }
-
-        return null;
+        // 调用运维平台分页查询接口
+        FmResponseContent<List<SaasRole>> saasResponse = saasRoleClient.queryRolePageList(pageQuerySaasRoleDTO);
+        Integer count = saasResponse.getCount();
+        List<SaasRole> content = saasResponse.getContent();
+
+        // 将返回结果封装为IPage对象
+        IPage<SaasRole> result = new Page<>();
+        result.setRecords(content);
+        result.setTotal(Long.parseLong(count.toString()));
+        return result;
     }
 }

+ 20 - 14
fm-person/src/main/resources/mapper/PersonMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.persagy.fm.person.dao.PersonDao">
+<mapper namespace="com.persagy.fm.person.dao.PersonMapper">
     <resultMap id="PersonMap" type="com.persagy.fm.person.model.Person">
         <result column="id" property="id"/>
         <result column="name" property="name"/>
@@ -20,20 +20,26 @@
         <result column="valid" property="valid"/>
     </resultMap>
 
+    <resultMap id="SimplePersonMap" type="com.persagy.fm.person.model.Person">
+        <result column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="profession" property="profession"/>
+    </resultMap>
+
     <select id="queryPersonList" parameterType="com.persagy.fm.person.model.dto.PageQueryPersonDTO"
             resultType="com.persagy.fm.person.model.Person">
-        select p.id, p.name, p.profession
+        select p.id as id, p.name as name, p.profession as profession
         from person p,
         work_resume w
         where p.id = w.person_id
-        <if test="queryDto.depId != null">
-            and w.dep_id = #{queryDto.depId}
+        <if test="depId != null">
+            and w.dep_id = #{depId}
         </if>
-        <if test="queryDto.state != null">
-            and w.state = #{queryDto.state}
+        <if test="state != null">
+            and w.state = #{state}
         </if>
-        <if test="queryDto.name != null">
-            and p.name = #{queryDto.name}
+        <if test="name != null">
+            and p.name = #{name}
         </if>
         order by w.is_leader desc, p.name_pinyin
     </select>
@@ -44,14 +50,14 @@
         from person p,
         work_resume w
         where p.id = w.person_id
-        <if test="queryDto.depId != null">
-            and w.dep_id = #{queryDto.depId}
+        <if test="depId != null">
+            and w.dep_id = #{depId}
         </if>
-        <if test="queryDto.state != null">
-            and w.state = #{queryDto.state}
+        <if test="state != null">
+            and w.state = #{state}
         </if>
-        <if test="queryDto.name != null">
-            and p.name = #{queryDto.name}
+        <if test="name != null">
+            and p.name = #{name}
         </if>
     </select>
 </mapper>