Przeglądaj źródła

Merge branch 'huangyuan-user' of lift-manager/lift-server into develop

huangyuan 5 lat temu
rodzic
commit
747a4d6dfc

+ 2 - 0
lift-business-service/src/main/resources/application-prod.yml

@@ -47,6 +47,8 @@ spring:
 
 #aliyun OSS服务配置信息,加载到SystemConfiguration
 aliyun:
+  # 外网地址 oss-cn-hangzhou-internal.aliyuncs.com
+  # Bucket 域名 ty-oss-file.oss-cn-hangzhou-internal.aliyuncs.com 可以使用https://ty-oss-file.oss-cn-hangzhou-internal.aliyuncs.com
   oss:
     endpoint: http://oss-cn-hangzhou.aliyuncs.com
     bucketName: ty-oss-file

+ 16 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/LiftUser.java

@@ -0,0 +1,16 @@
+package cn.com.ty.lift.system.user.dao.entity.model;
+
+import lombok.Data;
+
+/**
+ * @author huangyuan
+ * @date 2020/6/30
+ * @description
+ */
+@Data
+public class LiftUser {
+    //电梯id
+    private Long liftId;
+    //用户id
+    private Long userId;
+}

+ 2 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/MtCompanyUserResponse.java

@@ -20,4 +20,6 @@ public class MtCompanyUserResponse {
     private Integer certificateStatus;//操作证状态
     private String job;//用户职位
     private Integer repairFlag;//是否急修工
+    private Long connectedProjectNum = 0L;//关联项目数量
+    private Long connectedLiftNum = 0L;//关联电梯数量
 }

+ 30 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/ProjectUserRequest.java

@@ -0,0 +1,30 @@
+package cn.com.ty.lift.system.user.dao.entity.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author huangyuan
+ * @date 2020/6/30
+ * @description
+ */
+@Data
+public class ProjectUserRequest {
+    /**
+     * 用户id
+     */
+    private Long companyId;
+    /**
+     * 用户id集合
+     */
+    private List<Long> userIdList;
+
+    public ProjectUserRequest() {
+    }
+
+    public ProjectUserRequest(Long companyId, List<Long> userIdList) {
+        this.companyId = companyId;
+        this.userIdList = userIdList;
+    }
+}

+ 17 - 4
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/UserAccountMapper.java

@@ -1,10 +1,7 @@
 package cn.com.ty.lift.system.user.dao.mapper;
 
 import cn.com.ty.lift.system.user.dao.entity.UserAccount;
-import cn.com.ty.lift.system.user.dao.entity.model.ProjectInfo;
-import cn.com.ty.lift.system.user.dao.entity.model.ProjectUser;
-import cn.com.ty.lift.system.user.dao.entity.model.PropertyUserRequest;
-import cn.com.ty.lift.system.user.dao.entity.model.RegionInfo;
+import cn.com.ty.lift.system.user.dao.entity.model.*;
 import cn.com.xwy.boot.mybatis.MyBatisMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -73,4 +70,20 @@ public interface UserAccountMapper extends BaseMapper<UserAccount> {
      * @date 2020-01-06 17:14
      */
     Long deleteProjectUser(PropertyUserRequest propertyUserRequest);
+
+    /**
+     * @param projectUserRequest 用户id集合
+     * @return 用户项目信息
+     * @description 获取用户关联的项目信息
+     * @date 2020/5/2 10:54 下午
+     */
+    List<ProjectUser> getProjectUserList(ProjectUserRequest projectUserRequest);
+
+    /**
+     * @param projectUserRequest 用户id集合
+     * @return 用户项目信息
+     * @description 获取用户关联的电梯信息
+     * @date 2020/5/2 10:54 下午
+     */
+    List<LiftUser> getLiftUserList(ProjectUserRequest projectUserRequest);
 }

+ 17 - 4
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IProjectService.java

@@ -1,9 +1,6 @@
 package cn.com.ty.lift.system.user.service;
 
