Browse Source

申请列表条数添加

黄远 5 years ago
parent
commit
27071c01d8
14 changed files with 221 additions and 27 deletions
  1. 20 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/constants/CommonConstants.java
  2. 36 5
      lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MtCompanyAttestationServiceImpl.java
  3. 12 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/PropertyUserController.java
  4. 7 1
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/UserApplicationController.java
  5. 17 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/ApplyPageResponse.java
  6. 1 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/PropertyUserRequest.java
  7. 8 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/UserAccountMapper.java
  8. 8 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IProjectService.java
  9. 8 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IPropertyUserService.java
  10. 15 2
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IUserApplicationService.java
  11. 5 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/ProjectService.java
  12. 9 0
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/PropertyUserService.java
  13. 55 9
      lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/UserApplicationService.java
  14. 20 10
      lift-system-service/src/main/resources/mapper/UserAccountMapper.xml

+ 20 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/constants/CommonConstants.java

@@ -1,5 +1,7 @@
 package cn.com.ty.lift.system.constants;
 
+import cn.com.ty.lift.common.constants.ApiConstants;
+
 /**
  * @author huangyuan
  * @date 2019-12-17
@@ -15,4 +17,22 @@ public class CommonConstants {
      * 返回信息字段常量
      */
     public static final String RETURN_MSG_FIELD = "message";
+
+    /**
+     * 用户申请状态码数组
+     */
+    public static final int [] USER_APPLICATION_STATUS = {
+            ApiConstants.ApplicationConstants.APPLY_WAIT,
+            ApiConstants.ApplicationConstants.APPLY_PASS,
+            ApiConstants.ApplicationConstants.APPLY_FAIL
+    };
+
+    /**
+     * 企业申请状态数组
+     */
+    public static final int [] COMPANY_ATTESTATION_STATUS = {
+            ApiConstants.CompanyConstants.MAINTENANCE_WAIT_CERTIFICATE,
+            ApiConstants.CompanyConstants.MAINTENANCE_PASS,
+            ApiConstants.CompanyConstants.MAINTENANCE_FAIL
+    };
 }

+ 36 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MtCompanyAttestationServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.ty.lift.system.settings.service.impl;
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.utils.PojoUtils;
 import cn.com.ty.lift.common.utils.ProjectUtils;
+import cn.com.ty.lift.system.constants.CommonConstants;
 import cn.com.ty.lift.system.settings.dao.entity.MaintenanceCompany;
 import cn.com.ty.lift.system.settings.dao.entity.MtCompanyAttestation;
 import cn.com.ty.lift.system.settings.dao.entity.model.CompanyAttestationRequest;
@@ -13,11 +14,9 @@ import cn.com.ty.lift.system.settings.service.IMaintenanceCompanyService;
 import cn.com.ty.lift.system.settings.service.IMtCompanyAttestationService;
 import cn.com.ty.lift.system.user.dao.entity.UserAccount;
 import cn.com.ty.lift.system.user.dao.entity.UserInfo;
+import cn.com.ty.lift.system.user.dao.entity.model.ApplyPageResponse;
 import cn.com.ty.lift.system.user.dao.entity.model.MenuRequest;
-import cn.com.ty.lift.system.user.service.IMenuService;
-import cn.com.ty.lift.system.user.service.IRoleService;
-import cn.com.ty.lift.system.user.service.IUserAccountService;
-import cn.com.ty.lift.system.user.service.IUserInfoService;
+import cn.com.ty.lift.system.user.service.*;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -62,6 +61,9 @@ public class MtCompanyAttestationServiceImpl extends ServiceImpl<MtCompanyAttest
     @Autowired
     private IUserInfoService userInfoService;
 
