From 937daff0ebc1aa16a852d5a86434ab1994d8a02d Mon Sep 17 00:00:00 2001
From: 胡仁荣 <897853850@qq.com>
Date: 星期一, 11 九月 2023 10:41:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/qxueyou/scc/sys/action/LoginController.java |  125 +++++++++++++++++++++++++++--------------
 1 files changed, 81 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java
index 859e5e5..de0c8ba 100644
--- a/src/main/java/com/qxueyou/scc/sys/action/LoginController.java
+++ b/src/main/java/com/qxueyou/scc/sys/action/LoginController.java
@@ -54,12 +54,12 @@
 import io.swagger.annotations.ApiOperation;
 
 /**
- * 娉ㄥ唽controller 鎻愪緵娉ㄥ唽锛岀櫥褰曪紝娉ㄩ攢鏈嶅姟
+ * 娉ㄥ唽controller 鎻愪緵娉ㄥ唽锛屽綍锛屾敞閿�鏈嶅姟
  *
  * @author 寰疯檸
  * @history 2014-11-25 鏂板缓 澶忓痉铏�
  */
-@Api(tags="鐧诲叆鐩稿叧鎺ュ彛")
+@Api(tags="鍏ョ浉鍏虫帴鍙�")
 @Controller
 @CrossOrigin(origins="*",maxAge=3600)
 @EnableConfigurationProperties(SccConfig.class)
@@ -116,6 +116,18 @@
 	@Value("${wx.secret}")
 	private String secret;
 
+	/**
+	 * 鍏紬鍙穉ppID
+	 */
+	@Value("${wx.app.appId}")
+	private String wxappId;
+
+
+	/**
+	 * 鍏紬鍙穝ecret
+	 */
+	@Value("${wx.app.secret}")
+	private String wxsecret;
 
 	public static String UUNUMBER="QXYUUNUMBER";
 
@@ -123,14 +135,25 @@
 	IWechatService wechatService;
 
 	/**
-	 * 寰俊鐧诲綍
+	 * 寰俊褰�
 	 *
 	 * @param uid
 	 * @throws IOException
 	 */
 
+	@PostMapping("/wxAccountsLogin")
+	@ApiOperation("寰俊鍏紬鍙峰綍")
+	@ResponseBody
+	public Result wxAccountsLogin(String code) {
+		JSONObject gettoken = wechatService.gettoken(wxappId, wxsecret);
+		JSONObject OpenId = wechatService.getSessionKeyOrOpenId(code);
+		JSONObject user = wechatService.getUser(gettoken.get("access_token").toString(), OpenId.get("openid").toString());
+		return new Result(true,"鎴愬姛",user);
+	}
+
+
 	@PostMapping("/wxlogin")
-	@ApiOperation("寰俊鐧诲綍")
+	@ApiOperation("寰俊灏忕▼搴忓綍")
 	@ResponseBody
 	public Result wechatLogin(String code,String number) {
 		JSONObject sessionKeyOrOpenId = wechatService.getSessionKeyOrOpenId(code);
@@ -164,12 +187,22 @@
 			String studentSql = "from StuStudent where deleteFlag is false and userId = ? ";
 			List<Object> stuParams =  CollectionUtils.newList(user.getUserId());
 			StuStudent stuStudent = commonDAO.findUnique(studentSql, stuParams, StuStudent.class);
+			CacheParamters param = new CacheParamters();
+			param.setUserId(user.getUserId());
+			param.setCustomRoleValue(user.getEmail());
+			param.setCustomOrgId(user.getImei());
+			param.setCacheIpFlag(true);
+			//		 缂撳瓨鍒拌姹傜嚎绋�
+			UserInfoWrapper wrapper = cacheUserInfo(param, null);
+			// 瀛樺埌redis
+			redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
 			return new Result(true,"鎺堟潈鎴愬姛",CollectionUtils.newObjectMap("user",user,"ClassId",stuStudent.getClassId()));
 		}
 		return phone;
-}
+	}
 
-	@ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "")
+
+	@ApiOperation(value = "鍏ユ帴鍙�", notes = "")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"),
 			@ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"),
@@ -184,8 +217,8 @@
 		// 鏌ヨ鐢ㄦ埛淇℃伅
 		String uuNumber=null;
 		String uuReNumber=null;
