WxLoginController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.java110.app.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.app.smo.wxLogin.IWxLoginSMO;
  4. import com.java110.core.base.controller.BaseController;
  5. import com.java110.core.context.IPageData;
  6. import com.java110.core.context.PageData;
  7. import com.java110.dto.wxLogin.UserInfo;
  8. import com.java110.dto.wxLogin.WxLoginInfo;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.HttpStatus;
  13. import org.springframework.http.ResponseEntity;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RequestMethod;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import javax.servlet.http.HttpServletRequest;
  19. /**
  20. * 微信小程序登录处理类
  21. */
  22. @RestController
  23. @RequestMapping(path = "/app")
  24. public class WxLoginController extends BaseController {
  25. private final static Logger logger = LoggerFactory.getLogger(WxLoginController.class);
  26. @Autowired
  27. private IWxLoginSMO wxLoginSMOImpl;
  28. /**
  29. * 微信登录接口
  30. *
  31. * @param postInfo
  32. * @param request
  33. */
  34. @RequestMapping(path = "/loginWx", method = RequestMethod.POST)
  35. public ResponseEntity<String> loginWx(@RequestBody String postInfo, HttpServletRequest request) {
  36. ResponseEntity<String> responseEntity = null;
  37. JSONObject postObj = JSONObject.parseObject(postInfo);
  38. String code = JSONObject.parseObject(postInfo).getString("code");
  39. JSONObject userInfo = postObj.getJSONObject("userInfo");
  40. if (code == null || userInfo == null) {
  41. logger.error("code is null");
  42. responseEntity = new ResponseEntity<>("code is null", HttpStatus.BAD_REQUEST);
  43. return responseEntity;
  44. }
  45. /*String sessionKey = null;
  46. String openId = null;*/
  47. // try {
  48. // /*WxMaJscode2SessionResult result = this.wxMaService.getUserService().getSessionInfo(code);
  49. // sessionKey = result.getSessionKey();
  50. // openId = result.getOpenid();*/
  51. // } catch (Exception e) {
  52. // logger.error("login fail by wx", e);
  53. // e.printStackTrace();
  54. // }
  55. IPageData pd = PageData.newInstance().builder("","", postInfo,"","","","");
  56. return wxLoginSMOImpl.doLogin(pd);
  57. //login first
  58. /*User user = userService.queryByOpenid(openId);
  59. if (user == null) {
  60. user = new User();
  61. user.setUsername(openId);
  62. //Md5Hash md5Hash = new Md5Hash(openId, openId,1024);
  63. user.setPassword(openId); //密码保存加密的openid
  64. user.setWeixinOpenid(openId);
  65. user.setAvatar(userInfo.getAvatarUrl());
  66. user.setNickname(userInfo.getNickName());
  67. user.setGender(userInfo.getGender());
  68. user.setUserLevel((byte) 0); //普通用户
  69. user.setStatus((byte) 0); //0可用 1禁用 2注销
  70. user.setLastLoginTime(LocalDateTime.now());
  71. user.setLastLoginIp(IpUtil.getIpAddr(request));
  72. user.setSessionKey(sessionKey);
  73. //user.setRoleid("2"); //默认普通用户
  74. userService.add(user);
  75. } else {
  76. user.setLastLoginTime(LocalDateTime.now());
  77. user.setLastLoginIp(IpUtil.getIpAddr(request));
  78. user.setSessionKey(sessionKey);
  79. //LogUtil.info("登录 " + user.toString());
  80. if (userService.updateById(user) == 0) {
  81. //LogUtil.error("update login user error");
  82. return ResponseUtil.updatedDataFailed();
  83. }
  84. }
  85. String token = UserTokenManager.generateToken(user.getId());
  86. JSONObject jsonObject = new JSONObject();
  87. //生成token
  88. jsonObject.put("errno", "0");
  89. jsonObject.put("token", token);
  90. jsonObject.put("userInfo", userInfo);
  91. LOGGER.info(jsonObject);
  92. //LogUtil.info("login success");
  93. //LogUtil.info(jsonObject);
  94. return ResponseUtil.ok(jsonObject);*/
  95. //return new ResponseEntity<>("",HttpStatus.OK);
  96. }
  97. /**
  98. * 微信登出
  99. *
  100. * @return
  101. */
  102. /* @RequestMapping("/logout")
  103. public JSONObject logoutWx() {
  104. Subject subject = SecurityUtils.getSubject();
  105. subject.logout();
  106. return ResponseUtil.ok();
  107. }*/
  108. }