+    @Autowired
+    private IUserApplicationService userApplicationService;
+
     @Override
     @Transactional
     public RestResponse applyAudit(CompanyAttestationRequest companyAttestationRequest) {
@@ -131,6 +133,17 @@ public class MtCompanyAttestationServiceImpl extends ServiceImpl<MtCompanyAttest
 
     @Override
     public RestResponse applyList(CompanyAttestationRequest companyAttestationRequest) {
+        //获取不同状态的总和
+        List<MtCompanyAttestation> mtCompanyAttestationListResult = this.list(new QueryWrapper<MtCompanyAttestation>()
+                .select("is_Certificated")
+                //过滤没有发起认证的
+                .ne("is_Certificated", ApiConstants.CompanyConstants.MAINTENANCE_NOT_CERTIFICATE)
+        );
+        //封装申请消息
+        ApplyPageResponse applyPageResponse = new ApplyPageResponse();
+        packCompanyApplyStatusCount(mtCompanyAttestationListResult, applyPageResponse);
+
+        //封装具体信息
         Long currentUserId = companyAttestationRequest.getCurrentUserId();
         if ((ApiConstants.CompanyConstants.MAINTENANCE_NOT_CERTIFICATE == companyAttestationRequest.getIsCertificated())) {
             //所有管理员都可以查看待审核的信息
@@ -174,7 +187,25 @@ public class MtCompanyAttestationServiceImpl extends ServiceImpl<MtCompanyAttest
             }
             mtCompanyAttestationPage.setRecords(companyAttestationResponseList);
         }
-        return RestResponse.success(mtCompanyAttestationPage, ApiConstants.RESULT_SUCCESS, "获取公司申请信息成功");
+        applyPageResponse.setPage(mtCompanyAttestationPage);
+        return RestResponse.success(applyPageResponse, ApiConstants.RESULT_SUCCESS, "获取公司申请信息成功");
+    }
+
+    /**
+     * @param
+     * @return
+     * @description 封装企业申请消息对应条数
+     * @date 2020-01-06 23:17
+     */
+    private void packCompanyApplyStatusCount(List<MtCompanyAttestation> mtCompanyAttestationListResult, ApplyPageResponse applyPageResponse) {
+        Map<Integer, Long> statusToCount = userApplicationService.getApplyStatusToCountMap(mtCompanyAttestationListResult,
+                CommonConstants.COMPANY_ATTESTATION_STATUS, "isCertificated");
+        //待审核
+        applyPageResponse.setApplyWaitCount(statusToCount.get(ApiConstants.CompanyConstants.MAINTENANCE_WAIT_CERTIFICATE));
+        //审核通过
+        applyPageResponse.setApplyPassCount(statusToCount.get(ApiConstants.CompanyConstants.MAINTENANCE_PASS));
+        //审核未通过
+        applyPageResponse.setApplyFailCount(statusToCount.get(ApiConstants.CompanyConstants.MAINTENANCE_FAIL));
     }
 
     /***

+ 12 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/PropertyUserController.java

@@ -4,6 +4,7 @@ import cn.com.ty.lift.system.user.dao.entity.model.PropertyUserRequest;
 import cn.com.ty.lift.system.user.service.IPropertyUserService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -29,4 +30,15 @@ public class PropertyUserController {
     public RestResponse list(PropertyUserRequest propertyUserRequest) {
         return propertyUserService.list(propertyUserRequest);
     }
+
+    /**
+     * @param
+     * @return
+     * @description 取消权限
+     * @date 2020-01-06 16:45
+     */
+    @PostMapping("/cancelPermission")
+    public RestResponse cancelPermission(PropertyUserRequest propertyUserRequest) {
+        return propertyUserService.cancelPermission(propertyUserRequest);
+    }
 }

+ 7 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/UserApplicationController.java

@@ -48,8 +48,14 @@ public class UserApplicationController {
         return userApplicationService.apply(userApplyRequest, ApiConstants.ApplicationConstants.APPLY_TYPE_TEAM);
     }
 
+    /**
+     * @param
+     * @return
+     * @description 申请项目
+     * @date 2020-01-06 16:26
+     */
     @PostMapping("/applyProject")
