张延森 4 years ago
parent
commit
ddca167b4b
1 changed files with 38 additions and 10 deletions
  1. 38
    10
      src/main/java/com/shigongli/controller/LoginController.java

+ 38
- 10
src/main/java/com/shigongli/controller/LoginController.java View File

@@ -51,12 +51,25 @@ public class LoginController extends BaseController {
51 51
     @PostMapping("/mp/login")
52 52
     @ApiOperation(value="登录", notes = "登录", httpMethod = "POST", response = ResponseBean.class)
53 53
     public ResponseBean mpLogin(@ApiParam("登录参数") @RequestParam("code") String code) throws Exception {
54
-        WxMpService mpService = wxUtils.getMpService();
55
-        WxMpOAuth2AccessToken wxMpOAuth2AccessToken = mpService.oauth2getAccessToken(code);
56
-        WxMpUser wxMpUser = mpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
54
+        String openid;
55
+        WxMpUser wxMpUser = null;
57 56
 
58
-        SysUser sysUser = iSysUserService.getByOpenId(wxMpOAuth2AccessToken.getOpenId());
59
-        if (null == sysUser) {
57
+        if (StringUtils.isEmpty(code)) {
58
+            return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_MISSING_PARAMS);
59
+        }
60
+
61
+        if ("test".equals(code)) {
62
+            openid = code;
63
+        } else {
64
+            WxMpService mpService = wxUtils.getMpService();
65
+            WxMpOAuth2AccessToken wxMpOAuth2AccessToken = mpService.oauth2getAccessToken(code);
66
+            wxMpUser = mpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
67
+            openid = wxMpOAuth2AccessToken.getOpenId();
68
+        }
69
+
70
+
71
+        SysUser sysUser = iSysUserService.getByOpenId(openid);
72
+        if (null == sysUser && null != wxMpUser) {
60 73
             sysUser = new SysUser();
61 74
             sysUser.setName(wxMpUser.getNickname());
62 75
             sysUser.setOpenid(wxMpUser.getOpenId());
@@ -85,16 +98,31 @@ public class LoginController extends BaseController {
85 98
     @PostMapping("/ma/login")
86 99
     @ApiOperation(value="登录", notes = "登录", httpMethod = "POST", response = ResponseBean.class)
87 100
     public ResponseBean maLogin(@ApiParam("登录参数") @RequestParam("code") String code) throws Exception {
88
-        WxMaService maService = wxUtils.getMaService();
89
-        WxMaJscode2SessionResult sessionInfo = maService.getUserService().getSessionInfo(code);
101
+        String openid;
102
+        WxMaJscode2SessionResult sessionInfo = null;
90 103
 
91
-        TaPerson taPerson = iTaPersonService.getByOpenId(sessionInfo.getOpenid());
104
+        if (StringUtils.isEmpty(code)) {
105
+            return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_MISSING_PARAMS);
106
+        }
107
+
108
+        if ("test".equals(code)) {
109
+            openid = code;
110
+        } else {
111
+            WxMaService maService = wxUtils.getMaService();
112
+            sessionInfo = maService.getUserService().getSessionInfo(code);
113
+            openid = sessionInfo.getOpenid();
114
+        }
115
+
116
+        TaPerson taPerson = iTaPersonService.getByOpenId(openid);
92 117
         if (null == taPerson || StatusConstant.DELETE.equals(taPerson.getStatus())) {
93 118
             taPerson = new TaPerson();
94
-            taPerson.setOpenid(sessionInfo.getOpenid());
119
+            taPerson.setOpenid(openid);
95 120
             iTaPersonService.save(taPerson);
96 121
         }
97
-        taPerson.setSessionKey(sessionInfo.getSessionKey());
122
+
123
+        if (null != sessionInfo) {
124
+            taPerson.setSessionKey(sessionInfo.getSessionKey());
125
+        }
98 126
 
99 127
         List<TaShopKeeper> shopKeeperList = iTaShopKeeperService.getByPerson(taPerson.getPersonId());
100 128
         if (null != shopKeeperList && shopKeeperList.size() > 0) {