From dd1b4b2d22b14cc1c55ea71992e09e0a418ad128 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Tue, 26 Nov 2024 12:29:24 +0800 Subject: [PATCH] =?UTF-8?q?feat()=EF=BC=9A=E5=9B=A2=E8=B4=AD=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E6=B7=BB=E5=8A=A0=E5=9B=9E=E6=98=BE=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/团购回显数据结构 | 23 ++++ .../domain/ActivityTeamProductSkuInfo.java | 2 +- .../domain/model/ActivityTeamDetailModel.java | 105 +++++++++++++++++ .../model/ActivityTeamInfoAddModel.java | 24 +++- .../model/ActivityTeamProductSkuAddModel.java | 13 +++ .../ActivityTeamProductSkuDetailModel.java | 74 ++++++++++++ .../model/TeamProductDiscountPriceModel.java | 2 +- .../domain/req/ActivityTeamInfoSaveReq.java | 2 +- .../marketing/domain/req/TeamInfoListReq.java | 3 +- ...Req.java => TeamProjectSkuInfoAddReq.java} | 7 +- .../domain/resp/ActivityTeamDetailResp.java | 106 ++++++++++++++++++ .../resp/ActivityTeamProjectSkuInfoResp.java | 62 ++++++++++ .../domain/resp/ActivityTeamUpdResp.java | 106 ++++++++++++++++++ .../controller/ActivityTeamController.java | 49 +++++++- .../team/service/ActivityTeamInfoService.java | 8 ++ .../ActivityTeamProductSkuInfoService.java | 5 +- .../impl/ActivityTeamInfoServiceImpl.java | 34 ++++-- ...ActivityTeamProductSkuInfoServiceImpl.java | 17 ++- .../src/main/resources/bootstrap.yml | 6 +- 19 files changed, 615 insertions(+), 33 deletions(-) create mode 100644 doc/团购回显数据结构 create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDetailModel.java rename muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/{ProjectSkuInfoAddReq.java => TeamProjectSkuInfoAddReq.java} (85%) create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuInfoResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamUpdResp.java diff --git a/doc/团购回显数据结构 b/doc/团购回显数据结构 new file mode 100644 index 0000000..06636a2 --- /dev/null +++ b/doc/团购回显数据结构 @@ -0,0 +1,23 @@ +$.{ + "活动ID":"Long", + "活动名称":"String", + "商品ID":"Long", + "商品图片":"String", + "活动简介":"String", + "商品单位":"String", + "商品的轮播图":"String", + "活动时间":"Date", + "策略ID":"Integer", + "策略类型":"String", + "排序":"Integer", + "商品规格List":[ + { + "规格ID":"Long", + "规格SKU": "String", + "拼团价格": "BigDecimal", + "拼团库存": "Long" + } + ], + "策略类型":"String", + "策略ID":"Integer", +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java index 43521d0..b663274 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java @@ -60,6 +60,6 @@ public class ActivityTeamProductSkuInfo extends BaseEntity { .teamStock(activityTeamProductSkuAddModel.getTeamStock()) .remainStock(activityTeamProductSkuAddModel.getTeamStock()) .teamPrice(activityTeamProductSkuAddModel.getTeamPrice()) - .build() + .build(); } } diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java new file mode 100644 index 0000000..9ef65cd --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java @@ -0,0 +1,105 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.marketing.domain.ActivityTeamInfo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; + +/** + * 活动suk回显模型 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamDetailModel extends BaseEntity { + + /** + * 活动ID + */ + public Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + + private String unit; + /** + * 轮播图 + */ + + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 商品SkU集合 + */ + private List productSkuDetailModelList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + + public static ActivityTeamDetailModel findActivity(ActivityTeamInfo activityTeamInfo) { + return ActivityTeamDetailModel.builder() + .id(activityTeamInfo.getId()) + .name(activityTeamInfo.getName()) + .productId(activityTeamInfo.getProductId()) + .productImage(activityTeamInfo.getProductImage()) + .introduction(activityTeamInfo.getIntroduction()) + .unit(activityTeamInfo.getUnit()) + .imageList(activityTeamInfo.getImageList()) + .endTime(activityTeamInfo.getEndTime()) + .sort(activityTeamInfo.getSort()) + .content(activityTeamInfo.getContent()) + .status(activityTeamInfo.getStatus()) + .strategyType(activityTeamInfo.getStrategyType()) + .strategyId(activityTeamInfo.getStrategyId()) + .build(); + } + + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java index 40b2def..012e2e7 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java @@ -2,7 +2,7 @@ package com.muyu.marketing.domain.model; import com.fasterxml.jackson.annotation.JsonFormat; -import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq; +import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -78,4 +78,26 @@ public class ActivityTeamInfoAddModel { * 策略ID */ private Long strategyId; + + public static ActivityTeamInfoAddModel addReqBuild (ActivityTeamInfoSaveReq activityTeamInfoSaveReq){ + return ActivityTeamInfoAddModel.builder() + .name(activityTeamInfoSaveReq.getName()) + .productId(activityTeamInfoSaveReq.getProductId()) + .productImage(activityTeamInfoSaveReq.getProductImage()) + .introduction(activityTeamInfoSaveReq.getIntroduction()) + .unit(activityTeamInfoSaveReq.getUnit()) + .imageList(activityTeamInfoSaveReq.getImageList()) + .endTime(activityTeamInfoSaveReq.getEndTime()) + .sort(activityTeamInfoSaveReq.getSort()) + .content(activityTeamInfoSaveReq.getContent()) + .status(activityTeamInfoSaveReq.getStatus()) + .strategyType(activityTeamInfoSaveReq.getStrategyType()) + .strategyId(activityTeamInfoSaveReq.getStrategyId()) + .activityTeamProductSkuAddModelList( + activityTeamInfoSaveReq.getTeamProjectSkuInfoAddReqList() + .stream() + .map(addReq -> ActivityTeamProductSkuAddModel.addReqBuild(addReq, activityTeamInfoSaveReq::getProductId)) + .toList() + ).build(); + } } diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java index 62195d0..f194353 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java @@ -1,12 +1,14 @@ package com.muyu.marketing.domain.model; +import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; +import java.util.function.Supplier; /** * 团购spu库存添加模型 @@ -44,4 +46,15 @@ public class ActivityTeamProductSkuAddModel { * 拼团库存 */ private Long teamStock; + + + + public static ActivityTeamProductSkuAddModel addReqBuild(TeamProjectSkuInfoAddReq teamProjectSkuInfoAddReq, Supplier productId){ + return ActivityTeamProductSkuAddModel.builder() + .productId(productId.get()) + .sku(teamProjectSkuInfoAddReq.getSku()) + .teamStock(teamProjectSkuInfoAddReq.getTeamStock()) + .teamPrice(teamProjectSkuInfoAddReq.getTeamPrice()) + .build(); + } } diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDetailModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDetailModel.java new file mode 100644 index 0000000..d489649 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDetailModel.java @@ -0,0 +1,74 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.function.Supplier; + +/** + * spu回显模型 + * + * @author DongZeLiang + * @date 2024-11-26 09:36 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuDetailModel { + + /** + * 规格id + */ + public Long id; + /** + * 团购活动ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String productSku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + + + /** + * sku回显构造器 + * @param activityTeamProductSkuInfo + * @return + */ + public static ActivityTeamProductSkuDetailModel getInstance(ActivityTeamProductSkuInfo activityTeamProductSkuInfo) { + return ActivityTeamProductSkuDetailModel.builder() + .id(activityTeamProductSkuInfo.getId()) + .teamId(activityTeamProductSkuInfo.getTeamId()) + .productId(activityTeamProductSkuInfo.getProductId()) + .productSku(activityTeamProductSkuInfo.getProductSku()) + .teamPrice(activityTeamProductSkuInfo.getTeamPrice()) + .teamStock(activityTeamProductSkuInfo.getTeamStock()) + .build(); + } + + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java index 61f9d08..838d8e7 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java @@ -44,7 +44,7 @@ public class TeamProductDiscountPriceModel { * @return 优惠力度 */ public static TeamProductDiscountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) { - TeamProductDiscountPriceModel.builder() + return TeamProductDiscountPriceModel.builder() .productPrice(productPrice) .teamPrice(teamPrice) .discount( diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java index 24afced..89b20e1 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java @@ -55,7 +55,7 @@ public class ActivityTeamInfoSaveReq extends BaseEntity { /** * 商品SkU集合 */ - private List projectSkuInfoAddReqList; + private List teamProjectSkuInfoAddReqList; /** * 活动详情 */ diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java index fcfc308..4dab2b5 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java @@ -3,9 +3,10 @@ package com.muyu.marketing.domain.req; import com.muyu.common.core.web.page.PageDomain; import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel; import lombok.*; +import lombok.experimental.SuperBuilder; @Data -@Builder +@SuperBuilder @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ProjectSkuInfoAddReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java similarity index 85% rename from muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ProjectSkuInfoAddReq.java rename to muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java index 0a7c56d..e18e474 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ProjectSkuInfoAddReq.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java @@ -1,7 +1,6 @@ package com.muyu.marketing.domain.req; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -9,13 +8,15 @@ import lombok.experimental.SuperBuilder; import java.math.BigDecimal; /** - * 添加的 + * sku添加 */ @Data @SuperBuilder @AllArgsConstructor @NoArgsConstructor -public class ProjectSkuInfoAddReq { +public class TeamProjectSkuInfoAddReq { + + private String teamId; /** * 规格SKU diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java new file mode 100644 index 0000000..100c8ef --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java @@ -0,0 +1,106 @@ +package com.muyu.marketing.domain.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; + +/** + * 活动回显 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamDetailResp extends BaseEntity { + + /** + * 活动ID + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + + private String unit; + /** + * 轮播图 + */ + + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 商品SkU集合 + */ + private List skuInfoRespList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + + public static ActivityTeamDetailResp findByid(ActivityTeamDetailModel ActivityTeamDetailModel, Function> skuInfoRespList) { + return ActivityTeamDetailResp.builder() + .id(ActivityTeamDetailModel.getId()) + .name(ActivityTeamDetailModel.getName()) + .productId(ActivityTeamDetailModel.getProductId()) + .productImage(ActivityTeamDetailModel.getProductImage()) + .introduction(ActivityTeamDetailModel.getIntroduction()) + .unit(ActivityTeamDetailModel.getUnit()) + .imageList(ActivityTeamDetailModel.getImageList()) + .endTime(ActivityTeamDetailModel.getEndTime()) + .sort(ActivityTeamDetailModel.getSort()) + .content(ActivityTeamDetailModel.getContent()) + .status(ActivityTeamDetailModel.getStatus()) + .strategyType(ActivityTeamDetailModel.getStrategyType()) + .strategyId(ActivityTeamDetailModel.getStrategyId()) + .skuInfoRespList(skuInfoRespList.apply(ActivityTeamDetailModel.getId())) + .build(); + } + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuInfoResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuInfoResp.java new file mode 100644 index 0000000..005cd62 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuInfoResp.java @@ -0,0 +1,62 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.model.ActivityTeamProductSkuDetailModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; +import java.util.List; + +/** + * sku回显对象 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ActivityTeamProjectSkuInfoResp { + + /** + * 规格id + */ + public Long id; + /** + * 团购活动ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String productSku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + + public static List findSkuId(List activityTeamProductSkuDetailModel) { + return activityTeamProductSkuDetailModel.stream().map(activityTeamProductSkuDetailModel1 -> { + ActivityTeamProjectSkuInfoResp teamProjectSkuInfoResp = ActivityTeamProjectSkuInfoResp.builder() + .teamId(activityTeamProductSkuDetailModel1.getTeamId()) + .productSku(activityTeamProductSkuDetailModel1.getProductSku()) + .productSku(activityTeamProductSkuDetailModel1.getProductSku()) + .teamPrice(activityTeamProductSkuDetailModel1.getTeamPrice()) + .build(); + return teamProjectSkuInfoResp; + }).toList(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamUpdResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamUpdResp.java new file mode 100644 index 0000000..c27b31c --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamUpdResp.java @@ -0,0 +1,106 @@ +package com.muyu.marketing.domain.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; + +/** + * 活动修改 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamUpdResp extends BaseEntity { + + /** + * 活动ID + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + + private String unit; + /** + * 轮播图 + */ + + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 商品SkU集合 + */ + private List skuInfoRespList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + + public static ActivityTeamUpdResp findByid(ActivityTeamDetailModel ActivityTeamDetailModel, Function> skuInfoRespList) { + return ActivityTeamUpdResp.builder() + .id(ActivityTeamDetailModel.getId()) + .name(ActivityTeamDetailModel.getName()) + .productId(ActivityTeamDetailModel.getProductId()) + .productImage(ActivityTeamDetailModel.getProductImage()) + .introduction(ActivityTeamDetailModel.getIntroduction()) + .unit(ActivityTeamDetailModel.getUnit()) + .imageList(ActivityTeamDetailModel.getImageList()) + .endTime(ActivityTeamDetailModel.getEndTime()) + .sort(ActivityTeamDetailModel.getSort()) + .content(ActivityTeamDetailModel.getContent()) + .status(ActivityTeamDetailModel.getStatus()) + .strategyType(ActivityTeamDetailModel.getStrategyType()) + .strategyId(ActivityTeamDetailModel.getStrategyId()) + .skuInfoRespList(skuInfoRespList.apply(ActivityTeamDetailModel.getId())) + .build(); + } + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java index 4694815..a5a145d 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java @@ -3,15 +3,18 @@ package com.muyu.marketing.team.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; +import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; +import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; import com.muyu.marketing.domain.req.TeamInfoListReq; +import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; +import com.muyu.marketing.domain.resp.ActivityTeamProjectSkuInfoResp; import com.muyu.marketing.domain.resp.TeamInfoListResp; import com.muyu.marketing.team.service.ActivityTeamInfoService; +import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -26,10 +29,15 @@ import java.util.List; public class ActivityTeamController { @Autowired - private ActivityTeamInfoService activityTeamInfoService;; + private ActivityTeamInfoService activityTeamInfoService; + + @Autowired + private ActivityTeamProductSkuInfoService activityTeamDetailResp; + /** * 查询营销团购活动列表 + * * @param teamInfoListReq 活动查询入参 * @return 活动响应结果 */ @@ -38,10 +46,39 @@ public class ActivityTeamController { TableDataInfo tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel()); List respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModelBuild).toList(); return Result.success( - new TableDataInfo<>(){{ + new TableDataInfo<>() {{ setRows(respList); setTotal(tableDataInfo.getTotal()); }} ); + } + + /** + * 添加团购活动 + * + * @param activityTeamInfoSaveReq 添加请求对象 + * @return 结果集 + */ + @PostMapping + public Result save(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq) { + activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq)); + return Result.success(); + } + + /** + * 活动回显 + * @param id 活动id + * @return + */ + @PostMapping("/findById/{id}") + public Result findById(@PathVariable("id") Long id) { + ActivityTeamDetailModel detailModel = activityTeamInfoService.findById(id); + ActivityTeamDetailResp detailResp = ActivityTeamDetailResp.findByid(detailModel, + teamId -> ActivityTeamProjectSkuInfoResp.findSkuId(activityTeamDetailResp.activityTeamProductSkuFindId(teamId)) + ); + return Result.success(detailResp); + } + + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java index 21d9f00..7a4f827 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java @@ -3,9 +3,11 @@ package com.muyu.marketing.team.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.marketing.domain.ActivityTeamInfo; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel; +import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; import java.util.List; @@ -24,4 +26,10 @@ public interface ActivityTeamInfoService extends IService { * @param activityTeamInfoAddModel 团购添加模型 */ public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); + /** + * 活动回显 + * @param id 活动id + * @return + */ + ActivityTeamDetailModel findById(Long id); } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java index 6a5d6dd..c0c19e7 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java @@ -3,8 +3,8 @@ package com.muyu.marketing.team.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; -import com.muyu.marketing.domain.TeamStrategyExemptionHundred; import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuDetailModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductStockModel; @@ -41,4 +41,7 @@ public interface ActivityTeamProductSkuInfoService extends IService activityTeamProductSkuAddModelList); + + public List activityTeamProductSkuFindId(Long teamId); + } 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 e4e9313..49326af 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 @@ -2,6 +2,7 @@ package com.muyu.marketing.team.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.exception.ServiceException; @@ -9,10 +10,12 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.model.*; +import com.muyu.marketing.domain.resp.ActivityTeamDetailResp; import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper; import com.muyu.marketing.team.service.ActivityTeamInfoService; import com.muyu.marketing.team.service.ActivityTeamOpenInfoService; import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,7 +26,7 @@ import java.util.function.Consumer; @Service public class ActivityTeamInfoServiceImpl extends ServiceImpl - implements ActivityTeamInfoService { + implements ActivityTeamInfoService { @Autowired private ActivityTeamOpenInfoService activityTeamOpenInfoService; @@ -75,14 +78,25 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl teamProductSkuAddModelList = activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList(); + teamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId())); + this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList); } + + /** + * 活动回显 + * + * @param id 活动id + * @return + */ + @Override + public ActivityTeamDetailModel findById(Long id) { + return ActivityTeamDetailModel.findActivity(this.getById(id)); + } + + + + } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java index 6e87518..ec48bc6 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.exception.ServiceException; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuDetailModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductStockModel; import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper; @@ -14,16 +15,12 @@ import com.muyu.product.domain.ProjectSkuInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Optional; @Service public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl - implements ActivityTeamProductSkuInfoService { + implements ActivityTeamProductSkuInfoService { @Autowired private ProjectSkuCache projectSkuCache; @@ -45,7 +42,7 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue()); - if (discountPriceModelOptional.isEmpty()){ + if (discountPriceModelOptional.isEmpty()) { throw new ServiceException("团购活动下没有商品绑定"); } return discountPriceModelOptional.get(); @@ -80,4 +77,12 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl activityTeamProductSkuFindId(Long teamId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); + List list = this.list(queryWrapper); + return list.stream().map(ActivityTeamProductSkuDetailModel::getInstance).toList(); + } } diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml index 78b5a7b..7674f25 100644 --- a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml @@ -14,10 +14,12 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 127.0.0.1:8848 + server-addr: 1.94.33.190:8848 + namespace: 167892b6-25cf-4932-b65a-12fd1ca16363 config: # 配置中心地址 - server-addr: 127.0.0.1:8848 + server-addr: 1.94.33.190:8848 + namespace: 167892b6-25cf-4932-b65a-12fd1ca16363 # 配置文件格式 file-extension: yml # 共享配置