-    public RestResponse applyProject(@RequestBody UserApplyRequest userApplyRequest){
+    public RestResponse applyProject(@RequestBody UserApplyRequest userApplyRequest) {
         return userApplicationService.apply(userApplyRequest, ApiConstants.ApplicationConstants.APPLY_TYPE_PROJECT);
     }
 

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

@@ -0,0 +1,17 @@
+package cn.com.ty.lift.system.user.dao.entity.model;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.Data;
+
+/**
+ * @author huangyuan
+ * @date 2020-01-06
+ * @description 申请消息返回体
+ */
+@Data
+public class ApplyPageResponse {
+    private long applyWaitCount;//待审核数量
+    private long applyPassCount;//审核通过数量
+    private long applyFailCount;//审核不通过数量
+    private IPage page;//分页数据
+}

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

@@ -13,6 +13,7 @@ import java.util.List;
 public class PropertyUserRequest {
     private String queryCondition;//查询条件
     private Long companyId;//当前所在公司id
+    private Long userId;//用户id
     private List<Long> userIdList;//用户id集合
     private Long pageNum;//页数
     private Long pageSize;//每页的条数

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

@@ -65,4 +65,12 @@ public interface UserAccountMapper extends BaseMapper<UserAccount> {
      * @date 2020-01-06 13:57
      */
     List<RegionInfo> getRegionInfoList(List<Long> regionIdList);
+
+    /**
+     * @param
+     * @return
+     * @description 删除项目
+     * @date 2020-01-06 17:14
+     */
+    Long deleteProjectUser(PropertyUserRequest propertyUserRequest);
 }

+ 8 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IProjectService.java

@@ -86,4 +86,12 @@ public interface IProjectService {
      * @date 2020-01-06 12:43
      */
     Map<Long, ProjectInfo> getProjectIdToProjectByProjectIdList(List<Long> projectIdList);
+
+    /**
+     * @description  删除项目用户
+     * @date 2020-01-06 17:13
+     * @param
+     * @return
+     */
+    Long deleteProjectUser(PropertyUserRequest propertyUserRequest);
 }

+ 8 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IPropertyUserService.java

@@ -16,4 +16,12 @@ public interface IPropertyUserService {
      * @date 2020-01-05 15:54
      */
     RestResponse list(PropertyUserRequest propertyUserRequest);
+
+    /**
+     * @param
+     * @return
+     * @description 取消权限
+     * @date 2020-01-06 16:45
+     */
+    RestResponse cancelPermission(PropertyUserRequest propertyUserRequest);
 }

+ 15 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IUserApplicationService.java

@@ -5,6 +5,9 @@ import cn.com.ty.lift.system.user.dao.entity.model.UserApplyRequest;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 用户申请表 服务类
@@ -16,8 +19,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IUserApplicationService extends IService<UserApplication> {
 
     /**
-     * @param  userApplyRequest
-     * @param applyType 申请类型
+     * @param userApplyRequest
+     * @param applyType        申请类型
      * @return
      * @description 申请加入团队
      * @date 2019-12-13 16:42
@@ -47,4 +50,14 @@ public interface IUserApplicationService extends IService<UserApplication> {
      * @date 2019-12-17 22:38
      */
     RestResponse applyList(UserApplyRequest userApplyRequest);
+
+    /**
+     * @param applyResultList 结果集合
+     * @param applyStatusArray 申请状态数组
+     * @param statusField 状态字段
+     * @return
+     * @description 封装不同申请状态的条数
+     * @date 2020-01-06 22:27
+     */
+    Map<Integer, Long> getApplyStatusToCountMap(List applyResultList, int[] applyStatusArray, String statusField);
 }

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

@@ -110,4 +110,9 @@ public class ProjectService implements IProjectService {
         return projectIdToProjectInfo;
     }
 
+    @Override
+    public Long deleteProjectUser(PropertyUserRequest propertyUserRequest) {
+        return userAccountMapper.deleteProjectUser(propertyUserRequest);
+    }
+
 }

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

@@ -78,4 +78,13 @@ public class PropertyUserService implements IPropertyUserService {
         }
         return RestResponse.success();
     }