-		String hql = "from User where deleteFlag is false and account = ?";
-		List<Object> params =  CollectionUtils.newList(account);
+		String hql = "from User where deleteFlag is false and account = ? and password= ?";
+		List<Object> params =  CollectionUtils.newList(account,password);
 		User user = commonDAO.findUnique(hql,params, User.class);
 		if (user == null ) {
 			return new Result(false, "鐢ㄦ埛璐︽埛銆佸瘑鐮侀敊璇�");
@@ -224,7 +257,7 @@
 		return new Result(true, "楠岃瘉鎴愬姛",CollectionUtils.newObjectMap("uuNumber",uuNumber,"uuReNumber",uuReNumber));
 	}
 
-	@ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "")
+	@ApiOperation(value = "鍏ユ帴鍙�", notes = "")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"),
 			@ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"),
@@ -260,7 +293,7 @@
 		return new Result(true, "楠岃瘉鎴愬姛");
 	}
 
-	@ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "")
+	@ApiOperation(value = "鍏ユ帴鍙�", notes = "")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "uuNumber", value = "uuNumber", required = true, paramType="query", dataType = "String"),
 			@ApiImplicitParam(name = "uuReNumber", value = "uuReNumber", required = true, paramType="query", dataType = "String"),
@@ -294,32 +327,33 @@
 		return new Result(true, "楠岃瘉鎴愬姛");
 	}
 
-	//閫�鍑虹櫥褰� 娓呴櫎session
-	@RequestMapping(value = "khdloginout", method = RequestMethod.POST)
+	//閫�鍑哄綍 娓呴櫎session
+	@RequestMapping(value = "release", method = RequestMethod.GET)
 	@ResponseBody
-	public void khdloginout(HttpServletRequest request, HttpServletResponse response) {
-		System.out.println("娓呴櫎session");
-		HttpSession session = request.getSession();
-		redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY);
-		System.out.println(session.getAttribute("userId"));
-		System.out.println(session.getAttribute("classId"));
-		session.invalidate();
+	public void release(HttpServletRequest request, HttpServletResponse response) {
+//		System.out.println("娓呴櫎session");
+//		HttpSession session = request.getSession();
+//		redisTemplate.delete(UserInfoWrapper.SESSION_USER_INFO_KEY);
+//		System.out.println(session.getAttribute("userId"));
+//		System.out.println(session.getAttribute("classId"));
+		doRelease(request, response);
+//		session.invalidate();
 	}
 
 	/**
-	 * 瀛﹀憳绔櫥褰�
+	 * 瀛﹀憳绔綍
 	 *
 	 * @param account  璐︽埛
 	 * @param password 瀵嗙爜
 	 * @return
 	 */
-	@ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "")
+	@ApiOperation(value = "鍏ユ帴鍙�", notes = "")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"),
 			@ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"),
 			@ApiImplicitParam(name = "organizationId", value = "鏈烘瀯id", required = true, paramType="query", dataType = "String"),
-			@ApiImplicitParam(name = "platForm", value = "鐧诲叆骞冲彴锛坅pp锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"),
-			@ApiImplicitParam(name = "logType", value = "鐧诲叆type锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"),
+			@ApiImplicitParam(name = "platForm", value = "鍏ュ钩鍙帮紙app锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"),
+			@ApiImplicitParam(name = "logType", value = "鍏ype锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"),
 	})
 	@RequestMapping(value = "studentLogin", method = RequestMethod.POST)
 	@ResponseBody
@@ -353,19 +387,19 @@
 	}
 
 	/**
-     * 鍚庡彴鐧诲綍
+     * 鍚庡彴褰�
      *
      * @param account  璐︽埛
      * @param password 瀵嗙爜
      * @return
      */
-    @ApiOperation(value = "鐧诲叆鎺ュ彛", notes = "")
+    @ApiOperation(value = "鍏ユ帴鍙�", notes = "")
     @ApiImplicitParams({
         @ApiImplicitParam(name = "account", value = "璐﹀彿", required = true, paramType="query", dataType = "String"),
         @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, paramType="query", dataType = "String"),
         @ApiImplicitParam(name = "organizationId", value = "鏈烘瀯id", required = true, paramType="query", dataType = "String"),
-        @ApiImplicitParam(name = "platForm", value = "鐧诲叆骞冲彴锛坅pp锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"),
-        @ApiImplicitParam(name = "logType", value = "鐧诲叆type锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"),
+        @ApiImplicitParam(name = "platForm", value = "鍏ュ钩鍙帮紙app锛寃eb锛宷Live锛宲c锛寃eixin锛�", required = true, paramType="query", dataType = "String"),
+        @ApiImplicitParam(name = "logType", value = "鍏ype锛坰tudy瀛﹀憳锛宼eacher鏁欏笀,鍚﹀垯涓哄悗鍙帮級", required = true, paramType="query", dataType = "String"),
     })
     @RequestMapping(value = "platformLogin", method = RequestMethod.POST)
     @ResponseBody