-import cn.com.ty.lift.system.user.dao.entity.model.LiftCertificate;
-import cn.com.ty.lift.system.user.dao.entity.model.ProjectInfo;
-import cn.com.ty.lift.system.user.dao.entity.model.ProjectUser;
-import cn.com.ty.lift.system.user.dao.entity.model.PropertyUserRequest;
+import cn.com.ty.lift.system.user.dao.entity.model.*;
 
 import java.util.List;
 import java.util.Map;
@@ -102,4 +99,20 @@ public interface IProjectService {
      * @date 2020/5/2 10:54 下午
      */
     ProjectInfo getProjectById(Long projectId);
+
+    /**
+     * @param projectUserRequest 用户id集合
+     * @return 用户项目信息
+     * @description 获取用户关联的项目信息
+     * @date 2020/5/2 10:54 下午
+     */
+    List<ProjectUser> getProjectUserList(ProjectUserRequest projectUserRequest);
+
+    /**
+     * @param projectUserRequest 用户id集合
+     * @return 用户项目信息
+     * @description 获取用户关联的电梯信息
+     * @date 2020/5/2 10:54 下午
+     */
+    List<LiftUser> getLiftUserList(ProjectUserRequest projectUserRequest);
 }

+ 40 - 6
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MtCompanyUserService.java

@@ -31,8 +31,10 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author huangyuan
@@ -232,22 +234,36 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
         );
         List<MtCompanyUser> mtCompanyUserList = mtCompanyUserPage.getRecords();
         if (mtCompanyUserList != null && mtCompanyUserList.size() > 0) {
-
-            /** 用户信息区域 **/
+            //用户信息区域
             //获取用户id集合
-            List<Long> userIdList = ProjectUtils.getAttrList(mtCompanyUserList, "userId", null);
+            List<Long> userIdList = mtCompanyUserList.stream().map(MtCompanyUser::getUserId).collect(Collectors.toList());
             Map<Long, UserResponse> userIdToUserResponse = userService.getUserResponseByUserIdList(userIdList);
 
-            /** 角色信息区域 **/
+            // 角色信息区域
             //获取用户角色关联关系
             Map<Long, Role> userIdToRole = roleService.getUserIdToRoleByUserIdsAndCompanyId(userIdList, mtCompanyUserRequest.getCompanyId());
 
-            /** 操作证信息区域 **/
+            //操作证信息区域
             //获取用户操作证信息
             List<LiftCertificate> liftCertificateList = projectService.getLiftCertificateList(new ProjectUser(mtCompanyUserRequest.getCompanyId(), userIdList));
             Map<Long, LiftCertificate> userIdToLiftCertificate = ProjectUtils.attrToObjMap(liftCertificateList, "userId", null);
 
-            /** 公司用户信息组装区域 **/
+            //关联项目信息
+            List<ProjectUser> projectUserList = projectService.getProjectUserList(new ProjectUserRequest(
+                    mtCompanyUserRequest.getCompanyId(), userIdList));
+            Map<Long, List<ProjectUser>> userIdToProjectUserList = new HashMap<>();
+            if (projectUserList != null && projectUserList.size() > 0) {
+                userIdToProjectUserList = projectUserList.stream().collect(Collectors.groupingBy(ProjectUser::getUserId));
+            }
+            //关联电梯信息
+            List<LiftUser> liftUserList = projectService.getLiftUserList(new ProjectUserRequest(
+                    mtCompanyUserRequest.getCompanyId(), userIdList));
+            Map<Long, List<LiftUser>> userIdToLiftUserList = new HashMap<>();
+            if (liftUserList != null && liftUserList.size() > 0) {
+                userIdToLiftUserList = liftUserList.stream().collect(Collectors.groupingBy(LiftUser::getLiftId));
+            }
+
+            //公司用户信息组装区域
             //组装公司用户信息
             for (MtCompanyUser mtCompanyUser : mtCompanyUserList) {
                 MtCompanyUserResponse mtCompanyUserResponse = new MtCompanyUserResponse();
@@ -274,6 +290,24 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
                 if (liftCertificate != null) {
                     mtCompanyUserResponse.setCertificateStatus(liftCertificate.getStatus());
                 }
+                //设置用户关联的项目数
+                if (userIdToProjectUserList.size() > 0) {
+                    List<ProjectUser> projectUsers = userIdToProjectUserList.get(mtCompanyUser.getUserId());
+                    long projectNum = 0L;
+                    if (projectUsers != null) {
+                        projectNum = projectUsers.size();
+                    }
+                    mtCompanyUserResponse.setConnectedProjectNum(projectNum);
+                }
+                //设置用户关联的电梯数量
+                if (userIdToLiftUserList.size() > 0) {
+                    List<LiftUser> liftUsers = userIdToLiftUserList.get(mtCompanyUser.getUserId());
+                    long liftNum = 0L;
+                    if(liftUsers != null) {
+                        liftNum = liftUsers.size();
+                    }
+                    mtCompanyUserResponse.setConnectedProjectNum(liftNum);
+                }
                 mtCompanyUserResponseList.add(mtCompanyUserResponse);
             }
         }

