Browse Source

超管登录接口

zsf 1 year ago
parent
commit
5514e8f083

+ 1 - 1
src/main/java/com/rf/psychological/filter/JWTInterceptorConfig.java

@@ -31,7 +31,7 @@ public class JWTInterceptorConfig implements WebMvcConfigurer {
         String[] webLogin = new String[]{"/user/authCode", "/user/saveUser", "/user/webLogin", "/user/webUpdatePassword", "/user/*/checkUser"};
         String[] automaticImport = new String[]{"/category/loadCategory", "/subjectInfo", "/importTest", "/subjectInfo/update"};
         String[] wxPay = new String[]{"/api/wx-pay/native/notify","/api/wx-pay/refunds/notify"};
-        String[] systemApi = new String[]{"/system/login","/system/forgotPassword","/system/registerUser"};
+        String[] systemApi = new String[]{"/system/login","/system/adminLogin","/system/forgotPassword","/system/registerUser"};
         registry.addInterceptor(jwtInterceptor)
                 .addPathPatterns("/**")
                 .excludePathPatterns("/", "/index**", "/error")

+ 0 - 88
src/main/java/com/rf/psychological/filter/JWTInterceptorPublicConfig.java

@@ -1,88 +0,0 @@
-package com.rf.psychological.filter;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-/**
- * @author lpf
- * @description:
- * @date 2021/12/2822:06
- */
-@Configuration
-@Profile("public")
-public class JWTInterceptorPublicConfig implements WebMvcConfigurer {
-
-    @Autowired
-    private UserCheckInterceptor userCheckInterceptor;
-
-    @Autowired
-    private JWTInterceptor jwtInterceptor;
-
-
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        //定义排除swagger访问的路径配置
-        String[] swaggerExcludes = new String[]{"/swagger-ui.html", "/swagger-resources/**", "/csrf", "/webjars/**"};
-        String[] institutionLogin = new String[]{"/user/login", "/institution/loginV2", "/admin/login", "/superAdmin/login"};
-        String[] webLogin = new String[]{"/user/authCode", "/user/saveUser", "/user/webLogin", "/user/webUpdatePassword", "/user/*/checkUser"};
-        String[] automaticImport = new String[]{"/category/loadCategory", "/subjectInfo", "/importTest", "/subjectInfo/update"};
-        //公网版需要直接显示量表认知任务以及类别
-        String[] temp = new String[]{"/category/getCognizeCategoryList", "/category/getCategoryList", "/subjectInfo/getSubjectListByAuth", "/subjectInfo/getCognizeListByAuth"};
-        String[] wxPay = new String[]{"/api/wx-pay/native/notify","/api/wx-pay/refunds/notify"};
-        String[] systemApi = new String[]{"/system/login","/system/forgotPassword","/system/registerUser"};
-
-        registry.addInterceptor(jwtInterceptor)
-                .addPathPatterns("/**")
-                .excludePathPatterns("/", "/index**", "/error")
-                .excludePathPatterns(institutionLogin)
-                .excludePathPatterns(automaticImport)
-                .excludePathPatterns(wxPay)
-                .excludePathPatterns(systemApi)
-                .excludePathPatterns("/user/saveUserV2", "/institution/saveUser")
-                .excludePathPatterns(webLogin)
-                .excludePathPatterns("/user/LANSaveUserInfo", "/user/LANLogin", "/user/LANUpdatePassword")
-                .excludePathPatterns("/file/**", "/result/download/**")
-                .excludePathPatterns("/download/**")
-                .excludePathPatterns("/apk/**")
-                .excludePathPatterns("/device/**")
-                .excludePathPatterns("/userImport")
-                .excludePathPatterns("/test/token")
-                .excludePathPatterns(swaggerExcludes)
-                .excludePathPatterns(temp)
-                .excludePathPatterns("/favicon.ico")
-                .excludePathPatterns("/druid/**")
-                .excludePathPatterns("/static/**");//排除静态资源
-        registry.addInterceptor(userCheckInterceptor)
-                .addPathPatterns("/**")
-                .excludePathPatterns("/", "/index.html", "/error")
-                .excludePathPatterns(institutionLogin)
-                .excludePathPatterns(automaticImport)
-                .excludePathPatterns(wxPay)
-                .excludePathPatterns(systemApi)
-                .excludePathPatterns("/user/saveUserV2", "/institution/saveUser")
-                .excludePathPatterns(webLogin)
-                .excludePathPatterns("/user/LANSaveUserInfo", "/user/LANLogin", "/user/LANUpdatePassword")
-                .excludePathPatterns("/file/**", "/result/download/**")
-                .excludePathPatterns("/download/**")
-                .excludePathPatterns("/apk/**")
-                .excludePathPatterns("/device/**")
-                .excludePathPatterns("/userImport")
-                .excludePathPatterns("/test/token")
-                .excludePathPatterns(swaggerExcludes)
-                .excludePathPatterns(temp)
-                .excludePathPatterns("/favicon.ico")
-                .excludePathPatterns("/druid/**")
-                .excludePathPatterns("/static/**");//排除静态资源
-    }
-
-    @Override
-    public void addResourceHandlers(ResourceHandlerRegistry registry) {
-        registry.addResourceHandler("/static/**")
-                .addResourceLocations("classpath:/static/");
-    }
-}