+
+    @Override
+    public RestResponse cancelPermission(PropertyUserRequest propertyUserRequest) {
+        Long deleteCount = projectService.deleteProjectUser(propertyUserRequest);
+        if(deleteCount == 0){
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "操作失败");
+        }
+        return RestResponse.success(ApiConstants.RESULT_SUCCESS, "操作成功");
+    }
 }

+ 55 - 9
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/UserApplicationService.java

@@ -2,13 +2,11 @@ package cn.com.ty.lift.system.user.service.impl;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.utils.ProjectUtils;
+import cn.com.ty.lift.system.constants.CommonConstants;
 import cn.com.ty.lift.system.user.dao.entity.MtCompanyUser;
 import cn.com.ty.lift.system.user.dao.entity.UserApplication;
 import cn.com.ty.lift.system.user.dao.entity.UserRole;
-import cn.com.ty.lift.system.user.dao.entity.model.ProjectUser;
-import cn.com.ty.lift.system.user.dao.entity.model.UserApplyRequest;
-import cn.com.ty.lift.system.user.dao.entity.model.UserApplyResponse;
-import cn.com.ty.lift.system.user.dao.entity.model.UserResponse;
+import cn.com.ty.lift.system.user.dao.entity.model.*;
 import cn.com.ty.lift.system.user.dao.mapper.UserApplicationMapper;
 import cn.com.ty.lift.system.user.service.*;
 import cn.com.ty.lift.system.utils.CommonUtil;
@@ -23,10 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -107,6 +102,10 @@ public class UserApplicationService extends ServiceImpl<UserApplicationMapper, U
         UserApplication userApplication = this.getById(userApplyRequest.getId());
         //设置申请状态为审核不通过
         userApplication.setStatus(ApiConstants.ApplicationConstants.APPLY_FAIL);
+        //设置处理时间
+        userApplication.setDealDate(LocalDateTime.now());
+        //处理人id
+        userApplication.setDealUserId(userApplication.getUserId());
         this.updateById(userApplication);
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "操作成功");
     }
@@ -119,7 +118,16 @@ public class UserApplicationService extends ServiceImpl<UserApplicationMapper, U
         if (StringUtils.isNotBlank(userApplyRequest.getQueryCondition())) {
             userQueryIdList = userService.getIdListByQueryCondition(userApplyRequest.getQueryCondition());
         }
+        //获取所有状态的申请信息集合
+        List<UserApplication> userApplicationListResult = this.list(new QueryWrapper<UserApplication>()
+                .select("status")
+                .eq("mt_company_id", userApplyRequest.getCompanyId())
+        );
+        //封装不同状态的条数信息
+        ApplyPageResponse applyPageResponse = new ApplyPageResponse();
+        packUserApplicationStatusCount(userApplicationListResult, applyPageResponse);
 
+        //封装具体信息
         List<UserApplyResponse> userApplyResponseList = new ArrayList<>();
         IPage userApplicationPage = new Page(userApplyRequest.getPageNum(), userApplyRequest.getPageSize());
         userApplicationPage = this.page(userApplicationPage, new QueryWrapper<UserApplication>()
@@ -155,7 +163,44 @@ public class UserApplicationService extends ServiceImpl<UserApplicationMapper, U
             }
         }
         userApplicationPage.setRecords(userApplyResponseList);