@@ -384,14 +418,17 @@
 			hql = "from User where deleteFlag is false and account = ?";
 			params = CollectionUtils.newList(account);
 		}else if("portal".equals(logType)){
+			hql = "from User where deleteFlag is false and email = ?";
+			params = CollectionUtils.newList(account);
+		}else if("zhyly".equals(logType)){
 			hql = "from User where deleteFlag is false and mobilePhone = ?";
 			params = CollectionUtils.newList(account);
 		}else{
             if(StringUtils.isEmpty(password)) {
 				return new Result(false, "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖");
 			}
-            hql = "from User where deleteFlag is false and account = ? and password = ?";
-            params =  CollectionUtils.newList(account,password);
+            hql = "from User where deleteFlag is false and account = ?";
+            params =  CollectionUtils.newList(account);
         }
 
     	if(StringUtils.isNotEmpty(organizationId)){
@@ -403,12 +440,12 @@
         User user = commonDAO.findUnique(hql,params, User.class);
 
     	if(uuNumber!=null&&!"".equals(uuNumber)&&!"null".equals(uuNumber)){
-    		//鐧诲綍鎴愬姛瀛樺叆user閲岋紝鍒犻櫎session閲岀殑uuNumber锛屼笅涓汉鏃犳硶浣跨敤
+    		//褰曟垚鍔熷瓨鍏ser閲岋紝鍒犻櫎session閲岀殑uuNumber锛屼笅涓汉鏃犳硶浣跨敤
 			user.setEmail(uuNumber);
 //			request.getSession().removeAttribute("uuNumber");
 		}
 //    	if(uuReNumber!=null&&!"".equals(uuReNumber)&&!"null".equals(uuReNumber)){
-//    		//鐧诲綍鎴愬姛瀛樺叆user閲岋紝鍒犻櫎session閲岀殑uuReNumber锛屼笅涓汉鏃犳硶浣跨敤
+//    		//褰曟垚鍔熷瓨鍏ser閲岋紝鍒犻櫎session閲岀殑uuReNumber锛屼笅涓汉鏃犳硶浣跨敤
 //			user.setImei(uuReNumber);
 //			request.getSession().removeAttribute("uuReNumber");
 //		}
@@ -421,7 +458,7 @@
 		String salt = user.getSalt();
 		String newPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes());
 		//姣旇緝鐢ㄦ埛杈撳叆鐨勫瘑鐮佸姞瀵嗗悗鐨勫瓧绗︿覆鏄惁璺熸敞鍐屾椂濉啓鐨勫姞瀵嗗瘑鐮佺浉鍚�
-		if("study".equals(logType) || "portal".equals(logType)){
+		if("study".equals(logType) || "portal".equals(logType) || "adminis".equals(logType)){
 			if (!newPassword.equals(user.getPassword())) {
 				return new Result(false, "鐢ㄦ埛璐︽埛銆佸瘑鐮侀敊璇垨缂哄皯鍑瘉");
 			}
@@ -432,7 +469,7 @@
     }
 
     /**
-     * 鐧诲叆楠岃瘉
+     * 鍏ラ獙璇�
      * @param user
      * @param type
      * @param request
@@ -458,26 +495,26 @@
 		// 瀛樺埌redis
 		redisTemplate.opsForValue().set(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
 		request.getSession().setAttribute(UserInfoWrapper.SESSION_USER_INFO_KEY, wrapper);
-		if ("study".equals(logType) || "portal".equals(logType)) {
+		if ("study".equals(logType) || "portal".equals(logType) || "zhyly".equals(logType)) {
 			/*if (StringUtils.isEmpty(ClientUtils.getClassId()) && user.getRoles() == null) {
 				return new Result(false, "璇ョ敤鎴锋湭鍔犲叆浠讳綍鐝骇鎴栨湭婵�娲伙紝璇疯仈绯荤彮涓讳换");
 			}*/
 
 			if (StringUtils.isEmpty(user.getOrganizationId())) {
-				return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曠櫥鍏�");
+				return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曞叆");
 			}
 			if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) {
 				return new Result(false, "閫夋嫨鐨勬満鏋勯敊璇紝璇风‘璁�");
 			}
 
