Procházet zdrojové kódy

update 更新小程序登录 单独的结构体

疯狂的狮子Li před 4 roky
rodič
revize
33683d4bb1

+ 2 - 1
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.api;
 import com.ruoyi.common.core.exception.user.UserException;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.XcxLoginUser;
 
 /**
  * 用户服务
@@ -33,7 +34,7 @@ public interface RemoteUserService {
      * @param openid openid
      * @return 结果
      */
-    LoginUser getUserInfoByOpenid(String openid) throws UserException;
+    XcxLoginUser getUserInfoByOpenid(String openid) throws UserException;
 
     /**
      * 注册用户信息

+ 24 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/XcxLoginUser.java

@@ -0,0 +1,24 @@
+package com.ruoyi.system.api.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * 小程序登录用户身份权限
+ *
+ * @author Lion Li
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+public class XcxLoginUser extends LoginUser {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * openid
+     */
+    private String openid;
+
+}

+ 2 - 2
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java

@@ -19,6 +19,7 @@ import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.SysLogininfor;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.XcxLoginUser;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
 
@@ -117,8 +118,7 @@ public class SysLoginService {
         // xcxCode 为 小程序调用 wx.login 授权后获取
         // todo 自行实现 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
         String openid = "";
-        LoginUser userInfo = remoteUserService.getUserInfoByOpenid(openid);
-
+        XcxLoginUser userInfo = remoteUserService.getUserInfoByOpenid(openid);
         // 生成token
         LoginHelper.loginByDevice(userInfo, DeviceType.XCX);
 

+ 8 - 2
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/dubbo/RemoteUserServiceImpl.java

@@ -10,6 +10,7 @@ import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
 import com.ruoyi.system.api.model.RoleDTO;
+import com.ruoyi.system.api.model.XcxLoginUser;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysPermissionService;
 import com.ruoyi.system.service.ISysUserService;
@@ -66,7 +67,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
     }
 
     @Override
-    public LoginUser getUserInfoByOpenid(String openid) throws UserException {
+    public XcxLoginUser getUserInfoByOpenid(String openid) throws UserException {
         // todo 自行实现 userService.selectUserByOpenid(openid);
         SysUser sysUser = new SysUser();
         if (ObjectUtil.isNull(sysUser)) {
@@ -79,7 +80,12 @@ public class RemoteUserServiceImpl implements RemoteUserService {
             // todo 用户已被停用 业务逻辑自行实现
         }
         // 此处可根据登录用户的数据不同 自行创建 loginUser
-        return buildLoginUser(sysUser);
+        XcxLoginUser loginUser = new XcxLoginUser();
+        loginUser.setUserId(sysUser.getUserId());
+        loginUser.setUsername(sysUser.getUserName());
+        loginUser.setUserType(sysUser.getUserType());
+        loginUser.setOpenid(openid);
+        return loginUser;
     }
 
     @Override