+ 10 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/ProjectService.java

@@ -131,4 +131,14 @@ public class ProjectService implements IProjectService {
         return null;
     }
 
+    @Override
+    public List<ProjectUser> getProjectUserList(ProjectUserRequest projectUserRequest) {
+        return userAccountMapper.getProjectUserList(projectUserRequest);
+    }
+
+    @Override
+    public List<LiftUser> getLiftUserList(ProjectUserRequest projectUserRequest) {
+        return userAccountMapper.getLiftUserList(projectUserRequest);
+    }
+
 }

+ 27 - 0
lift-system-service/src/main/resources/application-web.yml

@@ -0,0 +1,27 @@
+spring:
+  datasource:
+    url: jdbc:mysql://221.234.44.30:3306/rdsliftmanager?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+    username: kaifa
+    password: Kaifa123!@#
+    driver-class-name: com.mysql.cj.jdbc.Driver
+
+  #redis缓存配置
+  redis:
+    database: 11 #数据库索引,默认为0
+    host: 221.234.44.30 #服务器地址
+    port: 6379 #端口
+    password: lianhechuangxiang!@ #验证密码
+    jedis:
+      pool:
+        max-active: 8 #最大连接数
+        max-idle: 8 #最大空闲链接
+        max-wait: 20000ms
+        min-idle: 0
+
+#aliyun OSS服务配置信息,加载到SystemConfiguration
+aliyun:
+  oss:
+    endpoint: http://oss-cn-beijing.aliyuncs.com
+    bucketName: temp15827479607
+    accessKeyId: LTAI4FkSqFZa6LH9HqAsVott
+    accessKeySecret: w7GXuh5tf1hduQuZ2AzT3a4q14BI1i

+ 32 - 0
lift-system-service/src/main/resources/mapper/UserAccountMapper.xml

@@ -134,4 +134,36 @@
         and
             project_id = #{projectId}
     </delete>
+
+    <!-- 获取用户关联的项目信息 -->
+    <select id="getProjectUserList" parameterType="cn.com.ty.lift.system.user.dao.entity.model.ProjectUserRequest"
+            resultType="cn.com.ty.lift.system.user.dao.entity.model.ProjectUser">
+        select pu.project_id as projectId,
+               pu.user_id as userId
+        from project_user pu
+        where pu.mt_company_id = #{companyId}
+        <if test="userIdList != null">
+            and pu.user_id in
+            <foreach item="item" index="index" collection="userIdList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 获取用户关联电梯信息 -->
+    <select id="getLiftUserList" parameterType="cn.com.ty.lift.system.user.dao.entity.model.ProjectUserRequest"
+            resultType="cn.com.ty.lift.system.user.dao.entity.model.LiftUser">
+        select plr.lift_id as liftId,
+        plr.worker_id as userId
+        from project_lift_relevance plr
+        where
+        plr.mt_company_id = #{companyId}
+        <if test="userIdList != null">
+            and plr.worker_id in
+            <foreach item="item" index="index" collection="userIdList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
 </mapper>