|
@@ -31,25 +31,20 @@ public class LoginController {
|
|
protected static final Logger logger = LoggerFactory.getLogger(LoginController.class);
|
|
protected static final Logger logger = LoggerFactory.getLogger(LoginController.class);
|
|
@Autowired
|
|
@Autowired
|
|
private LoginService loginService;
|
|
private LoginService loginService;
|
|
|
|
+ private static String AppId;
|
|
|
|
+ private static String AppSecret;
|
|
|
|
|
|
@Value("${miniprogram.AppId}")
|
|
@Value("${miniprogram.AppId}")
|
|
- private String AppId;
|
|
|
|
|
|
+ public void setAppId(String appId) {
|
|
|
|
+ AppId = appId;
|
|
|
|
+ }
|
|
|
|
|
|
@Value("${miniprogram.AppSecret}")
|
|
@Value("${miniprogram.AppSecret}")
|
|
- private String AppSecret;
|
|
|
|
|
|
+ public void setAppSecret(String appSecret) {
|
|
|
|
+ AppSecret = appSecret;
|
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
|
- * 判断是否是游客
|
|
|
|
- *
|
|
|
|
- * @param code
|
|
|
|
- * @param request
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @ResponseBody
|
|
|
|
- @RequestMapping("/doLogin")
|
|
|
|
- public WxJsonModel doLogin(@RequestParam(value = "code", required = true) String code,
|
|
|
|
- @RequestParam(value = "userOrganizeID") Integer userOrganizeID,
|
|
|
|
- HttpServletRequest request) {
|
|
|
|
|
|
+ public static WxJsonModel login(String code, HttpServletRequest request) {
|
|
logger.info("Start get SessionKey");
|
|
logger.info("Start get SessionKey");
|
|
WxJsonModel res = WxJsonModel.newInstance();
|
|
WxJsonModel res = WxJsonModel.newInstance();
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
@@ -85,6 +80,27 @@ public class LoginController {
|
|
res.setCode("-1");
|
|
res.setCode("-1");
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
|
|
+ return res.success(openid);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断是否是游客
|
|
|
|
+ *
|
|
|
|
+ * @param code
|
|
|
|
+ * @param request
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @RequestMapping("/doLogin")
|
|
|
|
+ public WxJsonModel doLogin(@RequestParam(value = "code", required = true) String code,
|
|
|
|
+ @RequestParam(value = "userOrganizeID") Integer userOrganizeID,
|
|
|
|
+ HttpServletRequest request) {
|
|
|
|
+ WxJsonModel res = WxJsonModel.newInstance();
|
|
|
|
+ WxJsonModel model = login(code, request);
|
|
|
|
+ if (model.getCode().equals("-1")) {
|
|
|
|
+ return model;
|
|
|
|
+ }
|
|
|
|
+ String openid = (String) model.getData();
|
|
CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
|
|
CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
|
|
if (operationUser == null) {
|
|
if (operationUser == null) {
|
|
String mobile = loginService.cellPhone(userOrganizeID);
|
|
String mobile = loginService.cellPhone(userOrganizeID);
|
|
@@ -145,38 +161,11 @@ public class LoginController {
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public WxJsonModel register(@RequestParam(value = "code", required = true) String code,
|
|
public WxJsonModel register(@RequestParam(value = "code", required = true) String code,
|
|
CmOperationUser operationUser, HttpServletRequest request) {
|
|
CmOperationUser operationUser, HttpServletRequest request) {
|
|
- WxJsonModel res = WxJsonModel.newInstance();
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
- String referer = request.getHeader("Referer"); //获取当前微信小程序的环境
|
|
|
|
- map.put("referer", referer);
|
|
|
|
- String requestUrl = "https://api.weixin.qq.com/sns/jscode2session";
|
|
|
|
- Map<String, String> requestUrlParam = new HashMap<String, String>();
|
|
|
|
- requestUrlParam.put("appid", AppId);//小程序appId
|
|
|
|
- requestUrlParam.put("secret", AppSecret);//小程序appsecret
|
|
|
|
- requestUrlParam.put("js_code", code);//小程序端返回的code
|
|
|
|
- requestUrlParam.put("grant_type", "authorization_code");//默认参数
|
|
|
|
- //发送post请求读取调用微信接口获取openid用户唯一标识
|
|
|
|
- String infos;
|
|
|
|
- try {
|
|
|
|
- infos = HttpRequest.sendPost(requestUrl, requestUrlParam);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- res.setData(map);
|
|
|
|
- return res.error("服务器内部异常");
|
|
|
|
- }
|
|
|
|
- //解析相应内容(转换成json对象)
|
|
|
|
- JSONObject jsonObject = JSON.parseObject(infos);
|
|
|
|
- String openid = jsonObject.getString("openid");
|
|
|
|
- String session_key = jsonObject.getString("session_key");
|
|
|
|
- String errcode = jsonObject.getString("errcode");
|
|
|
|
- String errmsg = jsonObject.getString("errmsg");
|
|
|
|
- if (!StringUtils.isEmpty(errcode) &&
|
|
|
|
- (errcode.equals("-1") || errcode.equals("40029") || errcode.equals("45011"))) {
|
|
|
|
- res.setMsg(errmsg);
|
|
|
|
- res.setData(map);
|
|
|
|
- map.put("sessionKey", session_key);
|
|
|
|
- res.setCode("-1");
|
|
|
|
- return res;
|
|
|
|
|
|
+ WxJsonModel model = login(code, request);
|
|
|
|
+ if (model.getCode().equals("-1")) {
|
|
|
|
+ return model;
|
|
}
|
|
}
|
|
|
|
+ String openid = (String) model.getData();
|
|
operationUser.setOpenid(openid);
|
|
operationUser.setOpenid(openid);
|
|
WxJsonModel jsonModel = loginService.update(operationUser);
|
|
WxJsonModel jsonModel = loginService.update(operationUser);
|
|
return jsonModel;
|
|
return jsonModel;
|