-			//鍒ゆ柇鏄惁涓哄鐢燂紝濡傛灉鏄鐢燂紝鍒ゆ柇鏄惁宸插喕缁撴垨绉婚櫎锛屽喕缁撴垨绉婚櫎鐨勫鐢熶笉璁╃櫥褰�
+			//鍒ゆ柇鏄惁涓哄鐢燂紝濡傛灉鏄鐢燂紝鍒ゆ柇鏄惁宸插喕缁撴垨绉婚櫎锛屽喕缁撴垨绉婚櫎鐨勫鐢熶笉璁╁綍
 	        StuStudent stu = this.studentService.getStudentByUserId(user.getUserId());
 	        if(stu!=null && (stu.getDeleteFlag() || stu.getStatus().equalsIgnoreCase(StuStudent.STATUS_DEACTIVE))){
 	        	return new Result(false, "鐢ㄦ埛璐︽埛宸茬粡琚喕缁撴垨绉婚櫎");
 	        }
 
 			/*if(StringUtils.isEmpty(wrapper.getInfo(UserInfoWrapper.INF_CLASS_ID))) {
-				return new Result(false, "璇ョ敤鎴锋湭鍔犲叆浠讳綍鐝骇锛屾棤娉曠櫥鍏�");
+				return new Result(false, "璇ョ敤鎴锋湭鍔犲叆浠讳綍鐝骇锛屾棤娉曞叆");
 			}*/
 			// 淇濆瓨鍒皊ession涓�
 			return new Result(true, "success",
@@ -488,16 +525,16 @@
 		}else if("teacher".equals(logType)) {
 			String teacherId = teacherService.getTeacherIdByUserId(user.getUserId());
 			if (StringUtils.isEmpty(teacherId)) {
-				return new Result(false, "璇ヨ处鎴蜂笉鏄�佸笀瑙掕壊锛屾棤娉曠櫥鍏�");
+				return new Result(false, "璇ヨ处鎴蜂笉鏄�佸笀瑙掕壊锛屾棤娉曞叆");
 			}
 			if (StringUtils.isEmpty(user.getOrganizationId())) {
-				return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曠櫥鍏�");
+				return new Result(false, "璇ョ敤鎴蜂笉灞炰簬浠讳綍鏈烘瀯锛屾棤娉曞叆");
 			}
 			if (StringUtils.isNoneBlank(organizationId) && !user.getOrganizationId().equals(organizationId)) {
 				return new Result(false, "閫夋嫨鐨勬満鏋勯敊璇紝璇风‘璁�");
 			}
 
-			//鑾峰彇鐢ㄦ埛瀵瑰簲鐨剆essionId鏄惁涓庝繚瀛樺湪redis涓殑涓�鑷达紝濡傛灉涓嶄竴鑷村垯璺宠浆鍒扮櫥褰曢〉闈�
+			//鑾峰彇鐢ㄦ埛瀵瑰簲鐨剆essionId鏄惁涓庝繚瀛樺湪redis涓殑涓�鑷达紝濡傛灉涓嶄竴鑷村垯璺宠浆鍒板綍椤甸潰
 //			stringRedisTemplate.opsForHash().put(UserInfoWrapper.REDIS_USER_ONLINE_MAP_KEY, user.getUserId(), request.getSession().getId());
 			return new Result(true, "success",
 					CollectionUtils.newObjectMap("userId", user.getUserId(), "userName", user.getName(), "imgPath",
@@ -524,7 +561,7 @@
 	}
 
     /**
-     * 鍚庡彴锛氶��鍑虹櫥褰�,鍚庡彴绯荤粺
+     * 鍚庡彴锛氶��鍑哄綍,鍚庡彴绯荤粺
      *
      * @param account 璐︽埛
      * @return
@@ -537,7 +574,7 @@
     }
 
     /**
-     * 鍚庡彴锛氶��鍑虹櫥褰�,鍚庡彴绯荤粺
+     * 鍚庡彴锛氶��鍑哄綍,鍚庡彴绯荤粺
      *
      * @return
      */
@@ -567,7 +604,7 @@
     }
 
     /**
-     * 鎻掑叆鐧诲綍鏃ュ織
+     * 鎻掑叆褰曟棩蹇�
      *
      * @param request
      * @param lstUser
@@ -615,7 +652,7 @@
     @ApiOperation(value = "淇敼瀵嗙爜", notes = "")
     @ApiImplicitParams({
         @ApiImplicitParam(name = "usedPass", value = "鑰佸瘑鐮�", required = false, paramType="query", dataType = "String"),
-        @ApiImplicitParam(name = "pass", value = "鏂板瘑鐮�", required = false, paramType="query", dataType = "String"),
+        @ApiImplicitParam(name = "pass", value = "鏂板瘑鐮�", required = false, paramType=" query", dataType = "String"),
     })
     @RequestMapping(value = "updatePassword", method = RequestMethod.POST)
     @ResponseBody

--
Gitblit v1.8.0