瀏覽代碼

优化pom文件;
修改根据岗位/角色查询人员接口;

lixing 4 年之前
父節點
當前提交
8cbbbaeff1

+ 0 - 13
fm-person/pom.xml

@@ -15,16 +15,11 @@
     <version>3.0.0</version>
     <packaging>jar</packaging>
 
-    <properties>
-        <platform.version>1.0.0</platform.version>
-    </properties>
-
     <dependencies>
         <!-- 配置中心(包含注册中心) -->
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>integrated-config-client</artifactId>
-            <version>${platform.version}</version>
         </dependency>
 
         <!-- 日志 -->
@@ -37,14 +32,12 @@
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>integrated-ribbon-spring-boot-starter</artifactId>
-            <version>${platform.version}</version>
         </dependency>
 
         <!-- swagger -->
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>integrated-swagger2-spring-boot-starter</artifactId>
-            <version>${platform.version}</version>
         </dependency>
 
 <!--        &lt;!&ndash; prometheus &ndash;&gt;-->
@@ -68,26 +61,20 @@
         <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
-            <version>2.5</version>
         </dependency>
 
         <!-- gson json,java对象互转 -->
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
-            <version>2.8.6</version>
         </dependency>
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>fm-translate</artifactId>
-            <version>3.0.0</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>fm-mybatis</artifactId>
-            <version>3.0.0</version>
-            <scope>compile</scope>
         </dependency>
 
     </dependencies>

+ 2 - 2
fm-person/src/main/java/com/persagy/fm/person/controller/PersonController.java