-        return RestResponse.success(userApplicationPage, ApiConstants.RESULT_SUCCESS, "获取申请信息成功");
+        //设置分页数据
+        applyPageResponse.setPage(userApplicationPage);
+        return RestResponse.success(applyPageResponse, ApiConstants.RESULT_SUCCESS, "获取申请信息成功");
+    }
+
+    @Override
+    public Map<Integer, Long> getApplyStatusToCountMap(List userApplicationResult, int[] applyStatusArray, String statusField) {
+        Map<Integer, Long> statusToCount = new HashMap<>();
+        Map<Integer, List<UserApplication>> statusToUserApplication = ProjectUtils.attrToListMap(userApplicationResult,
+                statusField, null);
+        //获取不同状态对应数量
+        for (int status : applyStatusArray) {
+            List<UserApplication> userApplicationList = statusToUserApplication.get(status);
+            Long count = 0L;
+            if (userApplicationList != null) {
+                count = Long.valueOf(userApplicationList.size());
+            }
+            statusToCount.put(status, count);
+        }
+        return statusToCount;
+    }
+
+    /**
+     * @param
+     * @return
+     * @description 封装用户申请信息状态条数
+     * @date 2020-01-06 23:12
+     */
+    private void packUserApplicationStatusCount(List<UserApplication> userApplicationListResult, ApplyPageResponse applyPageResponse) {
+        //获取状态对应的数量
+        Map<Integer, Long> statusToApplyCount = this.getApplyStatusToCountMap(userApplicationListResult,
+                CommonConstants.USER_APPLICATION_STATUS, "status");
+        //待审核
+        applyPageResponse.setApplyWaitCount(statusToApplyCount.get(ApiConstants.ApplicationConstants.APPLY_WAIT));
+        //审核通过
+        applyPageResponse.setApplyPassCount(statusToApplyCount.get(ApiConstants.ApplicationConstants.APPLY_PASS));
+        //审核未通过
+        applyPageResponse.setApplyFailCount(statusToApplyCount.get(ApiConstants.ApplicationConstants.APPLY_FAIL));
     }
 
     /**
@@ -250,4 +295,5 @@ public class UserApplicationService extends ServiceImpl<UserApplicationMapper, U
         //保存项目信息
         projectService.saveProjectUser(projectUser);
     }
+
 }

+ 20 - 10
lift-system-service/src/main/resources/mapper/UserAccountMapper.xml

@@ -76,9 +76,9 @@
     <select id="getProjectUserList" parameterType="cn.com.ty.lift.system.user.dao.entity.model.ProjectUser"
             resultType="cn.com.ty.lift.system.user.dao.entity.model.ProjectUser">
         select
-        project_id as projectId,
-        user_id as userId,
-        user_role as userRole
+            project_id as projectId,
+            user_id as userId,
+            user_role as userRole
         <include refid="projectUserQueryCondition"/>
     </select>
 
@@ -94,11 +94,11 @@
     <select id="getProjectInfoList" parameterType="java.util.List"
             resultType="cn.com.ty.lift.system.user.dao.entity.model.ProjectInfo">
         select
-        id as projectId,
-        project_name as projectName,
-        region_id as regionId
+            id as projectId,
+            project_name as projectName,
+            region_id as regionId
         from
-        project
+            project
         where
         <choose>
             <when test="projectIdList != null">
@@ -117,10 +117,10 @@
     <select id="getRegionInfoList" parameterType="java.util.List"
             resultType="cn.com.ty.lift.system.user.dao.entity.model.RegionInfo">
         select
-        id as regionId,
-        area_name as areaName
+            id as regionId,
+            area_name as areaName
         from
-        region
+            region
         where
         <choose>
             <when test="regionIdList != null">
@@ -134,4 +134,14 @@
             </otherwise>
         </choose>
     </select>
+
+    <!-- 删除项目用户,条件:用户id,项目id-->
+    <delete id="deleteProjectUser" parameterType="cn.com.ty.lift.system.user.dao.entity.model.PropertyUserRequest">
+        delete from
+            project_user
+        where
+            user_id = #{userId}
+        and
+            project_id #{projectId}
+    </delete>
 </mapper>