From 3ac6928c32732d67530d8b17abda16a68d9c6abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3=E5=B9=B3?= <14767849+liuehping@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 09:28:22 +0800 Subject: [PATCH] =?UTF-8?q?fix():=E6=8B=BC=E5=9B=A2=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=9A=84=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/auth/controller/TokenController.java | 20 ++ .../common/core/web/model/QueryModel.java | 2 + .../marketing/domain/ActivityTeamInfo.java | 176 ++++++------- .../domain/ActivityTeamOpenInfo.java | 106 ++++---- .../domain/ActivityTeamProductSkuInfo.java | 114 ++++---- .../domain/TeamStrategyExemption.java | 58 +++++ .../domain/TeamStrategyExemptionHundred.java | 50 ++++ .../domain/TeamStrategyExemptionOrdinary.java | 50 ++++ .../model/ActivityProductSkuListModel.java | 41 +++ .../domain/model/ActivityProductUpdModel.java | 77 ++++++ .../model/ActivityTeamInfoAddModel.java | 103 ++++++++ .../model/ActivityTeamInfoListModel.java | 86 +++--- .../model/ActivityTeamInfoListQueryModel.java | 20 +- .../model/ActivityTeamProductSkuAddModel.java | 59 +++++ .../model/ActivityTeamProductSkuUpdModel.java | 32 +++ .../domain/model/ProductSkuAddModel.java | 33 +++ .../domain/model/ProductSkuUpdModel.java | 33 +++ .../model/TeamProductDisCountPriceModel.java | 47 ---- .../domain/model/TeamProductStockModel.java | 10 +- .../domain/req/ActivityProductUpdReq.java | 74 ++++++ .../domain/req/ActivityTeamInfoReq.java | 2 +- .../domain/req/ActivityTeamInfoSaveReq.java | 75 ++++++ .../domain/req/ProjectSkuInfoAddReq.java | 34 +++ .../marketing/domain/req/TeamInfoListReq.java | 37 +++ .../domain/resp/ActivityProductUpdResp.java | 33 +++ .../resp/ActivityTeamInfoDetailResp.java | 81 ++++++ .../domain/resp/ActivityTeamInfoResp.java | 81 ------ .../resp/ActivityTeamProductSkuResp.java | 33 +++ .../marketing/domain/resp/ProductSkuResp.java | 32 +++ .../muyu/marketing/domain/resp/RuleInfo.java | 41 --- .../muyu/marketing/domain/resp/Strategy.java | 25 -- .../domain/resp/TeamInfoListResp.java | 78 +++--- .../muyu-marketing/marketing-remote/pom.xml | 1 + .../muyu-marketing/marketing-serve/pom.xml | 52 ++-- .../marketing/MuYuMarketingApplication.java | 1 - .../controller/ActivityTeamController.java | 96 +++++++ .../ActivityTeamInfoController.java | 46 ---- .../mapper/ActivityTeamInfoMapper.java | 1 + .../mapper/ActivityTeamOpenInfoMapper.java | 1 + .../ActivityTeamProductSkuInfoMapper.java | 1 + .../TeamStrategyExemptionHundredMapper.java | 10 + .../mapper/TeamStrategyExemptionMapper.java | 10 + .../TeamStrategyExemptionOrdinaryMapper.java | 10 + .../remote/ProjectRemoteService.java | 15 -- .../service/ActivityTeamInfoService.java | 34 ++- .../service/ActivityTeamOpenInfoService.java | 26 +- .../ActivityTeamProductSkuInfoService.java | 53 ++-- .../TeamStrategyExemptionHundredService.java | 9 + .../TeamStrategyExemptionOrdinaryService.java | 8 + .../service/TeamStrategyExemptionService.java | 8 + .../impl/ActivityTeamInfoServiceImpl.java | 245 ++++++++++++------ .../impl/ActivityTeamOpenInfoServiceImpl.java | 10 +- ...ActivityTeamProductSkuInfoServiceImpl.java | 150 ++++++++--- ...amStrategyExemptionHundredServiceImpl.java | 39 +++ ...mStrategyExemptionOrdinaryServiceImpl.java | 39 +++ .../TeamStrategyExemptionServiceImpl.java | 39 +++ .../strategy/ActivityTeamStrategy.java | 38 +++ .../impl/ActivityTeamStrategyImpl.java | 47 ++++ .../java/com/muyu/marketing/util/OssUtil.java | 175 ------------- .../src/main/resources/bootstrap.yml | 13 +- .../com/muyu/product/domain/RuleInfo.java | 24 +- .../domain/model/TemplateAttributeModel.java | 1 + .../controller/CommentInfoController.java | 13 + .../service/impl/CategoryInfoServiceImpl.java | 46 ++++ 64 files changed, 2085 insertions(+), 919 deletions(-) create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemption.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionOrdinary.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductSkuListModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductUpdModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuAddModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuUpdModel.java delete mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDisCountPriceModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityProductUpdReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ProjectSkuInfoAddReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityProductUpdResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoDetailResp.java delete mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProductSkuResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProductSkuResp.java delete mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/RuleInfo.java delete mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/Strategy.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamController.java delete mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamInfoController.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionHundredMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionOrdinaryMapper.java delete mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/remote/ProjectRemoteService.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionHundredService.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionOrdinaryService.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionService.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionHundredServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/ActivityTeamStrategy.java create mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/impl/ActivityTeamStrategyImpl.java delete mode 100644 muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/util/OssUtil.java 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..d1d2ce7 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 @@ -31,6 +31,11 @@ public class TokenController { @Autowired private SysLoginService sysLoginService; + /** + * 登录验证 + * @param form + * @return + */ @PostMapping("login") public Result login (@RequestBody LoginBody form) { // 用户登录 @@ -39,6 +44,11 @@ public class TokenController { return Result.success(tokenService.createToken(userInfo)); } + /** + * 退出登录 + * @param request + * @return + */ @DeleteMapping("logout") public Result logout (HttpServletRequest request) { String token = SecurityUtils.getToken(request); @@ -52,6 +62,11 @@ public class TokenController { return Result.success(); } + /** + * 用户刷新 + * @param request + * @return + */ @PostMapping("refresh") public Result refresh (HttpServletRequest request) { LoginUser loginUser = tokenService.getLoginUser(request); @@ -63,6 +78,11 @@ public class TokenController { return Result.success(); } + /** + * 注册 + * @param registerBody + * @return + */ @PostMapping("register") public Result register (@RequestBody RegisterBody registerBody) { // 用户注册 diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java index f174dd3..fbe3186 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import java.util.Arrays; +import java.util.List; @Data @AllArgsConstructor @@ -58,6 +59,7 @@ public class QueryModel { page.setOrders(Arrays.asList(this.isAsc() ?OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn()))); +// page.setOrders(List.of(this.isAsc() ? OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn()))); return page; } } 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 d27ea4c..caf7501 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 @@ -1,121 +1,101 @@ package com.muyu.marketing.domain; -import com.alibaba.ttl.threadpool.agent.internal.javassist.bytecode.AttributeInfo; +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.annotation.Excel; import com.muyu.common.core.web.domain.BaseEntity; -import com.muyu.marketing.domain.req.ActivityTeamInfoAddReq; -import com.muyu.marketing.domain.req.ActivityTeamInfoReq; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import org.apache.xmlbeans.impl.xb.xsdschema.AttributeGroup; -import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.math.BigInteger; import java.util.Date; -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; -/** - * 商品拼团信息 - */ @Data @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@TableName("activity_team_info") @EqualsAndHashCode(callSuper = true) -@ApiModel(value = "activity_team_info", description = "商品拼团信息") +@TableName(value = "activity_team_info", autoResultMap = true) public class ActivityTeamInfo extends BaseEntity { - /** - * 主键 - */ - private Long id; - /** - * 拼团名称 - */ - private String name; - /** - * 商品ID - */ - private Long productId; - /** - * 商品活动图 - */ - private String productImage; - /** - * 活动简介 - */ - private String introduction; - /** - * 单位 - */ - private String unit; - /** - * 轮播图 - */ - private String imageList; - /** - * 活动结束时间 - */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date endTime; - /** - * 活动排序 - */ - private Integer sort; - /** - * 活动详情 - */ - private String content; - /** - * 活动状态 - */ - private String status; - /** - * 策略类型 - */ - private String strategyType; - /** - * 策略ID - */ - private Long strategyId; + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long projectId; + /** + * 商品活动图 + */ + 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; + /** + * 策略ID + */ + private Long strategyId; - /** - * 拼团活动新增构建器 - * - * @param activityTeamInfoAddModel - * @return - */ - public static ActivityTeamInfo saveBuildModel(ActivityTeamInfoAddReq activityTeamInfoAddModel, Supplier createBy){ - return ActivityTeamInfo.builder() - .id(activityTeamInfoAddModel.getId()) - .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()) - .strategyType(activityTeamInfoAddModel.getStrategyType()) - .strategyId(activityTeamInfoAddModel.getStrategyId()) - .content(activityTeamInfoAddModel.getContent()) - .status(activityTeamInfoAddModel.getStatus()) - .createBy(createBy.get()) - .createTime(new Date()) - .build(); - } + /** + * 公共添加模型,转换成添加对象 + * @param activityTeamInfoAddModel 添加模型 + * @return 添加对象 + */ + public static ActivityTeamInfo addModelBuild(ActivityTeamInfoAddModel activityTeamInfoAddModel){ + return ActivityTeamInfo.builder() + .name(activityTeamInfoAddModel.getName()) + .projectId(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/ActivityTeamOpenInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java index d20f2a7..686e311 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; -import io.swagger.annotations.ApiModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,64 +12,61 @@ import lombok.experimental.SuperBuilder; import java.util.Date; -/** - * 商品拼团规格信息 - */ @Data @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@TableName("activity_team_open_info") @EqualsAndHashCode(callSuper = true) -@ApiModel(value = "activity_team_open_info", description = "团购活动执行表") +@TableName(value = "activity_team_open_info", autoResultMap = true) public class ActivityTeamOpenInfo extends BaseEntity { - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 团购活动ID - */ - private Long teamId; - /** - * 团购类型 - */ - private String teamType; - /** - * 团购策略 - */ - private Long teamStrategyId; - /** - * 参团类型 - */ - private String executiveType; - /** - * 结束团购时间 - */ - private Date endTime; - /** - * 商品ID - */ - private Long productId; - /** - * 商品名称 - */ - private String productName; - /** - * 商品规格 - */ - private String productSku; - /** - * 开团标识 - */ - private String key; - /** - * 订单ID - */ - private Long orderId; - /** - * 开团状态 - */ - private String status; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private long id; + /** + * 团购活动ID + */ + private long teamId; + /** + * 团购类型 + */ + private String teamType; + /** + * 团购策略 + */ + private String teamStrategyId; + /** + * 参团类型 + */ + private String executiveType; + /** + * 结束团购时间 + */ + private Date endTime; + /** + * 商品ID + */ + private String productId; + /** + * 商品名称 + */ + private String productName; + /** + * 商品规格 + */ + private String productSku; + /** + * 开团标识 + */ + private String key; + /** + * 订单ID + */ + private String orderId; + /** + * 开团状态 + */ + private String status; } 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 3cec631..72acce6 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 @@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; -import com.muyu.product.domain.ProjectSkuInfo; -import io.swagger.annotations.ApiModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -14,79 +13,56 @@ import lombok.experimental.SuperBuilder; import java.math.BigDecimal; -/** - * 商品拼团规格信息 - */ @Data @SuperBuilder @NoArgsConstructor @AllArgsConstructor -@TableName("activity_team_product_sku_info") @EqualsAndHashCode(callSuper = true) -@ApiModel(value = "activity_team_product_sku_info", description = "商品拼团规格信息表") +@TableName(value = "activity_team_product_sku_info", autoResultMap = true) public class ActivityTeamProductSkuInfo extends BaseEntity { - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - /** - * 活动ID - */ - private Long teamId; - /** - * 商品ID - */ - private Long productId; - /** - * 商品SKU - */ - private String productSku; - /** - * 拼团库存 - */ - private Long teamStock; - /** - * 剩余库存 - */ - private Long remainStock; - /** - * 拼团价格 - */ - private BigDecimal teamPrice; + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 活动ID + */ + private Long teamId; + /** + * 商品ID + */ + private Long productId; + /** + * 商品SKU + */ + private String productSku; + /** + * 拼团库存 + */ + private Long teamStock; + /** + * 剩余库存 + */ + private Long remainStock; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; -// /** -// * 拼团规格信息构建 -// * @param projectSkuInfo -// * @param o -// * @return -// */ -// public static ActivityTeamProductSkuInfo productSkuModelBuild(ProjectSkuInfo projectSkuInfo, Object o) { -// return ActivityTeamProductSkuInfo.builder() -// .productId(projectSkuInfo.getProjectId()) -// .productSku(projectSkuInfo.getSku()) -// .teamPrice(projectSkuInfo.getPrice()) -// .teamStock(projectSkuInfo.getStock()) -// .remainStock(projectSkuInfo.getStock()) -// .build(); -// } - -// /** -// * 拼团规格信息构建 -// * @param projectSkuInfo -// * @param id -// * @param o -// * @return -// */ -// public static ActivityTeamProductSkuInfo productSkuModelBuild(ProjectSkuInfo projectSkuInfo, Long id, Object o) { -// return ActivityTeamProductSkuInfo.builder() -// .id(id) -// .productId(projectSkuInfo.getProjectId()) -// .productSku(projectSkuInfo.getSku()) -// .teamPrice(projectSkuInfo.getPrice()) -// .teamStock(projectSkuInfo.getStock()) -// .remainStock(projectSkuInfo.getStock()) -// .build(); -// } + /** + * 通过模型钢构件对象 + * @param activityTeamProductSkuAddModel 模型 + * @return 对象 + */ + public static ActivityTeamProductSkuInfo modelBuild(ActivityTeamProductSkuAddModel activityTeamProductSkuAddModel) { + return ActivityTeamProductSkuInfo.builder() + .productId(activityTeamProductSkuAddModel.getProductId()) + .teamId(activityTeamProductSkuAddModel.getTeamId()) + .teamStock(activityTeamProductSkuAddModel.getTeamStock()) + .remainStock(activityTeamProductSkuAddModel.getTeamStock()) + .teamPrice(activityTeamProductSkuAddModel.getTeamPrice()) + .build(); + } } diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemption.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemption.java new file mode 100644 index 0000000..519082d --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemption.java @@ -0,0 +1,58 @@ +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.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "team_strategy_exemption", autoResultMap = true) +public class TeamStrategyExemption extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private long id; + /** + * 持续时间 + */ + private long duration; + /** + * 免单人数 + */ + private long exemptionNumber; + /** + * 最大购买量 + */ + private long maxBuy; + /** + * 单次购买量 + */ + private long oneBuy; + /** + * 虚拟人数 + */ + private long virtualNumber; + /** + * 面单类型 + */ + private String type; + /** + * 返款阶梯 + */ + private String ruleInfo; + /** + * 策略状态 + */ + private String status; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java new file mode 100644 index 0000000..0a23469 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionHundred.java @@ -0,0 +1,50 @@ +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.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "team_strategy_exemption_hundred", autoResultMap = true) +public class TeamStrategyExemptionHundred extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private long id; + /** + * 持续时间 + */ + private long duration; + /** + * 最大购买量 + */ + private long maxBuy; + /** + * 单次购买量 + */ + private long oneBuy; + /** + * 虚拟人数 + */ + private long virtualNumber; + /** + * 策略状态 + */ + private String status; + /** + * 规则信息 + */ + private String ruleInfo; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionOrdinary.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionOrdinary.java new file mode 100644 index 0000000..520ee36 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemptionOrdinary.java @@ -0,0 +1,50 @@ +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.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "team_strategy_exemption_ordinary", autoResultMap = true) +public class TeamStrategyExemptionOrdinary extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private long id; + /** + * 持续时间 + */ + private long duration; + /** + * 成团人数 + */ + private long teamNumber; + /** + * 最大购买量 + */ + private long maxBuy; + /** + * 单次购买量 + */ + private long oneBuy; + /** + * 虚拟人数 + */ + private long virtualNumber; + /** + * 策略状态 + */ + private String status; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductSkuListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductSkuListModel.java new file mode 100644 index 0000000..84f8498 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductSkuListModel.java @@ -0,0 +1,41 @@ +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 ActivityProductSkuListModel { + /** + * 活动id + */ + private Long id; + /** + * 规格id + */ + private Long skuId; + /** + * 商品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/ActivityProductUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductUpdModel.java new file mode 100644 index 0000000..7381e31 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityProductUpdModel.java @@ -0,0 +1,77 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.resp.ActivityProductUpdResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 活动商品修改参数 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityProductUpdModel { + /** + * 活动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 ActivityProductUpdResp activityProductUpdResp; + /** + * 活动详情 + */ + 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/model/ActivityTeamInfoAddModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java new file mode 100644 index 0000000..ed75fd3 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java @@ -0,0 +1,103 @@ +package com.muyu.marketing.domain.model; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * 团购活动添加模型 + * + * @author DongZeLiang + * @date 2024-11-26 09:38 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamInfoAddModel { + /** + * 拼团名称 + */ + 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 activityTeamProductSkuAddModelList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + public static ActivityTeamInfoAddModel addBuild(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.getProjectSkuInfoAddReqList() + .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/ActivityTeamInfoListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java index 8b88caa..bd5a0c5 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 @@ -8,17 +8,20 @@ import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.util.Date; +import java.util.function.Function; /** - * 团购活动列表查询结果模型 + * 团购活动雷彪查询结果模型 + * @author DongZeLiang + * @date 2024-11-20 14:18:10 */ @Data -@AllArgsConstructor -@NoArgsConstructor @Builder +@NoArgsConstructor +@AllArgsConstructor public class ActivityTeamInfoListModel { - /** - * 主键 + /** + * 拼团活动ID */ private Long id; /** @@ -29,48 +32,67 @@ public class ActivityTeamInfoListModel { * 参团人数 */ private Long addTeamNumber; - + /** + * 拼团人数 + */ + private Long attendNumber; + /** + * 团购结束时间 + */ + private Date endTime; /** * 开团人数 */ private Long openTeamNumber; /** - * 拼团人数 - */ - private Long attendTeamNumber; - /** - * 活动结束时间 - */ - private Date endTime; - /** - * 图片 + * 拼团商品图片 */ private String productImage; - /** - * 拼团价格 - */ - private BigDecimal teamPrice; - /** * 商品价格 */ private BigDecimal productPrice; + /** + * 剩余库存 + */ + private Long remainStock; + /** + * 团购状态 + */ + private String status; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; /** * 团购库存 */ private Long teamStock; - /** - * 总库存 - */ - private Long totalStock; - /** - * 剩余库存 - */ - private Long RemainStock; - /** - * 活动状态 - */ - private String Status; + public static ActivityTeamInfoListModel infoBuild(ActivityTeamInfo activityTeamInfo, Function function) { + ActivityTeamInfoListModel activityTeamInfoListModel = ActivityTeamInfoListModel.builder() + .id(activityTeamInfo.getId()) + .name(activityTeamInfo.getName()) +// .openTeamNumber(teamOpenTypeNumber) +// .addTeamNumber(teamInTypeNumber) +// .attendNumber(teamOpenTypeNumber + teamInTypeNumber) + .endTime(activityTeamInfo.getEndTime()) + .productImage(activityTeamInfo.getProductImage()) +// .teamPrice(discountPrice.getTeamPrice()) +// .productPrice(discountPrice.getProductPrice()) +// .teamStock(teamProductStockModel.getTeamStock()) +// .remainStock(teamProductStockModel.getRemainStock()) + .status(activityTeamInfo.getStatus()) + .build(); + return function.apply( + ActivityTeamInfoListModel.builder() + .id(activityTeamInfo.getId()) + .name(activityTeamInfo.getName()) + .endTime(activityTeamInfo.getEndTime()) + .productImage(activityTeamInfo.getProductImage()) + .status(activityTeamInfo.getStatus()) + ); + } + } 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 bd6eaef..edf927c 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 @@ -1,5 +1,7 @@ package com.muyu.marketing.domain.model; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.muyu.common.core.web.model.QueryModel; import lombok.AllArgsConstructor; import lombok.Data; @@ -7,19 +9,29 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.util.Arrays; + +/** + * 团购活动雷彪查询模型 + * @author DongZeLiang + * @date 2024-11-20 14:18:10 + */ @Data -@AllArgsConstructor -@NoArgsConstructor @SuperBuilder +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class ActivityTeamInfoListQueryModel extends QueryModel { + /** * 搜索关键词 */ private String keyWord; /** - * 状态 + * 活动状态 */ - private String states; + private String status; + + } 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 new file mode 100644 index 0000000..008fe24 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddModel.java @@ -0,0 +1,59 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.req.ProjectSkuInfoAddReq; +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 ActivityTeamProductSkuAddModel { + + /** + * 团购活动ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String productSku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ActivityTeamProductSkuAddModel addReqBuild(ProjectSkuInfoAddReq projectSkuInfoAddReq, Supplier getProductId) { + return ActivityTeamProductSkuAddModel.builder() + .teamId(projectSkuInfoAddReq.getId()) + .productId(getProductId.get()) + .productSku(projectSkuInfoAddReq.getSku()) + .teamStock(projectSkuInfoAddReq.getTeamStock()) + .teamPrice(projectSkuInfoAddReq.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..a6ccdbf --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java @@ -0,0 +1,32 @@ +package com.muyu.marketing.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 拼团活动商品sku修改模型 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuUpdModel { + /** + * 商品id + */ + private Long ProductId; + + /** + * 团购价格 + */ + private BigDecimal teamPrice; + + /** + * 团购库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuAddModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuAddModel.java new file mode 100644 index 0000000..a118797 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuAddModel.java @@ -0,0 +1,33 @@ +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 ProductSkuAddModel { + /** + * 商品ID + */ + private Long productId; + /** + * 商品规格 + */ + private String productSku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuUpdModel.java new file mode 100644 index 0000000..9c863f6 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ProductSkuUpdModel.java @@ -0,0 +1,33 @@ +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 ProductSkuUpdModel { + + /** + * 商品ID + */ + private Long productId; + + /** + * 拼团价格 + */ + 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 deleted file mode 100644 index a5ea5f9..0000000 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDisCountPriceModel.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.muyu.marketing.domain.model; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; - -import java.math.BigDecimal; - -/** - * 团购商品优惠券模型 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class TeamProductDisCountPriceModel { - /** - * 商品价格 - */ - private BigDecimal productPrice; - /** - * 团购优惠价格 - */ - private BigDecimal teamPrice; - /** - * 优惠力度 - */ - private BigDecimal discount; - - /** - * 通过商品价格和团购价格计算出优惠力度 - * @param productPrice 商品价格 - * @param teamPrice 团购价格 - * @return 优惠力度 - */ - public static TeamProductDisCountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) { - return TeamProductDisCountPriceModel.builder() - .productPrice(productPrice) - .teamPrice(teamPrice) - .discount( - BigDecimal.valueOf(productPrice.subtract(teamPrice).divide(productPrice, 2, BigDecimal.ROUND_HALF_UP).doubleValue()) - ) - .build(); - } -} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductStockModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductStockModel.java index b4996f3..b8c9422 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductStockModel.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductStockModel.java @@ -8,17 +8,21 @@ import lombok.NoArgsConstructor; /** * 团购商品库存模型 + * + * @author DongZeLiang + * @date 2024-11-21 14:04 */ @Data -@AllArgsConstructor -@NoArgsConstructor @Builder +@NoArgsConstructor +@AllArgsConstructor public class TeamProductStockModel { /** - * 拼团库存 + * 拼团总库存 */ private Long teamStock; + /** * 拼团剩余库存 */ diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityProductUpdReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityProductUpdReq.java new file mode 100644 index 0000000..81da266 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityProductUpdReq.java @@ -0,0 +1,74 @@ +package com.muyu.marketing.domain.req; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.resp.ActivityProductUpdResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityProductUpdReq { + /** + * 活动id + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long projectId; + /** + * 商品活动图 + */ + 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 ActivityProductUpdResp activityProductUpdResp; + /** + * 活动详情 + */ + 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/req/ActivityTeamInfoReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoReq.java index aeded30..700d156 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoReq.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoReq.java @@ -33,7 +33,7 @@ public class ActivityTeamInfoReq extends PageDomain { public ActivityTeamInfoListQueryModel buildQueryModel(){ return ActivityTeamInfoListQueryModel.builder() .keyWord(this.keyWord) - .states(this.states) + .status(this.states) .build() .domainBuild(this); } 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 new file mode 100644 index 0000000..247521e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoSaveReq.java @@ -0,0 +1,75 @@ +package com.muyu.marketing.domain.req; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +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 ActivityTeamInfoSaveReq extends BaseEntity { + /** + * 拼团名称 + */ + 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; + + +} 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/ProjectSkuInfoAddReq.java new file mode 100644 index 0000000..7294fbf --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ProjectSkuInfoAddReq.java @@ -0,0 +1,34 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 添加的 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ProjectSkuInfoAddReq { + 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/req/TeamInfoListReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java new file mode 100644 index 0000000..dbddf36 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamInfoListReq.java @@ -0,0 +1,37 @@ +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 +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class TeamInfoListReq extends PageDomain { + + /** + * 搜索关键词 + */ + private String keyWord; + + /** + * 活动状态 + */ + private String status; + + + /** + * 通过当前对象构建业务查询模型 + * @return 业务查询模型 + */ + public ActivityTeamInfoListQueryModel buildQueryModel() { + return ActivityTeamInfoListQueryModel.builder() + .keyWord(this.keyWord) + .status(this.status) + .build() + .domainBuild(this); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityProductUpdResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityProductUpdResp.java new file mode 100644 index 0000000..d1b5eca --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityProductUpdResp.java @@ -0,0 +1,33 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuUpdModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityProductUpdResp { + /** + * 商品修改SkU集合 + */ + private List activityTeamProductSkuUpdList; + + /** + * 删除商品规格idList + */ + private List deleteSkuIdList; + + /** + * 添加商品规格的List + */ + private List activityTeamProductSkuAddList; + + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoDetailResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoDetailResp.java new file mode 100644 index 0000000..d41a5a8 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoDetailResp.java @@ -0,0 +1,81 @@ +package com.muyu.marketing.domain.resp; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * 修改回显的团购活动信息 + * + * @author DongZeLiang + * @date 2024-11-26 09:38 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamInfoDetailResp { + /** + * 活动id + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long projectId; + /** + * 商品活动图 + */ + 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 ActivityTeamProductSkuList; + /** + * 活动详情 + */ + 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/ActivityTeamInfoResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoResp.java deleted file mode 100644 index 3be2fbe..0000000 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamInfoResp.java +++ /dev/null @@ -1,81 +0,0 @@ -//package com.muyu.marketing.domain.resp; -// -//import lombok.AllArgsConstructor; -//import lombok.Builder; -//import lombok.Data; -//import lombok.NoArgsConstructor; -// -//import javax.validation.constraints.NotNull; -//import javax.validation.constraints.Pattern; -//import java.math.BigDecimal; -//import java.util.Date; -// -//@Data -//@AllArgsConstructor -//@NoArgsConstructor -//@Builder -//public class ActivityTeamInfoResp { -// /** -// * 主键 -// */ -// private Long id; -// /** -// * 拼团名称 -// */ -// @NotNull(message = "拼团名称不能为空") -// private String name; -// /** -// * 参团人数 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "拼团人数必须为正整数") -// private Long addTeamNumber; -// -// /** -// * 开团人数 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "开团人数必须为正整数") -// private Long openTeamNumber; -// /** -// * 拼团人数 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "拼团人数必须为正整数") -// private Long attendTeamNumber; -// /** -// * 活动结束时间 -// */ -// private Date endTime; -// /** -// * 图片 -// */ -// private String productImage; -// /** -// * 拼团价格 -// */ -// @Pattern(regexp = "^(([1-9][0-9]*)|(([0-9]|[1-9][0-9]*)(\\.[0-9]{1,2})?))$", message = "拼团价格必须为小数") -// private BigDecimal teamPrice; -// -// /** -// * 商品价格 -// */ -// @Pattern(regexp = "^(([1-9][0-9]*)|(([0-9]|[1-9][0-9]*)(\\.[0-9]{1,2})?))$", message = "商品价格必须为小数") -// private BigDecimal productPrice; -// /** -// * 总库存 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "总库存必须为正整数") -// private Long totalStock; -// /** -// * 团购库存 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "团购库存必须为正整数") -// private Long teamStock; -// /** -// * 剩余库存 -// */ -// @Pattern(regexp = "^[1-9]\\d*$", message = "剩余库存必须为正整数") -// private Long RemainStock; -// /** -// * 活动状态 -// */ -// private String Status; -//} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProductSkuResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProductSkuResp.java new file mode 100644 index 0000000..1681f18 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProductSkuResp.java @@ -0,0 +1,33 @@ +package com.muyu.marketing.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuResp { + /** + * 规格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/resp/ProductSkuResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProductSkuResp.java new file mode 100644 index 0000000..6e8569e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProductSkuResp.java @@ -0,0 +1,32 @@ +package com.muyu.marketing.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 商品规格数据 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ProductSkuResp { + /** + * 规格id + */ + private Long ProductId; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/RuleInfo.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/RuleInfo.java deleted file mode 100644 index 4d88227..0000000 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/RuleInfo.java +++ /dev/null @@ -1,41 +0,0 @@ -//package com.muyu.marketing.domain.resp; -// -//import com.baomidou.mybatisplus.annotation.IdType; -//import com.baomidou.mybatisplus.annotation.TableId; -//import com.baomidou.mybatisplus.annotation.TableName; -//import io.swagger.annotations.ApiModelProperty; -//import lombok.AllArgsConstructor; -//import lombok.Data; -//import lombok.NoArgsConstructor; -// -//import java.math.BigDecimal; -// -//@Data -//@NoArgsConstructor -//@AllArgsConstructor -//@TableName(value = "activity_team_product_sku_info") -//public class RuleInfo { -// -// -// /** -// * 主键 -// */ -// -// -// @TableId(value = "id",type = IdType.AUTO) -// @ApiModelProperty("主键") -// private Long id; -// /** -// *规格Sku -// */ -// private String ruleSku; -// /** -// *拼团库存 -// */ -// private Long teamStock; -// /** -// * 拼团价格 -// */ -// private BigDecimal teamPrice; -// -//} \ No newline at end of file diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/Strategy.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/Strategy.java deleted file mode 100644 index a01d265..0000000 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/Strategy.java +++ /dev/null @@ -1,25 +0,0 @@ -//package com.muyu.marketing.domain.resp; -// -//import lombok.AllArgsConstructor; -//import lombok.Data; -//import lombok.NoArgsConstructor; -// -//import java.math.BigDecimal; -// -//@Data -//@AllArgsConstructor -//@NoArgsConstructor -//public class Strategy { -// /** -// * 商品规格id -// */ -// private Long productSkuId; -// /** -// * 拼团价格 -// */ -// private BigDecimal price; -// /** -// * 拼团库存 -// */ -// private Long stock; -//} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java index b58e80a..ac36573 100644 --- a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java @@ -1,24 +1,22 @@ package com.muyu.marketing.domain.resp; +import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; -import java.math.BigInteger; import java.util.Date; -/** - * 商品拼团列表信息响应 - */ @Data -@AllArgsConstructor -@NoArgsConstructor @Builder +@NoArgsConstructor +@AllArgsConstructor public class TeamInfoListResp { + /** - * 主键 + * 拼团活动ID */ private Long id; /** @@ -29,47 +27,63 @@ public class TeamInfoListResp { * 参团人数 */ private Long addTeamNumber; - + /** + * 拼团人数 + */ + private Long attendNumber; + /** + * 团购结束时间 + */ + private Date endTime; /** * 开团人数 */ private Long openTeamNumber; /** - * 拼团人数 - */ - private Long attendTeamNumber; - /** - * 活动结束时间 - */ - private Date endTime; - /** - * 图片 + * 拼团商品图片 */ private String productImage; - /** - * 拼团价格 - */ - private BigDecimal teamPrice; - /** * 商品价格 */ private BigDecimal productPrice; /** - * 总库存 + * 剩余库存 */ - private Long totalStock; + private Long remainStock; + /** + * 团购状态 + */ + private String status; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; /** * 团购库存 */ private Long teamStock; - /** - * 剩余库存 - */ - private Long RemainStock; - /** - * 活动状态 - */ - private String Status; + /** + * 列表查询结果,构建为响应对象 + * @param activityTeamInfoListModel 列表数据查询结果 + * @return 响应对象 + */ + public static TeamInfoListResp listModelBuild(ActivityTeamInfoListModel activityTeamInfoListModel) { + return TeamInfoListResp.builder() + .id(activityTeamInfoListModel.getId()) + .name(activityTeamInfoListModel.getName()) + .openTeamNumber(activityTeamInfoListModel.getOpenTeamNumber()) + .addTeamNumber(activityTeamInfoListModel.getAddTeamNumber()) + .addTeamNumber(activityTeamInfoListModel.getAddTeamNumber()) + .attendNumber(activityTeamInfoListModel.getAttendNumber()) + .endTime(activityTeamInfoListModel.getEndTime()) + .teamPrice(activityTeamInfoListModel.getTeamPrice()) + .productImage(activityTeamInfoListModel.getProductImage()) + .productPrice(activityTeamInfoListModel.getProductPrice()) + .remainStock(activityTeamInfoListModel.getRemainStock()) + .status(activityTeamInfoListModel.getStatus()) + .teamStock(activityTeamInfoListModel.getTeamStock()) + .build(); + } } diff --git a/muyu-modules/muyu-marketing/marketing-remote/pom.xml b/muyu-modules/muyu-marketing/marketing-remote/pom.xml index c1ef469..2956ead 100644 --- a/muyu-modules/muyu-marketing/marketing-remote/pom.xml +++ b/muyu-modules/muyu-marketing/marketing-remote/pom.xml @@ -17,4 +17,5 @@ UTF-8 + \ No newline at end of file diff --git a/muyu-modules/muyu-marketing/marketing-serve/pom.xml b/muyu-modules/muyu-marketing/marketing-serve/pom.xml index 30b2fef..52a2262 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/pom.xml +++ b/muyu-modules/muyu-marketing/marketing-serve/pom.xml @@ -1,21 +1,21 @@ - + 4.0.0 com.muyu muyu-marketing 3.6.3 - - 4.0.0 - marketing-server - - marketing-server系统模块 - + + 17 + 17 + UTF-8 + @@ -79,7 +79,27 @@ muyu-common-swagger + + com.dtflys.forest + forest-spring-boot-starter + + + + + + + + + com.muyu + marketing-remote + 3.6.3 + + + + com.muyu + muyu-product-cache + com.muyu marketing-common @@ -88,18 +108,11 @@ com.muyu - muyu-product-cache - - - com.aliyun.oss - aliyun-sdk-oss - 3.15.2 - - - com.muyu - muyu-file + marketing-common 3.6.3 + compile + com.muyu muyu-product-server @@ -133,5 +146,4 @@ - - + \ No newline at end of file diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/MuYuMarketingApplication.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/MuYuMarketingApplication.java index 87b66d0..346eeb0 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/MuYuMarketingApplication.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/MuYuMarketingApplication.java @@ -16,7 +16,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableCustomSwagger2 @EnableMyFeignClients @SpringBootApplication -@MapperScan("com.muyu.marketing.mapper") public class MuYuMarketingApplication { public static void main (String[] args) { SpringApplication.run(MuYuMarketingApplication.class, args); diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamController.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamController.java new file mode 100644 index 0000000..f2e00e2 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamController.java @@ -0,0 +1,96 @@ +package com.muyu.marketing.controller; + + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +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.req.ActivityProductUpdReq; +import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; +import com.muyu.marketing.domain.req.TeamInfoListReq; +import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp; +import com.muyu.marketing.domain.resp.TeamInfoListResp; +import com.muyu.marketing.service.ActivityTeamInfoService; +import com.muyu.marketing.service.ActivityTeamProductSkuInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 营销团购活动控制层 + * + * @author DongZeLiang + * @date 2024-11-20 14:25 + */ +@RestController +@RequestMapping("/team") +public class ActivityTeamController { + + @Autowired + private ActivityTeamInfoService activityTeamInfoService; + + @Autowired + private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + + /** + * 查询营销团购活动列表 + * @param teamInfoListReq 活动查询入参 + * @return 活动响应结果 + */ + @PostMapping("/list") + public Result> list(@RequestBody TeamInfoListReq teamInfoListReq) { + // 查询活动列表 + TableDataInfo tableDataInfo = activityTeamInfoService.query(teamInfoListReq.buildQueryModel()); + // 转换成响应结果 + List respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModelBuild).toList(); + // 返回结果 + return Result.success( + new TableDataInfo<>(){{ + setRows(respList); + setTotal(tableDataInfo.getTotal()); + }} + ); + } + + /** + * 添加营销团购活动 + */ + @PostMapping("insert") + public Result insert(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq) { + // 保存活动信息 + activityTeamInfoService.save(ActivityTeamInfoAddModel.addBuild(activityTeamInfoSaveReq)); + return Result.success(); + } + + /** + * 获取营销团购活动信息 + */ + @GetMapping("/{teamId}") + public Result getTeamInfo(@PathVariable("teamId") Long teamId){ + return Result.success(activityTeamInfoService.getActivityByTeamId(teamId)); + } + + /** + * 营销活动的修改 + */ + @PutMapping("update") + public Result update(@RequestBody ActivityProductUpdReq activityProductUpdReq){ + activityTeamInfoService.edit(activityProductUpdReq); + return Result.success(); + } + + + /** + * 团购活动列表 + */ + @GetMapping("/teamList") + public Result> teamList(){ + List list = activityTeamInfoService.list(); + TableDataInfo tableDataInfo = new TableDataInfo<>(); + tableDataInfo.setRows(list); + tableDataInfo.setTotal(list.size()); + return Result.success(tableDataInfo); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamInfoController.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamInfoController.java deleted file mode 100644 index 7f250e1..0000000 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/controller/ActivityTeamInfoController.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.muyu.marketing.controller; - -import com.muyu.common.core.domain.Result; -import com.muyu.common.core.web.page.TableDataInfo; -import com.muyu.common.log.annotation.Log; -import com.muyu.common.log.enums.BusinessType; -import com.muyu.marketing.domain.ActivityTeamInfo; -import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; -import com.muyu.marketing.domain.req.ActivityTeamInfoAddReq; -import com.muyu.marketing.domain.req.ActivityTeamInfoReq; - -import com.muyu.marketing.service.ActivityTeamInfoService; -import com.muyu.marketing.util.OssUtil; -import io.swagger.annotations.ApiOperation; -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.multipart.MultipartFile; - -import javax.validation.Valid; - -@RestController -@RequestMapping("/activity") -public class ActivityTeamInfoController { - - @Autowired - private ActivityTeamInfoService activityTeamInfoService; - - @PostMapping("list") - public Result> list(@RequestBody ActivityTeamInfoReq activityTeamInfoReq) { - TableDataInfo query = activityTeamInfoService.query(activityTeamInfoReq.buildQueryModel()); - return Result.success(query); - } - - /** - * 新增拼团 - */ - @Log(title = "拼团", businessType = BusinessType.INSERT) - @PostMapping - public Result add(@RequestBody ActivityTeamInfoAddReq activityTeamInfoAddReq) { - - return activityTeamInfoService.insert(activityTeamInfoAddReq); - } -} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamInfoMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamInfoMapper.java index 857c3cc..2b34201 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamInfoMapper.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamInfoMapper.java @@ -6,4 +6,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ActivityTeamInfoMapper extends BaseMapper { + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamOpenInfoMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamOpenInfoMapper.java index 2c60deb..73d5639 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamOpenInfoMapper.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamOpenInfoMapper.java @@ -6,4 +6,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ActivityTeamOpenInfoMapper extends BaseMapper { + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamProductSkuInfoMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamProductSkuInfoMapper.java index 187ba94..aca91fd 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamProductSkuInfoMapper.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/ActivityTeamProductSkuInfoMapper.java @@ -6,4 +6,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ActivityTeamProductSkuInfoMapper extends BaseMapper { + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionHundredMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionHundredMapper.java new file mode 100644 index 0000000..f0b7974 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionHundredMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.TeamStrategyExemptionHundred; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TeamStrategyExemptionHundredMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionMapper.java new file mode 100644 index 0000000..002ee10 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.TeamStrategyExemption; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TeamStrategyExemptionMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionOrdinaryMapper.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionOrdinaryMapper.java new file mode 100644 index 0000000..c8677a7 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/mapper/TeamStrategyExemptionOrdinaryMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TeamStrategyExemptionOrdinaryMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/remote/ProjectRemoteService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/remote/ProjectRemoteService.java deleted file mode 100644 index 16e941b..0000000 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/remote/ProjectRemoteService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.muyu.marketing.remote; - -import com.muyu.common.core.domain.Result; -import com.muyu.product.domain.ProjectSkuInfo; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; - -import java.util.List; - -@FeignClient(value = "muyu-product") -public interface ProjectRemoteService { - @GetMapping("/sku/list/{projectId}") - public Result> listByProjectId(@PathVariable("projectId") Long projectId); -} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamInfoService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamInfoService.java index 632e41b..4b3e4ba 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamInfoService.java @@ -4,25 +4,39 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; 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.req.ActivityTeamInfoAddReq; -import org.springframework.web.multipart.MultipartFile; - -import java.util.List; +import com.muyu.marketing.domain.req.ActivityProductUpdReq; +import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp; public interface ActivityTeamInfoService extends IService { + + /** - * 通过查询模型团购活动表 - * @param activityTeamInfoListQueryModel 团购查询模型 + * 通过查询模型查询团购活动列表 + * @param activityTeamInfoListQueryModel 团购活动查询模型 * @return 团购活动列表 */ public TableDataInfo query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel); /** - * 新增团购活动 - * @param activityTeamInfoAddReq - * @return + * 通过添加模型,去进行商品拼团活动的操作 + * @param activityTeamInfoAddModel 团购添加模型 */ - Result insert(ActivityTeamInfoAddReq activityTeamInfoAddReq); + public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); + + /** + * 通过id查询团购活动详情 + */ + ActivityTeamInfoDetailResp getActivityByTeamId(Long teamId); + + + /** + * 修改团购活动信息 + * @param activityProductUpdReq + */ + void edit(ActivityProductUpdReq activityProductUpdReq); + + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamOpenInfoService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamOpenInfoService.java index 8d81510..c682d73 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamOpenInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamOpenInfoService.java @@ -5,30 +5,30 @@ import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum; import com.muyu.marketing.domain.ActivityTeamOpenInfo; public interface ActivityTeamOpenInfoService extends IService { + /** - * 根据活动id和类型获取团队人数 - * @param teamId 活动id + * 通过活动ID和开团类型查询开团数量 + * @param teamId 活动ID * @param teamOpenType 开团类型 * @return 开团数量 */ public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenType); /** - * 根据活动id获取开团人数 - * @param teamId - * @return + * 根据活动ID获取开团数量 + * @param teamId 团购活动ID + * @return 开团数量 */ - public default Long getTeamOpenNumberByTeamId(Long teamId) { - return getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.OPEN_TEAM); + public default Long getTeamOpenTypeNumberByTeamId(Long teamId){ + return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.OPEN_TEAM); } /** - * 根据活动id获取参团人数 - * @param teamId - * @return + * 根据活动ID获取参团数量 + * @param teamId 团购活动ID + * @return 参团数量 */ - public default Long getTeamInNumberByTeamId(Long teamId) { - return getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.IN_TEAM); + public default Long getTeamInTypeNumberByTeamId(Long teamId){ + return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.IN_TEAM); } - } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamProductSkuInfoService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamProductSkuInfoService.java index d52919f..4bcd1cb 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamProductSkuInfoService.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/ActivityTeamProductSkuInfoService.java @@ -2,41 +2,56 @@ package com.muyu.marketing.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.ActivityTeamProductSkuInfo; -import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; -import com.muyu.marketing.domain.model.ActivityTeamInfoListQueryModel; -import com.muyu.marketing.domain.model.TeamProductDisCountPriceModel; -import com.muyu.marketing.domain.model.TeamProductStockModel; +import com.muyu.marketing.domain.model.*; -import java.math.BigInteger; import java.util.List; public interface ActivityTeamProductSkuInfoService extends IService { - public default List getActivityTeamProductSkuInfoByTeamId(Long teamId) { + public default List getActivityTeamProductSkuInfoByTeamId(Long teamId){ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); return this.list(lambdaQueryWrapper); } - /** - * 根据拼团id获取拼团价格 - * - * @param teamId - * @return - */ - public TeamProductDisCountPriceModel getDiscountPrice(Long teamId); /** - * 通过活动id获取剩余库存 - * - * @param teamId + * 通过团购活动ID获取团购中最优惠的价格 + * @param teamId 团购ID + * @return 优惠价格 + */ + public TeamProductDiscountPriceModel getDiscountPrice(Long teamId); + + + /** + * 通过活动ID获取 剩余库存 + * @param teamId 活动ID * @return 库存 */ public TeamProductStockModel getStock(Long teamId); - List getSkuList(BigInteger productId); + /** + * 添加团购商品SKU + * @param activityTeamProductSkuAddModelList 团购商品SKU添加模型集合 + */ + public void batchSave(List activityTeamProductSkuAddModelList); + + /** + * 通过活动id查询活动商品规格信息 + */ + public List getTeamProductSkuInfoListByTeamId(Long teamId); + + /** + * 修改商品规格 + */ + public boolean editBatchActivityTeamProductSkuUpdModelList(List productSkuUpdList); + + /** + * 商品规格的批量删除 + */ + public boolean deleteBatchByTeamIds(List id); + + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionHundredService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionHundredService.java new file mode 100644 index 0000000..5abe8e7 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionHundredService.java @@ -0,0 +1,9 @@ +package com.muyu.marketing.service; + +import com.baomidou.mybatisplus.extension.service.IService; + +import com.muyu.marketing.domain.TeamStrategyExemptionHundred; +import com.muyu.marketing.strategy.ActivityTeamStrategy; + +public interface TeamStrategyExemptionHundredService extends IService, ActivityTeamStrategy { +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionOrdinaryService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionOrdinaryService.java new file mode 100644 index 0000000..d7444ad --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionOrdinaryService.java @@ -0,0 +1,8 @@ +package com.muyu.marketing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary; +import com.muyu.marketing.strategy.ActivityTeamStrategy; + +public interface TeamStrategyExemptionOrdinaryService extends ActivityTeamStrategy,IService { +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionService.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionService.java new file mode 100644 index 0000000..b6f2499 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/TeamStrategyExemptionService.java @@ -0,0 +1,8 @@ +package com.muyu.marketing.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.TeamStrategyExemption; +import com.muyu.marketing.strategy.ActivityTeamStrategy; + +public interface TeamStrategyExemptionService extends ActivityTeamStrategy, IService { +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamInfoServiceImpl.java index 1a67d84..e6c9792 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamInfoServiceImpl.java @@ -4,28 +4,32 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.core.utils.bean.BeanUtils; import com.muyu.common.core.web.page.TableDataInfo; -import com.muyu.common.security.utils.SecurityUtils; import com.muyu.marketing.domain.ActivityTeamInfo; import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; import com.muyu.marketing.domain.model.*; -import com.muyu.marketing.domain.req.ActivityTeamInfoAddReq; +import com.muyu.marketing.domain.req.ActivityProductUpdReq; +import com.muyu.marketing.domain.resp.ActivityProductUpdResp; +import com.muyu.marketing.domain.resp.ActivityTeamInfoDetailResp; +import com.muyu.marketing.domain.resp.ActivityTeamProductSkuResp; import com.muyu.marketing.mapper.ActivityTeamInfoMapper; import com.muyu.marketing.service.ActivityTeamInfoService; import com.muyu.marketing.service.ActivityTeamOpenInfoService; import com.muyu.marketing.service.ActivityTeamProductSkuInfoService; -import com.muyu.product.domain.RuleInfo; -import com.muyu.product.service.ProjectInfoService; -import com.muyu.marketing.remote.ProjectRemoteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Date; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; import java.util.List; @Service -public class ActivityTeamInfoServiceImpl extends ServiceImpl implements ActivityTeamInfoService { +public class ActivityTeamInfoServiceImpl extends ServiceImpl + implements ActivityTeamInfoService { @Autowired private ActivityTeamOpenInfoService activityTeamOpenInfoService; @@ -34,91 +38,180 @@ public class ActivityTeamInfoServiceImpl extends ServiceImpl query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { - + // 查询条件 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 关键字查询 queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getKeyWord()), ActivityTeamInfo::getName, activityTeamInfoListQueryModel.getKeyWord()); - queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getStates()), ActivityTeamInfo::getStatus, activityTeamInfoListQueryModel.getStates()); + queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getStatus()), ActivityTeamInfo::getStatus, activityTeamInfoListQueryModel.getStatus()); - - Page activityTeamInfoPage = this.page( - activityTeamInfoListQueryModel.buildPage() - , queryWrapper); - - TableDataInfo tableDataInfo = new TableDataInfo(); + /** + * Object -> 创建对象的时候进行的占用 + * Result 以方法返回值为占用 + */ + // 分页查询 + Page activityTeamInfoPage = this.page(activityTeamInfoListQueryModel.buildPage(), queryWrapper); + // 查询数据列表 List activityTeamInfoList = activityTeamInfoPage.getRecords(); + // 数据转换 List activityTeamInfoListModels = activityTeamInfoList.stream() - .map(activityTeamInfo -> { - Long addTeamNumber = activityTeamOpenInfoService.getTeamOpenNumberByTeamId(activityTeamInfo.getId()); - - Long openTeamNumber = activityTeamOpenInfoService.getTeamInNumberByTeamId(activityTeamInfo.getId()); - - TeamProductDisCountPriceModel discountPrice = activityTeamProductSkuInfoService.getDiscountPrice(activityTeamInfo.getId()); - - TeamProductStockModel productStockModel = activityTeamProductSkuInfoService.getStock(activityTeamInfo.getId()); - - return ActivityTeamInfoListModel.builder() - .id(activityTeamInfo.getId()) - .name(activityTeamInfo.getName()) - .addTeamNumber(addTeamNumber) - .openTeamNumber(openTeamNumber) - .attendTeamNumber(openTeamNumber + addTeamNumber) - .endTime(activityTeamInfo.getEndTime()) - .productImage(activityTeamInfo.getProductImage()) - .teamPrice(discountPrice.getTeamPrice()) - .productPrice(discountPrice.getProductPrice()) - .teamStock(productStockModel.getTeamStock()) - .RemainStock(productStockModel.getRemainStock()) - .Status(activityTeamInfo.getStatus()) - .build(); - }).toList(); + .map(activityTeamInfo -> ActivityTeamInfoListModel.infoBuild(activityTeamInfo, + (activityTeamInfoListModelBuilder) -> { + //获取折扣价 + TeamProductDiscountPriceModel discountPrice = activityTeamProductSkuInfoService.getDiscountPrice(activityTeamInfo.getId()); + //根据活动id获取库存模型 + TeamProductStockModel teamProductStockModel = activityTeamProductSkuInfoService.getStock(activityTeamInfo.getId()); + //获取已开团和已参团人数 + Long teamOpenTypeNumber = activityTeamOpenInfoService.getTeamOpenTypeNumberByTeamId(activityTeamInfo.getId()); + Long teamInTypeNumber = activityTeamOpenInfoService.getTeamInTypeNumberByTeamId(activityTeamInfo.getId()); + //封装活动详情 + return activityTeamInfoListModelBuilder + .openTeamNumber(teamOpenTypeNumber) + .addTeamNumber(teamInTypeNumber) + .attendNumber(teamOpenTypeNumber + teamInTypeNumber) + .teamPrice(discountPrice.getTeamPrice()) + .productPrice(discountPrice.getProductPrice()) + .teamStock(teamProductStockModel.getTeamStock()) + .remainStock(teamProductStockModel.getRemainStock()) + .build(); + })).toList(); + // 封装分页数据 + TableDataInfo tableDataInfo = new TableDataInfo<>(); tableDataInfo.setTotal(activityTeamInfoPage.getTotal()); tableDataInfo.setRows(activityTeamInfoListModels); return tableDataInfo; } /** - * 新增拼团活动 - * @param activityTeamInfoAddReq + * 通过添加模型,去进行商品拼团活动的操作 + * + * @param activityTeamInfoAddModel 团购添加模型 + */ + @Override + public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel) { + // 添加团购活动 + boolean save = this.save(ActivityTeamInfo.addModelBuild(activityTeamInfoAddModel)); + //判断是否添加成功 + if (!save) { + throw new ServiceException( + StringUtils.format("团购活动添加失败:[{}]", activityTeamInfoAddModel) + ); + } + //拼团活动添加后添加商品SKU + this.activityTeamProductSkuInfoService.batchSave( + activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList() + ); + } + + /** + * 根据id查询活动详情 + * + * @param teamId * @return */ @Override - public Result insert(ActivityTeamInfoAddReq activityTeamInfoAddReq) { - //构建活动信息 - ActivityTeamInfo activityTeamInfo=ActivityTeamInfo.saveBuildModel(activityTeamInfoAddReq,SecurityUtils::getUsername); - //插入活动信息 - this.save(activityTeamInfo); - //构建拼团规则信息 - List ruleInfoList = activityTeamInfoAddReq.getRuleInfoList(); - //构建拼团规则明细 - List activityTeamProductSkuInfoList = ruleInfoList.stream().map(ruleInfo -> { - ActivityTeamProductSkuInfo teamProductSkuInfo = ActivityTeamProductSkuInfo.builder() - .id(ruleInfo.getId()) - .teamId(activityTeamInfo.getId()) - .productId(activityTeamInfoAddReq.getProductId()) - .teamStock(ruleInfo.getTeamStock()) - .teamPrice(ruleInfo.getTeamPrice()) - .productSku(ruleInfo.getRuleSku()) - .createTime(new Date()) - .updateTime(new Date()) - .createBy(SecurityUtils.getUsername()) - .updateBy(SecurityUtils.getUsername()) - .remark(ruleInfo.getRemark()) - .params(ruleInfo.getParams()) - .searchValue(ruleInfo.getSearchValue()) - .build(); - return teamProductSkuInfo; - }).toList(); - //批量插入拼团规则明细 - activityTeamProductSkuInfoService.saveBatch(activityTeamProductSkuInfoList); - return Result.success(200,"添加成功"); + public ActivityTeamInfoDetailResp getActivityByTeamId(Long teamId) { + //根据id查询活动详情 + ActivityTeamInfo activityTeamInfo = getById(teamId); + //封装活动详情 + ActivityTeamInfoDetailResp activityTeamInfoDetailResp = new ActivityTeamInfoDetailResp(); + //根据活动id查询活动商品SKU集合 + List teamProductSkuInfoList = activityTeamProductSkuInfoService.getTeamProductSkuInfoListByTeamId(teamId); + if (teamProductSkuInfoList != null) { + //定义一个空集合 + ArrayList activityProductSkuList = new ArrayList<>(); + for (ActivityProductSkuListModel activityProductSkuListModel : teamProductSkuInfoList) { + Long id = activityProductSkuListModel.getId(); + //根据id查询 + ActivityTeamProductSkuInfo activityTeamProductSkuInfo = activityTeamProductSkuInfoService.getById(id); + //添加到集合中 + activityProductSkuList.add( + ActivityTeamProductSkuResp.builder() + .ProductId(activityTeamProductSkuInfo.getProductId()) + .sku(activityTeamProductSkuInfo.getProductSku()) + .teamPrice(activityTeamProductSkuInfo.getTeamPrice()) + .teamStock(activityTeamProductSkuInfo.getTeamStock()) + .build() + ); + } + //赋值 + activityTeamInfoDetailResp.setActivityTeamProductSkuList(activityProductSkuList); + //克隆到activityTeamInfo + BeanUtils.copyBeanProp(activityTeamInfoDetailResp, activityTeamInfo); + } + return activityTeamInfoDetailResp; } -} + /** + * 修改团购活动信息 + * @param activityProductUpdReq + */ + @Transactional + @Override + public void edit(ActivityProductUpdReq activityProductUpdReq) { + //获取活动商品SKU + ActivityProductUpdResp activityProductUpdResp = activityProductUpdReq.getActivityProductUpdResp(); + //获取需要删除的SKU集合 + List deleteSkuIdList = activityProductUpdResp.getDeleteSkuIdList(); + //判断是否为空 + if (deleteSkuIdList != null){ + activityTeamProductSkuInfoService.deleteBatchByTeamIds(deleteSkuIdList); + } + //获取需要修改的SKU集合 + List activityTeamProductSkuList = activityProductUpdResp.getActivityTeamProductSkuUpdList(); + //判断是否为空 + if (activityTeamProductSkuList != null){ + activityTeamProductSkuList.stream().map(productSkuUpdModel -> { + return ProductSkuUpdModel.builder() + .productId(productSkuUpdModel.getProductId()) + .teamPrice(productSkuUpdModel.getTeamPrice()) + .teamStock(productSkuUpdModel.getTeamStock()) + .build(); + }).toList(); + //批量修改SKU集合 + activityTeamProductSkuInfoService.editBatchActivityTeamProductSkuUpdModelList(activityTeamProductSkuList); + } + + //获取要添加的SKU集合 + List activityTeamProductSkuAddList = activityProductUpdResp.getActivityTeamProductSkuAddList(); + //判断是否为空 + if (activityTeamProductSkuAddList != null){ + activityTeamProductSkuAddList.stream().map(productSkuAddModel -> { + return ProductSkuAddModel.builder() + .productId(productSkuAddModel.getProductId()) + .teamPrice(productSkuAddModel.getTeamPrice()) + .teamStock(productSkuAddModel.getTeamStock()) + .productSku(productSkuAddModel.getProductSku()) + .build(); + }).toList(); + //批量添加SKU集合 + activityTeamProductSkuInfoService.batchSave(activityTeamProductSkuAddList); + + } + //修改活动信息 + ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.builder() + .id(activityProductUpdReq.getId()) + .name(activityProductUpdReq.getName()) + .projectId(activityProductUpdReq.getProjectId()) + .productImage(activityProductUpdReq.getProductImage()) + .introduction(activityProductUpdReq.getIntroduction()) + .unit(activityProductUpdReq.getUnit()) + .imageList(activityProductUpdReq.getImageList()) + .endTime(activityProductUpdReq.getEndTime()) + .sort(activityProductUpdReq.getSort()) + .content(activityProductUpdReq.getContent()) + .status(activityProductUpdReq.getStatus()) + .strategyType(activityProductUpdReq.getStrategyType()) + .strategyId(activityProductUpdReq.getStrategyId()) + .build(); + //修改拼团活动 + updateById(activityTeamInfo); + } + + + + +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamOpenInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamOpenInfoServiceImpl.java index e17adfc..8f25fb5 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamOpenInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamOpenInfoServiceImpl.java @@ -9,8 +9,16 @@ import com.muyu.marketing.service.ActivityTeamOpenInfoService; import org.springframework.stereotype.Service; @Service -public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl implements ActivityTeamOpenInfoService { +public class ActivityTeamOpenInfoServiceImpl extends ServiceImpl + implements ActivityTeamOpenInfoService { + /** + * 通过活动ID和开团类型查询开团数量 + * + * @param teamId 活动ID + * @param teamOpenType 开团类型 + * @return 开团数量 + */ @Override public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenType) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamProductSkuInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamProductSkuInfoServiceImpl.java index 6a5f4ca..f8bedcc 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamProductSkuInfoServiceImpl.java +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/ActivityTeamProductSkuInfoServiceImpl.java @@ -1,67 +1,155 @@ package com.muyu.marketing.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.TeamProductDisCountPriceModel; -import com.muyu.marketing.domain.model.TeamProductStockModel; +import com.muyu.marketing.domain.model.*; import com.muyu.marketing.mapper.ActivityTeamProductSkuInfoMapper; +import com.muyu.marketing.service.ActivityTeamInfoService; import com.muyu.marketing.service.ActivityTeamProductSkuInfoService; import com.muyu.product.cache.ProjectSkuCache; import com.muyu.product.domain.ProjectSkuInfo; -import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.rmi.ServerException; -import java.util.Comparator; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @Service -public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl implements ActivityTeamProductSkuInfoService { +public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl + implements ActivityTeamProductSkuInfoService { + @Autowired private ProjectSkuCache projectSkuCache; + @Autowired + private @Lazy ActivityTeamInfoService activityTeamInfoService; + @Autowired + private ActivityTeamProductSkuInfoMapper activityTeamProductSkuInfoMapper; - @SneakyThrows + /** + * 通过团购活动ID获取团购中最优惠的价格 + * @param teamId 团购ID + * @return 优惠价格 + */ @Override - public TeamProductDisCountPriceModel getDiscountPrice(Long teamId) { - List activityTeamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + public TeamProductDiscountPriceModel getDiscountPrice(Long teamId) { + List teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + // 优惠模型集合 + Optional discountPriceModelOptional = teamProductSkuInfoList.stream() + .map(activityTeamProductSkuInfo -> { + // 根据商品ID和商品SKU查询商品信息 + ProjectSkuInfo projectSkuInfo = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku()); + return TeamProductDiscountPriceModel.of(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice()); + }).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue()); - Optional disCountPriceModelOptional = activityTeamProductSkuInfoList.stream().map( - activityTeamProductSkuInfo -> { - ProjectSkuInfo projectSkuInfo = projectSkuCache.get(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku()); - - return TeamProductDisCountPriceModel.of(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice()); - }).sorted(Comparator.comparing(TeamProductDisCountPriceModel::getDiscount)) - .findFirst(); - if (disCountPriceModelOptional.isEmpty()) { - throw new ServerException("没有找到商品拼团信息"); + if (discountPriceModelOptional.isEmpty()) { + throw new ServiceException("团购活动下没有商品绑定"); } - return disCountPriceModelOptional.get(); + return discountPriceModelOptional.get(); } + /** + * 通过活动ID获取 剩余库存 + * + * @param teamId 活动ID + * @return 库存 + */ @Override public TeamProductStockModel getStock(Long teamId) { - List activityTeamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + //根据活动id查询团购商品SKU集合 + List teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + //封装返回对象 return TeamProductStockModel.builder() - .teamStock(activityTeamProductSkuInfoList.stream().mapToLong(ActivityTeamProductSkuInfo::getTeamStock).sum()) - .remainStock(activityTeamProductSkuInfoList.stream().mapToLong(ActivityTeamProductSkuInfo::getRemainStock).sum()) + .teamStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getTeamStock).reduce(0L, Long::sum)) + .remainStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getRemainStock).reduce(0L, Long::sum)) .build(); } /** - * 根据商品id获取商品拼团规格信息 - * @param productId + * 添加团购商品SKU + * + * @param activityTeamProductSkuAddModelList 团购商品SKU添加模型集合 + */ + @Override + public void batchSave(List activityTeamProductSkuAddModelList) { + //判空 + if (activityTeamProductSkuAddModelList == null || activityTeamProductSkuAddModelList.isEmpty()) { + throw new ServiceException("入参添加商品规格模型,不可为空"); + } + //批量保存 + this.saveBatch( + activityTeamProductSkuAddModelList.stream().map(ActivityTeamProductSkuInfo::modelBuild).toList() + ); + } + + /** + * 根据团购ID获取团购商品SKU列表 + * + * @param teamId * @return */ @Override - public List getSkuList(BigInteger productId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().eq(ActivityTeamProductSkuInfo::getProductId, productId); - List activityTeamProductSkuInfoList = this.list(queryWrapper); - return activityTeamProductSkuInfoList; + public List getTeamProductSkuInfoListByTeamId(Long teamId) { + //根据活动id查询团购商品SKU集合 + List activityTeamProductSkuList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + //封装返回对象 + ArrayList activityProductSkuList = new ArrayList<>(); + //遍历 + for (ActivityTeamProductSkuInfo activityTeamProductSkuInfo : activityTeamProductSkuList) { + //添加到集合中 + activityProductSkuList.add(ActivityProductSkuListModel.builder() + .id(activityTeamProductSkuInfo.getId()) + .productId(activityTeamProductSkuInfo.getProductId()) + .sku(activityTeamProductSkuInfo.getProductSku()) + .teamPrice(activityTeamProductSkuInfo.getTeamPrice()) + .teamStock(activityTeamProductSkuInfo.getTeamStock()) + .build()); + } + return activityProductSkuList; } + + /** + * 编辑团购商品SKU集合 + * + * @param productSkuUpdList + * @return + */ + @Override + public boolean editBatchActivityTeamProductSkuUpdModelList(List productSkuUpdList) { + //创建updateWrapper + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + //遍历集合 + for (ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel : productSkuUpdList) { + //赋值 + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamPrice, activityTeamProductSkuUpdModel.getTeamPrice()); + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamStock, activityTeamProductSkuUpdModel.getTeamStock()); + updateWrapper.eq(ActivityTeamProductSkuInfo::getProductId, activityTeamProductSkuUpdModel.getProductId()); + } + //返回 + return this.update(updateWrapper); + } + + /** + * 商品规格的批量删除 + * @param id + * @return + */ + @Override + public boolean deleteBatchByTeamIds(List id) { + //创建updateWrapper + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + //根据id查询 + List productIdList = activityTeamProductSkuInfoMapper.selectList(lambdaQueryWrapper).stream().map(ActivityTeamProductSkuInfo::getProductId).toList(); + //判断集合是否为空 + if (productIdList == null && productIdList.isEmpty()) { + throw new ServiceException("该团购下没有商品"); + } + return this.removeByIds(productIdList); + } + + } diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionHundredServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionHundredServiceImpl.java new file mode 100644 index 0000000..c5881f1 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionHundredServiceImpl.java @@ -0,0 +1,39 @@ +package com.muyu.marketing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyExemptionHundred; +import com.muyu.marketing.mapper.TeamStrategyExemptionHundredMapper; +import com.muyu.marketing.service.TeamStrategyExemptionHundredService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Service("team_strategy_exemption_hundred") +@Log4j2 +public class TeamStrategyExemptionHundredServiceImpl extends ServiceImpl + implements TeamStrategyExemptionHundredService { + + @Override + public void openTeam(Long activityTeamId) { + log.info("参加-百人团 -[{}]",activityTeamId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void backTeam(Long teamId) { + + } + + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java new file mode 100644 index 0000000..4086ff8 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionOrdinaryServiceImpl.java @@ -0,0 +1,39 @@ +package com.muyu.marketing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyExemptionOrdinary; +import com.muyu.marketing.mapper.TeamStrategyExemptionOrdinaryMapper; +import com.muyu.marketing.service.TeamStrategyExemptionOrdinaryService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Service("team_strategy_exemption_ordinary") +@Log4j2 +public class TeamStrategyExemptionOrdinaryServiceImpl extends ServiceImpl + implements TeamStrategyExemptionOrdinaryService { + + @Override + public void openTeam(Long activityTeamId) { + log.info("参加-普通团 -[{}]",activityTeamId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void backTeam(Long teamId) { + + } + + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionServiceImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionServiceImpl.java new file mode 100644 index 0000000..f385e86 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/service/impl/TeamStrategyExemptionServiceImpl.java @@ -0,0 +1,39 @@ +package com.muyu.marketing.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyExemption; +import com.muyu.marketing.mapper.TeamStrategyExemptionMapper; +import com.muyu.marketing.service.TeamStrategyExemptionService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Service("team_strategy_exemption") +@Log4j2 +public class TeamStrategyExemptionServiceImpl extends ServiceImpl + implements TeamStrategyExemptionService { + + @Override + public void openTeam(Long activityTeamId) { + log.info("参加-免单团 -[{}]",activityTeamId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void backTeam(Long teamId) { + + } + + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/ActivityTeamStrategy.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/ActivityTeamStrategy.java new file mode 100644 index 0000000..3b71dea --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/ActivityTeamStrategy.java @@ -0,0 +1,38 @@ +package com.muyu.marketing.strategy; + +/** + * 团购活动策略 + */ +public interface ActivityTeamStrategy { + + /** + * 开团 + * @param activityTeamId 活动拼团id + */ + public void openTeam(Long activityTeamId); + + /** + * 申请加团 + * @param teamId 拼团id + */ + public void applyTeam(Long teamId); + + /** + * 加团 + * @param teamId 拼团id + * @param orderNumber 订单号 + */ + public void addTeam(Long teamId, String orderNumber); + + /** + * 退团 + * @param teamId 拼团id + */ + public void backTeam(Long teamId); + + /** + * 结算团 + * @param teamId 拼团id + */ + public void settle(Long teamId); +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/impl/ActivityTeamStrategyImpl.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/impl/ActivityTeamStrategyImpl.java new file mode 100644 index 0000000..4db38d6 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/strategy/impl/ActivityTeamStrategyImpl.java @@ -0,0 +1,47 @@ +package com.muyu.marketing.strategy.impl; + +import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.core.utils.SpringUtils; +import com.muyu.marketing.strategy.ActivityTeamStrategy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +@Service +@Primary +public class ActivityTeamStrategyImpl implements ActivityTeamStrategy { + @Override + public void openTeam(Long activityTeamId) { + String activityTeamType = null; + if (activityTeamId==null){ + throw new ServiceException("activityTeamId 不能为空"); + }else if (activityTeamId==1){ + activityTeamType="team_strategy_exemption_hundred"; + }else if (activityTeamId==2){ + activityTeamType="team_strategy_exemption_ordinary"; + }else if (activityTeamId==3){ + activityTeamType="team_strategy_exemption"; + } + ActivityTeamStrategy activityTeamStrategy = SpringUtils.getBean(activityTeamType); + activityTeamStrategy.openTeam(activityTeamId); + } + + @Override + public void applyTeam(Long teamId) { + + } + + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + @Override + public void backTeam(Long teamId) { + + } + + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/util/OssUtil.java b/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/util/OssUtil.java deleted file mode 100644 index a3302ce..0000000 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/java/com/muyu/marketing/util/OssUtil.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.muyu.marketing.util; - -import com.aliyun.oss.OSS; -import com.aliyun.oss.OSSClientBuilder; -import com.aliyun.oss.model.GetObjectRequest; -import com.aliyun.oss.model.PutObjectRequest; -import lombok.Data; -import lombok.extern.log4j.Log4j2; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.multipart.MultipartFile; - -import java.io.*; -import java.time.LocalDateTime; -import java.util.UUID; - -/** - * Oss服务调用 - */ -@Log4j2 -@Configuration -@ConfigurationProperties(prefix = "oss") -@Data -public class OssUtil { - - /** - * Endpoint 存储对象概述 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 访问路径前缀 存储对象概述 - */ - private String endPoint; - private String accessKeyId; - private String accessKeySecret; - private String accessPre; - - /** - * bucket名称 - * - * @return - */ - private String bucketName; - - /** - * 构建 OSS 对象 - * @return - */ - private OSS initOssClient() { - return new OSSClientBuilder().build( - endPoint, - accessKeyId, - accessKeySecret); - } - - - /** - * 默认路径上传本地文件 - * - * @param filePath - */ - public String uploadFile(String filePath) { - return uploadFileForBucket(bucketName, getOssFilePath(filePath), filePath); - } - - /** - * 默认路径上传multipartFile文件 - * - * @param multipartFile - */ - public String uploadMultipartFile(MultipartFile multipartFile) { - return uploadMultipartFile(bucketName, getOssFilePath(multipartFile.getOriginalFilename()), multipartFile); - } - - /** - * 上传 multipartFile 类型文件 - * - * @param bucketName - * @param ossPath - * @param multipartFile - */ - public String uploadMultipartFile(String bucketName, String ossPath, MultipartFile multipartFile) { - InputStream inputStream = null; - try { - inputStream = multipartFile.getInputStream(); - } catch (IOException e) { - e.printStackTrace(); - } - uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); - return accessPre + ossPath; - } - - /** - * 使用File上传PutObject上传文件 ** 程序默认使用次方法上传 - * - * @param bucketName 实例名称 - * @param ossPath oss存储路径 - * @param filePath 本地文件路径 - */ - public String uploadFileForBucket(String bucketName, String ossPath, String filePath) { - // 创建PutObjectRequest对象。 - PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ossPath, new File(filePath)); - - // 上传 - initOssClient().putObject(putObjectRequest); - return accessPre + ossPath; - } - - /** - * 使用文件流上传到指定的bucket实例 - * - * @param bucketName 实例名称 - * @param ossPath oss存储路径 - * @param filePath 本地文件路径 - */ - public String uploadFileInputStreamForBucket(String bucketName, String ossPath, String filePath) { - - // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。 - InputStream inputStream = null; - try { - inputStream = new FileInputStream(filePath); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。 - uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); - return accessPre + ossPath; - } - - public void uploadFileInputStreamForBucket(String bucketName, String ossPath, InputStream inputStream) { - initOssClient().putObject(bucketName, ossPath, inputStream); - } - - /** - * 下载 - * - * @param ossFilePath - * @param filePath - */ - public void downloadFile(String ossFilePath, String filePath) { - downloadFileForBucket(bucketName, ossFilePath, filePath); - } - - /** - * 下载 - * - * @param bucketName 实例名称 - * @param ossFilePath oss存储路径 - * @param filePath 本地文件路径 - */ - public void downloadFileForBucket(String bucketName, String ossFilePath, String filePath) { - initOssClient().getObject(new GetObjectRequest(bucketName, ossFilePath), new File(filePath)); - } - - /** - * @return - */ - public String getOssDefaultPath() { - LocalDateTime now = LocalDateTime.now(); - String url = - now.getYear() + "/" + - now.getMonth() + "/" + - now.getDayOfMonth() + "/" + - now.getHour() + "/" + - now.getMinute() + "/"; - return url; - } - - /** - * 对文件进行重新命名 - * @param filePath - * @return - */ - public String getOssFilePath(String filePath) { - String fileSuf = filePath.substring(filePath.lastIndexOf(".") + 1); - return getOssDefaultPath() + UUID.randomUUID().toString() + "." + fileSuf; - } - -} diff --git a/muyu-modules/muyu-marketing/marketing-serve/src/main/resources/bootstrap.yml b/muyu-modules/muyu-marketing/marketing-serve/src/main/resources/bootstrap.yml index 3417483..bd3ba93 100644 --- a/muyu-modules/muyu-marketing/marketing-serve/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-marketing/marketing-serve/src/main/resources/bootstrap.yml @@ -27,15 +27,4 @@ spring: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} logging: level: - com.muyu.system.mapper: DEBUG -mybatis-plus: - mapper-locations: - - classpath*:mapper/*Mapper.xml - # 搜索指定包别名 - typeAliasesPackage: com.muyu.marketing.domain -oss: - endPoint: https://oss-cn-shanghai.aliyuncs.com - accessKeyId: LTAI5tLMYKdkKFsCqjNMk1GY - accessKeySecret: m3Tnb3FWegHh7tnfN1o48vZ2UyJa4l - accessPre: https://ccc-demo123123.oss-cn-shanghai.aliyuncs.com/ - bucketName: lhc-2204a + com.muyu.marketing.mapper: DEBUG diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java index 0f74a64..2b47a33 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/RuleInfo.java @@ -52,18 +52,18 @@ public class RuleInfo extends BaseEntity { @ApiModelProperty(name = "规格状态", value = "规格状态") private String status; - /** - *规格Sku - */ - private String ruleSku; - /** - *拼团库存 - */ - private Long teamStock; - /** - * 拼团价格 - */ - private BigDecimal teamPrice; +// /** +// *规格Sku +// */ +// private String ruleSku; +// /** +// *拼团库存 +// */ +// private Long teamStock; +// /** +// * 拼团价格 +// */ +// private BigDecimal teamPrice; /** * 查询构造器 diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java index ebd44da..8b55696 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java @@ -34,6 +34,7 @@ public class TemplateAttributeModel extends BaseEntity { * 编码 */ private String code; + private String value; public static TemplateAttributeModel attributeInfoBuild(AttributeInfo attributeInfo){ return TemplateAttributeModel.builder() diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CommentInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CommentInfoController.java index 9500949..6a08676 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CommentInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CommentInfoController.java @@ -3,6 +3,7 @@ package com.muyu.product.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -108,4 +109,16 @@ public class CommentInfoController extends BaseController { public Result remove(@PathVariable List ids) { return toAjax(commentInfoService.removeBatchByIds(ids)); } + + /** + * 根据商品Id查询评论 + */ + @GetMapping("/getCommentByProjectId/{projectId}") + public Result getCommentByProjectId(@PathVariable Long projectId){ + //查询条件 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(CommentInfo::getProjectId,projectId); + //查询 + return Result.success(commentInfoService.list(lambdaQueryWrapper)); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java index d546035..0fca5c1 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java @@ -70,6 +70,8 @@ public class CategoryInfoServiceImpl extends ServiceImpl{ + //遍历获取属性值 + TemplateAttributeGroupModel.getAttributeList().forEach(TemplateAttributeModel->{ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 属性ID + queryWrapper.eq(AsProductAttributeInfo::getAttributeId,TemplateAttributeModel.getId()); + //根据商品ID查询属性值 + List list = this.asProductAttributeInfoService.list(queryWrapper); + //遍历属性赋值 + list.forEach(AsProductAttributeInfo->{ + TemplateAttributeModel.setValue(AsProductAttributeInfo.getValue()); + }); + }); + }); + + // 查询未关联的属性 + templateAttributeModelList.forEach(TemplateAttributeModel->{ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 属性ID + queryWrapper.eq(AsProductAttributeInfo::getAttributeId,TemplateAttributeModel.getId()); + //根据商品ID查询属性值 + List list = this.asProductAttributeInfoService.list(queryWrapper); + //遍历赋值 + list.forEach(AsProductAttributeInfo->{ + TemplateAttributeModel.setValue(AsProductAttributeInfo.getValue()); + }); + }); + + + + // 查询未关联的属性 + attributeModelList.forEach(TemplateAttributeModel->{ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 属性ID + queryWrapper.eq(AsProductAttributeInfo::getAttributeId, TemplateAttributeModel.getId()); + //根据商品ID查询属性值 + List list = this.asProductAttributeInfoService.list(queryWrapper); + //遍历赋值 + list.forEach(AsProductAttributeInfo -> { + TemplateAttributeModel.setValue(AsProductAttributeInfo.getValue()); + }); + }); + // 返回 return CategoryCommonElementResp.builder() .templateAttributeGroupList(attributeGroupModelList) .templateAttributeList(templateAttributeModelList)