From 62efa5e9de050ea50cfbf46d6ec8903b8a97e109 Mon Sep 17 00:00:00 2001 From: donghongyang <2064765821@qq.com> Date: Fri, 29 Nov 2024 16:48:28 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E5=AE=8C=E5=96=84=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/团购加团数据结构.java | 16 ++++++ .../muyu/auth/controller/TokenController.java | 6 +-- .../gateway/config/properties/CorsConfig.java | 53 +++++++++++++++++++ .../marketing/domain/ActivityTeamInfo.java | 4 ++ .../domain/ActivityTeamOpenInfo.java | 4 ++ .../domain/model/ActivityTeamInfoModel.java | 5 ++ .../model/ActivityTeamProductUpdModel.java | 4 ++ .../impl/ActivityTeamInfoServiceImpl.java | 5 +- 8 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 doc/团购加团数据结构.java create mode 100644 muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java diff --git a/doc/团购加团数据结构.java b/doc/团购加团数据结构.java new file mode 100644 index 0000000..dd381a8 --- /dev/null +++ b/doc/团购加团数据结构.java @@ -0,0 +1,16 @@ +拼团模块 + 1.拼团商品详情 + 2.商品规格 + 3.参团选择商品 + 4. 策略类型 (普通团,梯队团) + 4.1 参团中 + 4.2 参团失败 + 4.3 参团成功一达到人数 + 4.4 参团成功一人数未满 + 4.拼团订单详情 + 4.1 拼团成功 + 4.2 拼团失败 + + +分析接口 +1. diff --git a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java index 960a13f..7839dbf 100644 --- a/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/muyu-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -11,10 +11,7 @@ import com.muyu.common.security.service.TokenService; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.LoginUser; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -24,6 +21,7 @@ import javax.servlet.http.HttpServletRequest; * @author muyu */ @RestController + public class TokenController { @Autowired private TokenService tokenService; diff --git a/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java new file mode 100644 index 0000000..1489033 --- /dev/null +++ b/muyu-gateway/src/main/java/com/muyu/gateway/config/properties/CorsConfig.java @@ -0,0 +1,53 @@ +package com.muyu.gateway.config.properties; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.cors.reactive.CorsUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import reactor.core.publisher.Mono; + +/** + * 跨域配置 + * + * @author ruoyi + */ +@Configuration +public class CorsConfig { + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, Admin-Token, App-Token"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; + + @Bean + public WebFilter corsFilter() { + return (ServerWebExchange ctx, WebFilterChain chain) -> { + ServerHttpRequest request = ctx.getRequest(); + if (CorsUtils.isCorsRequest(request)) { + ServerHttpResponse response = ctx.getResponse(); + HttpHeaders headers = response.getHeaders(); + headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); + headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("Access-Control-Allow-Credentials", "true"); + if (request.getMethod() == HttpMethod.OPTIONS) { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + return chain.filter(ctx); + }; + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java index 3bc44bd..5bed602 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java @@ -3,6 +3,7 @@ package com.muyu.marketing.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.model.ActivityTeamInfoModel; @@ -10,6 +11,7 @@ import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; import com.muyu.marketing.domain.model.ActivityTeamProductSkuModel; import lombok.*; import lombok.experimental.SuperBuilder; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; @@ -54,6 +56,8 @@ public class ActivityTeamInfo extends BaseEntity { /** * 活动结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; /** * 活动排序 diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java index 572299e..62236a4 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java @@ -3,9 +3,11 @@ package com.muyu.marketing.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -41,6 +43,8 @@ public class ActivityTeamOpenInfo extends BaseEntity { /** * 结束团购时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; /** * 商品ID diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoModel.java index 1efe978..b89d3c8 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoModel.java @@ -10,6 +10,11 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import java.util.Date; + +/** + * 团购活动修改对象 + */ + @Data @SuperBuilder @AllArgsConstructor diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductUpdModel.java index 9e1dc30..373e190 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductUpdModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductUpdModel.java @@ -8,6 +8,10 @@ import lombok.experimental.SuperBuilder; import java.util.List; +/** + * 团购活动修改对象里的集合 + */ + @Data @SuperBuilder @AllArgsConstructor diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java index c9de575..29ffa48 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java @@ -109,11 +109,12 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl teamProductSkuAddModelList = activityTeamInfoModel.getActivityTeamProductUpdModel().getActivityTeamProductSkuAddModelList(); + //根据 Sku的Id删除 + activityTeamOpenInfoService.removeBatchByIds(activityTeamInfoModel.getActivityTeamProductUpdModel().getIds()); + teamProductSkuAddModelList.forEach( activityTeamProductSkuAddModel -> { activityTeamProductSkuAddModel.setTeamId(activityTeamInfoModel.getId());