From e1199724d209c29a7b640bc96d2ffa32acf381dc Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 20 八月 2024 09:10:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java | 5 ruoyi-service/ruoyi-account/pom.xml | 14 - ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java | 6 ruoyi-service/ruoyi-chargingPile/pom.xml | 8 - ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java | 6 pom.xml | 42 +++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java | 9 - ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 17 -- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java | 5 ruoyi-modules/ruoyi-system/pom.xml | 1 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 142 ++++++++++++++--- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java | 25 +++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java | 40 +++++ ruoyi-auth/pom.xml | 6 ruoyi-api/ruoyi-api-other/pom.xml | 7 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java | 3 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java | 9 + ruoyi-service/ruoyi-order/pom.xml | 8 - ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 13 - ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java | 12 ruoyi-service/ruoyi-other/pom.xml | 6 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 2 ruoyi-gateway/pom.xml | 24 +- ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java | 9 + 28 files changed, 282 insertions(+), 147 deletions(-) diff --git a/pom.xml b/pom.xml index 9fd5f56..dba8ee3 100644 --- a/pom.xml +++ b/pom.xml @@ -204,6 +204,48 @@ <artifactId>ruoyi-api-system</artifactId> <version>${ruoyi.version}</version> </dependency> + + <!-- 账户接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-account</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 充电桩接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-chargingPile</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 充电桩硬件交互接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-integration</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 订单接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-order</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 系统其他接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-other</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 支付接口 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-payment</artifactId> + <version>${ruoyi.version}</version> + </dependency> </dependencies> </dependencyManagement> diff --git a/ruoyi-api/ruoyi-api-other/pom.xml b/ruoyi-api/ruoyi-api-other/pom.xml index 6327080..0e43900 100644 --- a/ruoyi-api/ruoyi-api-other/pom.xml +++ b/ruoyi-api/ruoyi-api-other/pom.xml @@ -28,13 +28,6 @@ </exclusion> </exclusions> </dependency> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - <scope>compile</scope> - </dependency> - </dependencies> </project> \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java new file mode 100644 index 0000000..f82718f --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/TagListQueryDto.java @@ -0,0 +1,9 @@ +package com.ruoyi.other.api.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import lombok.Data; + +@Data +public class TagListQueryDto extends BasePage { + private String tagName; +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java new file mode 100644 index 0000000..effd666 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/UnitListQueryDto.java @@ -0,0 +1,9 @@ +package com.ruoyi.other.api.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import lombok.Data; + +@Data +public class UnitListQueryDto extends BasePage { + private String companyName; +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java index a1f7ab5..dc46061 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java @@ -1,22 +1,13 @@ package com.ruoyi.other.api.factory; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.account.api.dto.TagListQueryDto; -import com.ruoyi.account.api.dto.UnitListQueryDto; -import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.common.core.domain.R; -import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TIntegralRule; -import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.IntegralRuleClient; -import com.ruoyi.other.api.feignClient.OtherClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; -import java.util.List; -import java.util.Map; /** * 商品服务降级处理 diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java index 0070fdc..044ac01 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java @@ -1,14 +1,14 @@ package com.ruoyi.other.api.factory; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.account.api.dto.TagListQueryDto; -import com.ruoyi.account.api.dto.UnitListQueryDto; -import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TUserTag; +import com.ruoyi.other.api.dto.TagListQueryDto; +import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.feignClient.OtherClient; +import com.ruoyi.other.api.vo.CouponListVOVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java index 1550b79..100f547 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java @@ -1,15 +1,15 @@ package com.ruoyi.other.api.feignClient; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.account.api.dto.TagListQueryDto; -import com.ruoyi.account.api.dto.UnitListQueryDto; -import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TUserTag; +import com.ruoyi.other.api.dto.TagListQueryDto; +import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.factory.OtherFallbackFactory; +import com.ruoyi.other.api.vo.CouponListVOVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java new file mode 100644 index 0000000..d6cc19a --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/CouponListVOVO.java @@ -0,0 +1,40 @@ +package com.ruoyi.other.api.vo; + +import com.ruoyi.common.core.web.domain.BasePojo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel("管理后台 优惠券兑换记录列表返回VO") +public class CouponListVOVO extends BasePojo { + @ApiModelProperty(value = "优惠券名称") + private String couponName; + @ApiModelProperty(value = "优惠方式 1满减 2折扣") + private Integer preferentialMode; + @ApiModelProperty(value = "满减--优惠金额") + private BigDecimal discountAmount; + @ApiModelProperty(value = "满减--使用门槛 满减条件") + private BigDecimal meetTheConditions; + @ApiModelProperty(value = "折扣--折扣") + private BigDecimal discount; + @ApiModelProperty(value = "折扣--最高折扣金额") + private BigDecimal maximumDiscountAmount; + @ApiModelProperty(value = "优惠券数量") + private Integer couponCount; + @ApiModelProperty(value = "有效期") + private String validityTime; + @ApiModelProperty(value = "结束时间 前端忽略") + private LocalDateTime endTime; + @ApiModelProperty(value = "是否可用") + private Integer isUse; + @ApiModelProperty(value = "优惠券id") + private Long couponId; + @ApiModelProperty(value = "使用了优惠券后的服务费 用于判断哪一张优惠券优惠力度最大 前端忽略") + private BigDecimal money; + @ApiModelProperty(value = "当前用户是否为会员0否1是 前端忽略") + private Integer isVip; +} diff --git a/ruoyi-auth/pom.xml b/ruoyi-auth/pom.xml index ee4cf04..df1fa2a 100644 --- a/ruoyi-auth/pom.xml +++ b/ruoyi-auth/pom.xml @@ -85,12 +85,6 @@ <version>${hutool.version}</version> </dependency> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - </dependency> - </dependencies> <build> diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 9c6b8fd..91f7ab4 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -3,23 +3,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.account.api.feignClient.AppUserClient; -import com.ruoyi.account.api.model.TAppUser; -import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.constant.MsgConstants; -import com.ruoyi.common.core.utils.HttpUtils; -import com.ruoyi.common.core.utils.MsgUtil; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; -import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import com.ruoyi.auth.form.LoginBody; import com.ruoyi.auth.form.RegisterBody; @@ -33,7 +21,6 @@ import com.ruoyi.system.api.model.LoginUser; import java.util.*; -import java.util.concurrent.TimeUnit; /** * token 控制 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java index 8f56ebf..be3a1e7 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java @@ -36,6 +36,11 @@ * 用户标识 */ public static final String USER_KEY = "user_key"; + + /** + * 用户类型(system/applet) + */ + public static final String USER_TYPE = "user_type"; /** * 小程序登录用户标识 */ diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java index b5f5b92..c70bcd2 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java @@ -62,6 +62,31 @@ { return getValue(claims, SecurityConstants.USER_KEY); } + + /** + * 根据令牌获取用户类型 + * + * @param token 令牌 + * @return 用户类型 + */ + public static String getUserType(String token) + { + Claims claims = parseToken(token); + return getValue(claims, SecurityConstants.USER_TYPE); + } + + /** + * 根据令牌获取用户类型 + * + * @param claims 身份信息 + * @return 用户类型 + */ + public static String getUserType(Claims claims) + { + return getValue(claims, SecurityConstants.USER_TYPE); + } + + /** * 小程序根据令牌获取用户标识 diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 2735380..2cdbed5 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -60,6 +60,7 @@ Map<String, Object> claimsMap = new HashMap<String, Object>(); claimsMap.put(SecurityConstants.USER_KEY, token); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); + claimsMap.put(SecurityConstants.USER_TYPE, "system"); claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); // 接口返回信息 @@ -82,6 +83,7 @@ Map<String, Object> claimsMap = new HashMap<String, Object>(); claimsMap.put(SecurityConstants.USER_APPLET_KEY, token); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); + claimsMap.put(SecurityConstants.USER_TYPE, "applet"); claimsMap.put(SecurityConstants.DETAILS_USERNAME, name); // 接口返回信息 Map<String, Object> rspMap = new HashMap<String, Object>(); diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml index 055df92..35f7df5 100644 --- a/ruoyi-gateway/pom.xml +++ b/ruoyi-gateway/pom.xml @@ -114,18 +114,18 @@ <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> - -<!-- <dependency>--> -<!-- <groupId>org.springframework.boot</groupId>--> -<!-- <artifactId>spring-boot-starter-websocket</artifactId>--> -<!-- <optional>true</optional>--> -<!-- </dependency>--> - <!--hutool-all--> -<!-- <dependency>--> -<!-- <groupId>cn.hutool</groupId>--> -<!-- <artifactId>hutool-all</artifactId>--> -<!-- <version>5.0.3</version>--> -<!-- </dependency>--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-account</artifactId> + <version>3.6.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-system</artifactId> + <version>3.6.2</version> + <scope>compile</scope> + </dependency> </dependencies> 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 1b0eb25..c6653e5 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,18 +1,18 @@ package com.ruoyi.gateway.filter; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.codec.binary.Base64; +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.beans.factory.annotation.Value; 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.core.io.buffer.DataBuffer; import org.springframework.http.HttpHeaders; import org.springframework.http.server.reactive.ServerHttpRequest; -import org.springframework.http.server.reactive.ServerHttpRequestDecorator; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import com.ruoyi.common.core.constant.CacheConstants; @@ -25,14 +25,12 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import io.jsonwebtoken.Claims; -import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.concurrent.atomic.AtomicReference; +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + /** * 网关鉴权 @@ -50,6 +48,15 @@ @Autowired private RedisService redisService; + @Lazy + @Resource + private AppUserClient appUserClient; + + @Lazy + @Resource + private SysUserClient sysUserClient; + + @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { @@ -61,24 +68,26 @@ if (StringUtils.matches(url, ignoreWhite.getWhites())) { 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 { + verifyToken(request); + verifyAccount(request); + }catch (Exception e){ + return unauthorizedResponse(exchange, e.getMessage()); + } String token = getToken(request); - if (StringUtils.isEmpty(token)) { - return unauthorizedResponse(exchange, "令牌不能为空"); - } Claims claims = JwtUtils.parseToken(token); - if (claims == null) { - return unauthorizedResponse(exchange, "令牌已过期或验证不正确!"); - } String userkey = JwtUtils.getUserKey(claims); - boolean islogin = redisService.hasKey(getTokenKey(userkey)); - if (!islogin) { - return unauthorizedResponse(exchange, "登录状态已过期"); - } String userid = JwtUtils.getUserId(claims); String username = JwtUtils.getUserName(claims); - if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { - return unauthorizedResponse(exchange, "令牌验证失败"); - } // 设置用户信息到请求 addHeader(mutate, SecurityConstants.USER_KEY, userkey); @@ -130,9 +139,94 @@ /** * 防抖处理 */ + public void antiShake(ServerHttpRequest request) throws Exception{ + HttpHeaders headers = request.getHeaders(); + String client = headers.getFirst("client"); + String timestamp = headers.getFirst("timestamp"); + String url = request.getURI().getPath(); + Map<String, Object> cacheMap = redisService.getCacheMap(client); + if(null == cacheMap){ + cacheMap = new HashMap<>(); + cacheMap.put(url, timestamp); + redisService.setCacheMap(client, cacheMap); + }else{ + Object o = cacheMap.get(url); + if(null == o){ + cacheMap.put(url, timestamp); + }else{ + Long old_timestamp = Long.valueOf(o.toString()); + Long new_timestamp = Long.valueOf(timestamp); + //两个请求时间差小于1秒,判定为重复提交 + if((new_timestamp - old_timestamp) <= 1000){ + throw new RuntimeException("重复提交"); + }else{ + cacheMap.put(url, timestamp); + } + } + redisService.setCacheMap(client, cacheMap); + } + } + /** + * 验证token + * @param request + * @throws Exception + */ + public void verifyToken(ServerHttpRequest request) throws Exception{ + String token = getToken(request); + if (StringUtils.isEmpty(token)) { + throw new RuntimeException("令牌不能为空"); + } + Claims claims = JwtUtils.parseToken(token); + if (claims == null) { + 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("账户已被冻结,请联系系统管理员!"); + } + } + } + @Override public int getOrder() { diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index fe35873..67ff0c1 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -20,7 +20,6 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-system</artifactId> - <scope>compile</scope> </dependency> <!-- SpringCloud Alibaba Nacos --> diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml index 0390101..6df3409 100644 --- a/ruoyi-service/ruoyi-account/pom.xml +++ b/ruoyi-service/ruoyi-account/pom.xml @@ -18,14 +18,10 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-chargingPile</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <!-- SpringCloud Alibaba Nacos --> <dependency> @@ -115,25 +111,15 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-other</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-api-order</artifactId> - <version>3.6.2</version> <scope>compile</scope> </dependency> diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java index 41f55e8..f529267 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java @@ -7,14 +7,12 @@ import com.ruoyi.account.api.model.TAppCoupon; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; -import com.ruoyi.account.api.vo.CarListVO; -import com.ruoyi.account.api.vo.CouponListVOVO; +import com.ruoyi.other.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; import com.ruoyi.account.service.TAppCouponService; import com.ruoyi.account.service.TAppUserCarService; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.vo.SiteInfoVO; -import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; 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 597afdd..ea8dcfd 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,25 +1,17 @@ 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; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.*; import com.ruoyi.account.api.model.*; -import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.account.service.*; import com.ruoyi.account.util.PointDetailUtil; import com.ruoyi.account.util.SignDayUtil; -import com.ruoyi.account.wx.body.resp.Code2SessionRespBody; -import com.ruoyi.account.wx.body.resq.Code2SessionResqBody; import com.ruoyi.account.wx.model.WeixinProperties; -import com.ruoyi.account.wx.tools.WxAppletTools; import com.ruoyi.account.util.GiveVipUtil; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; @@ -29,9 +21,7 @@ import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BasePojo; -import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; -import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; @@ -39,21 +29,16 @@ import com.ruoyi.order.api.feignClient.ExchangeOrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TExchangeOrder; +import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TIntegralRule; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.OtherClient; -import com.ruoyi.system.api.domain.SysRole; -import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.LoginUserApplet; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.poi.ss.formula.functions.T; import lombok.extern.slf4j.Slf4j; -import org.aspectj.weaver.loadtime.Aj; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java index 872fa64..0e75c62 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java @@ -2,13 +2,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.account.api.dto.TagListQueryDto; -import com.ruoyi.account.api.dto.UnitListQueryDto; -import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.other.api.dto.TagListQueryDto; import com.ruoyi.account.api.model.TAppUserTag; import com.ruoyi.account.service.TAppUserTagService; import com.ruoyi.common.core.domain.R; -import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.OtherClient; import io.swagger.annotations.ApiOperation; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java index bde3dab..5929c6b 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java @@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.account.api.model.TAppCoupon; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; -import com.ruoyi.account.api.vo.CouponListVOVO; +import com.ruoyi.other.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; import com.ruoyi.common.core.web.page.PageInfo; import org.apache.ibatis.annotations.Param; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java index 5c518fe..09023c0 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java @@ -4,7 +4,7 @@ import com.ruoyi.account.api.dto.CouponListDto; import com.ruoyi.account.api.model.TAppCoupon; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; -import com.ruoyi.account.api.vo.CouponListVOVO; +import com.ruoyi.other.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java index 34f0530..42c336b 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java @@ -7,7 +7,7 @@ import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.TAppUserVipDetail; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; -import com.ruoyi.account.api.vo.CouponListVOVO; +import com.ruoyi.other.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; import com.ruoyi.account.mapper.TAppCouponMapper; import com.ruoyi.account.mapper.TAppUserMapper; @@ -63,6 +63,10 @@ private ChargingOrderClient chargingOrderClient; @Autowired private TAppUserVipDetailService tAppUserVipDetailService; + @Autowired + private TAppUserMapper tAppUserMapper; + @Autowired + private TokenService tokenService; @Override public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) { @@ -132,13 +136,11 @@ } - @Autowired - private TAppUserMapper tAppUserMapper; + @Override public PageInfo<CouponListVOVO> couponList(CouponListDto dto) { // todo token获取用户id - Long userId = 11L; - dto.setUserId(userId); + dto.setUserId(tokenService.getLoginUserApplet().getUserId()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); PageInfo<CouponListVOVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<CouponListVOVO> list = this.baseMapper.couponList(pageInfo,dto.getUserId()); diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml index b94f498..0692cd9 100644 --- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml @@ -57,7 +57,7 @@ </where> ORDER BY create_time DESC </select> - <select id="couponList" resultType="com.ruoyi.account.api.vo.CouponListVOVO"> + <select id="couponList" resultType="com.ruoyi.other.api.vo.CouponListVOVO"> SELECT t1.app_user_id AS appUserId, t1.coupon_id AS couponId, diff --git a/ruoyi-service/ruoyi-chargingPile/pom.xml b/ruoyi-service/ruoyi-chargingPile/pom.xml index 63d7f4a..1a16816 100644 --- a/ruoyi-service/ruoyi-chargingPile/pom.xml +++ b/ruoyi-service/ruoyi-chargingPile/pom.xml @@ -18,15 +18,11 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <!-- ruoyi-modules-chargingPile-api --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-chargingPile</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <!-- SpringCloud Alibaba Nacos --> @@ -122,14 +118,10 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-other</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> </dependencies> diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java index d4a0f79..640261a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileNotificationController.java @@ -43,8 +43,7 @@ @ApiOperation(value = "删除系统通知", tags = {"管理后台-系统通知"}) public AjaxResult delChargingPileNotification(@RequestParam("id") Long id){ TChargingPileNotification chargingPileNotification = chargingPileNotificationService.getById(id); - chargingPileNotification.setDelFlag(1); - chargingPileNotificationService.updateById(chargingPileNotification); + chargingPileNotificationService.removeById(chargingPileNotification); return AjaxResult.success(); } diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml index 193649c..aee7399 100644 --- a/ruoyi-service/ruoyi-order/pom.xml +++ b/ruoyi-service/ruoyi-order/pom.xml @@ -19,27 +19,19 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-other</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <!-- ruoyi-modules-chargingPile-api --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-chargingPile</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml index 7179436..2e9d6e4 100644 --- a/ruoyi-service/ruoyi-other/pom.xml +++ b/ruoyi-service/ruoyi-other/pom.xml @@ -24,20 +24,14 @@ <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-account</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-other</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> - <version>3.6.2</version> - <scope>compile</scope> </dependency> <!-- SpringCloud Alibaba Nacos Config --> <dependency> -- Gitblit v1.7.1