+ 0 - 74
src/main/java/com/rf/psychological/institution/rest/InstitutionController.java

@@ -43,68 +43,13 @@ import java.util.List;
 @RequestMapping("/institution")
 @Api(tags = "机构模块")
 public class InstitutionController extends BaseController {
-
     @Autowired
     private InstitutionService institutionService;
-
     @Autowired
     private UserService userService;
-
     @Autowired
     private UserRecordService userRecordService;
 
-    @SafetyProcess
-@OperationLogAnnotation
-    @PostMapping("/loginV2")
-    @ApiOperation(value = "机构管理员登录")
-    public Result AdminUserLoginV2(@RequestBody String json, @ApiIgnore HttpSession session) throws Exception {
-
-        String data = AesEncryptUtils.decrypt(JSONObject.parseObject(json).getString("data"));
-        JSONObject jsonObject = JSONObject.parseObject(data);
-        if (!jsonObject.containsKey("phone") || !jsonObject.containsKey("password") || !jsonObject.containsKey("institutionNo")) {
-            return fail("", "用户名或密码或机构编号不能为空");
-        }
-        String password = (String) jsonObject.get("password");
-        String phone = (String) jsonObject.get("phone");
-        String institutionNo = (String) jsonObject.get("institutionNo");
-        if (password.equals("") || phone.equals("") || institutionNo.equals("")) {
-            return fail("", "用户名或密码或机构名不能为空");
-        }
-        UserEntity institutionUserEntity = this.userService.findPhoneAndInstitutionNo(phone,institutionNo);
-        if (institutionUserEntity != null) {
-            //生成token
-            HashMap<String, String> payload = new HashMap<>();
-            payload.put("userPhone", institutionUserEntity.getPhone());
-            payload.put("userId", institutionUserEntity.getId());
-            payload.put("petName", institutionUserEntity.getPetName());
-            payload.put("institutionNo", institutionUserEntity.getInstitutionNo());
-            payload.put("type", "admin");
-            String token = JWTUtil.getToken(payload);
-            // 创建返回的json对象
-            JSONObject resultJson = new JSONObject();
-            resultJson.put("institutionEntity", institutionUserEntity);
-            resultJson.put("type", "admin");
-            if (password.equals(institutionUserEntity.getPassword())) {
-                if (UserStatus.PASS.getType().equals(institutionUserEntity.getUserStatus()) ||
-                        UserStatus.UPDATE.getType().equals(institutionUserEntity.getUserStatus())) {
-                    //当用户状态变为重置密码状态时,再重新登录后变为正常使用状态
-                    if (UserStatus.UPDATE.getType().equals(institutionUserEntity.getUserStatus())) {
-                        userService.updateUserStatusByPhone(phone, UserStatus.PASS.getType(), institutionNo);
-                    }
-                    resultJson.put("token", token);
-                    return success(resultJson);
-                } else
-                    return fail(resultJson, "用户未通过审核");
-            } else {
-                return fail(resultJson, "用户名或密码错误");
-            }
-        } else {
-            return fail("", "不存在此用户");
-        }
-
-    }
-
-
     /**
      * 获取机构列表
      *
@@ -119,9 +64,7 @@ public class InstitutionController extends BaseController {
         if (pageSize == 0) {
             pageSize = 20;
         }
-       // List<InstitutionEntity> allInstitutionByName = this.institutionService.findAllInstitutionByName(pageNum, pageSize, searchKey);
         Page<InstitutionEntity> institutionEntities = this.institutionService.findAllInstitution(pageNum,pageSize,searchKey);
-        //long total = institutionEntities.getTotalElements();
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("data", institutionEntities.getContent());
         jsonObject.put("allNum", institutionEntities.getTotalElements());
@@ -143,7 +86,6 @@ public class InstitutionController extends BaseController {
             pageSize = 20;
         }
         Page<UserEntity> userEntities = userService.findUserByPhoneOrInstitutionName(pageNum,pageSize,searchKey);
-       // List<InstitutionUserEntity> allByName = institutionUserService.findAllByName(pageNum, pageSize, searchKey);
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("institutionUserList", userEntities.getContent());
         jsonObject.put("allNum", userEntities.getTotalElements());
@@ -165,7 +107,6 @@ public class InstitutionController extends BaseController {
             pageSize = 20;
         }
         Page<UserEntity> userEntities = userService.findUserByPhoneOrNameInInstitutionNo(pageNum,pageSize,institutionNo,searchKey, UserRole.ADMIN);
-        //List<InstitutionUserEntity> allByName = institutionUserService.findAllInAdminByInNo(pageNum, pageSize, institutionNo, searchKey);
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("institutionUserList", userEntities.getContent());
         jsonObject.put("allNum", userEntities.getTotalElements());
@@ -265,21 +206,6 @@ public class InstitutionController extends BaseController {
             pageSize = 20;
         }
         String beginFormat = "", endFormat = "";
-        /*log.info("开始时间:" + beginTime);
-        log.info("结束时间:" + endTime);
-        if (!beginTime.equals("") && !endTime.equals("")) {
-            beginTime = beginTime + " " + "00:00:00";
-            endTime = endTime + " " + "24:00:00";
-            //格式化为数据库的时间样式
-            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
-            Date beginDate = simpleDateFormat1.parse(beginTime);
-            Date endDate = simpleDateFormat1.parse(endTime);
-            beginFormat = simpleDateFormat2.format(beginDate);
-            endFormat = simpleDateFormat2.format(endDate);
-        }
-        log.info("格式化后为beginFormat:" + beginFormat);
-        log.info("格式化后为endFormat:" + endFormat);*/
         int num;
         List<InstitutionRecordingDTO> institutionUserRecordingList = this.userRecordService.getInstitutionUserRecording(pageNum, pageSize, type, institutionNo, searchKey, beginFormat, endFormat);
         num = this.userRecordService.allCountByInstitutionNo(institutionNo, type, searchKey, "", "");

+ 3 - 2
src/main/java/com/rf/psychological/user/dao/repository/UserRepository.java

@@ -150,8 +150,7 @@ public interface UserRepository extends BaseRepository<UserEntity, String> {
                     "and if(?3 is not null and ?3!='',(t_user_info.pet_name like CONCAT('%',?3,'%') or phone like concat('%',?3,'%')) , 1=1)", nativeQuery = true)
     Page<UserEntity> findUserNoTestPlan(String institutionNo, String testPlanId, String searchKey, Pageable pageable);
 
-    @Query(value = "SELECT * FROM t_user_info WHERE id in(SELECT u_id FROM t_test_plan_user WHERE test_plan_id = :id) ", nativeQuery = true)
-    List<UserEntity> getuserListByMPhone(@Param("id") String id);
+
 
 
     /**
@@ -195,4 +194,6 @@ public interface UserRepository extends BaseRepository<UserEntity, String> {
     @Modifying(clearAutomatically = true)
     @Query(value = "update t_institution_user set user_status = :userStatus where phone = :phone and institution_no=:institutionNo", nativeQuery = true)
     void updateUserStatusByPhone(@Param("phone") String phone, @Param("userStatus") String userStatus, @Param("institutionNo") String institutionNo);
+
+    UserEntity findByPhoneAndPasswordAndRoleType(String phone, String password, String roleType);
 }

+ 35 - 0
src/main/java/com/rf/psychological/user/rest/SystemController.java

@@ -185,6 +185,41 @@ public class SystemController extends BaseController {
         }
     }
 
+    @SafetyProcess
+    @ApiOperation(value = "管理员登录接口",notes = "data参数包括:phone:账号, password:密码")
+    @PostMapping("/adminLogin")
+    public Result adminLogin(HttpServletRequest request,@RequestBody String jsonParams){
+        try {
+            JSONObject jsonObject =JSONObject.parseObject( AesEncryptUtils.decrypt(JSONObject.parseObject(jsonParams).getString("data")));
+            if (!jsonObject.containsKey("phone") || !jsonObject.containsKey("password") ) {
+                return fail("", "账号或密码不能为空");
+            }
+            String password = jsonObject.getString("password");
+            String phone = jsonObject.getString("phone");
+            String roleType = jsonObject.getString("roleType");
+            if (StringUtils.isEmpty(password) || StringUtils.isEmpty( phone )) {
+                return fail("", "账号或密码不能为空");
+            }
+            UserEntity userEntity = this.userService.findByPhoneAndPassword(phone, password,roleType);
+            if (userEntity == null) {
+                return fail(null, "账号或密码错误");
+            }
+            //生成token
+            userEntity.setPassword(null);
+            String token = JWTUtil.getTokenByUserInfo(userEntity);
+            // 创建返回的json对象
+            JSONObject resultJson = new JSONObject();
+            resultJson.put("user", userEntity);
+            resultJson.put("type", userEntity.getRoleType());
+            resultJson.put("token", token);
+            request.getSession().setAttribute("user", userEntity);
+            return success(resultJson);
+        }catch (Exception e){
+            e.printStackTrace();
+            return fail();
+        }
+    }
+
 
     /**
      * 忘记密码

+ 9 - 1
src/main/java/com/rf/psychological/user/service/UserService.java

@@ -148,7 +148,7 @@ public interface UserService {
      */
     UserEntity findModelPhone(String phone, String institutionNo);
 
-    List<UserEntity> getuserListByMPhone(String id);
+
 
 
     /**
@@ -214,4 +214,12 @@ public interface UserService {
     void updateUserStatusByPhone(String phone, String userStatus, String institutionNo);
 
     UserEntity findPhoneAndInstitutionNo(String phone, String institutionNo);
+
+    /**
+     * 根据账号和密码登录
+     * @param phone
+     * @param password
+     * @return
+     */
+    UserEntity findByPhoneAndPassword(String phone,String password,String roleType);
 }

+ 6 - 4
src/main/java/com/rf/psychological/user/service/impl/UserServiceImpl.java

@@ -213,10 +213,7 @@ public class UserServiceImpl implements UserService {
         return one.orElse(null);
     }
 
-    @Override
-    public List<UserEntity> getuserListByMPhone(String id) {
-        return this.userRepository.getuserListByMPhone(id);
-    }
+
 
     /**
      * 查询分组编号==0 的用户所在的组织编号,用于定时任务
@@ -330,6 +327,11 @@ public class UserServiceImpl implements UserService {
         return userRepository.findByPhoneAndInstitutionNo(phone,institutionNo);
     }
 
+    @Override
+    public UserEntity findByPhoneAndPassword(String phone, String password,String roleType) {
+        return userRepository.findByPhoneAndPasswordAndRoleType(phone,password,roleType);
+    }
+
     /**
      * 改变用户状态
      * @param phone 账号