|
@@ -1,69 +1,66 @@
|
1
|
1
|
package com.shigongli.controller;
|
2
|
2
|
|
3
|
|
-import com.shigongli.common.BaseController;
|
4
|
|
-import com.shigongli.common.EncryptUtils;
|
5
|
|
-import com.shigongli.common.ResponseBean;
|
6
|
|
-//import com.yunzhi.niucai.entity.SysUser;
|
7
|
|
-//import com.yunzhi.niucai.service.ISysUserService;
|
8
|
|
-//import org.springframework.beans.factory.annotation.Autowired;
|
|
3
|
+import com.shigongli.common.*;
|
|
4
|
+import com.shigongli.entity.SysUser;
|
|
5
|
+import com.shigongli.service.ISysUserService;
|
|
6
|
+import me.chanjar.weixin.mp.api.WxMpService;
|
|
7
|
+import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
|
|
8
|
+import me.chanjar.weixin.mp.bean.result.WxMpUser;
|
|
9
|
+import org.springframework.beans.factory.annotation.Autowired;
|
9
|
10
|
import com.shigongli.vo.LoginParam;
|
10
|
11
|
import io.swagger.annotations.Api;
|
11
|
12
|
import io.swagger.annotations.ApiOperation;
|
12
|
13
|
import io.swagger.annotations.ApiParam;
|
13
|
14
|
import org.springframework.web.bind.annotation.PostMapping;
|
14
|
15
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
16
|
+import org.springframework.web.bind.annotation.RequestParam;
|
15
|
17
|
import org.springframework.web.bind.annotation.RestController;
|
16
|
18
|
|
17
|
|
-//import java.util.HashMap;
|
|
19
|
+import java.util.HashMap;
|
|
20
|
+import java.util.Map;
|
18
|
21
|
|
19
|
22
|
|
20
|
23
|
@Api(tags = "登入/登出")
|
21
|
24
|
@RestController
|
22
|
25
|
public class LoginController extends BaseController {
|
23
|
26
|
|
24
|
|
-// @Autowired
|
25
|
|
-// ISysUserService iSysUserService;
|
|
27
|
+ @Autowired
|
|
28
|
+ ISysUserService iSysUserService;
|
26
|
29
|
|
|
30
|
+ @Autowired
|
|
31
|
+ WxUtils wxUtils;
|
|
32
|
+
|
|
33
|
+ /**
|
|
34
|
+ * 公众号登录
|
|
35
|
+ * @param code
|
|
36
|
+ * @return
|
|
37
|
+ * @throws Exception
|
|
38
|
+ */
|
27
|
39
|
@PostMapping("/mp/login")
|
28
|
40
|
@ApiOperation(value="登录", notes = "登录", httpMethod = "POST", response = ResponseBean.class)
|
29
|
|
- public ResponseBean login(@ApiParam("登录参数") @RequestBody LoginParam loginParam) throws Exception {
|
30
|
|
-// if (null == loginParam) {
|
31
|
|
-// return ResponseBean.error("账户或密码不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
32
|
|
-// }
|
33
|
|
-//
|
34
|
|
-// String userName = loginParam.get("userName");
|
35
|
|
-// String password = loginParam.get("password");
|
36
|
|
-//
|
37
|
|
-// if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {
|
38
|
|
-// return ResponseBean.error("账户或密码不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
39
|
|
-// }
|
40
|
|
-//
|
41
|
|
-// SysUser sysUser = iSysUserService.getLoginUser(userName);
|
42
|
|
-// if (null == sysUser) {
|
43
|
|
-// return ResponseBean.error("账户或密码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
44
|
|
-// }
|
45
|
|
-//
|
46
|
|
-// if (!checkPassword(password, sysUser.getPassword(), sysUser.getUserId().toString())) {
|
47
|
|
-// return ResponseBean.error("账户或密码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
48
|
|
-// }
|
49
|
|
-//
|
50
|
|
-// if (!iSysUserService.checkStatus(sysUser)) {
|
51
|
|
-// return ResponseBean.error("用户状态不正确, 请联系管理人员", ResponseBean.ERROR_UNAVAILABLE);
|
52
|
|
-// }
|
53
|
|
-//
|
54
|
|
-// // 生成 token
|
55
|
|
-// Map<String, Object> claims = new HashMap<String, Object>(){{
|
56
|
|
-// put("userId", sysUser.getUserId());
|
57
|
|
-// }};
|
58
|
|
-// String jws = JWTUtils.encode(claims);
|
59
|
|
-// sysUser.setPassword(null);
|
60
|
|
-// sysUser.setToken(jws);
|
61
|
|
-//
|
62
|
|
-// return ResponseBean.success(sysUser);
|
63
|
|
- return ResponseBean.success("");
|
64
|
|
- }
|
|
41
|
+ public ResponseBean login(@ApiParam("登录参数") @RequestParam("code") String code) throws Exception {
|
|
42
|
+ WxMpService mpService = wxUtils.getMpService();
|
|
43
|
+ WxMpOAuth2AccessToken wxMpOAuth2AccessToken = mpService.oauth2getAccessToken(code);
|
|
44
|
+ WxMpUser wxMpUser = mpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
|
|
45
|
+
|
|
46
|
+ SysUser sysUser = iSysUserService.getByOpenId(wxMpOAuth2AccessToken.getOpenId());
|
|
47
|
+ if (null == sysUser) {
|
|
48
|
+ sysUser = new SysUser();
|
|
49
|
+ sysUser.setName(wxMpUser.getNickname());
|
|
50
|
+ sysUser.setOpenid(wxMpUser.getOpenId());
|
|
51
|
+ iSysUserService.save(sysUser);
|
|
52
|
+ }
|
|
53
|
+
|
|
54
|
+ if (StringUtils.isEmpty(sysUser.getPhone())) {
|
|
55
|
+ return ResponseBean.error("请先联系管理员进行授权操作", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
|
56
|
+ }
|
|
57
|
+
|
|
58
|
+ // 生成 token
|
|
59
|
+ Map<String, Object> claims = new HashMap<>();
|
|
60
|
+ claims.put("userId", sysUser.getUserId());
|
|
61
|
+ String jws = JWTUtils.encode(claims);
|
|
62
|
+ sysUser.setToken(jws);
|
65
|
63
|
|
66
|
|
- private boolean checkPassword(String src, String targ, String salt) {
|
67
|
|
- return EncryptUtils.md5(src, salt).equals(targ);
|
|
64
|
+ return ResponseBean.success(sysUser);
|
68
|
65
|
}
|
69
|
66
|
}
|