Quellcode durchsuchen

v1.7.4版本bug修改

JiangChongBo vor 2 Jahren
Ursprung
Commit
82e6f39fc9

+ 10 - 4
src/main/java/com/caimei/controller/wechat/LoginApi.java

@@ -4,15 +4,15 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.vo.WxClubUserVo;
 import com.caimei.service.wechat.LoginService;
+import com.caimei.utils.HttpRequest;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
 
 
 /**
@@ -90,5 +90,11 @@ public class LoginApi {
         }
         return loginService.passwordLogin(mobile, password, authUserId);
     }
+    @ApiOperation("根据token获取用户信息")
+    @GetMapping("/token/check")
+    public ResponseJson<WxClubUserVo> getUserInfoByToken(HttpServletRequest httpRequest) {
+
+        return loginService.getUserInfoByToken(httpRequest);
+    }
 
 }

+ 3 - 0
src/main/java/com/caimei/mapper/cmMapper/ClubMapper.java

@@ -51,4 +51,7 @@ public interface ClubMapper {
 
     //绑定更换机构
     void saveBindAuth(Integer authId,String authParty,Integer authUserId,Integer clubUserId);
+
+    //根據id獲取用戶信息
+    WxClubUserVo getUserInfoByToken(Integer clubUserId);
 }

+ 14 - 3
src/main/java/com/caimei/service/wechat/LoginService.java

@@ -2,6 +2,9 @@ package com.caimei.service.wechat;
 
 import com.caimei.model.ResponseJson;
 import com.caimei.model.vo.WxClubUserVo;
+import com.caimei.utils.HttpRequest;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * Description
@@ -12,6 +15,7 @@ import com.caimei.model.vo.WxClubUserVo;
 public interface LoginService {
     /**
      * 微信授权登录
+     *
      * @param code
      * @param appId
      * @return
@@ -35,19 +39,26 @@ public interface LoginService {
 
     /**
      * 订阅号验证码登录
-     * @param mobile        手机号
-     * @param verifyCode    验证码
-     * @param authUserId    供应商用户id
+     *
+     * @param mobile     手机号
+     * @param verifyCode 验证码
+     * @param authUserId 供应商用户id
      * @return
      */
     ResponseJson<WxClubUserVo> loginByVerifyCode(String mobile, String verifyCode, Integer authUserId);
 
     /**
      * 密码登录
+     *
      * @param mobile
      * @param password
      * @param authUserId
      * @return
      */
     ResponseJson<WxClubUserVo> passwordLogin(String mobile, String password, Integer authUserId);
+
+    //根据token获取用户信息
+    ResponseJson<WxClubUserVo> getUserInfoByToken(HttpServletRequest httpRequest);
 }
+
+

+ 19 - 4
src/main/java/com/caimei/service/wechat/impl/LoginServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 import java.util.UUID;
 
@@ -220,17 +221,31 @@ public class LoginServiceImpl implements LoginService {
             if (passwordVerify) {
                 // 登录成功redis保存token
                 String accessToken = UUID.randomUUID().toString();
-                redisService.set(accessToken, mobile + "," + authUserId, 60L * 60 * 24);
+                // +","+clubUser.getClubUserId()
+                redisService.set(accessToken, mobile + "," + authUserId + "," + clubUser.getClubUserId(), 60L * 60 * 24);
                 clubUser.setAccessToken(accessToken);
                 return ResponseJson.success(clubUser);
             }
         }
         return ResponseJson.error("输入的密码和账户名不匹配", null);
     }
+    @Override
+    public ResponseJson<WxClubUserVo> getUserInfoByToken(HttpServletRequest request) {
+        //获取redis存储的token
+        String tokenStr = request.getHeader("X-Token");
+        String token = redisService.get(tokenStr).toString();
+        if(JwtUtil.isVerify(token)){
+            return ResponseJson.error("token不存在", null);
+        }
+        String[] club = token.split(",");
+        WxClubUserVo userInfoByToken = clubMapper.getUserInfoByToken(Integer.valueOf(club[2]));
+        //从token中获取clubuserid
+        return ResponseJson.success(userInfoByToken);
+    }
 
-    /**
-     * 密码校验
-     */
+        /**
+         * 密码校验
+         */
     private Boolean passwordVerify(String password, String dbPassword) {
         String md5Password = Md5Util.md5(password);
         return md5Password.equals(dbPassword);

+ 6 - 3
src/main/resources/config/dev/application-dev.yml

@@ -27,13 +27,15 @@ spring:
     mongodb:
       #使用uri连接
       # mongodb://用户名:密码@IP地址:27017/数据库
-      uri: mongodb://zzj:easyCome.@192.168.2.100:27017/userInfo
+      # uri: mongodb://zzj:easyCome.@192.168.2.100:27017/userInfo
+      uri: mongodb://zzj:easyCome.@47.107.48.218:27017/userInfo
   #数据源连接--end
 
   redis:
     host: 192.168.2.100
+    # host: 47.119.112.46
     port: 6379
-    password: 6#xsI%b4o@5c3RoE
+    # password: 6#xsI%b4o@5c3RoE
     #Redis数据库索引(默认为0)
     database: 0
     #连接池最大连接数(使用负值表示没有限制)
@@ -97,7 +99,8 @@ aliyunConfig:
 
 # rocketmq 配置项,对应 RocketMQProperties 配置类
 rocketmq:
-  name-server: 192.168.2.100:9876  # RocketMQ Namesrv
+  # name-server: 127.0.0.1:9876  # RocketMQ Namesrv 本地
+  name-server: 47.107.48.218:9876 # 測試
   producer:
     group: caimei_dev_group        # 生产者分组
     send-message-timeout: 3000     # 发送消息超时时间,单位:毫秒。默认为 3000 。

+ 7 - 0
src/main/resources/mapper/ClubMapper.xml

@@ -188,4 +188,11 @@
             name=#{authParty}
         where id = #{clubUserId} and authUserId=#{authUserId}
     </update>
+    <select id="getUserInfoByToken" resultType="com.caimei.model.vo.WxClubUserVo">
+        select cu.id as clubUserId, cu.authId as authId, cu.authUserId, cu.mobile, cu.status,a.authParty,a.logo
+        from cm_brand_club_user cu
+                 left join cm_brand_auth a on cu.authId = a.id and a.delFlag = 0
+                 left join cm_brand_auth_user au on a.authUserId = au.authUserId
+        where  cu.delFlag = 0 and cu.id = #{clubUserId}
+    </select>
 </mapper>