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/ActivityTeamInfoListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java index e38fadf..43d3653 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java @@ -1,17 +1,14 @@ package com.muyu.marketing.domain.model; -import com.muyu.common.core.web.model.QueryModel; import com.muyu.marketing.domain.ActivityTeamInfo; import lombok.*; -import lombok.experimental.SuperBuilder; import java.math.BigDecimal; import java.util.Date; -import java.util.function.Consumer; import java.util.function.Function; /** - * 团购活动雷彪查询结果模型 + * 团购活动列表查询结果模型 * @author DongZeLiang * @date 2024-11-20 14:18:10 */ diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java index d1d0129..a7879a9 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; /** - * 团购活动雷彪查询模型 + * 团购活动列表查询模型 * @author DongZeLiang * @date 2024-11-20 14:18:10 */ diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoQueryModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoQueryModel.java new file mode 100644 index 0000000..a8a26dd --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoQueryModel.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 com.muyu.marketing.domain.resp.ActivityTeamInfoQueryResp; +import com.muyu.marketing.domain.resp.TeamProjectSkuInfoSkuResp; +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 +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamInfoQueryModel extends BaseEntity { + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 商品名称 + */ + private String productName; + /** + * 活动简介 + */ + 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 projectSkuInfoAddRespList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + public static ActivityTeamInfoQueryModel buildModel(ActivityTeamInfo activityTeamInfo, String productName, List projectSkuInfoAddRespList) { + return ActivityTeamInfoQueryModel.builder() + .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()) + .projectSkuInfoAddRespList(projectSkuInfoAddRespList) + .productName(productName) + .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..15cc369 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java @@ -0,0 +1,34 @@ +package com.muyu.marketing.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuInfoModel { + /** + * 商品规格表ID + */ + private Long id; + /** + * 规格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/TeamProductDiscountPriceModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java index 61f9d08..e7a98a2 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/TeamProjectSkuInfoEditReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoEditReq.java new file mode 100644 index 0000000..e119f90 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoEditReq.java @@ -0,0 +1,17 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode +public class TeamProjectSkuInfoEditReq { + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoQueryResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoQueryResp.java new file mode 100644 index 0000000..3f73c0c --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoQueryResp.java @@ -0,0 +1,101 @@ +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.ActivityTeamInfoQueryModel; +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 +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamInfoQueryResp extends BaseEntity { + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 商品名称 + */ + private String productName; + /** + * 活动简介 + */ + 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 projectSkuInfoAddRespList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + + public static ActivityTeamInfoQueryResp buildModel(ActivityTeamInfoQueryModel activityTeamInfoQueryModel) { + return ActivityTeamInfoQueryResp.builder() + .name(activityTeamInfoQueryModel.getName()) + .productId(activityTeamInfoQueryModel.getProductId()) + .productImage(activityTeamInfoQueryModel.getProductImage()) + .productName(activityTeamInfoQueryModel.getProductName()) + .introduction(activityTeamInfoQueryModel.getIntroduction()) + .unit(activityTeamInfoQueryModel.getUnit()) + .imageList(activityTeamInfoQueryModel.getImageList()) + .endTime(activityTeamInfoQueryModel.getEndTime()) + .sort(activityTeamInfoQueryModel.getSort()) + .projectSkuInfoAddRespList(activityTeamInfoQueryModel.getProjectSkuInfoAddRespList()) + .content(activityTeamInfoQueryModel.getContent()) + .status(activityTeamInfoQueryModel.getStatus()) + .strategyType(activityTeamInfoQueryModel.getStrategyType()) + .strategyId(activityTeamInfoQueryModel.getStrategyId()) + .build(); + } + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamProjectSkuInfoSkuResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamProjectSkuInfoSkuResp.java new file mode 100644 index 0000000..46cb51d --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamProjectSkuInfoSkuResp.java @@ -0,0 +1,50 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 单条回显规格 + * + * @author SunLY + * @version 1.0 + * @date 2024/11/26 15:20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TeamProjectSkuInfoSkuResp { + /** + * 商品规格表ID + */ + private Long id; + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static TeamProjectSkuInfoSkuResp buildModel(ActivityTeamProductSkuInfoModel activityTeamProductSkuInfoModel) { + return TeamProjectSkuInfoSkuResp.builder() + .id(activityTeamProductSkuInfoModel.getId()) + .sku(activityTeamProductSkuInfoModel.getSku()) + .teamPrice(activityTeamProductSkuInfoModel.getTeamPrice()) + .teamStock(activityTeamProductSkuInfoModel.getTeamStock()) + .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 342b35d..54d69b4 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 @@ -5,15 +5,14 @@ import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; +import com.muyu.marketing.domain.model.ActivityTeamInfoQueryModel; import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; import com.muyu.marketing.domain.req.TeamInfoListReq; +import com.muyu.marketing.domain.resp.ActivityTeamInfoQueryResp; import com.muyu.marketing.domain.resp.TeamInfoListResp; import com.muyu.marketing.team.service.ActivityTeamInfoService; 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; @@ -58,4 +57,15 @@ public class ActivityTeamController { activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq)); return Result.success(); } + + /** + * 根据id查询活动详情 + * @param id + * @return + */ + @GetMapping("getById") + public Result getById(@RequestParam("id") Long id) { + ActivityTeamInfoQueryModel activityTeamInfoQueryModel = activityTeamInfoService.getDetailById(id); + return Result.success(ActivityTeamInfoQueryResp.buildModel(activityTeamInfoQueryModel)); + } } 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..8df8821 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 @@ -6,6 +6,7 @@ import com.muyu.marketing.domain.ActivityTeamInfo; 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.model.ActivityTeamInfoQueryModel; import java.util.List; @@ -24,4 +25,7 @@ public interface ActivityTeamInfoService extends IService { * @param activityTeamInfoAddModel 团购添加模型 */ public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); + + + public ActivityTeamInfoQueryModel getDetailById(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..adcf6b1 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 @@ -5,6 +5,7 @@ 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.ActivityTeamProductSkuInfoModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductStockModel; @@ -41,4 +42,5 @@ public interface ActivityTeamProductSkuInfoService extends IService activityTeamProductSkuAddModelList); + public List getList(Long id); } 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 c65d649..f7f2a47 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 @@ -9,17 +9,23 @@ 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.req.TeamProjectSkuInfoEditReq; +import com.muyu.marketing.domain.resp.TeamProjectSkuInfoSkuResp; 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 com.muyu.product.domain.ProjectInfo; +import com.muyu.product.remote.RemoteProjectInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; +import java.util.stream.Collectors; @Service @@ -32,6 +38,9 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { @@ -82,4 +91,22 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId())); this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList); } + + @Override + public ActivityTeamInfoQueryModel getDetailById(Long id) { + ActivityTeamInfo activityTeamInfo = this.getById(id); + long productId = activityTeamInfo.getProductId(); + + ProjectInfo projectInfo = remoteProjectInfoService.getInfo(productId).getData(); + + List activityTeamProductSkuInfoModels = activityTeamProductSkuInfoService.getList(id); + + return ActivityTeamInfoQueryModel.buildModel(activityTeamInfo,projectInfo.getName(), + activityTeamProductSkuInfoModels.stream().map( + activityTeamProductSkuInfoModel -> TeamProjectSkuInfoSkuResp.buildModel(activityTeamProductSkuInfoModel) + ).collect(Collectors.toList()) + ); + } + + } 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..4251228 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.ActivityTeamProductSkuInfoModel; import com.muyu.marketing.domain.model.TeamProductDiscountPriceModel; import com.muyu.marketing.domain.model.TeamProductStockModel; import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper; @@ -80,4 +81,9 @@ public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl getList(Long id) { + return List.of(); + } }