@@ -290,9 +290,9 @@ public class PersonController {
 
     @ApiOperation(value = "根据岗位/角色主键查询员工信息")
     @PostMapping("/queryByRoleIds")
-    public CommonResult<PageList<ResponsePersonListItemVO>> pageQueryByRoleIds(
+    public CommonResult<PageList<AccountInfoVO>> pageQueryByRoleIds(
             @Valid @RequestBody PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO) {
-        IPage<ResponsePersonListItemVO> pagedList = personQueryService.pageQueryByRoleIds(pageQueryByRoleIdsDTO);
+        IPage<AccountInfoVO> pagedList = personQueryService.pageQueryByRoleIds(pageQueryByRoleIdsDTO);
         return ResultHelper.multi(pagedList);
     }
 }

+ 50 - 0
fm-person/src/main/java/com/persagy/fm/person/model/ConvertPersonTool.java

@@ -3,10 +3,12 @@ package com.persagy.fm.person.model;
 import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.person.jms.model.AccountCreateMsg;
 import com.persagy.fm.person.model.dto.*;
+import com.persagy.fm.person.model.vo.AccountInfoVO;
 import com.persagy.fm.person.model.vo.ResponsePersonItemVO;
 import com.persagy.fm.person.model.vo.ResponsePersonListItemVO;
 import com.persagy.fm.person.model.vo.SimplePersonListItemVO;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountByRoleIdsDTO;
 import com.persagy.fm.saas.account.model.dto.UpdateSaasAccountDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
 import com.persagy.fm.saas.project.model.SaasProject;
@@ -218,5 +220,53 @@ public interface ConvertPersonTool {
      * @version V1.0 2021/4/29 4:51 下午
      */
     PageQueryByDepIdsDTO convert2PageQueryByDepIdsDTO(PageQueryByDepIdDTO pageQueryByDepIdDTO);
+
+    /**
+     * 根据角色id查询人员列表入参转换为根据角色id查询账号列表入参
+     *
+     * @param pageQueryByRoleIdsDTO 根据角色id查询人员列表入参
+     * @return 根据角色id查询账号列表入参
+     * @author lixing
+     * @version V1.0 2021/5/8 5:30 下午
+     */
+    PageQuerySaasAccountByRoleIdsDTO convert2PageQuerySaasAccountByRoleIdsDTO(
+            PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO);
+
+    /**
+     * 转换为账号信息
+     *
+     * @param saasAccountListItemVO 账号vo类
+     * @param person 人员实体
+     * @return 账号信息
+     * @author lixing
+     * @version V1.0 2021/5/8 6:03 下午
+     */
+    @Mappings({
+            @Mapping(source = "saasAccountListItemVO.id", target = "accountId"),
+            @Mapping(source = "saasAccountListItemVO.username", target = "username"),
+            @Mapping(source = "saasAccountListItemVO.headPortrait", target = "headPortrait"),
+            @Mapping(source = "saasAccountListItemVO.phoneNum", target = "phoneNum"),
+            @Mapping(source = "saasAccountListItemVO.mail", target = "mail"),
+            @Mapping(source = "saasAccountListItemVO.valid", target = "valid", qualifiedByName = "accountValid2Str"),
+            @Mapping(source = "person.id", target = "personId"),
+            @Mapping(source = "person.name", target = "name"),
+    })
+    AccountInfoVO convert2AccountInfoVO(SaasAccountListItemVO saasAccountListItemVO, Person person);
+
+    /**
+     * 账号是否有效转换为字符串
+     *
+     * @param valid 账号是否有效(0/1)
+     * @return 有效/失效
+     * @author lixing
+     * @version V1.0 2021/5/8 6:25 下午
+     */
+    @Named("valid2Str")
+    default String accountValid2Str(Integer valid){
+      if(1 == valid){
+       return "有效";
+      } 
+      return "失效";
+    }
 }
 

+ 49 - 0
fm-person/src/main/java/com/persagy/fm/person/model/vo/AccountInfoVO.java

@@ -0,0 +1,49 @@
+package com.persagy.fm.person.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.persagy.fm.common.model.vo.SimpleObjVO;
+import com.persagy.fm.department.model.vo.DepSimpleObjVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-03-15 17:20:33
+ */
+@Data
+@ApiModel
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AccountInfoVO {
+    @ApiModelProperty("人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private String personId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("账号id")
+    @JsonIgnore
+    private String accountId;
+
+    @ApiModelProperty("账号")
+    private String username;
+
+    @ApiModelProperty(value = "头像")
+    private String headPortrait;
+
+    @ApiModelProperty(value = "手机号码")
+    private String phoneNum;
+
+    @ApiModelProperty(value = "邮箱")
+    private String mail;
+
+    @ApiModelProperty(value = "账号状态")
+    private String valid;
+}

+ 2 - 1
fm-person/src/main/java/com/persagy/fm/person/service/IPersonQueryService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.person.model.Person;
 import com.persagy.fm.person.model.dto.*;
+import com.persagy.fm.person.model.vo.AccountInfoVO;
 import com.persagy.fm.person.model.vo.LatestJobNumberVO;
 import com.persagy.fm.person.model.vo.ResponsePersonItemVO;
 import com.persagy.fm.person.model.vo.ResponsePersonListItemVO;
@@ -241,7 +242,7 @@ public interface IPersonQueryService {
      * @author lixing
      * @version V1.0 2021/4/30 10:27 上午
      */
-    IPage<ResponsePersonListItemVO> pageQueryByRoleIds(PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO);
+    IPage<AccountInfoVO> pageQueryByRoleIds(PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO);
 
     /**
      * 根据账号id列表分页查询

+ 46 - 7
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonQueryServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.persagy.fm.common.constant.enums.BoolEnum;
 import com.persagy.fm.common.constant.enums.ValidEnum;
 import com.persagy.fm.common.model.vo.SimpleObjVO;
+import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.department.model.Department;
 import com.persagy.fm.department.model.vo.DepSimpleObjVO;
 import com.persagy.fm.department.service.IDepartmentService;
@@ -15,12 +16,14 @@ import com.persagy.fm.person.dao.PersonMapper;
 import com.persagy.fm.person.model.ConvertPersonTool;
 import com.persagy.fm.person.model.Person;
 import com.persagy.fm.person.model.dto.*;
+import com.persagy.fm.person.model.vo.AccountInfoVO;
 import com.persagy.fm.person.model.vo.LatestJobNumberVO;
 import com.persagy.fm.person.model.vo.ResponsePersonItemVO;
 import com.persagy.fm.person.model.vo.ResponsePersonListItemVO;
 import com.persagy.fm.person.service.IPersonQueryService;
 import com.persagy.fm.profession.service.IProfessionService;
 import com.persagy.fm.saas.account.constant.enums.ExpireTypeEnum;
+import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountByRoleIdsDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
 import com.persagy.fm.saas.account.service.ISaasAccountService;
 import com.persagy.fm.saas.accountproject.model.SaasAccountProject;
@@ -39,6 +42,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -552,22 +556,57 @@ public class PersonQueryServiceImpl extends ServiceImpl<PersonMapper, Person>
     }
 
     @Override
-    public IPage<ResponsePersonListItemVO> pageQueryByRoleIds(PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO) {
-        IPage<ResponsePersonListItemVO> result = new Page<>();
+    public IPage<AccountInfoVO> pageQueryByRoleIds(PageQueryByRoleIdsDTO pageQueryByRoleIdsDTO) {
+        IPage<AccountInfoVO> result = new Page<>();
+        personServiceCommonTool.emptyPageResult(result);
 
         // 角色id为空,返回空结果
         List<String> roleIds = pageQueryByRoleIdsDTO.getRoleIds();
         if (CollectionUtils.isEmpty(roleIds)) {
-            personServiceCommonTool.emptyPageResult(result);
             return result;
         }
 
         // 根据角色id查询角色关联的账号
-        List<String> accountIds = saasAccountRoleService.queryAccountIdByRoleIdList(roleIds);
+        PageQuerySaasAccountByRoleIdsDTO pageQuerySaasAccountByRoleIdsDTO = ConvertPersonTool.INSTANCE.
+                convert2PageQuerySaasAccountByRoleIdsDTO(pageQueryByRoleIdsDTO);
+        pageQuerySaasAccountByRoleIdsDTO.setPageInfo();
+        FmResponseContent<List<SaasAccountListItemVO>> pageResult = saasAccountService.pageQueryAccountsByRoleIds(
+                pageQuerySaasAccountByRoleIdsDTO);
+        Integer total = pageResult.getCount();
+
+        if (total <= 0) {
+            return result;
+        }
 
-        // 根据账号查询账号关联的人员
-        // TODO: 2021/4/30
-        return pageQueryByAccountIds(accountIds);
+        List<SaasAccountListItemVO> content = pageResult.getContent();
+        List<String> accountIds = Lists.newArrayList();
+        if (!CollectionUtils.isEmpty(content)) {
+            accountIds = content.stream().map(SaasAccountListItemVO::getId).collect(Collectors.toList());
+        }
+
+        // 查询人员信息
+        QueryWrapper<Person> queryWrapper = personServiceCommonTool.getDefaultPersonQueryWrapper();
+        queryWrapper.in(Person.PROP_ACCOUNT_ID, accountIds);
+        List<Person> persons = list(queryWrapper);
+        Map<String, Person> accountIdPersonMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(persons)) {
+            accountIdPersonMap = persons.stream().collect(Collectors.toMap(
+                    Person::getAccountId,
+                    person -> person,
+                    (k1, k2) -> k1
+            ));
+        }
+
+        List<AccountInfoVO> accountInfoVOS = Lists.newArrayList();
+        for (SaasAccountListItemVO saasAccountListItemVO : content) {
+            Person person = accountIdPersonMap.get(saasAccountListItemVO.getId());
+            AccountInfoVO accountInfoVO = ConvertPersonTool.INSTANCE.convert2AccountInfoVO(saasAccountListItemVO, person);
+            accountInfoVOS.add(accountInfoVO);
+        }
+
+        result.setRecords(accountInfoVOS);
+        result.setTotal(total);
+        return result;
     }
 
     @Override

+ 2 - 1
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceCommonTool.java

@@ -9,6 +9,7 @@ import com.persagy.fm.person.constant.enums.CertificateTypeEnum;
 import com.persagy.fm.person.constant.enums.PersonTypeEnum;
 import com.persagy.fm.person.model.Person;
 import com.persagy.fm.person.model.vo.ResponsePersonListItemVO;
+import org.apache.poi.ss.formula.functions.T;
 import org.assertj.core.util.Lists;
 import org.springframework.stereotype.Component;
 
@@ -87,7 +88,7 @@ public class PersonServiceCommonTool {
      * @author lixing
      * @version V1.0 2021/4/30 10:32 上午
      */
-    public void emptyPageResult(IPage<ResponsePersonListItemVO> result) {
+    public void emptyPageResult(IPage result) {
         result.setRecords(Lists.newArrayList());
         result.setTotal(0);
     }

+ 12 - 0
fm-person/src/main/java/com/persagy/fm/saas/account/client/SaasAccountClient.java

@@ -34,6 +34,18 @@ public interface SaasAccountClient {
     FmResponseContent<List<SaasAccountListItemVO>> querySaasAccountPageList(@RequestBody PageQuerySaasAccountDTO pageQuerySaasAccountDTO);
 
     /**
+     * 分页查询角色关联的账号列表
+     *
+     * @param pageQuerySaasAccountByRoleIdsDTO 查询条件
+     * @return 账号列表
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    @PostMapping("/account/queryRoleAccountPage")
+    FmResponseContent<List<SaasAccountListItemVO>> pageQueryAccountsByRoleIds(
+            @RequestBody PageQuerySaasAccountByRoleIdsDTO pageQuerySaasAccountByRoleIdsDTO);
+
+    /**
      * 创建账号
      *
      * @param addSaasAccountDTO 创建账号入参

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

@@ -0,0 +1,20 @@
+package com.persagy.fm.saas.account.model.dto;
+
+import com.persagy.fm.saas.common.model.dto.SaasBasePageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 查询运维平台账号入参
+ *
+ * @author lixing
+ * @version V1.0 2021/3/23 11:55 上午
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class PageQuerySaasAccountByRoleIdsDTO extends SaasBasePageDTO {
+    private String valid;
+    private List<String> roleIds;
+}

+ 12 - 0
fm-person/src/main/java/com/persagy/fm/saas/account/service/ISaasAccountService.java

@@ -1,5 +1,6 @@
 package com.persagy.fm.saas.account.service;
 
+import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.saas.account.model.dto.*;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
 
@@ -33,6 +34,17 @@ public interface ISaasAccountService {
     List<SaasAccountListItemVO> querySaasAccountList(PageQuerySaasAccountDTO pageQuerySaasAccountDTO);
 
     /**
+     * 分页查询角色关联的账号列表
+     *
+     * @param pageQuerySaasAccountByRoleIdsDTO 查询条件
+     * @return 账号列表
+     * @author lixing
+     * @version V1.0 2021/3/23 11:57 上午
+     */
+    FmResponseContent<List<SaasAccountListItemVO>> pageQueryAccountsByRoleIds(
+            PageQuerySaasAccountByRoleIdsDTO pageQuerySaasAccountByRoleIdsDTO);
+
+    /**
      * 根据账号id列表查询账号信息
      *
      * @param accountIds 账号id列表

+ 6 - 0
fm-person/src/main/java/com/persagy/fm/saas/account/service/impl/SaasAccountServiceImpl.java

@@ -93,4 +93,10 @@ public class SaasAccountServiceImpl implements ISaasAccountService {
                 querySaasAccountPageList(pageQuerySaasAccountDTO);
         return listFmResponseContent.getContent();
     }
+
+    @Override
+    public FmResponseContent<List<SaasAccountListItemVO>> pageQueryAccountsByRoleIds(
+            PageQuerySaasAccountByRoleIdsDTO pageQuerySaasAccountByRoleIdsDTO) {
+        return saasAccountClient.pageQueryAccountsByRoleIds(pageQuerySaasAccountByRoleIdsDTO);
+    }
 }