From ebde3f4f38741aaa0764b2e319f89f93d3296449 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 23 八月 2024 17:12:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java | 118 ++++++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java | 2
ruoyi-service/ruoyi-payment/pom.xml | 11
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java | 24 +
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TAdvertising.java | 8
ruoyi-service/ruoyi-account/pom.xml | 11
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java | 120 ++++++++
ruoyi-service/ruoyi-integration/pom.xml | 11
ruoyi-service/ruoyi-chargingPile/pom.xml | 6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java | 119 ++++++++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java | 120 ++++++++
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java | 2
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java | 119 ++++++++
ruoyi-service/ruoyi-order/pom.xml | 6
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml | 5
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java | 2
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java | 3
ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java | 1
ruoyi-service/ruoyi-other/pom.xml | 6
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 33 ++
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 92 ++----
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/RuoYiAccountApplication.java | 2
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java | 2
24 files changed, 752 insertions(+), 78 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TAdvertising.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TAdvertising.java
index c86c93c..02ba4a2 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TAdvertising.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TAdvertising.java
@@ -64,8 +64,12 @@
@ApiModelProperty(value = "上架状态(0=否,1=是)")
@TableField("status")
private Integer status;
-
-
+ @ApiModelProperty(value = "小程序id")
+ @TableField("applet_id")
+ private String appletId;
+ @ApiModelProperty(value = "小程序名称")
+ @TableField("applet_name")
+ private String appletName;
@ApiModelProperty(value = "广告状态 1未开始 2已开始 3已结束")
@TableField(exist = false)
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java
index b67f5ef..bfa5fc4 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/RuoYiGatewayApplication.java
@@ -24,4 +24,5 @@
" | | \\ / \\ / \n" +
" ''-' `'-' `-..-' ");
}
+
}
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
index 1cd3f9c..0ec1a71 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,17 +1,13 @@
package com.ruoyi.gateway.filter;
-import com.ruoyi.account.api.feignClient.AppUserClient;
-import com.ruoyi.account.api.model.TAppUser;
-import com.ruoyi.system.api.domain.SysUser;
-import com.ruoyi.system.api.feignClient.SysUserClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.context.annotation.Lazy;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
@@ -27,7 +23,6 @@
import io.jsonwebtoken.Claims;
import reactor.core.publisher.Mono;
-import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@@ -48,14 +43,6 @@
@Autowired
private RedisService redisService;
- @Lazy
- @Resource
- private AppUserClient appUserClient;
-
- @Lazy
- @Resource
- private SysUserClient sysUserClient;
-
@Override
@@ -69,30 +56,31 @@
return chain.filter(exchange);
}
//防抖校验
-// try {
-// antiShake(request);
-// }catch (Exception e){
-// log.error("[重复提交]请求路径:{}", exchange.getRequest().getPath());
-// return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage(), HttpStatus.SUCCESS);
-// }
+ try {
+ antiShake(request);
+ }catch (Exception e){
+ log.error("[重复提交]请求路径:{}", exchange.getRequest().getPath());
+ return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage(), HttpStatus.SUCCESS);
+ }
//校验账户是否有效
-// try {
-// verifyToken(request);
-// verifyAccount(request);
-// }catch (Exception e){
-// return unauthorizedResponse(exchange, e.getMessage());
-// }
+ try {
+ verifyToken(request);
+ }catch (Exception e){
+ return unauthorizedResponse(exchange, e.getMessage());
+ }
String token = getToken(request);
Claims claims = JwtUtils.parseToken(token);
String userkey = JwtUtils.getUserKey(claims);
String userid = JwtUtils.getUserId(claims);
String username = JwtUtils.getUserName(claims);
+ String userType = JwtUtils.getUserType(claims);
// 设置用户信息到请求
addHeader(mutate, SecurityConstants.USER_KEY, userkey);
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
+ addHeader(mutate, SecurityConstants.USER_TYPE, userType);
// 内部请求来源参数清除
removeHeader(mutate, SecurityConstants.FROM_SOURCE);
return chain.filter(exchange.mutate().request(mutate.build()).build());
@@ -140,9 +128,19 @@
* 防抖处理
*/
public void antiShake(ServerHttpRequest request) throws Exception{
+ HttpMethod method = request.getMethod();
+ if(HttpMethod.OPTIONS == method){
+ return;
+ }
HttpHeaders headers = request.getHeaders();
String client = headers.getFirst("client");
String timestamp = headers.getFirst("timestamp");
+ if(StringUtils.isEmpty(client)){
+ throw new RuntimeException("参数异常");
+ }
+ if(StringUtils.isEmpty(timestamp)){
+ throw new RuntimeException("参数异常");
+ }
String url = request.getURI().getPath();
Map<String, Object> cacheMap = redisService.getCacheMap(client);
if(null == cacheMap){
@@ -183,47 +181,15 @@
if (claims == null) {
throw new RuntimeException("令牌已过期或验证不正确!");
}
- String userkey = JwtUtils.getUserKey(claims);
- boolean islogin = redisService.hasKey(getTokenKey(userkey));
- if (!islogin) {
- throw new RuntimeException("登录状态已过期");
- }
+// String userkey = JwtUtils.getUserKey(claims);
+// boolean islogin = redisService.hasKey(getTokenKey(userkey));
+// if (!islogin) {
+// throw new RuntimeException("登录状态已过期");
+// }
String userid = JwtUtils.getUserId(claims);
String username = JwtUtils.getUserName(claims);
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) {
throw new RuntimeException("令牌验证失败");
- }
- }
-
- /**
- * 校验账户是否有效
- * @param request
- * @throws Exception
- */
- public void verifyAccount(ServerHttpRequest request) throws Exception{
- String token = getToken(request);
- Claims claims = JwtUtils.parseToken(token);
- String userid = JwtUtils.getUserId(claims);
- String userType = JwtUtils.getUserType(claims);
- //管理后台用户
- if ("system".equals(userType)) {
- SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
- if(null == sysUser || "2".equals(sysUser.getDelFlag())){
- throw new RuntimeException("无效的账户");
- }
- if("1".equals(sysUser.getStatus())){
- throw new RuntimeException("账户已被停用,请联系系统管理员!");
- }
- }
- //小程序用户
- if ("applet".equals(userType)) {
- TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
- if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
- throw new RuntimeException("无效的账户");
- }
- if(2 == appUser.getStatus()){
- throw new RuntimeException("账户已被冻结,请联系系统管理员!");
- }
}
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 1c3736d..dea823f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -718,4 +718,11 @@
userService.resetPwd(user);
return R.ok();
}
+
+
+ @ResponseBody
+ @PostMapping("/getSysUserById")
+ public SysUser getSysUserById(@RequestParam("userId") Long userId){
+ return userService.getById(userId);
+ }
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java
new file mode 100644
index 0000000..9b0c010
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java
@@ -0,0 +1,118 @@
+package com.ruoyi.system.filter;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.TokenConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import com.ruoyi.system.service.ISysUserService;
+import org.apache.logging.log4j.core.config.Order;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/23 11:22
+ */
+@Order(-200)
+@Component
+public class AuthFilter implements Filter {
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Lazy
+ @Resource
+ private AppUserClient appUserClient;
+
+ @Lazy
+ @Resource
+ private ISysUserService sysUserService;
+
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String userid = request.getHeader("user_id");
+ if(StringUtils.isEmpty(userid)){
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String userType = request.getHeader("user_type");
+ //管理后台用户
+ if ("system".equals(userType)) {
+ SysUser sysUser = sysUserService.getById(userid);
+ if(null == sysUser || "2".equals(sysUser.getDelFlag())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if("1".equals(sysUser.getStatus())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
+ return;
+ }
+ }
+ //小程序用户
+ if ("applet".equals(userType)) {
+ TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
+ if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if(2 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
+ return;
+ }
+ }
+ filterChain.doFilter(request, response);
+ }
+
+
+
+ private void unauthorizedResponse(HttpServletResponse response, String msg) {
+ response.setStatus(HttpStatus.OK.value());
+ response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
+ PrintWriter writer = null;
+ try {
+ writer = response.getWriter();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ writer.println(JSON.toJSONString(R.fail(msg)));
+ writer.flush();
+ writer.close();
+ }
+
+
+
+ /**
+ * 获取请求token
+ */
+ private String getToken(HttpServletRequest request) {
+ String token = request.getHeader(TokenConstants.AUTHENTICATION);
+ // 如果前端设置了令牌前缀,则裁剪掉前缀
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
+ token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
+ }
+ return token;
+ }
+
+
+}
diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml
index 6df3409..e109f2e 100644
--- a/ruoyi-service/ruoyi-account/pom.xml
+++ b/ruoyi-service/ruoyi-account/pom.xml
@@ -40,12 +40,23 @@
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+ </dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/RuoYiAccountApplication.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/RuoYiAccountApplication.java
index b879af8..29b5337 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/RuoYiAccountApplication.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/RuoYiAccountApplication.java
@@ -6,6 +6,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -19,6 +20,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
+@ServletComponentScan
@EnableTransactionManagement//开启事务
public class RuoYiAccountApplication {
public static void main(String[] args) {
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index b74dc0c..49fd3af 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -1,5 +1,7 @@
package com.ruoyi.account.controller;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -647,7 +649,7 @@
//签到加积分记录
R<TIntegralRule> set = integralRuleClient.getSet();
TIntegralRule data = set.getData();
- JSONObject jsonObject = JSON.parseObject(data.getAddVehiclesEarnsPoints());
+ JSONObject jsonObject = JSON.parseObject(data.getSignInForPoints());
//增加每日积分
Integer points = 0;
Integer point = jsonObject.getInteger("num1");
@@ -675,6 +677,35 @@
appUserService.updateById(byId);
return R.ok();
}
+ //已签到日期
+ @ApiOperation(value = "本月已签到日期", tags = {"小程序-个人中心-签到"})
+ @GetMapping(value = "/user/has/sign")
+ public R<List<TAppUserSign>> hasSign() {
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ DateTime startOfMonth = DateUtil.beginOfMonth(new Date());
+ DateTime endOfMonth = DateUtil.endOfMonth(new Date());
+ // 获取用户的所有签到记录
+ List<TAppUserSign> signRecords = signService.lambdaQuery()
+ .between(TAppUserSign::getSignDay, startOfMonth, endOfMonth)
+ .eq(TAppUserSign::getAppUserId, userId)
+ .orderByDesc(TAppUserSign::getSignDay)
+ .list();
+ return R.ok(signRecords);
+
+ }
+
+
+
+ //已连续签到多少天
+
+ @ApiOperation(value = "本月已连续签到天数", tags = {"小程序-个人中心-签到"})
+ @GetMapping(value = "/user/continue/sign")
+ public R continueSign() {
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ int days = signDayUtil.calculateContinuousSignDays(userId);
+ return R.ok(days);
+ }
+
//积分变化记录用
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
new file mode 100644
index 0000000..494fa29
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java
@@ -0,0 +1,120 @@
+package com.ruoyi.account.filter;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.service.TAppUserService;
+import com.ruoyi.common.core.constant.TokenConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import io.jsonwebtoken.Claims;
+import org.apache.logging.log4j.core.config.Order;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/23 11:22
+ */
+@Order(-200)
+@Component
+public class AuthFilter implements Filter {
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Lazy
+ @Resource
+ private TAppUserService appUserService;
+
+ @Lazy
+ @Resource
+ private SysUserClient sysUserClient;
+
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String userid = request.getHeader("user_id");
+ if(StringUtils.isEmpty(userid)){
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String userType = request.getHeader("user_type");
+ //管理后台用户
+ if ("system".equals(userType)) {
+ SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
+ if(null == sysUser || "2".equals(sysUser.getDelFlag())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if("1".equals(sysUser.getStatus())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
+ return;
+ }
+ }
+ //小程序用户
+ if ("applet".equals(userType)) {
+ TAppUser appUser = appUserService.getById(userid);
+ if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if(2 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
+ return;
+ }
+ }
+ filterChain.doFilter(request, response);
+ }
+
+
+
+ private void unauthorizedResponse(HttpServletResponse response, String msg) {
+ response.setStatus(HttpStatus.OK.value());
+ response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
+ PrintWriter writer = null;
+ try {
+ writer = response.getWriter();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ writer.println(JSON.toJSONString(R.fail(msg)));
+ writer.flush();
+ writer.close();
+ }
+
+
+
+ /**
+ * 获取请求token
+ */
+ private String getToken(HttpServletRequest request) {
+ String token = request.getHeader(TokenConstants.AUTHENTICATION);
+ // 如果前端设置了令牌前缀,则裁剪掉前缀
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
+ token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
+ }
+ return token;
+ }
+
+
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/pom.xml b/ruoyi-service/ruoyi-chargingPile/pom.xml
index c214baa..75191c3 100644
--- a/ruoyi-service/ruoyi-chargingPile/pom.xml
+++ b/ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -55,6 +55,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
index 25eaf50..cee17bf 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
@@ -6,6 +6,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -19,6 +20,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
+@ServletComponentScan
@EnableTransactionManagement//开启事务
public class RuoYiChargingPileApplication {
public static void main(String[] args) {
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java
new file mode 100644
index 0000000..7383d16
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java
@@ -0,0 +1,120 @@
+package com.ruoyi.chargingPile.filter;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.TokenConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import io.jsonwebtoken.Claims;
+import org.apache.logging.log4j.core.config.Order;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/23 11:22
+ */
+@Order(-200)
+@Component
+public class AuthFilter implements Filter {
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Lazy
+ @Resource
+ private AppUserClient appUserClient;
+
+ @Lazy
+ @Resource
+ private SysUserClient sysUserClient;
+
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String userid = request.getHeader("user_id");
+ if(StringUtils.isEmpty(userid)){
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String userType = request.getHeader("user_type");
+ //管理后台用户
+ if ("system".equals(userType)) {
+ SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
+ if(null == sysUser || "2".equals(sysUser.getDelFlag())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if("1".equals(sysUser.getStatus())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
+ return;
+ }
+ }
+ //小程序用户
+ if ("applet".equals(userType)) {
+ TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
+ if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if(2 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
+ return;
+ }
+ }
+ filterChain.doFilter(request, response);
+ }
+
+
+
+ private void unauthorizedResponse(HttpServletResponse response, String msg) {
+ response.setStatus(HttpStatus.OK.value());
+ response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
+ PrintWriter writer = null;
+ try {
+ writer = response.getWriter();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ writer.println(JSON.toJSONString(R.fail(msg)));
+ writer.flush();
+ writer.close();
+ }
+
+
+
+ /**
+ * 获取请求token
+ */
+ private String getToken(HttpServletRequest request) {
+ String token = request.getHeader(TokenConstants.AUTHENTICATION);
+ // 如果前端设置了令牌前缀,则裁剪掉前缀
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
+ token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
+ }
+ return token;
+ }
+
+
+}
diff --git a/ruoyi-service/ruoyi-integration/pom.xml b/ruoyi-service/ruoyi-integration/pom.xml
index 5a824fc..573df82 100644
--- a/ruoyi-service/ruoyi-integration/pom.xml
+++ b/ruoyi-service/ruoyi-integration/pom.xml
@@ -32,12 +32,23 @@
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+ </dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml
index c3c837a..a4353da 100644
--- a/ruoyi-service/ruoyi-order/pom.xml
+++ b/ruoyi-service/ruoyi-order/pom.xml
@@ -67,6 +67,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java
index 5fe3649..7255afa 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java
@@ -6,6 +6,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -19,6 +20,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
+@ServletComponentScan
@EnableTransactionManagement//开启事务
public class RuoYiOrderApplication {
public static void main(String[] args) {
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
index 1e5f04f..905b3ba 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -93,6 +93,7 @@
case 1:
for (int i = 0; i < split.length-1; i++) {
Integer reduce = tShoppingOrderService.list(new QueryWrapper<TShoppingOrder>()
+ .eq("order_type",1)
.eq("goods_id", split[i])
.eq("payment_status", 2)
.ne("refund_status", 2))
@@ -103,6 +104,8 @@
case 2:
for (int i = 0; i < split.length-1; i++) {
Integer reduce = exchangeOrderService.list(new QueryWrapper<TExchangeOrder>()
+ .eq("order_type",1)
+ .ne("status",4)
.eq("goods_id", split[i])
)
.stream().map(TExchangeOrder::getPurchaseQuantity).reduce(0, Integer::sum);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java
new file mode 100644
index 0000000..9702f6d
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java
@@ -0,0 +1,119 @@
+package com.ruoyi.order.filter;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.TokenConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import io.jsonwebtoken.Claims;
+import org.apache.logging.log4j.core.config.Order;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/23 11:22
+ */
+@Order(-200)
+@Component
+public class AuthFilter implements Filter {
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Lazy
+ @Resource
+ private AppUserClient appUserClient;
+
+ @Lazy
+ @Resource
+ private SysUserClient sysUserClient;
+
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String userid = request.getHeader("user_id");
+ if(StringUtils.isEmpty(userid)){
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String userType = request.getHeader("user_type");
+ //管理后台用户
+ if ("system".equals(userType)) {
+ SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
+ if(null == sysUser || "2".equals(sysUser.getDelFlag())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if("1".equals(sysUser.getStatus())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
+ return;
+ }
+ }
+ //小程序用户
+ if ("applet".equals(userType)) {
+ TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
+ if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if(2 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
+ return;
+ }
+ }
+ filterChain.doFilter(request, response);
+ }
+
+
+
+ private void unauthorizedResponse(HttpServletResponse response, String msg) {
+ response.setStatus(HttpStatus.OK.value());
+ response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
+ PrintWriter writer = null;
+ try {
+ writer = response.getWriter();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ writer.println(JSON.toJSONString(R.fail(msg)));
+ writer.flush();
+ writer.close();
+ }
+
+
+
+ /**
+ * 获取请求token
+ */
+ private String getToken(HttpServletRequest request) {
+ String token = request.getHeader(TokenConstants.AUTHENTICATION);
+ // 如果前端设置了令牌前缀,则裁剪掉前缀
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
+ token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
+ }
+ return token;
+ }
+
+
+}
diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml
index 0ca03f6..a44ba7c 100644
--- a/ruoyi-service/ruoyi-other/pom.xml
+++ b/ruoyi-service/ruoyi-other/pom.xml
@@ -55,6 +55,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java
index 310262a..f1b9f56 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/RuoYiOtherApplication.java
@@ -7,6 +7,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -20,6 +21,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
+@ServletComponentScan
@EnableTransactionManagement//开启事务
public class RuoYiOtherApplication {
public static void main(String[] args) {
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
index dda7683..d8c9658 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
@@ -35,7 +35,7 @@
@GetMapping("/getSet")
- @ApiOperation(tags = {"管理后台-积分管理"},value = "获取积分设置")
+ @ApiOperation(tags = {"管理后台-积分管理","小程序-个人中心-签到"},value = "获取积分设置")
public R<TIntegralRule> getSet() {
TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>());
return R.ok(res);
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java
new file mode 100644
index 0000000..5fab005
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java
@@ -0,0 +1,119 @@
+package com.ruoyi.other.filter;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.TokenConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import io.jsonwebtoken.Claims;
+import org.apache.logging.log4j.core.config.Order;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/23 11:22
+ */
+@Order(-200)
+@Component
+public class AuthFilter implements Filter {
+ private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
+
+ @Lazy
+ @Resource
+ private AppUserClient appUserClient;
+
+ @Lazy
+ @Resource
+ private SysUserClient sysUserClient;
+
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletResponse response = (HttpServletResponse) servletResponse;
+ String userid = request.getHeader("user_id");
+ if(StringUtils.isEmpty(userid)){
+ filterChain.doFilter(request, response);
+ return;
+ }
+ String userType = request.getHeader("user_type");
+ //管理后台用户
+ if ("system".equals(userType)) {
+ SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
+ if(null == sysUser || "2".equals(sysUser.getDelFlag())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if("1".equals(sysUser.getStatus())){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
+ return;
+ }
+ }
+ //小程序用户
+ if ("applet".equals(userType)) {
+ TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
+ if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"无效的账户");
+ return;
+ }
+ if(2 == appUser.getStatus()){
+ log.error("[账户异常处理]请求账户id:{}", userid);
+ unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
+ return;
+ }
+ }
+ filterChain.doFilter(request, response);
+ }
+
+
+
+ private void unauthorizedResponse(HttpServletResponse response, String msg) {
+ response.setStatus(HttpStatus.OK.value());
+ response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
+ PrintWriter writer = null;
+ try {
+ writer = response.getWriter();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ writer.println(JSON.toJSONString(R.fail(msg)));
+ writer.flush();
+ writer.close();
+ }
+
+
+
+ /**
+ * 获取请求token
+ */
+ private String getToken(HttpServletRequest request) {
+ String token = request.getHeader(TokenConstants.AUTHENTICATION);
+ // 如果前端设置了令牌前缀,则裁剪掉前缀
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
+ token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
+ }
+ return token;
+ }
+
+
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
index f0d8245..d15b333 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TVipServiceImpl.java
@@ -9,8 +9,10 @@
import com.ruoyi.other.mapper.TVipMapper;
import com.ruoyi.other.service.TVipService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.poi.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import java.util.List;
@@ -34,18 +36,20 @@
for (TVip tVip : list) {
String coupon = tVip.getCoupon();
- JSONArray jsonArray = JSONObject.parseArray(coupon);
- StringBuilder stringBuilder = new StringBuilder();
- for (int i = 0; i < jsonArray.size(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- Integer id = jsonObject.getInteger("id");
- Integer number = jsonObject.getInteger("number");
- TCoupon tCoupon = tCouponMapper.selectById(id);
- if (tCoupon!=null){
- stringBuilder.append(tCoupon.getName()).append("*").append(number).append(";");
+ if (StringUtils.hasLength(coupon)){
+ JSONArray jsonArray = JSONObject.parseArray(coupon);
+ StringBuilder stringBuilder = new StringBuilder();
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ Integer id = jsonObject.getInteger("id");
+ Integer number = jsonObject.getInteger("number");
+ TCoupon tCoupon = tCouponMapper.selectById(id);
+ if (tCoupon!=null){
+ stringBuilder.append(tCoupon.getName()).append("*").append(number).append(";");
+ }
}
+ tVip.setCouponName(stringBuilder.toString());
}
- tVip.setCouponName(stringBuilder.toString());
}
pageInfo.setRecords(list);
return pageInfo;
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
index bc87ba2..8a29448 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TAdvertisingMapper.xml
@@ -15,11 +15,14 @@
<result column="status" property="status" />
<result column="create_time" property="createTime" />
<result column="del_flag" property="delFlag" />
+ <result column="applet_id" property="appletId" />
+ <result column="applet_name" property="appletName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
- id, name, img, start_time, end_time, position, jump_type, jump_url, status, create_time, del_flag
+ id, name, img, start_time, end_time, position, jump_type, jump_url, status, create_time, del_flag,
+ applet_id, applet_name
</sql>
<select id="pageList" resultType="com.ruoyi.other.api.domain.TAdvertising">
select * from t_advertising
diff --git a/ruoyi-service/ruoyi-payment/pom.xml b/ruoyi-service/ruoyi-payment/pom.xml
index cb8466b..eedddef 100644
--- a/ruoyi-service/ruoyi-payment/pom.xml
+++ b/ruoyi-service/ruoyi-payment/pom.xml
@@ -32,12 +32,23 @@
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.alibaba.cloud</groupId>
+ <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+ </dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
+
+ <!-- SpringCloud Loadbalancer -->
+ <dependency>
+ <groupId>org.springframework.cloud</groupId>
+ <artifactId>spring-cloud-loadbalancer</artifactId>
+ </dependency>
<!-- Swagger UI -->
<dependency>
--
Gitblit v1.7.1