From 04004d49f72b958ea7b4fcfc43c8bd590cc8a189 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 07 四月 2025 10:04:36 +0800
Subject: [PATCH] 代码初始化

---
 server/src/main/java/com/doumee/dao/web/dto/LoginH5DTO.java      |   21 +++++++
 server/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java     |   83 ++-------------------------
 server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java     |    6 -
 server/src/main/java/com/doumee/api/web/WebMemberController.java |   67 ++++++++++++++++++++++
 4 files changed, 97 insertions(+), 80 deletions(-)

diff --git a/server/src/main/java/com/doumee/api/web/WebMemberController.java b/server/src/main/java/com/doumee/api/web/WebMemberController.java
new file mode 100644
index 0000000..57df171
--- /dev/null
+++ b/server/src/main/java/com/doumee/api/web/WebMemberController.java
@@ -0,0 +1,67 @@
+package com.doumee.api.web;
+
+import com.doumee.config.Jwt.JwtProperties;
+import com.doumee.config.Jwt.JwtTokenUtil;
+import com.doumee.config.annotation.LoginRequired;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.web.dto.LoginH5DTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.server.ServerWebExchange;
+
+import javax.annotation.Resource;
+
+/**
+ * JWT鑾峰彇浠ょ墝鍜屽埛鏂颁护鐗屾帴鍙�
+ */
+@RestController
+@Api(tags ="web绔敤鎴风浉鍏虫帴鍙�")
+@RequestMapping("/web/member")
+public class WebMemberController {
+    @Resource
+    private JwtTokenUtil jwtTokenUtil;
+    @PreventRepeat(limit = 10, lockTime = 10000)
+    @ApiOperation("H5涓氬姟鐧诲綍")
+    @PostMapping("/loginH5")
+    public ApiResponse<String> loginH5 (@Validated @RequestBody LoginH5DTO dto, ServerWebExchange serverWebExchange) {
+        try {
+            ServerHttpRequest request = serverWebExchange.getRequest();
+            Member user =  new Member();
+            String token = jwtTokenUtil.generateToken(user);
+            return ApiResponse.success(token);
+        }catch (BusinessException e){
+            return ApiResponse.failed(e.getCode(),e.getMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
+        }
+    }
+    /**
+     * 鍒锋柊JWT浠ょ墝,鐢ㄦ棫鐨勪护鐗屾崲鏂扮殑浠ょ墝
+     */
+    @GetMapping("/getMemberInfo")
+    @ApiOperation("鑾峰彇褰撳墠鐧婚檰鐢ㄦ埛")
+    @LoginRequired
+    public ApiResponse<Member> getMemberInfo(@RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
+        try {
+            Member user =jwtTokenUtil.getUserInfoByToken(token);
+            jwtTokenUtil.refreshToken(token);//姣忔鏇存柊token鏈夋晥鏈�
+           if(user !=null){
+               return ApiResponse.success( user);
+           }
+        }catch (BusinessException e){
+            return ApiResponse.failed(e.getCode(),e.getMessage());
+        }catch (Exception e){
+            return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
+        }
+        return ApiResponse.failed( "鐧诲綍宸插け鏁�");
+    }
+
+}
\ No newline at end of file
diff --git a/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java b/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
index 3486a8c..2e0a617 100644
--- a/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
+++ b/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -22,14 +22,12 @@
 @Slf4j
 public class JwtTokenUtil {
 
+    public static final String HEADER_KEY = "web_token";
     @Autowired
     private RedisTemplate<String,Object> redisTemplate;
     @Resource
     private JwtProperties jwtProperties;
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz ;
-    @Autowired
-    private SystemUserMapper systemUserMapper;
+
     /**
      * 鐢熸垚token浠ょ墝
      *
diff --git a/server/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index 6d8ae3b..8ac1b38 100644
--- a/server/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -1,39 +1,29 @@
 package com.doumee.config.Jwt;
 
 import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
 import com.doumee.config.annotation.LoginRequired;
 import com.doumee.config.annotation.UserLoginRequired;
-import com.doumee.core.constants.Constants;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Users;
-import io.jsonwebtoken.JwtException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.client.RestTemplate;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Objects;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
-    @Autowired
-    private JdbcTemplate dao;
-
+    @Resource
+    private JwtTokenUtil jwtTokenUtil;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
@@ -73,9 +63,6 @@
                 if (handlerMethod.hasMethodAnnotation(LoginRequired.class)) {
                         checkFlag = checkLogin(request,response,token);
                 }
-                if(!checkFlag && handlerMethod.hasMethodAnnotation(UserLoginRequired.class)){
-                        checkFlag = checkPersonnelLogin(request,response,token);
-                }
                 if(!checkFlag){
                     throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
                 }
@@ -88,73 +75,17 @@
 
     public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response,String token){
         try {
-            String tokenRedis = (String) redisTemplate.opsForValue().get(Constants.REDIS_TOKEN_KEY+"_"+token);
-            if(StringUtils.isBlank(tokenRedis)){
+            Member member = jwtTokenUtil.getUserInfoByToken(token);
+            if(member == null){
                 return false;
             }
-            Long memberId = getTokenId(token);
-            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId);
-            if(Objects.isNull(member)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY);
-            }
-            if(Objects.isNull(member.getOpenid())){
-                throw new BusinessException(ResponseStatus.USER_DISABLE_TIME.getCode(),"鐢ㄦ埛宸叉敞閿�,璇烽噸鏂扮櫥褰�");
-            }
-            if(Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.USER_DISABLE_TIME.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
-            }
-            if(!Constants.equalsInteger(member.getStatus(),Constants.ZERO)){
-                throw new BusinessException(ResponseStatus.USER_DISABLE_TIME.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
-            }
-            request.setAttribute(JwtTokenUtil.UserId_Name, memberId);
-            request.setAttribute(JwtTokenUtil.HEADER_KEY, MEMBERTOKEM"_"+token);
-            request.setAttribute(JwtTokenUtil.UserInfo, tokenRedis);
             return true;
-        } catch (IllegalArgumentException | JwtException e) {
+        } catch (Exception e) {
+            e.printStackTrace();
             throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
         }
     }
 
-    public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response,String token){
-        try {
-            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+token);
-            if(StringUtils.isBlank(tokenRedis)){
-                return false;
-            }
-            Long userId = getTokenId(token);
-            Users users = dao.queryForObject(" select  *  from `users` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Users.class),userId);
-            if(Objects.isNull(users)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY);
-            }
-            if(Constants.equalsInteger(users.getIsdeleted(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.USER_DISABLE_TIME.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
-            }
-            if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
-                throw new BusinessException(ResponseStatus.USER_DISABLE_TIME.getCode(),"鐢ㄦ埛鐘舵�佸紓甯�,璇烽噸鏂扮櫥褰�");
-            }
-            request.setAttribute(JwtTokenUtil.UserId_Name, userId);
-            request.setAttribute(JwtTokenUtil.UserType, ZTConstants.BUSINESS);
-            request.setAttribute(JwtTokenUtil.HEADER_KEY, ZTConstants.CUSTOMER+"_"+token);
-            request.setAttribute(JwtTokenUtil.UserInfo, tokenRedis);
-            return true;
-        } catch (IllegalArgumentException | JwtException e) {
-            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-        }
-    }
 
-    @Bean
-    public RestTemplate getRestTemplate(){
-        return new RestTemplate();
-    }
-
-    public Long getTokenId(String token){
-        try {
-            Integer lastIndex = token.lastIndexOf("_")+1;
-            Long tokenId = Long.valueOf(token.substring(lastIndex));
-            return tokenId;
-        }catch (Exception e){
-            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
-        }
-    }
 
 }
diff --git a/server/src/main/java/com/doumee/dao/web/dto/LoginH5DTO.java b/server/src/main/java/com/doumee/dao/web/dto/LoginH5DTO.java
new file mode 100644
index 0000000..cd18d93
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/web/dto/LoginH5DTO.java
@@ -0,0 +1,21 @@
+package com.doumee.dao.web.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/05/04 18:21
+ */
+@Data
+@ApiModel("鐧诲綍鍙傛暟")
+public class LoginH5DTO implements Serializable {
+
+    @ApiModelProperty(value = "浼佷笟openId")
+    private String qwid;
+
+}

--
Gitblit v1.9.3