Althars123 3 年之前
父节点
当前提交
3270ce21d0

+ 5 - 4
twzd-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -124,7 +124,7 @@ public class SysLoginController
         String userInfoStr = wxService.getUserInfo("zh_CN", wxResult.getAccess_token(), wxResult.getOpenid());
         WxUserInfo wxUserInfo = JSONObject.parseObject(userInfoStr,WxUserInfo.class);
 
-        String token = loginService.login(wxResult.getOpenid(),null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
+        String token = loginService.login(wxUserInfo,null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
         TokenDTO tokenDTO = new TokenDTO();
         tokenDTO.setToken(token);
         tokenDTO.setWxUserInfo(wxUserInfo);
@@ -136,14 +136,15 @@ public class SysLoginController
     @PostMapping("/login/code/test")
     @ApiOperation("用户授权码模式登录--测试")
     public Response<TokenDTO> testloginByAuthorizationCode(String authorizationCode ){
-        String token = loginService.login("ovKTX5zYvp9OXE43ADwLa1RHna0g",null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
-        TokenDTO tokenDTO = new TokenDTO();
-        tokenDTO.setToken(token);
         WxUserInfo wxUserInfo = new WxUserInfo();
         wxUserInfo.setOpenid("ovKTX5zYvp9OXE43ADwLa1RHna0g");
         wxUserInfo.setNickname("Sss");
         wxUserInfo.setSex("0");
         wxUserInfo.setHeadimgurl("https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83erGMFzKaOmz6cIaA0J1nicWSlBLdLKY46N5CNCoASiajT7Z3RIfPngPhJsjmqsSjGCFibPU4vCtfz3aw/132");
+        String token = loginService.login(wxUserInfo,null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
+        TokenDTO tokenDTO = new TokenDTO();
+        tokenDTO.setToken(token);
+
         tokenDTO.setWxUserInfo(wxUserInfo);
         return Response.success(tokenDTO) ;
 

+ 5 - 2
twzd-framework/src/main/java/com/miaxis/framework/web/service/SysLoginService.java

@@ -2,6 +2,7 @@ package com.miaxis.framework.web.service;
 
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.domain.model.LoginUser;
+import com.miaxis.common.core.domain.model.WxUserInfo;
 import com.miaxis.common.core.redis.RedisCache;
 import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.exception.CustomException;
@@ -94,12 +95,14 @@ public class SysLoginService
      * @param loginType 登录类型 1 学员用户名密码登录 2 学员手机验证码登录
      * @return 结果
      */
-    public String login(String principal, String credential, String loginType) {
+    public String login(WxUserInfo wxUserInfo, String credential, String loginType) {
 
         ServletUtils.getRequest().setAttribute("loginType",loginType);
+        ServletUtils.getRequest().setAttribute("headImage",wxUserInfo.getHeadimgurl());
+        ServletUtils.getRequest().setAttribute("nickName",wxUserInfo.getNickname());
         // 用户验证
         if (StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode().equals(loginType)){
-            return authenticate(principal,new OpenIdAuthenticationToken(principal));
+            return authenticate(wxUserInfo.getOpenid(),new OpenIdAuthenticationToken(wxUserInfo.getOpenid()));
         }
         else{
             throw new CustomException("loginType参数错误");

+ 6 - 3
twzd-framework/src/main/java/com/miaxis/framework/web/service/UserDetailsServiceImpl.java

@@ -7,7 +7,6 @@ import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.enums.UserStatusEnum;
 import com.miaxis.common.exception.BaseException;
 import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.RandomNameUtils;
 import com.miaxis.common.utils.ServletUtils;
 import com.miaxis.common.utils.StringUtils;
 import com.miaxis.system.service.ISysConfigService;
@@ -69,10 +68,14 @@ public class UserDetailsServiceImpl implements UserDetailsService
                 UserInfo userInfo = userService.getStudentByOpenId(identification);
                 if (userInfo == null) {
                     userInfo = new UserInfo();
-//                    userInfo.setHeadImage(configService.selectConfigByKey("xcx_user_image"));
-//                    userInfo.setNickName("用户未授权_"+RandomNameUtils.generateName());
+                    userInfo.setHeadImage((String) ServletUtils.getRequest().getAttribute("headImage"));
+                    userInfo.setNickName((String) ServletUtils.getRequest().getAttribute("nickName"));
                     userInfo.setOpenid(identification);
                     userService.saveUserInfo(userInfo);
+                }else {
+                    userInfo.setHeadImage((String) ServletUtils.getRequest().getAttribute("headImage"));
+                    userInfo.setNickName((String) ServletUtils.getRequest().getAttribute("nickName"));
+                    userService.updateStudent(userInfo);
                 }
                 return createLoginUser(userInfo);
             }

+ 2 - 0
twzd-system/src/main/java/com/miaxis/system/mapper/SysUserMapper.java

@@ -116,4 +116,6 @@ public interface SysUserMapper
     UserInfo getStudentByName(String username);
 
     void saveUserInfo(UserInfo userInfo);
+
+    void updateStudent(UserInfo userInfo);
 }

+ 2 - 0
twzd-system/src/main/java/com/miaxis/system/service/ISysUserService.java

@@ -176,4 +176,6 @@ public interface ISysUserService
 
 
     void saveUserInfo(UserInfo userInfo);
+
+    void updateStudent(UserInfo userInfo);
 }

+ 5 - 0
twzd-system/src/main/java/com/miaxis/system/service/impl/SysUserServiceImpl.java

@@ -462,4 +462,9 @@ public class SysUserServiceImpl implements ISysUserService
     public void saveUserInfo(UserInfo userInfo) {
         userMapper.saveUserInfo(userInfo);
     }
+
+    @Override
+    public void updateStudent(UserInfo userInfo) {
+        userMapper.updateStudent(userInfo);
+    }
 }

+ 3 - 0
twzd-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -101,6 +101,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<insert id="saveUserInfo" parameterType="com.miaxis.common.core.domain.entity.UserInfo" >
 		insert into user_info (head_image,nick_name,openid) values (#{headImage},#{nickName},#{openid})
 	</insert>
+	<insert id="updateStudent" parameterType="com.miaxis.common.core.domain.entity.UserInfo" >
+		update user_info set head_image = #{headImage},nick_name = #{nickName} where openid = #{openid}
+	</insert>