|
|
@@ -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);
|
|
|
}
|