Pārlūkot izejas kodu

授权代码更改

夏文涛 1 gadu atpakaļ
vecāks
revīzija
eff418e419

+ 1 - 1
src/main/java/com/template/api/LoginControllerAPI.java

@@ -30,7 +30,7 @@ public interface LoginControllerAPI {
 
     @GetMapping(value = "/Openid")
     @ApiOperation(value = "微校授权", notes = "微校授权", httpMethod = "GET")
-    CommonResult Openid(@RequestParam String wxcode) throws Exception;
+    CommonResult Openid(@RequestParam String wxcode,String urlstr, String state, HttpServletResponse response) throws Exception;
 
     @PostMapping(value = "/mobileLogin")
     @ApiOperation(value = "移动端登录", notes = "移动端登录", httpMethod = "POST")

+ 3 - 3
src/main/java/com/template/config/WxOpenidConfig.java

@@ -17,12 +17,12 @@ public class WxOpenidConfig {
     //appid
     private String appid;
 
-    //微信小程序appId
-    private String xappid;
-
     //appkey
     private String appkey;
 
+    //
+    private String ip;
+
     //granttype
     private String granttype;
 

+ 21 - 8
src/main/java/com/template/controller/LoginController.java

@@ -37,6 +37,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.*;
 
 /**
@@ -149,17 +150,17 @@ public class LoginController implements LoginControllerAPI {
     @Override
     @PassToken
     @Transactional(rollbackFor = {Exception.class})
-    public CommonResult Openid(String wxcode) throws Exception {
+    public CommonResult Openid(String wxcode, String urlstr, String state, HttpServletResponse response) throws Exception {
+        logger.info("微校授权:" + wxcode + ";redirect_uri:" + urlstr + ";H5:" + state);
         System.out.println("微校授权:" + wxcode);
         Gson gson = new Gson();
         String tokenUrl = "https://open.wecard.qq.com/connect/oauth2/token";
         Map<String, String> tokenParams = new HashMap<>();
-        String url = "mnp://" + wxOpenidConfig.getXappid();
         tokenParams.put("wxcode", wxcode);
         tokenParams.put("app_key", wxOpenidConfig.getAppid());
         tokenParams.put("app_secret", wxOpenidConfig.getAppkey());
         tokenParams.put("grant_type", wxOpenidConfig.getGranttype());
-        tokenParams.put("redirect_uri", url); // 小程序为 mnp:// + 小程序app id
+        tokenParams.put("redirect_uri", state); // H5
 
         // wecode换取token
         String respon = HttpsClient.post(tokenUrl, tokenParams);
@@ -180,7 +181,8 @@ public class LoginController implements LoginControllerAPI {
         String user_name = null;
         String phone = null;
         String college = null;
-        String grade = null;
+        int idenType = 0;
+        int gender = 0;
         String profession = null;
         String campus = null;
         String id_card = null;
@@ -195,17 +197,20 @@ public class LoginController implements LoginControllerAPI {
             phone = userinfos.getTelephone();
             college = userinfos.getCollege();
             classStr = userinfos.getClassStr();
-            grade = userinfos.getGrade();
+            idenType = userinfos.getIdentity_type() == 1 || userinfos.getIdentity_type() == 6 ? 1 : 2;//1:学生 2:非学生
+            gender = userinfos.getGender();
             profession = userinfos.getProfession();
             campus = userinfos.getCampus();
             id_card = userinfos.getId_card();
 
         } catch (Exception e) {
             System.out.println("微校授权异常信息:" + e.getMessage());
+            response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/404/404/?message=" + URLEncoder.encode("获取用户信息失败", "UTF-8"));
             return CommonResult.fail(e.getMessage());
         }
 
         if (card_number == null || card_number.equals("")) {
+            response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/404/404/?message=" + URLEncoder.encode("获取用户信息失败", "UTF-8"));
             return CommonResult.fail("卡号为空,授权失败");
         }
         //根据卡号查询repair_user表中的用户信息
@@ -225,18 +230,22 @@ public class LoginController implements LoginControllerAPI {
                 student.setName(user_name);
                 student.setPhone(phone);
                 student.setSchool(campus);
+                student.setSex(gender == 1 ? "男" : "女");
                 student.setCollege(college);
                 student.setMajor(profession);
+                student.setIdenType(idenType);
                 student.setClassstr(classStr);
                 student.setCardId(id_card);//身份证号
                 int num = welcomeStudentService.insertWelcomeStudent(student);
                 if (num <= 0) {
                     System.out.println("微校授权失败,学生信息新增异常:" + user_name + "" + card_number);
+                    response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/404/404/?message=" + URLEncoder.encode("用户新增异常", "UTF-8"));
                     throw new Exception("微校授权失败!");
                 }
                 studentId = num;
             } catch (Exception e) {
                 System.out.println("微校授权异常信息:" + e.getMessage());
+                response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/404/404/?message=" + URLEncoder.encode("获取用户信息失败", "UTF-8"));
                 throw new Exception("微校授权失败!");
             }
         } else {
@@ -245,14 +254,17 @@ public class LoginController implements LoginControllerAPI {
             student.setName(user_name);
             student.setPhone(phone);
             student.setSchool(campus);
+            student.setSex(gender == 1 ? "男" : "女");
             student.setCollege(college);
             student.setMajor(profession);
+            student.setIdenType(idenType);
             student.setClassstr(classStr);
             student.setCardId(id_card);//身份证号
 
             int num = welcomeStudentService.updateWelcomeStudent(student);
             if (num <= 0) {
                 System.out.println("微校授权失败,用户信息新增异常:" + user_name + "" + card_number);
+                response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/404/404/?message=" + URLEncoder.encode("用户更新异常", "UTF-8"));
                 throw new Exception("微校授权失败!");
             }
             studentId = student.getId();
@@ -287,9 +299,10 @@ public class LoginController implements LoginControllerAPI {
         wlv.setPhone(student.getPhone().replace("(+86)", ""));
         wlv.setCollege(college == null ? "微校获取不到院校" : college);
         long expired = 1000 * 60 * 60 * 24 * 365;
-        TokenDateVo token = JWTUtil.getToken(id_card,student.getId(), expired);
+        TokenDateVo token = JWTUtil.getToken(id_card, student.getId(), expired);
         wlv.setToken(token.getToken());
         System.out.println("微校授权成功:" + user_name + "" + card_number);
+        response.sendRedirect(wxOpenidConfig.getIp() + "/#/pages/index/index/?urlstr=" + urlstr + "&token=" + token + "&type" + idenType);
         return CommonResult.ok(wlv);
     }
 
@@ -305,11 +318,11 @@ public class LoginController implements LoginControllerAPI {
         }
 
         WelcomeStudent student = welcomeStudentService.getDataByIdcardOrNum(mlr.getAdmissNum(), mlr.getCardId());
-        if(student == null){
+        if (student == null) {
             return CommonResult.fail("录取号或身份证错误,登录失败!");
         }
         long expired = 1000 * 60 * 60 * 24 * 365;
-        TokenDateVo token = JWTUtil.getToken(student.getCardId(),student.getId(), expired);
+        TokenDateVo token = JWTUtil.getToken(student.getCardId(), student.getId(), expired);
         student.setToken(token.getToken());
         return CommonResult.ok(student);
     }

+ 3 - 0
src/main/java/com/template/model/pojo/WelcomeStudent.java

@@ -35,6 +35,9 @@ public class WelcomeStudent implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
+    @ApiModelProperty(value = "身份类型")
+    private Integer idenType;
+
     @ApiModelProperty(value = "录取号")
     private String admissNum;
 

+ 2 - 2
src/main/java/com/template/model/result/Wx_user.java

@@ -42,9 +42,9 @@ public class Wx_user {
     public String college;
 
     /**
-     * 年级
+     * 性别
      */
-    public String grade;
+    public int gender;
 
     /**
      * 专业

+ 3 - 9
src/main/resources/application-dev.yml

@@ -55,17 +55,11 @@ author:
 
 #微校和小程序
 openid:
-  appid: EE28EE2C93296F4E
-  xappid: wxd6f090391d410534
-  appkey: 5071958561AA629530AAA31503088330
+  appid: 9F3C6FD7E3D98CE0
+  appkey: A3B6D4CFD0287D58A6987A1A6D0486B5
+  ip: http://192.168.161.218:5173
   granttype: authorization_code
-  ipconfig: 192.168.161.220
-  ocode: 1015730314
 
-  xsecret: a7e349716b116792d79c779bb7216153
-  shappid: 1653095601
-  shsecret: KReLfbAgGZKc3slfEW9Jnhn7RLKqyrGF
-  returnUrl: https://chtech.ncjti.edu.cn/campusMaintenance/repair-api/repair/api/repairRecord/returnPay
 
 #cos存储对象
 cos:

+ 4 - 5
src/main/resources/application-prod.yml

@@ -56,11 +56,10 @@ author:
 
 #微校和小程序
 openid:
-  shappid: 11541501
-  ipconfig: 172.16.20.999999
-  xappid: wsdds
-  shsecret: KRdwdwc
-  returnUrl: https://www.baidu.com
+  appid: 9F3C6FD7E3D98CE0
+  appkey: A3B6D4CFD0287D58A6987A1A6D0486B5
+  ip: http://192.168.161.218:5173
+  granttype: authorization_code
 
 #cos存储对象
 cos: