From 741751955dbbfef0ef30228e437c4c5aee866dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=9A=E5=BF=97=E8=B1=AA123?= <14699252+shang-zhihao-123@user.noreply.gitee.com> Date: Wed, 4 Dec 2024 14:59:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/web/model/QueryModel.java | 4 +- muyu-modules/muyu-goods/pom.xml | 1 + .../com/muyu/goods/MuYuGoodsApplication.java | 4 +- .../ActivityTeamInfoController.java | 20 ++- .../ActivityTeamProductSkuInfoController.java | 19 +++ .../muyu/goods/controller/BaseController.java | 129 ++++++++++++++++ .../muyu/goods/domain/ActivityTeamInfo.java | 4 + .../ActivityTeamProductSkuInfoAddModel.java | 17 ++ .../domain/Model/TeamProductStockModel.java | 3 +- .../goods/domain/add/ActivityTeamInfoAdd.java | 111 ++++++++++++++ .../goods/domain/resp/TeamInfoListResp.java | 1 - .../goods/mapper/ActivityTeamInfoMapper.java | 22 +++ .../ActivityTeamProductSkuInfoMapper.java | 8 +- .../goods/remote/InvokeUserController.java | 18 +++ .../service/ActivityTeamInfoService.java | 10 +- .../ActivityTeamProductSkuInfoService.java | 5 + .../impl/ActivityTeamInfoServiceImpl.java | 39 ++++- ...ActivityTeamProductSkuInfoServiceImpl.java | 22 ++- .../src/main/java/com/muyu/goods/test | 26 ++++ .../mapper/ActivityTeamInfoMapper.xml | 15 ++ .../ActivityTeamProductSkuInfoMapper.xml | 4 + .../muyu-marketing/marketing-common/pom.xml | 27 ++++ .../marketing/domain/ActivityTeamInfo.java | 132 ++++++++++++++++ .../domain/ActivityTeamOpenInfo.java | 69 +++++++++ .../domain/ActivityTeamProductSkuInfo.java | 88 +++++++++++ .../domain/TeamStrategyExemption.java | 55 +++++++ .../marketing/domain/TeamStrategyHundred.java | 47 ++++++ .../domain/TeamStrategyOrdinary.java | 47 ++++++ .../domain/model/ActivityTeamDetailModel.java | 102 ++++++++++++ .../model/ActivityTeamInfoAddModel.java | 98 ++++++++++++ .../model/ActivityTeamInfoListModel.java | 99 ++++++++++++ .../model/ActivityTeamInfoListQueryModel.java | 32 ++++ .../model/ActivityTeamInfoSaveModel.java | 92 +++++++++++ .../model/ActivityTeamInfoUpdModel.java | 65 ++++++++ .../ActivityTeamProductSkuAddListModel.java | 44 ++++++ .../model/ActivityTeamProductSkuAddModel.java | 59 +++++++ .../ActivityTeamProductSkuDelListModel.java | 30 ++++ ...vityTeamProductSkuInfoForeignKeyModel.java | 51 ++++++ .../ActivityTeamProductSkuInfoModel.java | 51 ++++++ .../model/ActivityTeamProductSkuModel.java | 50 ++++++ .../model/ActivityTeamProductSkuReqModel.java | 40 +++++ .../ActivityTeamProductSkuSettingModel.java | 59 +++++++ .../ActivityTeamProductSkuUpdDelAddModel.java | 35 +++++ .../ActivityTeamProductSkuUpdListModel.java | 37 +++++ .../model/ActivityTeamProductSkuUpdModel.java | 46 ++++++ .../ActivityTeamProductSkuUpdateModel.java | 50 ++++++ .../domain/model/ActivityTeamUpdateModel.java | 85 ++++++++++ .../model/TeamProductDiscountPriceModel.java | 55 +++++++ .../domain/model/TeamProductStockModel.java | 31 ++++ .../domain/req/ActivityTeamInfoSaveReq.java | 75 +++++++++ .../domain/req/ActivityTeamInfoUpdReq.java | 36 +++++ .../domain/req/ActivityTeamProductSkuReq.java | 28 ++++ .../req/ActivityTeamProductSkuSettingReq.java | 37 +++++ .../marketing/domain/req/TeamInfoListReq.java | 37 +++++ .../domain/req/TeamProjectSkuInfoAddReq.java | 33 ++++ .../domain/req/TeamProjectSkuInfoUpdReq.java | 33 ++++ .../domain/resp/ActivityTeamDetailResp.java | 86 +++++++++++ .../resp/ActivityTeamProjectSkuResp.java | 38 +++++ .../domain/resp/ProjectFindSkuInfoResp.java | 46 ++++++ .../domain/resp/TeamInfoFindByIdResp.java | 104 +++++++++++++ .../domain/resp/TeamInfoListResp.java | 90 +++++++++++ .../muyu-marketing/marketing-remote/pom.xml | 27 ++++ .../muyu-marketing/marketing-server/pom.xml | 129 ++++++++++++++++ .../marketing/MuYuMarketIngApplication.java | 24 +++ .../controller/ActivityTeamController.java | 113 ++++++++++++++ .../team/mapper/ActivityTeamInfoMapper.java | 13 ++ .../mapper/ActivityTeamOpenInfoMapper.java | 10 ++ .../ActivityTeamProductSkuInfoMapper.java | 11 ++ .../mapper/TeamStrategyExemptionMapper.java | 11 ++ .../mapper/TeamStrategyHundredMapper.java | 10 ++ .../mapper/TeamStrategyOrdinaryMapper.java | 10 ++ .../team/service/ActivityTeamInfoService.java | 45 ++++++ .../service/ActivityTeamOpenInfoService.java | 35 +++++ .../ActivityTeamProductSkuInfoService.java | 73 +++++++++ .../service/TeamStrategyExemptionService.java | 11 ++ .../service/TeamStrategyHundredService.java | 11 ++ .../service/TeamStrategyOrdinaryService.java | 11 ++ .../impl/ActivityTeamInfoServiceImpl.java | 120 +++++++++++++++ .../impl/ActivityTeamOpenInfoServiceImpl.java | 31 ++++ ...ActivityTeamProductSkuInfoServiceImpl.java | 145 ++++++++++++++++++ .../TeamStrategyExemptionServiceImpl.java | 65 ++++++++ .../impl/TeamStrategyHundredServiceImpl.java | 66 ++++++++ .../impl/TeamStrategyOrdinaryServiceImpl.java | 66 ++++++++ .../team/strategy/ActivityTeamStrategy.java | 44 ++++++ .../impl/ActivityTeamStrategyImpl.java | 85 ++++++++++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 30 ++++ .../src/main/resources/logback.xml | 74 +++++++++ .../java/com/muyu/test/TeamStrategyTest.java | 28 ++++ muyu-modules/muyu-marketing/pom.xml | 30 ++++ .../impl/RuleCacheDataRemoteImpl.java | 2 + .../muyu/product/domain/AttributeGroup.java | 9 ++ .../com/muyu/product/domain/ProjectInfo.java | 16 ++ .../muyu/product/domain/ProjectSkuInfo.java | 13 +- .../com/muyu/product/domain/RuleInfo.java | 9 ++ .../model/TemplateAttributeGroupModel.java | 6 +- .../factory/RemoteProjectInfoFactory.java | 2 - .../factory/RemoteProjectSkuFactory.java | 2 + .../remote/factory/RemoteRuleAttrFactory.java | 3 - .../remote/factory/RemoteRuleFactory.java | 2 - .../muyu/product/MuYuProductApplication.java | 2 +- .../controller/AttributeGroupController.java | 28 +++- .../controller/BrandInfoController.java | 17 +- .../controller/CommentInfoController.java | 8 + .../controller/ProjectInfoController.java | 51 +++--- .../controller/RuleInfoController.java | 19 ++- .../product/mapper/ProjectInfoMapper.java | 3 + .../service/AttributeGroupService.java | 5 + .../product/service/AttributeInfoService.java | 4 + .../product/service/CommentInfoService.java | 5 +- .../product/service/ProjectInfoService.java | 9 +- .../muyu/product/service/RuleInfoService.java | 5 + .../impl/AttributeGroupServiceImpl.java | 10 ++ .../service/impl/CommentInfoServiceImpl.java | 11 ++ .../service/impl/ProjectInfoServiceImpl.java | 35 +++++ .../service/impl/RuleInfoServiceImpl.java | 9 ++ .../mapper/product/ProjectInfoMapper.xml | 3 +- muyu-modules/pom.xml | 1 + pom.xml | 11 ++ 119 files changed, 4351 insertions(+), 80 deletions(-) create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/BaseController.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/ActivityTeamProductSkuInfoAddModel.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/add/ActivityTeamInfoAdd.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/remote/InvokeUserController.java create mode 100644 muyu-modules/muyu-goods/src/main/java/com/muyu/goods/test create mode 100644 muyu-modules/muyu-marketing/marketing-common/pom.xml create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java 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/TeamStrategyHundred.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyOrdinary.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddListModel.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/ActivityTeamProductSkuDelListModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoForeignKeyModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuSettingModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdDelAddModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdListModel.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/ActivityTeamProductSkuUpdateModel.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamUpdateModel.java create 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/model/TeamProductStockModel.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/ActivityTeamInfoUpdReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuSettingReq.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/req/TeamProjectSkuInfoAddReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoUpdReq.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java create mode 100644 muyu-modules/muyu-marketing/marketing-remote/pom.xml create mode 100644 muyu-modules/muyu-marketing/marketing-server/pom.xml create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamProductSkuInfoMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyHundredMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyOrdinaryMapper.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyHundredService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyOrdinaryService.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyHundredServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyOrdinaryServiceImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/resources/banner.txt create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/main/resources/logback.xml create mode 100644 muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/TeamStrategyTest.java create mode 100644 muyu-modules/muyu-marketing/pom.xml 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 5eb1adb..c5b6d07 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 @@ -23,9 +23,9 @@ import java.util.List; @AllArgsConstructor public class QueryModel { - private Integer pageNum; + private Integer pageNum = 1 ; - private Integer pagesSize; + private Integer pagesSize = 2 ; private String orderByColumn; diff --git a/muyu-modules/muyu-goods/pom.xml b/muyu-modules/muyu-goods/pom.xml index de94f7e..dc58fee 100644 --- a/muyu-modules/muyu-goods/pom.xml +++ b/muyu-modules/muyu-goods/pom.xml @@ -16,6 +16,7 @@ + com.muyu muyu-product-cache diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java index 1d643db..00082bd 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/MuYuGoodsApplication.java @@ -5,6 +5,7 @@ import com.muyu.common.security.annotation.EnableMyFeignClients; import com.muyu.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; /** * 系统模块 @@ -14,7 +15,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableCustomConfig @EnableCustomSwagger2 @EnableMyFeignClients -@SpringBootApplication +@SpringBootApplication(scanBasePackages = "com.muyu.goods") +//@EnableFeignClients public class MuYuGoodsApplication { public static void main (String[] args) { SpringApplication.run(MuYuGoodsApplication.class, args); diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamInfoController.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamInfoController.java index 4d433e1..80e749f 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamInfoController.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamInfoController.java @@ -3,16 +3,14 @@ package com.muyu.goods.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.goods.domain.Model.ActivityTeamInfoListModel; +import com.muyu.goods.domain.add.ActivityTeamInfoAdd; import com.muyu.goods.domain.req.TeamInfoListReq; import com.muyu.goods.domain.resp.TeamInfoListResp; import com.muyu.goods.service.ActivityTeamInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -35,7 +33,7 @@ public class ActivityTeamInfoController { * 商品拼团信息列表 */ @ApiOperation("商品拼团信息列表") - @GetMapping("/list") + @PostMapping("/list") public Result> query(@RequestBody TeamInfoListReq teamInfoListReq){ TableDataInfo tableDataInfo = activityTeamInfoService.querya(teamInfoListReq.buildQueryModel()); List respList = tableDataInfo.getRows().stream().map(TeamInfoListResp::listModeBuild).toList(); @@ -47,4 +45,16 @@ public class ActivityTeamInfoController { ); } + /** + * 添加 + */ + @ApiOperation("添加商品拼团信息") + @PostMapping("/add") + public Result add(@RequestBody ActivityTeamInfoAdd activityTeamInfoAdd){ + activityTeamInfoService.add(activityTeamInfoAdd); + return Result.success("添加成功"); + + } + + } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamProductSkuInfoController.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamProductSkuInfoController.java index 269a82a..eb19c82 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamProductSkuInfoController.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/ActivityTeamProductSkuInfoController.java @@ -1,9 +1,16 @@ package com.muyu.goods.controller; +import com.muyu.common.core.domain.Result; +import com.muyu.goods.domain.ActivityTeamProductSkuInfo; +import com.muyu.goods.service.ActivityTeamProductSkuInfoService; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @Author:尚志豪 * @Package:com.muyu.goods.controller @@ -15,4 +22,16 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/ActivityTeamProductSkuInfo") public class ActivityTeamProductSkuInfoController { + + @Autowired + private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + + /** + * 列表 + * @return + */ + @PostMapping("/list") + public Result> listResult(){ + return Result.success(activityTeamProductSkuInfoService.lists()); + } } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/BaseController.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/BaseController.java new file mode 100644 index 0000000..b30a7e8 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/controller/BaseController.java @@ -0,0 +1,129 @@ +package com.muyu.goods.controller; + +import com.github.pagehelper.PageInfo; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.common.core.utils.PageUtils; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; + +/** + * web层通用数据处理 + * + * @author muyu + */ +public class BaseController { + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * 将前台传递过来的日期格式的字符串,自动转化为Date类型 + */ + @InitBinder + public void initBinder (WebDataBinder binder) { + // Date 类型转换 + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { + @Override + public void setAsText (String text) { + setValue(DateUtils.parseDate(text)); + } + }); + } + + /** + * 设置请求分页数据 + */ + protected void startPage () { + PageUtils.startPage(); + } + + /** + * 清理分页的线程变量 + */ + protected void clearPage () { + PageUtils.clearPage(); + } + + /** + * 响应请求分页数据 + */ + @SuppressWarnings({"rawtypes", "unchecked"}) + protected Result> getDataTable (List list) { + return Result.success( + TableDataInfo.builder() + .total(new PageInfo(list).getTotal()) + .rows(list) + .build() + ); + } + + /** + * 返回成功 + */ + public Result success () { + return Result.success(); + } + + /** + * 返回成功消息 + */ + public Result success (String message) { + return Result.success(message); + } + + /** + * 返回成功消息 + */ + public Result success (Object data) { + return Result.success(data); + } + + /** + * 返回失败消息 + */ + public Result error () { + return Result.error(); + } + + /** + * 返回失败消息 + */ + public Result error (String message) { + return Result.error(message); + } + + /** + * 返回警告消息 + */ + public Result warn (String message) { + return Result.warn(message); + } + + /** + * 响应返回结果 + * + * @param rows 影响行数 + * + * @return 操作结果 + */ + protected Result toAjax (int rows) { + return rows > 0 ? Result.success() : Result.error(); + } + + /** + * 响应返回结果 + * + * @param result 结果 + * + * @return 操作结果 + */ + protected Result toAjax (boolean result) { + return result ? success() : error(); + } +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/ActivityTeamInfo.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/ActivityTeamInfo.java index f07b78c..b3281b4 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/ActivityTeamInfo.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/ActivityTeamInfo.java @@ -7,12 +7,14 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; import lombok.Data; +import lombok.experimental.SuperBuilder; /** * 商品拼团信息 * @TableName activity_team_info */ @TableName(value ="activity_team_info") +@SuperBuilder @Data public class ActivityTeamInfo implements Serializable { /** @@ -111,6 +113,8 @@ public class ActivityTeamInfo implements Serializable { @TableField(exist = false) private static final long serialVersionUID = 1L; + + @Override public boolean equals(Object that) { if (this == that) { diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/ActivityTeamProductSkuInfoAddModel.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/ActivityTeamProductSkuInfoAddModel.java new file mode 100644 index 0000000..f65b788 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/ActivityTeamProductSkuInfoAddModel.java @@ -0,0 +1,17 @@ +package com.muyu.goods.domain.Model;/** + * @Author:尚志豪 + * @Package:com.muyu.goods.domain.Model + * @Project:cloud-server + * @name:ActivityTeamProductSkuInfoAddModel + * @Date:2024/11/24 22:47 + */ + +/** + * @program: cloud-server + * @description: 商品拼团规格信息表模型 + * @author: CuiFu Bo + * @create: 2024-11-24 22:47 + **/ + +public class ActivityTeamProductSkuInfoAddModel { +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/TeamProductStockModel.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/TeamProductStockModel.java index 548b8fb..91bdd34 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/TeamProductStockModel.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/Model/TeamProductStockModel.java @@ -13,9 +13,10 @@ import lombok.NoArgsConstructor; /** * @program: cloud-server - * @description: 团购商品库存模型 + * @description: * @author: CuiFu Bo * @create: 2024-11-21 20:48 + * 团购商品库存模型 **/ @Data diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/add/ActivityTeamInfoAdd.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/add/ActivityTeamInfoAdd.java new file mode 100644 index 0000000..05d802c --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/add/ActivityTeamInfoAdd.java @@ -0,0 +1,111 @@ +package com.muyu.goods.domain.add;/** + * @Author:尚志豪 + * @Package:com.muyu.goods.domain.add + * @Project:cloud-server + * @name:ActivityTeamInfoAdd + * @Date:2024/11/22 19:02 + */ + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.goods.domain.ActivityTeamInfo; +import com.muyu.goods.domain.ActivityTeamProductSkuInfo; +import com.muyu.product.domain.CommentInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.CommentInfoSaveReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; + +/** + * @program: cloud-server + * @description: 商品拼团信息添加表 + * @author: CuiFu Bo + * @create: 2024-11-22 19:02 + **/ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamInfoAdd extends BaseEntity { + /** + * id + */ + private Long id; + /** + * 商品ID + */ + private Long productId; + /** + * 拼团商品图片 + */ + private String productImage; + /** + * 拼团名称 + */ + private String name; + /** + * 活动简介 + */ + private String introduction; + /** + * 商品单位 + */ + private String unit; + /** + * 商品的轮播图 + */ + private String imageList; + /** + * 活动时间 + */ + private Date endTime; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + /** + * 商品规格list + */ + private List ruleInfoAddList; + /** + * 排序 + */ + private Integer sort; + /** + * 详情 + */ + private String content; + + /** + * 添加构造器 + */ + public static ActivityTeamInfo saveBuild(ActivityTeamInfoAdd activityTeamInfoAdd){ + return ActivityTeamInfo.builder() + .id(activityTeamInfoAdd.getId()) + .productId(activityTeamInfoAdd.getProductId()) + .productImage(activityTeamInfoAdd.getProductImage()) + .name(activityTeamInfoAdd.getName()) + .introduction(activityTeamInfoAdd.getIntroduction()) + .unit(activityTeamInfoAdd.getUnit()) + .imageList(activityTeamInfoAdd.getImageList()) + .endTime(activityTeamInfoAdd.getEndTime()) + .strategyType(activityTeamInfoAdd.getStrategyType()) + .strategyId(activityTeamInfoAdd.getStrategyId()) + .sort(activityTeamInfoAdd.getSort()) + .content(activityTeamInfoAdd.getContent()) + .build(); + } + +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/resp/TeamInfoListResp.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/resp/TeamInfoListResp.java index 2abf4d2..b3d8d63 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/resp/TeamInfoListResp.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/domain/resp/TeamInfoListResp.java @@ -21,7 +21,6 @@ import java.util.Date; @Builder @AllArgsConstructor @NoArgsConstructor -@SuperBuilder public class TeamInfoListResp { /** * 拼团活动ID diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamInfoMapper.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamInfoMapper.java index 246c347..5db98e4 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamInfoMapper.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamInfoMapper.java @@ -2,11 +2,33 @@ package com.muyu.goods.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.goods.domain.ActivityTeamInfo; +import com.muyu.goods.domain.ActivityTeamProductSkuInfo; +import com.muyu.goods.domain.add.ActivityTeamInfoAdd; +import com.muyu.product.domain.model.RuleAttrAddModel; +import org.apache.ibatis.annotations.Param; /** * @Entity com.muyu.goods.domain.ActivityTeamInfo */ public interface ActivityTeamInfoMapper extends BaseMapper { + /** + * 商品拼团信息 + * @param activityTeamInfoAdd + */ + void add(ActivityTeamInfoAdd activityTeamInfoAdd); + + /** + * 循环sku添加 + */ + void addlist( ActivityTeamProductSkuInfo info); + + +// /** +// * 添加属性集合 +// * @param ruleAttrAddModel +// */ +// void addRuleAttrAddModel(RuleAttrAddModel ruleAttrAddModel); + } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamProductSkuInfoMapper.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamProductSkuInfoMapper.java index b0978c4..7af8329 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamProductSkuInfoMapper.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/mapper/ActivityTeamProductSkuInfoMapper.java @@ -3,10 +3,16 @@ package com.muyu.goods.mapper; import com.muyu.goods.domain.ActivityTeamProductSkuInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @Entity com.muyu.goods.domain.ActivityTeamProductSkuInfo */ public interface ActivityTeamProductSkuInfoMapper extends BaseMapper { - + /** + * 列表 + * @return + */ + List lists(); } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/remote/InvokeUserController.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/remote/InvokeUserController.java new file mode 100644 index 0000000..0684e00 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/remote/InvokeUserController.java @@ -0,0 +1,18 @@ +package com.muyu.goods.remote; + +import com.muyu.common.core.domain.Result; +import com.muyu.goods.domain.ActivityTeamProductSkuInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient("muyu-product") +public interface InvokeUserController { + +// @PostMapping("/info/add") +// public void add(@RequestBody List ruleInfoAddList); +} diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamInfoService.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamInfoService.java index 64ff7f2..12cb62c 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamInfoService.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamInfoService.java @@ -5,11 +5,19 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.goods.domain.ActivityTeamInfo; import com.muyu.goods.domain.Model.ActivityTeamInfoListModel; import com.muyu.goods.domain.Model.ActivityTeamInfoListQueryModel; +import com.muyu.goods.domain.add.ActivityTeamInfoAdd; /** * */ public interface ActivityTeamInfoService extends IService { - + /** + * 商品拼团信息列表 + */ TableDataInfo querya(ActivityTeamInfoListQueryModel activityTeamInfoQueryModel); + + /** + * 添加 + */ + void add(ActivityTeamInfoAdd activityTeamInfoAdd); } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamProductSkuInfoService.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamProductSkuInfoService.java index 361c8f3..8def3a8 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamProductSkuInfoService.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/ActivityTeamProductSkuInfoService.java @@ -31,4 +31,9 @@ public interface ActivityTeamProductSkuInfoService extends IService lists(); } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamInfoServiceImpl.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamInfoServiceImpl.java index 7ceaf10..cbdf054 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamInfoServiceImpl.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamInfoServiceImpl.java @@ -6,16 +6,22 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.goods.domain.ActivityTeamInfo; +import com.muyu.goods.domain.ActivityTeamProductSkuInfo; import com.muyu.goods.domain.Model.ActivityTeamInfoListModel; import com.muyu.goods.domain.Model.ActivityTeamInfoListQueryModel; import com.muyu.goods.domain.Model.TeamProductStockModel; import com.muyu.goods.domain.TeamProductDiscountPriceMode; +import com.muyu.goods.domain.add.ActivityTeamInfoAdd; +import com.muyu.goods.remote.InvokeUserController; import com.muyu.goods.service.ActivityTeamInfoService; import com.muyu.goods.mapper.ActivityTeamInfoMapper; import com.muyu.goods.service.ActivityTeamOpenInfoService; import com.muyu.goods.service.ActivityTeamProductSkuInfoService; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -30,8 +36,15 @@ implements ActivityTeamInfoService{ private ActivityTeamOpenInfoService activityTeamOpenInfoService; @Autowired - private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + private ActivityTeamInfoMapper activityTeamInfoMapper; + @Autowired + private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + @Autowired + private InvokeUserController invokeUserController; + /** + * 商品拼团信息列表 + */ @Override public TableDataInfo querya(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { @@ -71,6 +84,30 @@ implements ActivityTeamInfoService{ tableDataInfo.setRows(activityTeamInfoListModels); return tableDataInfo; } + /** + * 添加 + */ + @Override + @Transactional + public void add(ActivityTeamInfoAdd activityTeamInfoAdd) { + + // 商品拼团信息 + activityTeamInfoMapper.add(activityTeamInfoAdd); + // 返回只id + Long id = activityTeamInfoAdd.getId(); + + // 获取list集合 + List ruleInfoAddList = activityTeamInfoAdd.getRuleInfoAddList(); + + // 循环sku添加 + for (ActivityTeamProductSkuInfo info : ruleInfoAddList) { + System.out.println(info); + info.setTeamId(id); + info.setProductId(activityTeamInfoAdd.getProductId()); + activityTeamInfoMapper.addlist(info); + } + + } } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamProductSkuInfoServiceImpl.java b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamProductSkuInfoServiceImpl.java index 9bdcb5a..722ef12 100644 --- a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamProductSkuInfoServiceImpl.java +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/service/impl/ActivityTeamProductSkuInfoServiceImpl.java @@ -30,7 +30,13 @@ implements ActivityTeamProductSkuInfoService{ @Autowired private ProjectSkuCache projectSkuCache; - + @Autowired + private ActivityTeamProductSkuInfoMapper activityTeamProductSkuInfoMapper; + /** + * 通过团购活动Id获取团购中最优惠的价格 + * @param teamId + * @return + */ @Override public TeamProductDiscountPriceMode getDiscountPrice(Long teamId) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -49,7 +55,11 @@ implements ActivityTeamProductSkuInfoService{ } return discountPriceModeOptional.get(); } - + /** + * 通过活动Id获取 剩余库存 + * @param teamId + * @return + */ @Override public TeamProductStockModel getStock(Long teamId) { List teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); @@ -58,4 +68,12 @@ implements ActivityTeamProductSkuInfoService{ .remainStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getRemainStock).reduce(0L,Long::sum)) .build(); } + /** + * 列表 + * @return + */ + @Override + public List lists() { + return activityTeamProductSkuInfoMapper.lists(); + } } diff --git a/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/test b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/test new file mode 100644 index 0000000..4099637 --- /dev/null +++ b/muyu-modules/muyu-goods/src/main/java/com/muyu/goods/test @@ -0,0 +1,26 @@ +{ + "商品ID": "Long", + "商品名称": "String", + "商品图": "String", + "商品类型": "String", + "商品分类": "String", + "用户等级": "Long", + "是否是付费会员": "Long", + "用户分组": "Long" + "用户标签": "String", + "拼团活动名称": "String", + "拼团活动简介": "TexT", + "商品单位": "Long", + "商品轮播图": [ "String", "String" ] + "活动时间": "Date", + "拼团时效": "Date", + "拼团人数": "Long", + "总购买数量限制": "Long", + "单次购买数量限制": "Long", + "补齐人数": "Long", + "规格选择": [ "规格SKU": "String" ], + "配送方法": "Long", + "运费设置": "Long", + "排序": "Long", + "详情": "TexT" +} diff --git a/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamInfoMapper.xml b/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamInfoMapper.xml index daacf25..41ed08a 100644 --- a/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamInfoMapper.xml +++ b/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamInfoMapper.xml @@ -33,4 +33,19 @@ strategy_id,remark,create_by, create_time,update_by,update_time + + + INSERT INTO activity_team_info + ( `name`, `product_id`, `product_image`, `introduction`, `unit`, `image_list`, `end_time`, `sort`, `content`, `status`, `strategy_type`, `strategy_id`, `remark`) VALUES + ( #{name}, #{productId}, #{productImage}, #{introduction},#{unit},#{imageList},#{endTime},#{sort}, #{content}, 1, #{strategyType}, #{strategyId}, #{remark} ); + + + + + INSERT INTO activity_team_product_sku_info + ( `team_id`, `product_id`, `product_sku`, `team_stock`, `team_price`) VALUES + ( #{teamId}, #{productId}, #{productSku}, #{teamStock}, #{teamPrice}); + + + diff --git a/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamProductSkuInfoMapper.xml b/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamProductSkuInfoMapper.xml index 59a82c4..e232954 100644 --- a/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamProductSkuInfoMapper.xml +++ b/muyu-modules/muyu-goods/src/main/resources/mapper/ActivityTeamProductSkuInfoMapper.xml @@ -24,4 +24,8 @@ create_by,create_time,update_by, update_time,remark + + diff --git a/muyu-modules/muyu-marketing/marketing-common/pom.xml b/muyu-modules/muyu-marketing/marketing-common/pom.xml new file mode 100644 index 0000000..22a6fbf --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + muyu-marketing + 3.6.3 + + + marketing-common + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-common-core + + + + 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 new file mode 100644 index 0000000..323ad45 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamInfo.java @@ -0,0 +1,132 @@ +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 com.muyu.marketing.domain.model.ActivityTeamInfoAddModel; +import com.muyu.marketing.domain.model.ActivityTeamInfoSaveModel; +import com.muyu.marketing.domain.model.ActivityTeamInfoUpdModel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "activity_team_info", autoResultMap = true) +public class ActivityTeamInfo extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + private String unit; + /** + * 轮播图 + */ + private String imageList; + /** + * 活动结束时间 + */ + private Date endTime; + /** + * 活动排序 + */ + private long sort; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private long strategyId; + + /** + * 公共添加模型,转换成添加对象 + * @param activityTeamInfoAddModel 添加模型 + * @return 添加对象 + */ + public static ActivityTeamInfo addModelBuild(ActivityTeamInfoAddModel activityTeamInfoAddModel){ + return ActivityTeamInfo.builder() + .name(activityTeamInfoAddModel.getName()) + .productId(activityTeamInfoAddModel.getProductId()) + .productImage(activityTeamInfoAddModel.getProductImage()) + .introduction(activityTeamInfoAddModel.getIntroduction()) + .unit(activityTeamInfoAddModel.getUnit()) + .imageList(activityTeamInfoAddModel.getImageList()) + .endTime(activityTeamInfoAddModel.getEndTime()) + .sort(activityTeamInfoAddModel.getSort()) + .content(activityTeamInfoAddModel.getContent()) + .status(activityTeamInfoAddModel.getStatus()) + .strategyType(activityTeamInfoAddModel.getStrategyType()) + .strategyId(activityTeamInfoAddModel.getStrategyId()) + .build(); + } + + public static ActivityTeamInfo teamSaveBuild(ActivityTeamInfoSaveModel activityTeamInfoSaveModel) { + return ActivityTeamInfo.builder() + .name(activityTeamInfoSaveModel.getName()) + .productId(activityTeamInfoSaveModel.getProductId()) + .productImage(activityTeamInfoSaveModel.getProductImage()) + .introduction(activityTeamInfoSaveModel.getIntroduction()) + .unit(activityTeamInfoSaveModel.getUnit()) + .imageList(activityTeamInfoSaveModel.getImageList()) + .endTime(activityTeamInfoSaveModel.getEndTime()) + .sort(activityTeamInfoSaveModel.getSort()) + .content(activityTeamInfoSaveModel.getContent()) + .status(activityTeamInfoSaveModel.getStatus()) + .strategyType(activityTeamInfoSaveModel.getStrategyType()) + .strategyId(activityTeamInfoSaveModel.getStrategyId()) + .build(); + } + public static ActivityTeamInfo TeamUpdateBuild (ActivityTeamInfoUpdModel activityTeamInfoUpdModel){ + return ActivityTeamInfo.builder() + .id(activityTeamInfoUpdModel.getId()) + .name(activityTeamInfoUpdModel.getName()) + .productId(activityTeamInfoUpdModel.getProductId()) + .productImage(activityTeamInfoUpdModel.getProductImage()) + .introduction(activityTeamInfoUpdModel.getIntroduction()) + .unit(activityTeamInfoUpdModel.getUnit()) + .imageList(activityTeamInfoUpdModel.getImageList()) + .endTime(activityTeamInfoUpdModel.getEndTime()) + .sort(activityTeamInfoUpdModel.getSort()) + .content(activityTeamInfoUpdModel.getContent()) + .status(activityTeamInfoUpdModel.getStatus()) + .strategyType(activityTeamInfoUpdModel.getStrategyType()) + .strategyId(activityTeamInfoUpdModel.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 new file mode 100644 index 0000000..572299e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamOpenInfo.java @@ -0,0 +1,69 @@ +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.*; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@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 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 new file mode 100644 index 0000000..3ace354 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/ActivityTeamProductSkuInfo.java @@ -0,0 +1,88 @@ +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 com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuReqModel; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuUpdModel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@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; + + /** + * 通过模型钢构件对象 + * @param activityTeamProductSkuAddModel 模型 + * @return 对象 + */ + public static ActivityTeamProductSkuInfo modelBuild(ActivityTeamProductSkuAddModel activityTeamProductSkuAddModel) { + return ActivityTeamProductSkuInfo.builder() + .productId(activityTeamProductSkuAddModel.getProductId()) + .teamId(activityTeamProductSkuAddModel.getTeamId()) + .teamStock(activityTeamProductSkuAddModel.getTeamStock()) + .productSku(activityTeamProductSkuAddModel.getSku()) + .remainStock(activityTeamProductSkuAddModel.getTeamStock()) + .teamPrice(activityTeamProductSkuAddModel.getTeamPrice()) + .build(); + } + public static ActivityTeamProductSkuInfo updateModelBuild(ActivityTeamProductSkuReqModel activityTeamProductSkuReqModel) { + return ActivityTeamProductSkuInfo.builder() + .id(activityTeamProductSkuReqModel.getId()) + .productId(activityTeamProductSkuReqModel.getProductId()) + .teamStock(activityTeamProductSkuReqModel.getTeamStock()) + .productSku(activityTeamProductSkuReqModel.getProductSku()) + .teamPrice(activityTeamProductSkuReqModel.getTeamPrice()) + .build(); + } + + public static ActivityTeamProductSkuInfo updModelBuild(ActivityTeamProductSkuUpdModel teamProductSkuUpdModel){ + return ActivityTeamProductSkuInfo.builder() + .id(teamProductSkuUpdModel.getId()) + .teamPrice(teamProductSkuUpdModel.getTeamPrice()) + .teamStock(teamProductSkuUpdModel.getTeamStock()) + .remainStock(teamProductSkuUpdModel.getTeamStock()) + .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..4c4190f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyExemption.java @@ -0,0 +1,55 @@ +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.*; +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/TeamStrategyHundred.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyHundred.java new file mode 100644 index 0000000..781dc25 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyHundred.java @@ -0,0 +1,47 @@ +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.*; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "team_strategy_exemption_hundred", autoResultMap = true) +public class TeamStrategyHundred 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/TeamStrategyOrdinary.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyOrdinary.java new file mode 100644 index 0000000..e015e86 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/TeamStrategyOrdinary.java @@ -0,0 +1,47 @@ +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.*; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "team_strategy_exemption_ordinary", autoResultMap = true) +public class TeamStrategyOrdinary 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/ActivityTeamDetailModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java new file mode 100644 index 0000000..9e9f9f8 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamDetailModel.java @@ -0,0 +1,102 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.ActivityTeamInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; + +/** + * @program: 2204a-cloud-server + * @description: 活动回显总模型 + * @author: AoCi Tian + * @create: 2024-11-26 16:00 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamDetailModel { + /** + * 拼团id + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + + private String unit; + /** + * 轮播图 + */ + + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 商品SkU集合 + */ + private List projectSkuInfoAddReqList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + public static ActivityTeamDetailModel findSkuSumList (ActivityTeamInfo activityTeamInfo, + Function function){ + return function.apply(ActivityTeamDetailModel.builder() + .id(activityTeamInfo.getId()) + .name(activityTeamInfo.getName()) + .productId(activityTeamInfo.getProductId()) + .productImage(activityTeamInfo.getProductImage()) + .introduction(activityTeamInfo.getIntroduction()) + .unit(activityTeamInfo.getUnit()) + .imageList(activityTeamInfo.getImageList()) + .endTime(activityTeamInfo.getEndTime()) + .sort(activityTeamInfo.getSort()) + .content(activityTeamInfo.getContent()) + .status(activityTeamInfo.getStatus()) + .strategyType(activityTeamInfo.getStrategyType()) + .strategyId(activityTeamInfo.getStrategyId()) + ); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/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..d190f3f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoAddModel.java @@ -0,0 +1,98 @@ +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; +import java.util.function.Supplier; + +@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 addReqBuild (ActivityTeamInfoSaveReq activityTeamInfoSaveReq){ + return ActivityTeamInfoAddModel.builder() + .name(activityTeamInfoSaveReq.getName()) + .productId(activityTeamInfoSaveReq.getProductId()) + .productImage(activityTeamInfoSaveReq.getProductImage()) + .introduction(activityTeamInfoSaveReq.getIntroduction()) + .unit(activityTeamInfoSaveReq.getUnit()) + .imageList(activityTeamInfoSaveReq.getImageList()) + .endTime(activityTeamInfoSaveReq.getEndTime()) + .sort(activityTeamInfoSaveReq.getSort()) + .content(activityTeamInfoSaveReq.getContent()) + .status(activityTeamInfoSaveReq.getStatus()) + .strategyType(activityTeamInfoSaveReq.getStrategyType()) + .strategyId(activityTeamInfoSaveReq.getStrategyId()) + .activityTeamProductSkuAddModelList( + activityTeamInfoSaveReq.getTeamProjectSkuInfoAddReqList() + .stream() + .map(addReq -> ActivityTeamProductSkuAddModel.addReqBuild(addReq, activityTeamInfoSaveReq::getProductId)) + .toList() + ).build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java new file mode 100644 index 0000000..e38fadf --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListModel.java @@ -0,0 +1,99 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.common.core.web.model.QueryModel; +import com.muyu.marketing.domain.ActivityTeamInfo; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.function.Consumer; +import java.util.function.Function; + +/** + * 团购活动雷彪查询结果模型 + * @author DongZeLiang + * @date 2024-11-20 14:18:10 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamInfoListModel { + + /** + * 拼团活动ID + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 参团人数 + */ + private Long addTeamNumber; + /** + * 拼团人数 + */ + private Long attendNumber; + /** + * 团购结束时间 + */ + private Date endTime; + /** + * 开团人数 + */ + private Long openTeamNumber; + /** + * 拼团商品图片 + */ + private String productImage; + /** + * 商品价格 + */ + private BigDecimal productPrice; + /** + * 剩余库存 + */ + private Long remainStock; + /** + * 团购状态 + */ + private String status; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + /** + * 团购库存 + */ + private Long teamStock; + + + 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 new file mode 100644 index 0000000..d1d0129 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoListQueryModel.java @@ -0,0 +1,32 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.common.core.web.model.QueryModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 团购活动雷彪查询模型 + * @author DongZeLiang + * @date 2024-11-20 14:18:10 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamInfoListQueryModel extends QueryModel { + + /** + * 搜索关键词 + */ + private String keyWord; + + /** + * 活动状态 + */ + private String status; + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java new file mode 100644 index 0000000..69a32ad --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoSaveModel.java @@ -0,0 +1,92 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 添加活动模型 + * @author: AoCi Tian + * @create: 2024-11-26 10:59 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoSaveModel { + + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + + private String unit; + /** + * 轮播图 + */ + + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + public static ActivityTeamInfoSaveModel activityTeamInfoSaveModelBuild (ActivityTeamInfoAddModel activityTeamInfoAddModel){ + return ActivityTeamInfoSaveModel.builder() + .name(activityTeamInfoAddModel.getName()) + .productId(activityTeamInfoAddModel.getProductId()) + .productImage(activityTeamInfoAddModel.getProductImage()) + .introduction(activityTeamInfoAddModel.getIntroduction()) + .unit(activityTeamInfoAddModel.getUnit()) + .imageList(activityTeamInfoAddModel.getImageList()) + .endTime(activityTeamInfoAddModel.getEndTime()) + .sort(Long.valueOf(activityTeamInfoAddModel.getSort())) + .content(activityTeamInfoAddModel.getContent()) + .status(activityTeamInfoAddModel.getStatus()) + .strategyType(activityTeamInfoAddModel.getStrategyType()) + .strategyId(activityTeamInfoAddModel.getStrategyId()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java new file mode 100644 index 0000000..a1a059f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamInfoUpdModel.java @@ -0,0 +1,65 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq; +import com.muyu.marketing.domain.req.ActivityTeamProductSkuSettingReq; +import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq; +import com.muyu.marketing.domain.req.TeamProjectSkuInfoUpdReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 活动商品规格修改模型 + * @author: AoCi Tian + * @create: 2024-11-26 19:25 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoUpdModel { + private Long id; + private String name; + private Long productId; + private String productImage; + private String introduction; + private String unit; + private String imageList; + private Date endTime; + private Long sort; + private String content; + private String status; + private String strategyType; + private Long strategyId; + private ActivityTeamProductSkuSettingModel activityTeamProductSkuSettingModel; + + public static ActivityTeamInfoUpdModel activityTeamInfoUpdReqModelBuild (ActivityTeamInfoUpdReq activityTeamInfoUpdReq){ + return ActivityTeamInfoUpdModel.builder() + .id(activityTeamInfoUpdReq.getId()) + .name(activityTeamInfoUpdReq.getName()) + .productId(activityTeamInfoUpdReq.getProductId()) + .productImage(activityTeamInfoUpdReq.getProductImage()) + .introduction(activityTeamInfoUpdReq.getIntroduction()) + .unit(activityTeamInfoUpdReq.getUnit()) + .imageList(activityTeamInfoUpdReq.getImageList()) + .endTime(activityTeamInfoUpdReq.getEndTime()) + .sort(activityTeamInfoUpdReq.getSort()) + .content(activityTeamInfoUpdReq.getContent()) + .status(activityTeamInfoUpdReq.getStatus()) + .strategyType(activityTeamInfoUpdReq.getStrategyType()) + .strategyId(activityTeamInfoUpdReq.getStrategyId()) + .activityTeamProductSkuSettingModel( + ActivityTeamProductSkuSettingModel.settingReqModel( + activityTeamInfoUpdReq.getActivityTeamProductSkuSettingReq(), + activityTeamInfoUpdReq::getProductId + ) + ) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddListModel.java new file mode 100644 index 0000000..98ced8c --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuAddListModel.java @@ -0,0 +1,44 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.function.Supplier; + +/** + * 团购spu库存添加模型 + * + * @author DongZeLiang + * @date 2024-11-26 09:36 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuAddListModel { + + /** + * 规格SKU + */ + private String sku; + + /** + * 商品价格 + */ + private BigDecimal productPrice; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + +} 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..7d3ca35 --- /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.TeamProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.function.Function; +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 sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ActivityTeamProductSkuAddModel addReqBuild(TeamProjectSkuInfoAddReq teamProjectSkuInfoAddReq, Supplier productId){ + return ActivityTeamProductSkuAddModel.builder() + .productId(productId.get()) + .sku(teamProjectSkuInfoAddReq.getSku()) + .teamStock(teamProjectSkuInfoAddReq.getTeamStock()) + .teamPrice(teamProjectSkuInfoAddReq.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDelListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDelListModel.java new file mode 100644 index 0000000..2662f0b --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuDelListModel.java @@ -0,0 +1,30 @@ +package com.muyu.marketing.domain.model;/** + * @Author:尚志豪 + * @Package:com.muyu.marketing.domain.model + * @Project:2204a-cloud-server-DongZeLiang + * @name:ActivityTeamProductSkuDelModel + * @Date:2024/11/27 17:03 + */ + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @program: 2204a-cloud-server-DongZeLiang + * @description: 删除商品规格 + * @author: CuiFu Bo + * @create: 2024-11-27 17:03 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuDelListModel { + + /** + * id + */ + private Long id; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoForeignKeyModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoForeignKeyModel.java new file mode 100644 index 0000000..a72eba3 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoForeignKeyModel.java @@ -0,0 +1,51 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 商品活动SKU信息模型 + * + * @author DongZeLiang + * @date 2024-11-26 15:35 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuInfoForeignKeyModel extends ActivityTeamProductSkuInfoModel{ + + /** + * 拼团名称 + */ + private Integer name; + /** + * 商品活动图 + */ + private Integer productImage; + /** + * 活动简介 + */ + private Integer introduction; + /** + * 单位 + */ + private Integer unit; + /** + * 轮播图 + */ + private Integer imageList; + /** + * 活动结束时间 + */ + private Integer endTime; + /** + * 活动详情 + */ + private Integer content; + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java new file mode 100644 index 0000000..fea8782 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuInfoModel.java @@ -0,0 +1,51 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 商品活动SKU信息模型 + * + * @author DongZeLiang + * @date 2024-11-26 15:35 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuInfoModel { + /** + * 团购商品SKU的ID + */ + private Long id; + + /** + * 团ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java new file mode 100644 index 0000000..3b6fc78 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuModel.java @@ -0,0 +1,50 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.resp.ProjectFindSkuInfoResp; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: 回显sku模型 + * @author: AoCi Tian + * @create: 2024-11-26 16:03 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuModel { + /** + * 规格id + */ + private Long id; + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ActivityTeamProductSkuModel FindBuild(ActivityTeamProductSkuInfo activityTeamProductSkuInfo) { + return ActivityTeamProductSkuModel.builder() + .id(activityTeamProductSkuInfo.getId()) + .sku(activityTeamProductSkuInfo.getProductSku()) + .teamStock(activityTeamProductSkuInfo.getTeamStock()) + .teamPrice(activityTeamProductSkuInfo.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java new file mode 100644 index 0000000..65e1aa7 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuReqModel.java @@ -0,0 +1,40 @@ +package com.muyu.marketing.domain.model; + +import com.muyu.marketing.domain.req.ActivityTeamProductSkuReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: sku修改模型 + * @author: AoCi Tian + * @create: 2024-11-26 19:45 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuReqModel { + private Long id; + private Long teamId; + private Long productId; + private String productSku; + private Long teamStock; + private Long remainStock; + private BigDecimal teamPrice; + public static ActivityTeamProductSkuReqModel activityTeamProductSkuReqModelBuild(ActivityTeamProductSkuReq activityTeamProductSkuReq){ + return ActivityTeamProductSkuReqModel.builder() + .id(activityTeamProductSkuReq.getId()) + .productId(activityTeamProductSkuReq.getProductId()) + .teamId(activityTeamProductSkuReq.getTeamId()) + .productSku(activityTeamProductSkuReq.getProductSku()) + .remainStock(activityTeamProductSkuReq.getRemainStock()) + .teamStock(activityTeamProductSkuReq.getTeamStock()) + .teamPrice(activityTeamProductSkuReq.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuSettingModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuSettingModel.java new file mode 100644 index 0000000..38da02d --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuSettingModel.java @@ -0,0 +1,59 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.req.ActivityTeamProductSkuSettingReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.function.Supplier; + +/** + * 团购商品规格一键设置 + * + * @author DongZeLiang + * @date 2024-11-28 11:15 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuSettingModel { + + /** + * 活动ID + */ + private Long teamId; + + /** + * 删除的ID集合 + */ + private List removeIds; + + /** + * 添加的规格集合 + */ + private List activityTeamProductSkuAddModelList; + + /** + * 修改的规格集合 + */ + private List activityTeamProductSkuUpdModelList; + + public static ActivityTeamProductSkuSettingModel settingReqModel(ActivityTeamProductSkuSettingReq activityTeamProductSkuSettingReq, Supplier productId) { + return ActivityTeamProductSkuSettingModel.builder() + .removeIds(activityTeamProductSkuSettingReq.getRemoveIds()) + .activityTeamProductSkuAddModelList( + activityTeamProductSkuSettingReq.getTeamProjectSkuInfoAddReqList().stream() + .map(teamProjectSkuInfoAddReq -> ActivityTeamProductSkuAddModel.addReqBuild(teamProjectSkuInfoAddReq, productId)) + .toList() + ) + .activityTeamProductSkuUpdModelList( + activityTeamProductSkuSettingReq.getTeamProjectSkuInfoUpdReqList().stream() + .map(ActivityTeamProductSkuUpdModel::updReqBuild) + .toList() + ).build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdDelAddModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdDelAddModel.java new file mode 100644 index 0000000..8f0a577 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdDelAddModel.java @@ -0,0 +1,35 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 商品活动,修改,删除,添加,模型 + * + * @author DongZeLiang + * @date 2024-11-26 15:35 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuUpdDelAddModel { + /** + * 修改商品规格LIST + */ + private List activityTeamProductSkuUpdModelList; + /** + * 删除商品规格LIST + */ + private List activityTeamProductSkuDelModelList; + + /** + * 添加商品规格LIST + */ + private List ActivityTeamProductSkuAddListModelList; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdListModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdListModel.java new file mode 100644 index 0000000..048312a --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdListModel.java @@ -0,0 +1,37 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 拼团活动商品SKU + * + * @author DongZeLiang + * @date 2024-11-27 14:18 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuUpdListModel { + + /** + * 商品规格ID + */ + private Long id; + + /** + * 团购价格 + */ + private BigDecimal teamPrice; + + /** + * 团购库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/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..3e0bdd1 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdModel.java @@ -0,0 +1,46 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.req.TeamProjectSkuInfoUpdReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 拼团活动商品SKU + * + * @author DongZeLiang + * @date 2024-11-27 14:18 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuUpdModel { + + /** + * 商品规格ID + */ + private Long id; + + /** + * 团购价格 + */ + private BigDecimal teamPrice; + + /** + * 团购库存 + */ + private Long teamStock; + + public static ActivityTeamProductSkuUpdModel updReqBuild(TeamProjectSkuInfoUpdReq teamProjectSkuInfoUpdReq){ + return ActivityTeamProductSkuUpdModel.builder() + .id(teamProjectSkuInfoUpdReq.getId()) + .teamStock(teamProjectSkuInfoUpdReq.getTeamStock()) + .teamPrice(teamProjectSkuInfoUpdReq.getTeamPrice()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdateModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdateModel.java new file mode 100644 index 0000000..c67911f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamProductSkuUpdateModel.java @@ -0,0 +1,50 @@ +package com.muyu.marketing.domain.model; + + +import com.muyu.marketing.domain.req.TeamProjectSkuInfoAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.function.Supplier; + +/** + * 团购spu库存添加模型 + * + * @author DongZeLiang + * @date 2024-11-26 09:36 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuUpdateModel { + + /** + * 团购活动ID + */ + private Long teamId; + + /** + * 商品ID + */ + private Long productId; + + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamUpdateModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamUpdateModel.java new file mode 100644 index 0000000..060d8b1 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/ActivityTeamUpdateModel.java @@ -0,0 +1,85 @@ +package com.muyu.marketing.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.ActivityTeamInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; +import java.util.function.Function; + +/** + * @program: 2204a-cloud-server + * @description: 活动回显总模型 + * @author: AoCi Tian + * @create: 2024-11-26 16:00 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamUpdateModel { + /** + * 拼团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; + /** + * 商品规格 + */ + private List activityTeamProductSkuUpdDelAddModelList; + /** + * 活动详情 + */ + 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/TeamProductDiscountPriceModel.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java new file mode 100644 index 0000000..e7a98a2 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductDiscountPriceModel.java @@ -0,0 +1,55 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 团购商品优惠力度模型 + * + * @author DongZeLiang + * @date 2024-11-21 11:57 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TeamProductDiscountPriceModel { + + /** + * 商品价格 + */ + private BigDecimal productPrice; + + /** + * 团购优惠价格 + */ + private BigDecimal teamPrice; + + + /** + * 优惠力度 (商品价格 - 团购优惠价格) / 商品价格 + */ + private double discount; + + /** + * 通过 商品价格和团购价格 生成优惠力度 + * @param productPrice 商品价格 + * @param teamPrice 团购加 + * @return 优惠力度 + */ + public static TeamProductDiscountPriceModel of(BigDecimal productPrice, BigDecimal teamPrice) { + return TeamProductDiscountPriceModel.builder() + .productPrice(productPrice) + .teamPrice(teamPrice) + .discount( + productPrice.subtract(teamPrice).divide(productPrice, 2, RoundingMode.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 new file mode 100644 index 0000000..b8c9422 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/model/TeamProductStockModel.java @@ -0,0 +1,31 @@ +package com.muyu.marketing.domain.model; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 团购商品库存模型 + * + * @author DongZeLiang + * @date 2024-11-21 14:04 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TeamProductStockModel { + + /** + * 拼团总库存 + */ + private Long teamStock; + + /** + * 拼团剩余库存 + */ + private Long remainStock; + +} 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..ddc62bd --- /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 teamProjectSkuInfoAddReqList; + /** + * 活动详情 + */ + 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/ActivityTeamInfoUpdReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java new file mode 100644 index 0000000..225a746 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamInfoUpdReq.java @@ -0,0 +1,36 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 活动商品规格修改入参 + * @author: AoCi Tian + * @create: 2024-11-26 19:25 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamInfoUpdReq { + private Long id; + private String name; + private Long productId; + private String productImage; + private String introduction; + private String unit; + private String imageList; + private Date endTime; + private Long sort; + private String content; + private String status; + private String strategyType; + private Long strategyId; + private ActivityTeamProductSkuSettingReq activityTeamProductSkuSettingReq; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java new file mode 100644 index 0000000..590781a --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuReq.java @@ -0,0 +1,28 @@ +package com.muyu.marketing.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: 2204a-cloud-server + * @description: sku修改入参 + * @author: AoCi Tian + * @create: 2024-11-26 19:45 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ActivityTeamProductSkuReq { + private Long id; + private Long teamId; + private Long productId; + private String productSku; + private Long teamStock; + private Long remainStock; + private BigDecimal teamPrice; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuSettingReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuSettingReq.java new file mode 100644 index 0000000..aa2f8f0 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/ActivityTeamProductSkuSettingReq.java @@ -0,0 +1,37 @@ +package com.muyu.marketing.domain.req; + + +import com.muyu.marketing.domain.model.ActivityTeamProductSkuAddModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 团购商品规格设置 + * + * @author DongZeLiang + * @date 2024-11-28 11:27 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityTeamProductSkuSettingReq { + /** + * 删除的ID集合 + */ + private List removeIds; + + /** + * 添加的规格集合 + */ + private List teamProjectSkuInfoAddReqList; + + /** + * 添加的规格集合 + */ + private List teamProjectSkuInfoUpdReqList; +} 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..e31ba28 --- /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 +//@SuperBuilder +@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/req/TeamProjectSkuInfoAddReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java new file mode 100644 index 0000000..7be1dee --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoAddReq.java @@ -0,0 +1,33 @@ +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 TeamProjectSkuInfoAddReq { + + /** + * 规格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/TeamProjectSkuInfoUpdReq.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoUpdReq.java new file mode 100644 index 0000000..f2d4d8d --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/req/TeamProjectSkuInfoUpdReq.java @@ -0,0 +1,33 @@ +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 TeamProjectSkuInfoUpdReq { + + /** + * 规格SKU + */ + private Long id; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java new file mode 100644 index 0000000..e896bd5 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamDetailResp.java @@ -0,0 +1,86 @@ +package com.muyu.marketing.domain.resp; + +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.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ActivityTeamDetailResp extends BaseEntity { + /** + * 团购ID + */ + private Long teamId; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + private String unit; + /** + * 轮播图 + */ + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Integer sort; + /** + * 商品SkU集合 + */ + private List ActivityTeamProjectSkuRespList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + @NoArgsConstructor + @Data + public static class ActivityTeamProjectSkuResp{ + private Long teamStock; + private String sku; + private BigDecimal teamPrice; + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java new file mode 100644 index 0000000..ccbbf8e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ActivityTeamProjectSkuResp.java @@ -0,0 +1,38 @@ +package com.muyu.marketing.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 添加的 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ActivityTeamProjectSkuResp { + + /** + * 团购商品SKU的ID + */ + private Long productSkuId; + + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java new file mode 100644 index 0000000..78e93d3 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/ProjectFindSkuInfoResp.java @@ -0,0 +1,46 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.model.ActivityTeamProductSkuModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + +/** + * 回显resp + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ProjectFindSkuInfoResp { + /** + * 规格id + */ + private Long id; + /** + * 规格SKU + */ + private String sku; + + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + + /** + * 拼团库存 + */ + private Long teamStock; + + public static ProjectFindSkuInfoResp projectFindSkuInfoBuild (ActivityTeamProductSkuModel activityTeamProductSkuModel) { + return ProjectFindSkuInfoResp.builder() + .teamStock(activityTeamProductSkuModel.getTeamStock()) + .teamPrice(activityTeamProductSkuModel.getTeamPrice()) + .id(activityTeamProductSkuModel.getId()) + .sku(activityTeamProductSkuModel.getSku()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java new file mode 100644 index 0000000..7c60f72 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoFindByIdResp.java @@ -0,0 +1,104 @@ +package com.muyu.marketing.domain.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.marketing.domain.model.ActivityTeamDetailModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * @program: 2204a-cloud-server + * @description: 团购活动回显响应 + * @author: AoCi Tian + * @create: 2024-11-26 15:19 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TeamInfoFindByIdResp { + /** + * 拼团id + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 商品ID + */ + private Long productId; + /** + * 商品活动图 + */ + private String productImage; + /** + * 活动简介 + */ + private String introduction; + /** + * 单位 + */ + private String unit; + /** + * 轮播图 + */ + private String imageList; + /** + * 活动结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date endTime; + /** + * 活动排序 + */ + private Long sort; + /** + * 商品SkU集合 + */ + private List projectSkuInfoAddList; + /** + * 活动详情 + */ + private String content; + /** + * 活动状态 + */ + private String status; + /** + * 策略类型 + */ + private String strategyType; + /** + * 策略ID + */ + private Long strategyId; + + public static TeamInfoFindByIdResp teamInfoFindByIdBuild (ActivityTeamDetailModel activityTeamDetailModel){ + return TeamInfoFindByIdResp.builder() + .id(activityTeamDetailModel.getId()) + .name(activityTeamDetailModel.getName()) + .productId(activityTeamDetailModel.getProductId()) + .productImage(activityTeamDetailModel.getProductImage()) + .introduction(activityTeamDetailModel.getIntroduction()) + .unit(activityTeamDetailModel.getUnit()) + .imageList(activityTeamDetailModel.getImageList()) + .endTime(activityTeamDetailModel.getEndTime()) + .sort(activityTeamDetailModel.getSort()) + .projectSkuInfoAddList(activityTeamDetailModel.getProjectSkuInfoAddReqList().stream().map(ProjectFindSkuInfoResp::projectFindSkuInfoBuild).toList()) +// .projectSkuInfoAddList( +// teamInfoFindByIdRespModel.getProjectSkuInfoAddReqList().stream().map(activityTeamProductSkuModel -> +// ProjectFindSkuInfoResp.projectFindSkuInfoBuild(activityTeamProductSkuModel)).toList() +// ) + .content(activityTeamDetailModel.getContent()) + .status(activityTeamDetailModel.getStatus()) + .strategyType(activityTeamDetailModel.getStrategyType()) + .strategyId(activityTeamDetailModel.getStrategyId()) + .build(); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-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 new file mode 100644 index 0000000..f3e2219 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-common/src/main/java/com/muyu/marketing/domain/resp/TeamInfoListResp.java @@ -0,0 +1,90 @@ +package com.muyu.marketing.domain.resp; + +import com.muyu.marketing.domain.model.ActivityTeamInfoListModel; +import com.muyu.marketing.domain.req.TeamInfoListReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TeamInfoListResp { + + /** + * 拼团活动ID + */ + private Long id; + /** + * 拼团名称 + */ + private String name; + /** + * 参团人数 + */ + private Long addTeamNumber; + /** + * 拼团人数 + */ + private Long attendNumber; + /** + * 团购结束时间 + */ + private Date endTime; + /** + * 开团人数 + */ + private Long openTeamNumber; + /** + * 拼团商品图片 + */ + private String productImage; + /** + * 商品价格 + */ + private BigDecimal productPrice; + /** + * 剩余库存 + */ + private Long remainStock; + /** + * 团购状态 + */ + private String status; + /** + * 拼团价格 + */ + private BigDecimal teamPrice; + /** + * 团购库存 + */ + private Long teamStock; + + /** + * 列表查询结果,构建为响应对象 + * @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 new file mode 100644 index 0000000..047b4c9 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-remote/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + muyu-marketing + 3.6.3 + + + marketing-remote + + + 17 + 17 + UTF-8 + + + + + com.muyu + marketing-common + + + + diff --git a/muyu-modules/muyu-marketing/marketing-server/pom.xml b/muyu-modules/muyu-marketing/marketing-server/pom.xml new file mode 100644 index 0000000..2fea08b --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + com.muyu + muyu-marketing + 3.6.3 + + + marketing-server + + + 17 + 17 + UTF-8 + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + com.dtflys.forest + forest-spring-boot-starter + + + + + com.muyu + marketing-remote + + + + + com.muyu + muyu-product-cache + + + com.muyu + muyu-common-security + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java new file mode 100644 index 0000000..c90fd02 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/MuYuMarketIngApplication.java @@ -0,0 +1,24 @@ +package com.muyu.marketing; + + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 系统模块 + * + * @author muyu + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication + +public class MuYuMarketIngApplication { + public static void main (String[] args) { + SpringApplication.run(MuYuMarketIngApplication.class, args); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java new file mode 100644 index 0000000..6cdb76e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/controller/ActivityTeamController.java @@ -0,0 +1,113 @@ +package com.muyu.marketing.team.controller; + + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +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.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.model.*; +import com.muyu.marketing.domain.req.ActivityTeamInfoSaveReq; +import com.muyu.marketing.domain.req.ActivityTeamInfoUpdReq; +import com.muyu.marketing.domain.req.TeamInfoListReq; +import com.muyu.marketing.domain.resp.TeamInfoFindByIdResp; +import com.muyu.marketing.domain.resp.TeamInfoListResp; +import com.muyu.marketing.team.service.ActivityTeamInfoService; +import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +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 skuInfoService; + + /** + * 查询营销团购活动列表 + * @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()); + }} + ); + } + + + /** + * 添加团购活动 + * @param activityTeamInfoSaveReq 添加请求对象 + * @return 结果集 + */ + @PostMapping("/save") + public Result save(@RequestBody ActivityTeamInfoSaveReq activityTeamInfoSaveReq) { + activityTeamInfoService.save(ActivityTeamInfoAddModel.addReqBuild(activityTeamInfoSaveReq)); + return Result.success("添加成功"); + } + + /** + * 根据id查询 + */ + @PostMapping("/detail") + public List findListByTeamId(Long teamId) { + List list = skuInfoService.findListByTeamId(teamId); + return list; + } + + /** + * 评论 + * @param id + * @return + */ + @GetMapping("/findTeam/{id}") + public Result> findTeam(@PathVariable("id") Long id){ + return Result.success(activityTeamInfoService.findTeam(id)); + } + + /** 根据id回显 + * @param id + * @return + */ + @PostMapping("/findById/{id}") + public Result findTeamById(@PathVariable Long id) { + return Result.success(TeamInfoFindByIdResp.teamInfoFindByIdBuild(activityTeamInfoService.findDetailById(id))); + } + + @PutMapping("/updateByTeamId") + public Result updateByTeamId(@RequestBody ActivityTeamInfoUpdReq activityTeamInfoUpdReq){ + activityTeamInfoService.update(ActivityTeamInfoUpdModel.activityTeamInfoUpdReqModelBuild(activityTeamInfoUpdReq)); + return Result.success(); + } + + /** + * 团购活动列表 + */ + @GetMapping("/teamList") + public Result> teamList( TeamInfoListReq teamInfoListReq){ + PageHelper.startPage(teamInfoListReq.getPageNum(), teamInfoListReq.getPageSize()); + PageInfo pageInfo = new PageInfo<>(activityTeamInfoService.list()); + TableDataInfo tableDataInfo = new TableDataInfo<>(); + tableDataInfo.setRows(pageInfo.getList()); + tableDataInfo.setTotal(pageInfo.getTotal()); + return Result.success(tableDataInfo); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java new file mode 100644 index 0000000..428dedc --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamInfoMapper.java @@ -0,0 +1,13 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.ActivityTeamInfo; +import com.muyu.marketing.domain.model.ActivityTeamProductSkuInfoForeignKeyModel; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ActivityTeamInfoMapper extends BaseMapper { +// List lists(); +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java new file mode 100644 index 0000000..70311b1 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamOpenInfoMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.ActivityTeamOpenInfo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ActivityTeamOpenInfoMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamProductSkuInfoMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamProductSkuInfoMapper.java new file mode 100644 index 0000000..d83106e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/ActivityTeamProductSkuInfoMapper.java @@ -0,0 +1,11 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.ActivityTeamOpenInfo; +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ActivityTeamProductSkuInfoMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionMapper.java new file mode 100644 index 0000000..66993b5 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyExemptionMapper.java @@ -0,0 +1,11 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +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-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyHundredMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyHundredMapper.java new file mode 100644 index 0000000..e20625b --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyHundredMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.TeamStrategyHundred; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TeamStrategyHundredMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyOrdinaryMapper.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyOrdinaryMapper.java new file mode 100644 index 0000000..e166a01 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/mapper/TeamStrategyOrdinaryMapper.java @@ -0,0 +1,10 @@ +package com.muyu.marketing.team.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.marketing.domain.TeamStrategyOrdinary; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TeamStrategyOrdinaryMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java new file mode 100644 index 0000000..0910102 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamInfoService.java @@ -0,0 +1,45 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.marketing.domain.ActivityTeamInfo; +import com.muyu.marketing.domain.model.*; + +import java.util.List; + +public interface ActivityTeamInfoService extends IService { + + + /** + * 通过查询模型查询团购活动列表 + * @param activityTeamInfoListQueryModel 团购活动查询模型 + * @return 团购活动列表 + */ + public TableDataInfo query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel); + + /** + * 通过添加模型,去进行商品拼团活动的操作 + * @param activityTeamInfoAddModel 团购添加模型 + */ + public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel); + + /** + * 根据ID查询商品的详情 + * @param id 团购活动ID + * @return 团购详情 + */ + ActivityTeamDetailModel findDetailById(Long id); + + /** + * 修改团购活动信息 + * @param activityTeamInfoUpdModel 团购活动信息 + * @return 是否成功 + */ + boolean update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel); + + List findTeam(Long id); + + +// List lists(); + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java new file mode 100644 index 0000000..dcd70eb --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamOpenInfoService.java @@ -0,0 +1,35 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum; +import com.muyu.marketing.domain.ActivityTeamOpenInfo; +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; + +public interface ActivityTeamOpenInfoService extends IService { + + /** + * 通过活动ID和开团类型查询开团数量 + * @param teamId 活动ID + * @param teamOpenType 开团类型 + * @return 开团数量 + */ + public Long getTeamOpenNumberByTeamIdAndType(Long teamId, TeamOpenTypeEnum teamOpenType); + + /** + * 根据活动ID获取开团数量 + * @param teamId 团购活动ID + * @return 开团数量 + */ + public default Long getTeamOpenTypeNumberByTeamId(Long teamId){ + return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.OPEN_TEAM); + } + + /** + * 根据活动ID获取参团数量 + * @param teamId 团购活动ID + * @return 参团数量 + */ + public default Long getTeamInTypeNumberByTeamId(Long teamId){ + return this.getTeamOpenNumberByTeamIdAndType(teamId, TeamOpenTypeEnum.IN_TEAM); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java new file mode 100644 index 0000000..c799837 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/ActivityTeamProductSkuInfoService.java @@ -0,0 +1,73 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.ActivityTeamProductSkuInfo; +import com.muyu.marketing.domain.model.*; + +import java.util.List; + +public interface ActivityTeamProductSkuInfoService extends IService { + + public default List getActivityTeamProductSkuInfoByTeamId(Long teamId){ + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId, teamId); + return this.list(lambdaQueryWrapper); + } + + + /** + * 通过团购活动ID获取团购中最优惠的价格 + * @param teamId 团购ID + * @return 优惠价格 + */ + public TeamProductDiscountPriceModel getDiscountPrice(Long teamId); + + + /** + * 通过活动ID获取 剩余库存 + * @param teamId 活动ID + * @return 库存 + */ + public TeamProductStockModel getStock(Long teamId); + + + /** + * 添加团购商品SKU + * @param activityTeamProductSkuAddModelList 团购商品SKU添加模型集合 + */ + public void batchSave(List activityTeamProductSkuAddModelList); + + /** + * 通过拼团活动ID获取拼团下商品SKU集合 + * @param teamId 活动ID + * @return 拼团商品SKU集合 + */ + public List findListByTeamId(Long teamId); + + public boolean updateBath(List activityTeamProductSkuReqModelList); + + /** + * 根据 业务模型 进行 团购商品修改 + * @param activityTeamProductSkuUpdModel 修改业务模型 + * @return 修改结果 + */ + public boolean update(ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel); + + /** + * 根据 业务模型 进行 团购商品批量修改 + * @param activityTeamProductSkuUpdModelList 修改业务模型 + * @return 修改结果 + */ + public boolean batchUpdate(List activityTeamProductSkuUpdModelList); + + /** + * 一键设置 + * @param activityTeamProductSkuSettingModel 整体修改模型 + */ + public default void setting(ActivityTeamProductSkuSettingModel activityTeamProductSkuSettingModel){ + this.batchSave(activityTeamProductSkuSettingModel.getActivityTeamProductSkuAddModelList()); + this.batchUpdate(activityTeamProductSkuSettingModel.getActivityTeamProductSkuUpdModelList()); + this.removeByIds(activityTeamProductSkuSettingModel.getRemoveIds()); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionService.java new file mode 100644 index 0000000..ea9c08e --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyExemptionService.java @@ -0,0 +1,11 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.TeamStrategyExemption; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; + +/** + * 免单 + */ +public interface TeamStrategyExemptionService extends ActivityTeamStrategy, IService { +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyHundredService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyHundredService.java new file mode 100644 index 0000000..05a85d2 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyHundredService.java @@ -0,0 +1,11 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.TeamStrategyHundred; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; + +/** + * 百人 + */ +public interface TeamStrategyHundredService extends ActivityTeamStrategy, IService { +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyOrdinaryService.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyOrdinaryService.java new file mode 100644 index 0000000..66c1d25 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/TeamStrategyOrdinaryService.java @@ -0,0 +1,11 @@ +package com.muyu.marketing.team.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.marketing.domain.TeamStrategyOrdinary; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; + +/** + * 普通 + */ +public interface TeamStrategyOrdinaryService extends ActivityTeamStrategy, IService { +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java new file mode 100644 index 0000000..2f8443d --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamInfoServiceImpl.java @@ -0,0 +1,120 @@ +package com.muyu.marketing.team.service.impl; + +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.utils.StringUtils; +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.*; +import com.muyu.marketing.team.mapper.ActivityTeamInfoMapper; +import com.muyu.marketing.team.service.ActivityTeamInfoService; +import com.muyu.marketing.team.service.ActivityTeamOpenInfoService; +import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + + +@Service +public class ActivityTeamInfoServiceImpl extends ServiceImpl + implements ActivityTeamInfoService { + + @Autowired + private ActivityTeamOpenInfoService activityTeamOpenInfoService; + + @Autowired + private ActivityTeamProductSkuInfoService activityTeamProductSkuInfoService; + @Autowired + private ActivityTeamInfoMapper activityTeamInfoMapper; + + @Override + public TableDataInfo query(ActivityTeamInfoListQueryModel activityTeamInfoListQueryModel) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getKeyWord()), ActivityTeamInfo::getName, activityTeamInfoListQueryModel.getKeyWord()); + queryWrapper.like(StringUtils.isNotEmpty(activityTeamInfoListQueryModel.getStatus()), ActivityTeamInfo::getStatus, activityTeamInfoListQueryModel.getStatus()); + + /** + * Object -> 创建对象的时候进行的占用 + * Result 以方法返回值为占用 + */ + Page activityTeamInfoPage = this.page(activityTeamInfoListQueryModel.buildPage(), queryWrapper); + List activityTeamInfoList = activityTeamInfoPage.getRecords(); + List activityTeamInfoListModels = activityTeamInfoList.stream() + .map(activityTeamInfo -> ActivityTeamInfoListModel.infoBuild(activityTeamInfo, + (activityTeamInfoListModelBuilder) -> { + TeamProductDiscountPriceModel discountPrice = activityTeamProductSkuInfoService.getDiscountPrice(activityTeamInfo.getId()); + 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 activityTeamInfoAddModel 团购添加模型 + */ + @Override + public void save(ActivityTeamInfoAddModel activityTeamInfoAddModel) { + ActivityTeamInfo activityTeamInfo = ActivityTeamInfo.addModelBuild(activityTeamInfoAddModel); + Assert.isTrue(this.save(activityTeamInfo),StringUtils.format("团购活动添加失败: [{}]", activityTeamInfoAddModel)); + List teamProductSkuAddModelList = activityTeamInfoAddModel.getActivityTeamProductSkuAddModelList(); + teamProductSkuAddModelList.forEach(activityTeamProductSkuAddModel -> activityTeamProductSkuAddModel.setTeamId(activityTeamInfo.getId())); + this.activityTeamProductSkuInfoService.batchSave(teamProductSkuAddModelList); + } + + /** + * 根据ID查询商品的详情 + * @param id 团购活动ID + * @return 团购详情 + */ + @Override + public ActivityTeamDetailModel findDetailById(Long id) { + ActivityTeamInfo activityTeamInfo = this.getById(id); + List activityTeamProductSkuModelList = activityTeamProductSkuInfoService.findListByTeamId(id); + return ActivityTeamDetailModel.findSkuSumList(activityTeamInfo, + (teamInfoFindByIdRespModelBuilder) -> teamInfoFindByIdRespModelBuilder.projectSkuInfoAddReqList(activityTeamProductSkuModelList).build() + ); + } + + /** + * 修改团购活动信息 + * @param activityTeamInfoUpdModel 团购活动信息 + * @return 是否成功 + */ + @Override + public boolean update(ActivityTeamInfoUpdModel activityTeamInfoUpdModel) { + boolean update = this.updateById(ActivityTeamInfo.TeamUpdateBuild(activityTeamInfoUpdModel)); + Assert.isTrue(update,"修改失败"); + activityTeamProductSkuInfoService.setting(activityTeamInfoUpdModel.getActivityTeamProductSkuSettingModel()); + return update; + } + + @Override + public List findTeam(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ActivityTeamInfo::getProductId,id); + queryWrapper.last("limit 2"); + return this.list(queryWrapper); + } + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java new file mode 100644 index 0000000..7111bf7 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamOpenInfoServiceImpl.java @@ -0,0 +1,31 @@ +package com.muyu.marketing.team.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.enums.market.team.TeamOpenTypeEnum; +import com.muyu.marketing.domain.ActivityTeamOpenInfo; +import com.muyu.marketing.team.mapper.ActivityTeamOpenInfoMapper; +import com.muyu.marketing.team.service.ActivityTeamOpenInfoService; +import org.springframework.stereotype.Service; + +@Service +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<>(); + queryWrapper.eq(ActivityTeamOpenInfo::getTeamId, teamId); + queryWrapper.eq(ActivityTeamOpenInfo::getTeamType, teamOpenType.code()); + return this.count(queryWrapper); + } + + +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java new file mode 100644 index 0000000..b832441 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/ActivityTeamProductSkuInfoServiceImpl.java @@ -0,0 +1,145 @@ +package com.muyu.marketing.team.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.*; +import com.muyu.marketing.team.mapper.ActivityTeamProductSkuInfoMapper; +import com.muyu.marketing.team.service.ActivityTeamProductSkuInfoService; +import com.muyu.product.cache.ProjectSkuCache; +import com.muyu.product.domain.ProjectSkuInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +public class ActivityTeamProductSkuInfoServiceImpl extends ServiceImpl + implements ActivityTeamProductSkuInfoService { + + @Autowired + private ProjectSkuCache projectSkuCache; + + /** + * 通过团购活动ID获取团购中最优惠的价格 + * + * @param teamId 团购ID + * @return 优惠价格 + */ + @Override + public TeamProductDiscountPriceModel getDiscountPrice(Long teamId) { + List teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + + // 优惠模型集合 + Optional discountPriceModelOptional = teamProductSkuInfoList.stream() + .map(activityTeamProductSkuInfo -> { + ProjectSkuInfo projectSkuInfo = projectSkuCache.getData(activityTeamProductSkuInfo.getProductId(), activityTeamProductSkuInfo.getProductSku()); + return TeamProductDiscountPriceModel.of(projectSkuInfo.getPrice(), activityTeamProductSkuInfo.getTeamPrice()); + }).min((o1, o2) -> Double.valueOf(o1.getDiscount() * 100 - o2.getDiscount() * 100).intValue()); + + if (discountPriceModelOptional.isEmpty()){ + throw new ServiceException("团购活动下没有商品绑定"); + } + return discountPriceModelOptional.get(); + } + + /** + * 通过活动ID获取 剩余库存 + * + * @param teamId 活动ID + * @return 库存 + */ + @Override + public TeamProductStockModel getStock(Long teamId) { + List teamProductSkuInfoList = this.getActivityTeamProductSkuInfoByTeamId(teamId); + return TeamProductStockModel.builder() + .teamStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getTeamStock).reduce(0L, Long::sum)) + .remainStock(teamProductSkuInfoList.stream().map(ActivityTeamProductSkuInfo::getRemainStock).reduce(0L, Long::sum)) + .build(); + } + + /** + * 添加团购商品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 活动ID + * @return 拼团商品SKU集合 + */ +// @Override +// public List findListByTeamId(Long teamId) { +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId); +// List list = this.list(queryWrapper); +// return list.stream().map(ActivityTeamProductSkuModel::FindBuild).toList(); +//// return list.stream().map(activityTeamProductSkuInfo -> ActivityTeamProductSkuModel.FindBuild(activityTeamProductSkuInfo)).toList(); +// } + @Override + public List findListByTeamId(Long teamId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ActivityTeamProductSkuInfo::getTeamId,teamId); + List list = this.list(queryWrapper); + return list.stream().map(ActivityTeamProductSkuModel::FindBuild).toList(); + } + + @Transactional + @Override + public boolean updateBath(List activityTeamProductSkuReqModelList) { + return this.updateBatchById(activityTeamProductSkuReqModelList.stream().map(ActivityTeamProductSkuInfo::updateModelBuild).toList()); + } + + /** + * 根据 业务模型 进行 团购商品修改 + * + * @param activityTeamProductSkuUpdModel 修改业务模型 + * @return 修改结果 + */ + @Override + public boolean update(ActivityTeamProductSkuUpdModel activityTeamProductSkuUpdModel) { + // update set where + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + // 字段=值 + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamStock,activityTeamProductSkuUpdModel.getTeamStock()); + updateWrapper.set(ActivityTeamProductSkuInfo::getRemainStock,activityTeamProductSkuUpdModel.getTeamStock()); + updateWrapper.set(ActivityTeamProductSkuInfo::getTeamPrice,activityTeamProductSkuUpdModel.getTeamPrice()); + // id=? + updateWrapper.eq(ActivityTeamProductSkuInfo::getId,activityTeamProductSkuUpdModel.getId()); + return this.update(updateWrapper); + } + + /** + * 根据 业务模型 进行 团购商品批量修改 + * + * @param activityTeamProductSkuUpdModelList 修改业务模型 + * @return 修改结果 + */ + @Override + public boolean batchUpdate(List activityTeamProductSkuUpdModelList) { + return this.updateBatchById( + activityTeamProductSkuUpdModelList.stream() + .map(ActivityTeamProductSkuInfo::updModelBuild) + .toList() + ); + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java new file mode 100644 index 0000000..01eed14 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyExemptionServiceImpl.java @@ -0,0 +1,65 @@ +package com.muyu.marketing.team.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyExemption; +import com.muyu.marketing.team.mapper.TeamStrategyExemptionMapper; +import com.muyu.marketing.team.service.TeamStrategyExemptionService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Log4j2 +@Service("team-strategy-exemption") +public class TeamStrategyExemptionServiceImpl extends ServiceImpl + implements TeamStrategyExemptionService { + + /** + * 开团 + * + * @param activityTeamId 团购活动ID + */ + @Override + public void openTeam(Long activityTeamId) { + log.info("参加 - 免单团 - [{}]", activityTeamId); + } + + /** + * 申请加团 + * + * @param teamId 团ID + */ + @Override + public void applyTeam(Long teamId) { + + } + + /** + * 参团 + * + * @param teamId 加团ID + * @param orderNumber 订单编号 + */ + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + /** + * 退团 + * + * @param teamId 团购ID + */ + @Override + public void backTeam(Long teamId) { + + } + + /** + * 结算团 + * + * @param teamId 团购ID + */ + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyHundredServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyHundredServiceImpl.java new file mode 100644 index 0000000..737c436 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyHundredServiceImpl.java @@ -0,0 +1,66 @@ +package com.muyu.marketing.team.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyHundred; +import com.muyu.marketing.team.mapper.TeamStrategyHundredMapper; +import com.muyu.marketing.team.service.TeamStrategyHundredService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Log4j2 +@Service("team-strategy-hundred") +public class TeamStrategyHundredServiceImpl extends ServiceImpl + implements TeamStrategyHundredService { + + /** + * 开团 + * + * @param activityTeamId 团购活动ID + */ + @Override + public void openTeam(Long activityTeamId) { + + log.info("参加 - 百人团 - [{}]", activityTeamId); + } + + /** + * 申请加团 + * + * @param teamId 团ID + */ + @Override + public void applyTeam(Long teamId) { + + } + + /** + * 参团 + * + * @param teamId 加团ID + * @param orderNumber 订单编号 + */ + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + /** + * 退团 + * + * @param teamId 团购ID + */ + @Override + public void backTeam(Long teamId) { + + } + + /** + * 结算团 + * + * @param teamId 团购ID + */ + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyOrdinaryServiceImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyOrdinaryServiceImpl.java new file mode 100644 index 0000000..e436a54 --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/service/impl/TeamStrategyOrdinaryServiceImpl.java @@ -0,0 +1,66 @@ +package com.muyu.marketing.team.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.marketing.domain.TeamStrategyOrdinary; +import com.muyu.marketing.team.mapper.TeamStrategyOrdinaryMapper; +import com.muyu.marketing.team.service.TeamStrategyOrdinaryService; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Service; + +@Log4j2 +@Service("team-strategy-ordinary") +public class TeamStrategyOrdinaryServiceImpl extends ServiceImpl + implements TeamStrategyOrdinaryService { + + /** + * 开团 + * + * @param activityTeamId 团购活动ID + */ + @Override + public void openTeam(Long activityTeamId) { + + log.info("参加 - 普通团 - [{}]", activityTeamId); + } + + /** + * 申请加团 + * + * @param teamId 团ID + */ + @Override + public void applyTeam(Long teamId) { + + } + + /** + * 参团 + * + * @param teamId 加团ID + * @param orderNumber 订单编号 + */ + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + /** + * 退团 + * + * @param teamId 团购ID + */ + @Override + public void backTeam(Long teamId) { + + } + + /** + * 结算团 + * + * @param teamId 团购ID + */ + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java new file mode 100644 index 0000000..59b0fbd --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/ActivityTeamStrategy.java @@ -0,0 +1,44 @@ +package com.muyu.marketing.team.strategy; + + +import org.apache.ibatis.annotations.Param; + +/** + * 团活动策略 + * + * @author DongZeLiang + * @date 2024-11-29 15:03 + */ +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-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java new file mode 100644 index 0000000..365da3c --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/java/com/muyu/marketing/team/strategy/impl/ActivityTeamStrategyImpl.java @@ -0,0 +1,85 @@ +package com.muyu.marketing.team.strategy.impl; + + +import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.core.utils.SpringUtils; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +/** + * 团购执行器 + * + * @author DongZeLiang + * @date 2024-11-29 15:28 + */ +@Service +@Primary +public class ActivityTeamStrategyImpl implements ActivityTeamStrategy { + /** + * 开团 + * + * @param activityTeamId 团购活动ID + */ + @Override + public void openTeam(Long activityTeamId) { + // 假设这里是通过方法获取的type,activityTeamId.toString() + // "team-strategy-exemption" + // "team-strategy-hundred" + // "team-strategy-ordinary" + + String activityTeamType = null; + if (activityTeamId == null) { + throw new ServiceException("activityTeamId is null"); + }else if (activityTeamId == 0) { + activityTeamType = "team-strategy-exemption"; + }else if (activityTeamId == 1) { + activityTeamType = "team-strategy-hundred"; + }else if (activityTeamId == 2) { + activityTeamType = "team-strategy-ordinary"; + } + ActivityTeamStrategy activityTeamStrategy = SpringUtils.getBean(activityTeamType); + activityTeamStrategy.openTeam(activityTeamId); + } + + /** + * 申请加团 + * + * @param teamId 团ID + */ + @Override + public void applyTeam(Long teamId) { + + } + + /** + * 参团 + * + * @param teamId 加团ID + * @param orderNumber 订单编号 + */ + @Override + public void addTeam(Long teamId, String orderNumber) { + + } + + /** + * 退团 + * + * @param teamId 团购ID + */ + @Override + public void backTeam(Long teamId) { + + } + + /** + * 结算团 + * + * @param teamId 团购ID + */ + @Override + public void settle(Long teamId) { + + } +} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/banner.txt b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..692be0b --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/bootstrap.yml @@ -0,0 +1,30 @@ +# Tomcat +server: + port: 9209 + +# Spring +spring: + application: + # 应用名称 + name: muyu-marketing + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 150.158.86.96:8848 + namespace: 2204a + config: + # 配置中心地址 + server-addr: 150.158.86.96:8848 + namespace: 2204a + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.marketing.mapper: DEBUG diff --git a/muyu-modules/muyu-marketing/marketing-server/src/main/resources/logback.xml b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/logback.xml new file mode 100644 index 0000000..aa340cd --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/TeamStrategyTest.java b/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/TeamStrategyTest.java new file mode 100644 index 0000000..d684a3f --- /dev/null +++ b/muyu-modules/muyu-marketing/marketing-server/src/test/java/com/muyu/test/TeamStrategyTest.java @@ -0,0 +1,28 @@ +package com.muyu.test; + + +import com.muyu.marketing.MuYuMarketIngApplication; +import com.muyu.marketing.team.strategy.ActivityTeamStrategy; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +/** + * 测试 + * + * @author DongZeLiang + * @date 2024-11-29 15:40 + */ +@SpringBootTest(classes = MuYuMarketIngApplication.class) +public class TeamStrategyTest { + + @Autowired + private ActivityTeamStrategy activityTeamStrategy; + + @Test + public void testStrategy() { + activityTeamStrategy.openTeam(0L); + activityTeamStrategy.openTeam(1L); + activityTeamStrategy.openTeam(2L); + } +} diff --git a/muyu-modules/muyu-marketing/pom.xml b/muyu-modules/muyu-marketing/pom.xml new file mode 100644 index 0000000..f597ad2 --- /dev/null +++ b/muyu-modules/muyu-marketing/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + com.muyu + muyu + 3.6.3 + ../../pom.xml + + + muyu-marketing + pom + + + muyu-marketing营销模块 + + + marketing-common + marketing-remote + marketing-server + + + 17 + 17 + UTF-8 + + + diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java index 09b63f8..970d28b 100644 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java @@ -9,6 +9,7 @@ import com.muyu.product.domain.RuleInfo; import com.muyu.product.remote.RemoteRuleAttrService; import com.muyu.product.remote.RemoteRuleService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.util.List; @@ -17,6 +18,7 @@ import java.util.List; * @description: 规格数据获取实现层 默认就读取远程调用 * @Date 2024/4/7 下午8:32 */ +@Service public class RuleCacheDataRemoteImpl implements RuleCacheData { @Autowired diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java index e9450e2..85600d4 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AttributeGroup.java @@ -80,5 +80,14 @@ public class AttributeGroup extends BaseEntity { .states(attributeGroupEditReq.getStates()) .build(); } + /** + * 修改构造器 + */ + public static AttributeGroup editUpdBuild(Long id, String states){ + return AttributeGroup.builder() + .id(id) + .states(states) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java index 7b9d185..1bb0bf8 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java @@ -3,6 +3,7 @@ package com.muyu.product.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.product.domain.model.ProductSkuModel; import com.muyu.product.domain.model.ProjectAddModel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -159,5 +160,20 @@ public class ProjectInfo extends BaseEntity { .brandId(projectInfoEditReq.getBrandId()) .build(); } + /** + * 修改构造器 + */ + public static ProjectInfo editProductBuild(Long id, ProjectInfoSaveReq projectInfoSaveReq){ + return ProjectInfo.builder() + .id(id) + .name(projectInfoSaveReq.getProjectAddModel().getName()) + .brandId(projectInfoSaveReq.getProjectAddModel().getBrandId()) + .image(projectInfoSaveReq.getProjectAddModel().getImage()) + .status(projectInfoSaveReq.getProjectAddModel().getStatus()) + .type(projectInfoSaveReq.getProjectAddModel().getType()) + .ruleId(projectInfoSaveReq.getProjectAddModel().getRuleId()) + .build(); + } + } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java index 9a28465..0430cb7 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java @@ -115,5 +115,16 @@ public class ProjectSkuInfo extends BaseEntity { .price(productSkuModel.getPrice()) .build(); } - + /** + * 添加构造器 + */ + public static ProjectSkuInfo saveProductBuild(ProductSkuModel productSkuModel, Supplier projectId){ + return ProjectSkuInfo.builder() + .projectId(projectId.get()) + .sku(productSkuModel.getSku()) + .stock(productSkuModel.getStock()) + .price(productSkuModel.getPrice()) + .image(productSkuModel.getImage()) + .build(); + } } 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 454cbad..1c0b9ae 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 @@ -81,6 +81,15 @@ public class RuleInfo extends BaseEntity { .status(ruleInfoEditReq.getStatus()) .build(); } + /** + * 修改构造器(指定状态) + */ + public static RuleInfo editUpdBuild(Long id, String status){ + return RuleInfo.builder() + .id(id) + .status(status) + .build(); + } /** * diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeGroupModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeGroupModel.java index 3258cc8..3629e13 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeGroupModel.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeGroupModel.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class TemplateAttributeGroupModel extends BaseEntity { - + private Long id; /** * 组名称 */ @@ -49,9 +49,9 @@ public class TemplateAttributeGroupModel extends BaseEntity { * @param attributeList * @return */ - public static TemplateAttributeGroupModel attributeGroupBuild(AttributeGroup attributeGroup, - Function> attributeList){ + public static TemplateAttributeGroupModel attributeGroupBuild(AttributeGroup attributeGroup, Function> attributeList){ return TemplateAttributeGroupModel.builder() + .id(attributeGroup.getId()) .groupName(attributeGroup.getName()) .attributeList(attributeList.apply(attributeGroup.getId())) .build(); diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectInfoFactory.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectInfoFactory.java index e07d42f..072a1ff 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectInfoFactory.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectInfoFactory.java @@ -2,9 +2,7 @@ package com.muyu.product.remote.factory; import com.muyu.common.core.domain.Result; import com.muyu.product.domain.ProjectInfo; -import com.muyu.product.domain.RuleInfo; import com.muyu.product.remote.RemoteProjectInfoService; -import com.muyu.product.remote.RemoteRuleService; import org.springframework.cloud.openfeign.FallbackFactory; /** diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java index 78fab1b..6ea4c4c 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java @@ -4,6 +4,7 @@ import com.muyu.common.core.domain.Result; import com.muyu.product.domain.ProjectSkuInfo; import com.muyu.product.remote.RemoteProjectSkuService; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Service; import java.util.List; @@ -12,6 +13,7 @@ import java.util.List; * @description: 远程调熔断器 * @Date 2024-4-7 上午 10:59 */ +@Service public class RemoteProjectSkuFactory implements FallbackFactory { @Override public RemoteProjectSkuService create (Throwable cause) { diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleAttrFactory.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleAttrFactory.java index 2a11137..b9b6273 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleAttrFactory.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleAttrFactory.java @@ -1,11 +1,8 @@ package com.muyu.product.remote.factory; import com.muyu.common.core.domain.Result; -import com.muyu.product.domain.ProjectSkuInfo; import com.muyu.product.domain.RuleAttrInfo; -import com.muyu.product.remote.RemoteProjectSkuService; import com.muyu.product.remote.RemoteRuleAttrService; -import com.muyu.product.remote.RemoteRuleService; import org.springframework.cloud.openfeign.FallbackFactory; import java.util.List; diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleFactory.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleFactory.java index 9a99497..a2e0585 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleFactory.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteRuleFactory.java @@ -1,9 +1,7 @@ package com.muyu.product.remote.factory; import com.muyu.common.core.domain.Result; -import com.muyu.product.domain.ProjectSkuInfo; import com.muyu.product.domain.RuleInfo; -import com.muyu.product.remote.RemoteProjectSkuService; import com.muyu.product.remote.RemoteRuleService; import org.springframework.cloud.openfeign.FallbackFactory; diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java index 84b6d80..050f4f3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java @@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableCustomConfig @EnableCustomSwagger2 @EnableMyFeignClients -@SpringBootApplication +@SpringBootApplication(scanBasePackages = "com.muyu.product") public class MuYuProductApplication { public static void main (String[] args) { SpringApplication.run(MuYuProductApplication.class, args); diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java index f62af55..74fcd6c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java @@ -8,14 +8,7 @@ import com.muyu.product.domain.resp.AttributeGroupPageResp; import com.muyu.product.domain.resp.AttributeGroupUpdResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; @@ -90,6 +83,16 @@ public class AttributeGroupController extends BaseController { attributeGroupService.save(AttributeGroupSaveModel.saveReqBuild(attributeGroupSaveReq)) ); } + /** + * 修改属性状态 + */ + @RequiresPermissions("product:attributeGroup:edit") + @Log(title = "属性组", businessType = BusinessType.UPDATE) + @PutMapping("/{id}/{states}") + @ApiOperation("修改属性状态") + public Result updStates(@PathVariable Long id,@PathVariable String states) { + return toAjax(attributeGroupService.updateById(AttributeGroup.editUpdBuild(id,states))); + } /** * 修改属性组 @@ -114,4 +117,13 @@ public class AttributeGroupController extends BaseController { public Result remove(@PathVariable List ids) { return toAjax(attributeGroupService.removeBatchByIds(ids)); } + + /** + * 修改状态 + */ + @PutMapping("/changeTheStatusById") + public Result changeTheStatusById(@RequestParam Long id,@RequestParam String states) { + int i = attributeGroupService.changeTheStatusById(id,states); + return Result.success("修改成功"); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java index 29d4305..e099351 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java @@ -46,13 +46,16 @@ public class BrandInfoController extends BaseController { @ApiOperation("获取品牌信息列表") @RequiresPermissions("product:brand:list") @GetMapping("/list") - public Result list(BrandInfoQueryReq brandInfoQueryReq) { - boolean isPage = brandInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(brandInfoQueryReq.getParams().get("isPage"), true); - if (isPage){ - startPage(); - } - List list = brandInfoService.list(BrandInfo.queryBuild(brandInfoQueryReq)); - return isPage ? getDataTable(list) : Result.success(list); +// public Result list(BrandInfoQueryReq brandInfoQueryReq) { +// boolean isPage = brandInfoQueryReq.getParams().get("isPage") == null || Convert.toBool(brandInfoQueryReq.getParams().get("isPage"), true); +// if (isPage){ +// startPage(); +// } +// List list = brandInfoService.list(BrandInfo.queryBuild(brandInfoQueryReq)); +// return isPage ? getDataTable(list) : Result.success(list); +// } + public Result> listResult(){ + return Result.success(brandInfoService.list()); } /** 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..b664272 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 @@ -108,4 +108,12 @@ public class CommentInfoController extends BaseController { public Result remove(@PathVariable List ids) { return toAjax(commentInfoService.removeBatchByIds(ids)); } + + /** + * 前三条评论 + */ + @GetMapping(value = "/find/{id}") + public Result> getFindById(@PathVariable("id") Long id) { + return Result.success(commentInfoService.getFindById(id)); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java index d0f370b..b3d10f4 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java @@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse; import com.muyu.product.cache.ProjectInfoCache; import com.muyu.product.domain.*; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; import com.muyu.product.domain.resp.ProjectDetailResp; import com.muyu.product.service.BrandInfoService; import com.muyu.product.service.RuleInfoService; @@ -45,10 +47,6 @@ public class ProjectInfoController extends BaseController { @Autowired private ProjectInfoCache projectInfoCache; - @Autowired - private RuleInfoService ruleInfoService; - @Autowired - private BrandInfoService brandInfoService; /** * 查询商品信息列表 @@ -56,25 +54,9 @@ public class ProjectInfoController extends BaseController { @ApiOperation("获取商品信息列表") @RequiresPermissions("product:info:list") @GetMapping("/list") -// public Result> list(ProjectInfoQueryReq projectInfoQueryReq) { -// startPage(); -// List list = projectInfoService.list(ProjectInfo.queryBuild(projectInfoQueryReq)); -// return getDataTable(list); -// } public Result> list(ProjectInfoQueryReq projectInfoQueryReq) { startPage(); List list = projectInfoService.list(ProjectInfo.queryBuild(projectInfoQueryReq)); -// // 规格 -// for (ProjectInfo info : list) { -// RuleInfo byId = ruleInfoService.getById(info.getRuleId()); -// info.setRuleIdName(byId.getName()); -// } -// // 品牌 -// for (ProjectInfo info : list) { -// BrandInfo byId = brandInfoService.getById(info.getBrandId()); -// info.setRuleIdName(byId.getNam()); -// } - return getDataTable(list); } @@ -101,10 +83,6 @@ public class ProjectInfoController extends BaseController { public Result getInfo(@PathVariable("id") Long id) { return Result.success(projectInfoCache.get(id)); } -// public Result getInfo(@PathVariable("id") Long id) { -// ProjectInfoSaveReq projectUpdInfo = projectInfoService.get(id); -// return Result.success(projectUpdInfo); -// } /** * 获取商品信息详细信息 @@ -149,6 +127,10 @@ public class ProjectInfoController extends BaseController { public Result edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) { return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq))); } +// public Result edit(@PathVariable Long id, @RequestBody ProjectInfoSaveReq projectInfoSaveReq) { +// projectInfoService.updateProductById(id,projectInfoSaveReq); +// return Result.success(); +// } /** * 删除商品信息 @@ -161,4 +143,25 @@ public class ProjectInfoController extends BaseController { public Result remove(@PathVariable List ids) { return toAjax(projectInfoService.removeBatchByIds(ids)); } + + + /** + * 商品list + */ + @PostMapping("/lists") + public Result> lists(){ + return Result.success(projectInfoService.list()); + } + /** + * 获取商品列表 + */ + @RequiresPermissions("product:info:remove") + @Log(title = "商品信息", businessType = BusinessType.DELETE) + @GetMapping("/getProduct") + @ApiOperation("获取商品列表") + public Result> getProduct() { + List infoList = projectInfoService.list(); + return Result.success(infoList); + } + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java index 9d80e5f..0197570 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java @@ -9,14 +9,7 @@ import com.muyu.product.domain.req.RuleAttrInfoReq; import com.muyu.product.domain.resp.RuleInfoResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; @@ -116,4 +109,14 @@ public class RuleInfoController extends BaseController { public Result remove(@PathVariable List ids) { return toAjax(ruleInfoService.removeBatchByIds(ids)); } + + + /** + * 修改状态 + */ + @PutMapping("/changeTheStatusById") + public Result changeTheStatusById(@RequestParam Long id, @RequestParam String status) { + int i = ruleInfoService.changeTheStatusById(id,status); + return Result.success("修改成功"); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java index 748ca13..144a251 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectInfoMapper.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.ProjectInfo; import com.muyu.product.domain.ProjectSkuInfo; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; import org.apache.ibatis.annotations.Param; /** @@ -22,4 +24,5 @@ public interface ProjectInfoMapper extends BaseMapper { AttributeInfo selectProject(@Param("aLong") Long aLong); ProjectSkuInfo selectProjectSkuInfo(@Param("aLong") Long aLong); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java index a1bc176..f18a394 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java @@ -51,4 +51,9 @@ public interface AttributeGroupService extends IService { * 获取属性组详细信息 */ AttributeGroupUpdResp getUpdById(Long id); + + /** + * 修改状态 + */ + int changeTheStatusById(Long id, String states); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeInfoService.java index 14d9431..deeec07 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeInfoService.java @@ -1,6 +1,9 @@ package com.muyu.product.service; import java.util.List; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.baomidou.mybatisplus.extension.service.IService; @@ -25,4 +28,5 @@ public interface AttributeInfoService extends IService { * @return 属性集合 */ public List attributeListByGroupId(Long groupId); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CommentInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CommentInfoService.java index 54fbcca..14b2441 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CommentInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CommentInfoService.java @@ -18,5 +18,8 @@ public interface CommentInfoService extends IService { * @return 商品评论集合 */ public List list(CommentInfo commentInfo); - + /** + * 前三条评论 + */ + List getFindById(Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java index 5b69ada..372d9dd 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java @@ -3,6 +3,8 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.ProjectInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.model.RuleAttrAddModel; +import com.muyu.product.domain.model.RuleInfoAddModel; import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.domain.resp.ProjectDetailResp; @@ -34,9 +36,8 @@ public interface ProjectInfoService extends IService { * @return 商品详情 */ ProjectDetailResp getDetailInfo (Long id); -// /** -// * 获取商品信息详细信息 -// */ -// ProjectInfoSaveReq get(Long id); + + + void updateProductById(Long id, ProjectInfoSaveReq projectInfoSaveReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java index c41f1d8..4eb914e 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java @@ -41,4 +41,9 @@ public interface RuleInfoService extends IService { * 修改商品规格 */ void updateRuleById(Long id, RuleAttrInfoReq req); + /** + * 修改状态 + */ + int changeTheStatusById(Long id, String status); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java index 577cfa0..689c765 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java @@ -1,6 +1,7 @@ package com.muyu.product.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageInfo; import com.muyu.common.core.utils.ObjUtils; @@ -8,6 +9,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.product.domain.AsAttributeGroup; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; +import com.muyu.product.domain.ProjectInfo; import com.muyu.product.domain.model.AttributeGroupSaveModel; import com.muyu.product.domain.model.Ids; import com.muyu.product.domain.req.AttributeGroupSaveReq; @@ -177,4 +179,12 @@ public class AttributeGroupServiceImpl extends ServiceImpl getFindById(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CommentInfo::getProjectId,id); + queryWrapper.last("limit 2"); + return this.list(queryWrapper); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java index bfec332..f5c4a84 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java @@ -226,6 +226,39 @@ public class ProjectInfoServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(AsProductAttributeInfo::getProductId,id); + this.asProductAttributeInfoService.remove(wrapper); + //添加商品属性中间表 + asProductAttributeInfoService.saveBatch(projectInfoSaveReq.getAttrValueList().stream().map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel,()-> id)).toList()); + } + //修改商品规格sku表 + private void updSku(Long id, ProjectInfoSaveReq projectInfoSaveReq) { + //删除商品规格sku中间表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProjectSkuInfo::getProjectId,id); + this.projectSkuInfoService.remove(queryWrapper); + //两家商品规格中间表 + projectSkuInfoService.saveBatch(projectInfoSaveReq.getProductSkuList().stream().map(productSkuModel -> ProjectSkuInfo.saveProductBuild(productSkuModel,()->id)).toList()); + } + /** * 获取商品信息详细信息 */ @@ -259,4 +292,6 @@ public class ProjectInfoServiceImpl extends ServiceImpl ruleAttrInfoMapper.addRuleAttrModel(id,ruleAttrAddModel.getName(),substring); } } + /** + * 修改状态 + */ + @Override + public int changeTheStatusById(Long id, String status) { + RuleInfo ruleInfo = RuleInfo.editUpdBuild(id,status); + this.updateById(ruleInfo); + return 1; + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml index b847bfc..83010b0 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectInfoMapper.xml @@ -26,7 +26,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, name, introduction, mian_type, parent_type, type, image, carousel_images, status, rule_id, brand_id, remark, create_by, create_time, update_by, update_time from project_info - + + diff --git a/muyu-modules/pom.xml b/muyu-modules/pom.xml index a7e16a2..3a93b4b 100644 --- a/muyu-modules/pom.xml +++ b/muyu-modules/pom.xml @@ -16,6 +16,7 @@ muyu-product muyu-shop-cart muyu-goods + muyu-marketing muyu-modules diff --git a/pom.xml b/pom.xml index e256d02..f1a92bc 100644 --- a/pom.xml +++ b/pom.xml @@ -263,6 +263,17 @@ ${muyu.version} + + com.muyu + marketing-common + ${muyu.version} + + + com.muyu + marketing-remote + ${muyu.version} + +