diff --git a/doc/团购查询单条数据结构.java b/doc/团购查询单条数据结构.java new file mode 100644 index 0000000..d52ddda --- /dev/null +++ b/doc/团购查询单条数据结构.java @@ -0,0 +1,24 @@ +$.{ + "活动ID": "Long", + "商品ID": "Long", //activity_team_info.product_id + "商品图片": "String", + "活动名称": "String", + "活动简介": "String", + "商品单位": "String", + "商品的轮播图": [ + "String", "String" + ], + "活动时间": "date", + "策略类型": "String", + "策略ID": "Long", + "商品规格List": [ // activity_team_product_sku_info + { + "活动商品规格ID": "Long", + "规格SKU": "String", // activity_team_product_sku_info.product_sku + "拼团价格": "BigDecimal", + "拼团库存": "Long" + } + ], + "排序": "Integer", + "详情": "String" +} \ No newline at end of file diff --git a/doc/团购活动修改.java b/doc/团购活动修改.java new file mode 100644 index 0000000..64b1b79 --- /dev/null +++ b/doc/团购活动修改.java @@ -0,0 +1,32 @@ +{ + "活动ID": "Long", + "商品ID": "Long", + "活动名称": "String", + "商品名称": "String", + "商品图片": "String", + "活动简介": "String", + "商品单位": "String", + "商品的轮播图": [ + "String", "String" + ], + "活动时间": "date", + "策略类型": "String", + "商品规格": { + "修改商品规格List": [ // 修改 + { + "团购规格ID": "Long", + "拼团价格": "BigDecimal", + "拼团库存": "Long" + } + ], + "删除商品规格IdList" : ["Long", "Long"], + "添加商品规格List": [ + "商品SKU": "String", + "商品价格": "BigDecimal", + "拼团价格": "BigDecimal", + "拼团库存": "Long" + ] + }, + +"详情": "String" +} 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..9e9f9f8 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java @@ -0,0 +1,102 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.ActivityTeamInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; + +/** + * @program: 2204a-cloud-server + * @description: 活动回显总模型 + * @author: AoCi Tian + * @create: 2024-11-26 16:00 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamDetailModel { + /** + * 拼团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 projectSkuInfoAddReqList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + public static ActivityTeamDetailModel findSkuSumList (ActivityTeamInfo activityTeamInfo, + Function function){ + return function.apply(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()) + ); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java new file mode 100644 index 0000000..beb468f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java @@ -0,0 +1,92 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 添加活动模型 + * @author: AoCi Tian + * @create: 2024-11-26 10:59 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoSaveModel { + + /** + * 拼团名称 + */ + 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; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + public static ActivityTeamInfoSaveModel activityTeamInfoSaveModelBuild (ActivityTeamInfoAddModel activityTeamInfoAddModel){ + return ActivityTeamInfoSaveModel.builder() + .name(activityTeamInfoAddModel.getName()) + .productId(activityTeamInfoAddModel.getProductId()) + .productImage(activityTeamInfoAddModel.getProductImage()) + .introduction(activityTeamInfoAddModel.getIntroduction()) + .unit(activityTeamInfoAddModel.getUnit()) + .imageList(activityTeamInfoAddModel.getImageList()) + .endTime(activityTeamInfoAddModel.getEndTime()) + .sort(activityTeamInfoAddModel.getSort()) + .content(activityTeamInfoAddModel.getContent()) + .status(activityTeamInfoAddModel.getStatus()) + .strategyType(activityTeamInfoAddModel.getStrategyType()) + .strategyId(activityTeamInfoAddModel.getStrategyId()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java new file mode 100644 index 0000000..6ebfd78 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java @@ -0,0 +1,56 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 活动商品规格修改模型 + * @author: AoCi Tian + * @create: 2024-11-26 19:25 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoUpdModel { + private Long id; + private String name; + private Long productId; + private String productImage; + private String introduction; + private String unit; + private String imageList; + private Date endTime; + private Long sort; + private String content; + private String status; + private String strategyType; + private Long strategyId; + private List activityTeamProductSkuModelList; + + public static ActivityTeamInfoUpdModel activityTeamInfoUpdReqModelBuild (ActivityTeamInfoUpdReq activityTeamInfoUpdReq){ + return ActivityTeamInfoUpdModel.builder() + .id(activityTeamInfoUpdReq.getId()) + .name(activityTeamInfoUpdReq.getName()) + .productId(activityTeamInfoUpdReq.getProductId()) + .productImage(activityTeamInfoUpdReq.getProductImage()) + .introduction(activityTeamInfoUpdReq.getIntroduction()) + .unit(activityTeamInfoUpdReq.getUnit()) + .imageList(activityTeamInfoUpdReq.getImageList()) + .endTime(activityTeamInfoUpdReq.getEndTime()) + .sort(activityTeamInfoUpdReq.getSort()) + .content(activityTeamInfoUpdReq.getContent()) + .status(activityTeamInfoUpdReq.getStatus()) + .strategyType(activityTeamInfoUpdReq.getStrategyType()) + .strategyId(activityTeamInfoUpdReq.getStrategyId()) + .activityTeamProductSkuModelList(activityTeamInfoUpdReq.getActivityTeamProductSkuList().stream().map(ActivityTeamProductSkuReqModel::activityTeamProductSkuReqModelBuild).toList()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java new file mode 100644 index 0000000..fea8782 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java @@ -0,0 +1,51 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 商品活动SKU信息模型 + * + * @author DongZeLiang + * @date 2024-11-26 15:35 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuInfoModel { + /** + * 团购商品SKU的ID + */ + private Long id; + + /** + * 团ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java new file mode 100644 index 0000000..3b6fc78 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java @@ -0,0 +1,50 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.resp.ProjectFindSkuInfoResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: 回显sku模型 + * @author: AoCi Tian + * @create: 2024-11-26 16:03 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuModel { + /** + * 规格id + */ + private Long id; + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ActivityTeamProductSkuModel FindBuild(ActivityTeamProductSkuInfo activityTeamProductSkuInfo) { + return ActivityTeamProductSkuModel.builder() + .id(activityTeamProductSkuInfo.getId()) + .sku(activityTeamProductSkuInfo.getProductSku()) + .teamStock(activityTeamProductSkuInfo.getTeamStock()) + .teamPrice(activityTeamProductSkuInfo.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java new file mode 100644 index 0000000..65e1aa7 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java @@ -0,0 +1,40 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.req.ActivityTeamProductSkuReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: sku修改模型 + * @author: AoCi Tian + * @create: 2024-11-26 19:45 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuReqModel { + private Long id; + private Long teamId; + private Long productId; + private String productSku; + private Long teamStock; + private Long remainStock; + private BigDecimal teamPrice; + public static ActivityTeamProductSkuReqModel activityTeamProductSkuReqModelBuild(ActivityTeamProductSkuReq activityTeamProductSkuReq){ + return ActivityTeamProductSkuReqModel.builder() + .id(activityTeamProductSkuReq.getId()) + .productId(activityTeamProductSkuReq.getProductId()) + .teamId(activityTeamProductSkuReq.getTeamId()) + .productSku(activityTeamProductSkuReq.getProductSku()) + .remainStock(activityTeamProductSkuReq.getRemainStock()) + .teamStock(activityTeamProductSkuReq.getTeamStock()) + .teamPrice(activityTeamProductSkuReq.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java new file mode 100644 index 0000000..5039ce6 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java @@ -0,0 +1,37 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 拼团活动商品SKU + * + * @author DongZeLiang + * @date 2024-11-27 14:18 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuUpdModel { + + /** + * 商品规格ID + */ + private Long id; + + /** + * 团购价格 + */ + private BigDecimal teamPrice; + + /** + * 团购库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java new file mode 100644 index 0000000..82939fa --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java @@ -0,0 +1,36 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 活动商品规格修改入参 + * @author: AoCi Tian + * @create: 2024-11-26 19:25 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoUpdReq { + private Long id; + private String name; + private Long productId; + private String productImage; + private String introduction; + private String unit; + private String imageList; + private Date endTime; + private Long sort; + private String content; + private String status; + private String strategyType; + private Long strategyId; + private List activityTeamProductSkuList; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java new file mode 100644 index 0000000..590781a --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java @@ -0,0 +1,28 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: sku修改入参 + * @author: AoCi Tian + * @create: 2024-11-26 19:45 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuReq { + private Long id; + private Long teamId; + private Long productId; + private String productSku; + private Long teamStock; + private Long remainStock; + private BigDecimal teamPrice; +} 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..40b1712 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java @@ -0,0 +1,81 @@ +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.req.TeamProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamDetailResp extends BaseEntity { + + /** + * 团购ID + */ + private Long teamId; + /** + * 拼团名称 + */ + 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 Integer sort; + /** + * 商品SkU集合 + */ + private List activityTeamProjectSkuList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java new file mode 100644 index 0000000..ccbbf8e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java @@ -0,0 +1,38 @@ +package com.muyu.marketing.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 添加的 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ActivityTeamProjectSkuResp { + + /** + * 团购商品SKU的ID + */ + private Long productSkuId; + + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java new file mode 100644 index 0000000..cf0af4e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java @@ -0,0 +1,48 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 回显resp + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ProjectFindSkuInfoResp { + /** + * 规格id + */ + private Long id; + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ProjectFindSkuInfoResp projectFindSkuInfoBuild (ActivityTeamProductSkuModel activityTeamProductSkuModel) { + return ProjectFindSkuInfoResp.builder() + .teamStock(activityTeamProductSkuModel.getTeamStock()) + .teamPrice(activityTeamProductSkuModel.getTeamPrice()) + .id(activityTeamProductSkuModel.getId()) + .sku(activityTeamProductSkuModel.getSku()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java new file mode 100644 index 0000000..3efe23a --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java @@ -0,0 +1,107 @@ +package com.muyu.marketing.domain.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; +import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 团购活动回显响应 + * @author: AoCi Tian + * @create: 2024-11-26 15:19 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TeamInfoFindByIdResp { + /** + * 拼团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 projectSkuInfoAddList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + public static TeamInfoFindByIdResp teamInfoFindByIdBuild (ActivityTeamDetailModel activityTeamDetailModel){ + return TeamInfoFindByIdResp.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()) + .projectSkuInfoAddList(activityTeamDetailModel.getProjectSkuInfoAddReqList().stream().map(ProjectFindSkuInfoResp::projectFindSkuInfoBuild).toList()) +// .projectSkuInfoAddList( +// teamInfoFindByIdRespModel.getProjectSkuInfoAddReqList().stream().map(activityTeamProductSkuModel -> +// ProjectFindSkuInfoResp.projectFindSkuInfoBuild(activityTeamProductSkuModel)).toList() +// ) + .content(activityTeamDetailModel.getContent()) + .status(activityTeamDetailModel.getStatus()) + .strategyType(activityTeamDetailModel.getStrategyType()) + .strategyId(activityTeamDetailModel.getStrategyId()) + .build(); + } +} 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..3bf453a 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 @@ -4,9 +4,7 @@ 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.TeamProductDiscountPriceModel; -import com.muyu.marketing.domain.model.TeamProductStockModel; +import com.muyu.marketing.domain.model.*; import java.util.List; @@ -41,4 +39,13 @@ public interface ActivityTeamProductSkuInfoService extends IService activityTeamProductSkuAddModelList); + /** + * 通过拼团活动ID获取拼团下商品SKU集合 + * @param teamId 活动ID + * @return 拼团商品SKU集合 + */ + public List findListByTeamId(Long teamId); + + public boolean updateBath(List activityTeamProductSkuReqModelList); + } 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..f1c3369 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 @@ -4,15 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.TeamProductDiscountPriceModel; -import com.muyu.marketing.domain.model.TeamProductStockModel; +import com.muyu.marketing.domain.model.*; import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper; import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; import com.muyu.product.cache.ProjectSkuCache; import com.muyu.product.domain.ProjectSkuInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; @@ -80,4 +79,25 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl findListByTeamId(Long teamId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId); + List list = this.list(queryWrapper); + return list.stream().map(ActivityTeamProductSkuModel::FindBuild).toList(); +// return list.stream().map(activityTeamProductSkuInfo -> ActivityTeamProductSkuModel.FindBuild(activityTeamProductSkuInfo)).toList(); + } + + @Transactional + @Override + public boolean updateBath(List activityTeamProductSkuReqModelList) { + return this.updateBatchById(activityTeamProductSkuReqModelList.stream().map(ActivityTeamProductSkuInfo::updateModelBuild).toList()); + } }