瀏覽代碼

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

huangyuan 5 年之前
父節點
當前提交
ce56d317cf

+ 0 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/dao/dto/request/PlatformCalendarRequest.java

@@ -30,11 +30,6 @@ public class PlatformCalendarRequest {
      */
     private String monthBeginStr;
 
-    /**
-     * 当前时间
-     */
-    private String nowStr;
-
     /**
      * 月末时间 年月日
      */

+ 4 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/homepage/service/PlatformCalendarService.java

@@ -12,7 +12,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -105,8 +104,11 @@ public class PlatformCalendarService {
         //获取年检记录,并将年检记录转化为 天 -> 年检数据(电梯 -> 年检数据)
         Map<Integer, Map<Long, List<AnnualInspectionDataModel>>> dayToAnnualInspection = getDayToAnnualInspection(
                 platformCalendarRequest);
+        //获取请求日期的天数
+        int monthDayNum = CommonUtil.getLastDayNumOfMonthFromDateStr(
+                platformCalendarRequest.getRequestDateDayStr(), CommonConstants.PlatformCalendarConstants.REQUEST_DATE_FORMAT);
         //循环设置每日的数据
-        for (int day = 1; day <= LocalDate.now().getDayOfMonth(); day++) {
+        for (int day = 1; day <= monthDayNum; day++) {
             addCalendarLift(dayToCalendarLift, dayToMtRecord, dayToMtPlan, dayToEmergencyRecord, dayToAnnualInspection, day);
         }
         return dayToCalendarLift;

+ 81 - 35
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -144,30 +144,17 @@ public class LoginService implements ILoginService {
 
     @Override
     public RestResponse changeTeam(HttpServletRequest request, UserRequest userRequest) {
-        Long companyId = userRequest.getCompanyId();
         UserResponse userResponse = new UserResponse();
-        //校验团队信息
-        MaintenanceCompany maintenanceCompany = maintenanceCompanyService.getById(companyId);
-        if (maintenanceCompany == null) {
-            return RestResponse.success(ApiConstants.RESULT_SUCCESS, "切换团队不存在");
+        //设置token信息
+        userResponse.setToken(userRequest.getToken());
+        //校验用户信息,并设置用户信息
+        RestResponse restResponse = checkAndSetChangeInfo(userRequest,userResponse);
+        //如果校验信息不为空返回校验信息
+        if (restResponse != null) {
+            return restResponse;
         }
-        maintenanceCompany.setCurrentTeamFlag(true);
-        userResponse.setMaintenanceCompany(maintenanceCompany);
-        UserRole userRole = userRoleService.getOne(new QueryWrapper<UserRole>()
-                .eq("company_id", companyId)
-                .eq("user_id", userRequest.getUserId())
-        );
-        if (userRole != null) {
-            Role role = roleService.getById(userRole.getRoleId());
-            userResponse.setRole(role);
-            //获取菜单信息
-            if (role != null) {
-                //设置菜单树
-                List<Menu> menuTree = roleMenuService.getMenuTree(role.getId());
-                userResponse.setMenus(menuTree);
-            }
-        }
-        //更新redis中数据值
+        //更新redis中的信息数据
+        updateUserInfoInRedis(userResponse);
         return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "切换团队成功");
     }
 
@@ -189,6 +176,19 @@ public class LoginService implements ILoginService {
         return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "用户登录成功");
     }
 
+    @Override
+    public RestResponse verifySmsCode(String mobile, String inputSmsCode) {
+        Object smsCode = redisTemplate.opsForValue().get(mobile + AliConstants.SmsConstants.SMS_CODE_FIELD);
+        if (smsCode != null) {
+            if (!(smsCode.equals(inputSmsCode))) {
+                return RestResponse.fail(ApiConstants.RESULT_ERROR, "短信验证码输入有误");
+            }
+        } else {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "验证码过期,请重新获取验证码");
+        }
+        return null;
+    }
+
     /**
      * @param
      * @return
@@ -212,19 +212,6 @@ public class LoginService implements ILoginService {
         return userResponse;
     }
 
-    @Override
-    public RestResponse verifySmsCode(String mobile, String inputSmsCode) {
-        Object smsCode = redisTemplate.opsForValue().get(mobile + AliConstants.SmsConstants.SMS_CODE_FIELD);
-        if (smsCode != null) {
-            if (!(smsCode.equals(inputSmsCode))) {
-                return RestResponse.fail(ApiConstants.RESULT_ERROR, "短信验证码输入有误");
-            }
-        } else {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "验证码过期,请重新获取验证码");
-        }
-        return null;
-    }
-
     /**
      * @param userResponse 用户信息
      * @return map 用户信息map
@@ -258,4 +245,63 @@ public class LoginService implements ILoginService {
         currentUserInfoMap.put(ApiConstants.CURRENT_PERMISSION_URL, permissionUrl);
         return currentUserInfoMap;
     }
+
+    /**
+     * @param userRequest  请求参数
+     * @param userResponse 用户信息
+     * @return
+     * @description 检验并设置更换团队中角色的信息
+     * @date 2020/2/26 1:53 下午
+     */
+    private RestResponse checkAndSetChangeInfo(UserRequest userRequest, UserResponse userResponse) {
+        //校验团队信息
+        MaintenanceCompany maintenanceCompany = maintenanceCompanyService.getById(userRequest.getCompanyId());
+        if (maintenanceCompany == null) {
+            return RestResponse.success(ApiConstants.RESULT_SUCCESS, "要切换的团队不存在");
+        }
+        maintenanceCompany.setCurrentTeamFlag(true);
+        userResponse.setMaintenanceCompany(maintenanceCompany);
+        //获取用户在切换团队的角色信息
+        UserRole userRole = userRoleService.getOne(new QueryWrapper<UserRole>()
+                .eq("company_id", userRequest.getCompanyId())
+                .eq("user_id", userRequest.getUserId())
+        );
+        //校验角色信息
+        if (userRole == null) {
+            return RestResponse.success(ApiConstants.RESULT_ERROR, "用户在要切换的团队没有角色,无法切换");
+        }
+        Role role = roleService.getById(userRole.getRoleId());
+        if (role == null) {
+            return RestResponse.success(ApiConstants.RESULT_ERROR, "用户在要切换的团队没有角色,无法切换");
+        }
+        userResponse.setRole(role);
+        //获取角色对应的菜单信息
+        List<Menu> menuTree = roleMenuService.getMenuTree(role.getId());
+        //校验菜单信息
+        if (menuTree == null || menuTree.size() <= 0) {
+            return RestResponse.success(ApiConstants.RESULT_ERROR, "切换团队中用户没有任何菜单,无法切换");
+        }
+        userResponse.setMenus(menuTree);
+        return null;
+    }
+
+    /**
+     * @param
+     * @return
+     * @description 更新用户在redis中的信息
+     * @date 2020/2/26 12:52 下午
+     */
+    private void updateUserInfoInRedis(UserResponse userResponse) {
+        //从redis中获取用户信息
+        String mobile = (String) redisTemplate.opsForValue().get(userResponse.getToken());
+        Map<String, Object> userInfoMap = JSONUtil.parseObj(redisTemplate.opsForValue().get(mobile));
+        //设置用户角色id
+        userInfoMap.put(ApiConstants.CURRENT_ROLE_ID, userResponse.getRole().getId());
+        //设置用户公司id
+        userInfoMap.put(ApiConstants.CURRENT_COMPANY_ID, userResponse.getMaintenanceCompany().getId());
+        //设置用户菜单信息
+        userInfoMap.put(ApiConstants.CURRENT_PERMISSION_URL, menuService.menuToUrl(userResponse.getMenus()));
+        //重新将用户信息放入到redis中
+        redisTemplate.opsForValue().set(mobile, JSONUtil.toJsonPrettyStr(userInfoMap), 30L, TimeUnit.MINUTES);
+    }
 }

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

@@ -269,9 +269,11 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
             List<UserInfo> userInfoList = (List<UserInfo>) userInfoService.listByIds(userIdList);
             Map<Long, UserInfo> userIdToUserInfo = ProjectUtils.attrToObjMap(userInfoList, "userId", null);
             //获取团队用户角色信息
-            Map<Long, Role> userIdToRole = roleService.getUserIdToRoleByUserIdsAndCompanyId(userIdList, mtCompanyUserRequest.getCompanyId());
+            Map<Long, Role> userIdToRole = roleService.getUserIdToRoleByUserIdsAndCompanyId(userIdList,
+                    mtCompanyUserRequest.getCompanyId());
             //获取团队用户操作证信息
-            Map<Long, LiftCertificate> userIdToLiftCertificate = projectService.getUserIdToLiftCertificateByUserIdListAndCompanyId(userIdList, mtCompanyUserRequest.getCompanyId());
+            Map<Long, LiftCertificate> userIdToLiftCertificate = projectService
+                    .getUserIdToLiftCertificateByUserIdListAndCompanyId(userIdList, mtCompanyUserRequest.getCompanyId());
             for (MtCompanyUser mtCompanyUser : mtCompanyUserList) {
                 AppCompanyUserResponse appCompanyUserResponse = new AppCompanyUserResponse();
                 //设置用户信息

+ 29 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/utils/CommonUtil.java

@@ -94,7 +94,7 @@ public class CommonUtil {
     public static void setMonthDate(PlatformCalendarRequest platformCalendarRequest) {
         String dateStr = platformCalendarRequest.getRequestDateStr();
         //如果请求时间为空,就设置带天的请求时间
-        if(StringUtils.isBlank(dateStr)) {
+        if (StringUtils.isBlank(dateStr)) {
             dateStr = platformCalendarRequest.getRequestDateDayStr();
         }
         Map<String, String> dateTypeToDateValue = CommonUtil.getMonthDate(dateStr,
@@ -102,9 +102,6 @@ public class CommonUtil {
         //设置月初时间
         platformCalendarRequest.setMonthBeginStr(dateTypeToDateValue.get(
                 CommonConstants.PlatformCalendarConstants.MONTH_BEGIN_DATE));
-        //设置当期时间
-        platformCalendarRequest.setNowStr(LocalDate.now().format(DateTimeFormatter.ofPattern(
-                CommonConstants.PlatformCalendarConstants.TRANS_DATE_FORMAT)));
         //设置月末时间
         platformCalendarRequest.setMonthEndStr(dateTypeToDateValue.get(
                 CommonConstants.PlatformCalendarConstants.MONTH_END_DATE));
@@ -121,7 +118,8 @@ public class CommonUtil {
         LocalDate transDate = LocalDate.parse(timeDateStr, DateTimeFormatter.ofPattern(timeFormat));
         Map<Integer, Map<Integer, Long>> dayToLiftStatusToNum = new HashMap<>();
         if (transDate != null) {
-            for (int monthDay = 1; monthDay <= transDate.getMonthValue(); monthDay++) {
+            int dayNum = getLastDayNumOfMonth(transDate);
+            for (int monthDay = 1; monthDay <= dayNum; monthDay++) {
                 Map<Integer, Long> liftStatusToNum = new HashMap<>();
                 for (int liftStatus : CommonConstants.PlatformCalendarConstants.LIFT_STATUS_ARRAY) {
                     liftStatusToNum.put(liftStatus, 0L);
@@ -205,4 +203,30 @@ public class CommonUtil {
         return dayToDataMap;
     }
 
+    /**
+     * @param
+     * @return
+     * @description 获取某月的天数
+     */
+    public static int getLastDayNumOfMonth(LocalDate date) {
+        if (date != null) {
+            return date.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
+        }
+        return 0;
+    }
+
+    /**
+     * @param
+     * @return
+     * @description 获取给点日期字符串指定格式的月的天数
+     * @date 2020/2/28 2:57 下午
+     */
+    public static int getLastDayNumOfMonthFromDateStr(String dateStr, String format) {
+        if (StringUtils.isNotBlank(dateStr)) {
+            LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(format));
+            return getLastDayNumOfMonth(date);
+        }
+        return 0;
+    }
+
 }