From 0a68d33206b99e6262cdce6f7cff75d002cdc31b Mon Sep 17 00:00:00 2001 From: meng <1544233648@qq.com> Date: Thu, 14 Nov 2024 21:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/product/domain/GroupBuy.java | 130 ++++++++++++++++++ .../domain/req/CategoryInfoEditReq.java | 14 ++ .../product/domain/req/GroupBuyEditReq.java | 50 +++++++ .../product/domain/req/GroupBuyQueryReq.java | 50 +++++++ .../product/domain/req/GroupBuySaveReq.java | 60 ++++++++ .../product/domain/req/RuleInfoEditReq.java | 5 + .../resp/CategoryParentCommonElementResp.java | 29 ++++ .../controller/CategoryInfoController.java | 5 +- .../controller/GroupBuyController.java | 113 +++++++++++++++ .../controller/RuleInfoController.java | 7 +- .../muyu/product/mapper/GroupBuyMapper.java | 15 ++ .../product/service/CategoryInfoService.java | 10 ++ .../muyu/product/service/GroupBuyService.java | 29 ++++ .../muyu/product/service/RuleInfoService.java | 3 +- .../service/impl/CategoryInfoServiceImpl.java | 49 +++++++ .../service/impl/GroupBuyServiceImpl.java | 86 ++++++++++++ .../service/impl/RuleInfoServiceImpl.java | 54 +++----- .../mapper/product/GroupBuyMapper.xml | 20 +++ 18 files changed, 687 insertions(+), 42 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/GroupBuy.java create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyEditReq.java create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyQueryReq.java create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuySaveReq.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/GroupBuyController.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/GroupBuyMapper.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/GroupBuyService.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/GroupBuyServiceImpl.java create mode 100644 muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/GroupBuyMapper.xml diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/GroupBuy.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/GroupBuy.java new file mode 100644 index 0000000..8f3ffe7 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/GroupBuy.java @@ -0,0 +1,130 @@ +package com.muyu.product.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.annotation.Excel; +import com.muyu.product.domain.req.GroupBuyQueryReq; +import com.muyu.product.domain.req.GroupBuySaveReq; +import com.muyu.product.domain.req.GroupBuyEditReq; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 group_buy + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("group_buy") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "GroupBuy", description = "【请填写功能名称】") +public class GroupBuy extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "id", value = "id") + private Long id; + + /** 商品id */ + @Excel(name = "商品id") + @ApiModelProperty(name = "商品id", value = "商品id") + private Long productId; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty(name = "开始时间", value = "开始时间") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty(name = "结束时间", value = "结束时间") + private Date endTime; + + /** 最小成团人数 */ + @Excel(name = "最小成团人数") + @ApiModelProperty(name = "最小成团人数", value = "最小成团人数") + private String minMembers; + + /** 活动状态 */ + @Excel(name = "活动状态") + @ApiModelProperty(name = "活动状态", value = "活动状态") + private String status; + /** 创建人 */ + @Excel(name = "创建人") + @ApiModelProperty(name = "创建人", value = "创建人") + private String createBy; + /** 创建时间 */ + @Excel(name = "创建时间") + @ApiModelProperty(name = "创建时间", value = "创建时间") + private Date createTime; + /** 修改人 */ + @Excel(name = "修改人") + @ApiModelProperty(name = "修改人", value = "修改人") + private String updateBy; + /** 修改人 */ + @Excel(name = "修改时间") + @ApiModelProperty(name = "修改时间", value = "修改时间") + private Date updateTime; + /** 备注 */ + @Excel(name = "备注") + @ApiModelProperty(name = "备注", value = "备注") + private String remark; + + + /** + * 查询构造器 + */ + public static GroupBuy queryBuild( GroupBuyQueryReq groupBuyQueryReq){ + return GroupBuy.builder() + .productId(groupBuyQueryReq.getProductId()) + .startTime(groupBuyQueryReq.getStartTime()) + .endTime(groupBuyQueryReq.getEndTime()) + .minMembers(groupBuyQueryReq.getMinMembers()) + .status(groupBuyQueryReq.getStatus()) + .build(); + } + + /** + * 添加构造器 + */ + public static GroupBuy saveBuild(GroupBuySaveReq groupBuySaveReq){ + return GroupBuy.builder() + .productId(groupBuySaveReq.getProductId()) + .startTime(groupBuySaveReq.getStartTime()) + .endTime(groupBuySaveReq.getEndTime()) + .minMembers(groupBuySaveReq.getMinMembers()) + .status(groupBuySaveReq.getStatus()) + .build(); + } + + /** + * 修改构造器 + */ + public static GroupBuy editBuild(Long id, GroupBuyEditReq groupBuyEditReq){ + return GroupBuy.builder() + .id(id) + .productId(groupBuyEditReq.getProductId()) + .startTime(groupBuyEditReq.getStartTime()) + .endTime(groupBuyEditReq.getEndTime()) + .minMembers(groupBuyEditReq.getMinMembers()) + .status(groupBuyEditReq.getStatus()) + .build(); + } + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java index 023446a..5d56770 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java @@ -8,6 +8,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.TreeEntity; +import java.util.List; + /** * 品类信息对象 category_info * @@ -38,5 +40,17 @@ public class CategoryInfoEditReq extends TreeEntity { /** 介绍 */ @ApiModelProperty(name = "介绍", value = "介绍") private String introduction; + /** + * 商品属性组关联ID + */ + private List attributeGroupIdList; + /** + * 商品属性关联ID + */ + private List attributeIdList; + /** + * 商品品牌组关联ID + */ + private List brandIdList; } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyEditReq.java new file mode 100644 index 0000000..67ccc23 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyEditReq.java @@ -0,0 +1,50 @@ +package com.muyu.product.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 group_buy + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "GroupBuyEditReq", description = "【请填写功能名称】") +public class GroupBuyEditReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 商品id */ + @ApiModelProperty(name = "商品id", value = "商品id") + private Long productId; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "开始时间", value = "开始时间") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "结束时间", value = "结束时间") + private Date endTime; + + /** 最小成团人数 */ + @ApiModelProperty(name = "最小成团人数", value = "最小成团人数") + private String minMembers; + + /** 活动状态 */ + @ApiModelProperty(name = "活动状态", value = "活动状态") + private String status; + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyQueryReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyQueryReq.java new file mode 100644 index 0000000..b40763f --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuyQueryReq.java @@ -0,0 +1,50 @@ +package com.muyu.product.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 group_buy + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "GroupBuyQueryReq", description = "【请填写功能名称】") +public class GroupBuyQueryReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 商品id */ + @ApiModelProperty(name = "商品id", value = "商品id") + private Long productId; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "开始时间", value = "开始时间") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "结束时间", value = "结束时间") + private Date endTime; + + /** 最小成团人数 */ + @ApiModelProperty(name = "最小成团人数", value = "最小成团人数") + private String minMembers; + + /** 活动状态 */ + @ApiModelProperty(name = "活动状态", value = "活动状态") + private String status; + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuySaveReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuySaveReq.java new file mode 100644 index 0000000..26d3da7 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/GroupBuySaveReq.java @@ -0,0 +1,60 @@ +package com.muyu.product.domain.req; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.muyu.common.core.web.domain.BaseEntity; + +/** + * 【请填写功能名称】对象 group_buy + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "GroupBuySaveReq", description = "【请填写功能名称】") +public class GroupBuySaveReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** id */ + + @ApiModelProperty(name = "id", value = "id") + private Long id; + + /** 商品id */ + + @ApiModelProperty(name = "商品id", value = "商品id") + private Long productId; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + + @ApiModelProperty(name = "开始时间", value = "开始时间") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + + @ApiModelProperty(name = "结束时间", value = "结束时间") + private Date endTime; + + /** 最小成团人数 */ + + @ApiModelProperty(name = "最小成团人数", value = "最小成团人数") + private String minMembers; + + /** 活动状态 */ + + @ApiModelProperty(name = "活动状态", value = "活动状态") + private String status; + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java index 77a6c67..681552e 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/RuleInfoEditReq.java @@ -1,5 +1,6 @@ package com.muyu.product.domain.req; +import com.muyu.product.domain.model.RuleAttrAddModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -32,4 +33,8 @@ public class RuleInfoEditReq extends BaseEntity { /** 规格状态 */ @ApiModelProperty(name = "规格状态", value = "规格状态") private String status; + /** + * 规格属性集合 + */ + private List ruleAttrList; } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java index ba5576a..410e007 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/CategoryParentCommonElementResp.java @@ -1,8 +1,12 @@ package com.muyu.product.domain.resp; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.common.core.annotation.Excel; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.BrandInfo; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,6 +25,31 @@ import java.util.List; @AllArgsConstructor public class CategoryParentCommonElementResp { + /** 主键 */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "主键", value = "主键") + private Long id; + + /** 品类名称 */ + @Excel(name = "品类名称") + @ApiModelProperty(name = "品类名称", value = "品类名称", required = true) + private String name; + + /** 图片 */ + @Excel(name = "图片") + @ApiModelProperty(name = "图片", value = "图片", required = true) + private String image; + + /** 是否启用 */ + @Excel(name = "是否启用") + @ApiModelProperty(name = "是否启用", value = "是否启用", required = true) + private String start; + + /** 介绍 */ + @Excel(name = "介绍") + @ApiModelProperty(name = "介绍", value = "介绍") + private String introduction; + /** * 属性集合 */ diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java index 55dbaef..0664b70 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java @@ -112,8 +112,9 @@ public class CategoryInfoController extends BaseController { @Log(title = "品类信息", businessType = BusinessType.UPDATE) @PutMapping("/{id}") @ApiOperation("修改品类信息") - public Result edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) { - return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoEditReq))); + public Result edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) { + categoryInfoService.updateCategoryById(id,categoryInfoEditReq); + return Result.success(); } /** diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/GroupBuyController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/GroupBuyController.java new file mode 100644 index 0000000..61889d8 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/GroupBuyController.java @@ -0,0 +1,113 @@ +package com.muyu.product.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +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 com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.product.domain.GroupBuy; +import com.muyu.product.domain.req.GroupBuyQueryReq; +import com.muyu.product.domain.req.GroupBuySaveReq; +import com.muyu.product.domain.req.GroupBuyEditReq; +import com.muyu.product.service.GroupBuyService; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 【请填写功能名称】Controller + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Api(tags = "拼团") +@RestController +@RequestMapping("/buy") +public class GroupBuyController extends BaseController { + @Autowired + private GroupBuyService groupBuyService; + + /** + * 查询【请填写功能名称】列表 + */ + @ApiOperation("获取拼团列表") + @RequiresPermissions("product:buy:list") + @GetMapping("/list") + public Result> list(GroupBuyQueryReq groupBuyQueryReq) { + startPage(); + List list= groupBuyService.groupList(GroupBuy.queryBuild(groupBuyQueryReq)); +// List list = groupBuyService.list(); +// List list = groupBuyService.list(GroupBuy.queryBuild(groupBuyQueryReq)); + return getDataTable(list); + } + + /** + * 导出【请填写功能名称】列表 + */ + @ApiOperation("导出拼团列表") + @RequiresPermissions("product:buy:export") + @Log(title = "导出拼团", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, GroupBuy groupBuy) { + List list = groupBuyService.list(groupBuy); + ExcelUtil util = new ExcelUtil(GroupBuy.class); + util.exportExcel(response, list, "拼团数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @ApiOperation("获取拼团详细信息") + @RequiresPermissions("product:buy:query") + @GetMapping(value = "/{id}") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(groupBuyService.getById(id)); + } + + /** + * 新增【请填写功能名称】 + */ + @RequiresPermissions("product:buy:add") + @Log(title = "新增拼团", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("新增拼团") + public Result add(@RequestBody GroupBuySaveReq groupBuySaveReq) { + return toAjax(groupBuyService.save(GroupBuy.saveBuild(groupBuySaveReq))); + } + + /** + * 修改【请填写功能名称】 + */ + @RequiresPermissions("product:buy:edit") + @Log(title = "修改拼团", businessType = BusinessType.UPDATE) + @PutMapping("/{id}") + @ApiOperation("修改拼团") + public Result edit(@PathVariable Long id, @RequestBody GroupBuyEditReq groupBuyEditReq) { + return toAjax(groupBuyService.updateById(GroupBuy.editBuild(id,groupBuyEditReq))); + } + + /** + * 删除【请填写功能名称】 + */ + @RequiresPermissions("product:buy:remove") + @Log(title = "删除拼团", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + @ApiOperation("删除拼团") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") + public Result remove(@PathVariable List ids) { + return toAjax(groupBuyService.removeBatchByIds(ids)); + } +} 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 a0e9ccd..10b8124 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 @@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.muyu.common.core.text.Convert; import com.muyu.product.domain.model.RuleInfoAddModel; -import com.muyu.product.domain.req.RuleAttrInfoReq; +import com.muyu.product.domain.req.*; import com.muyu.product.domain.resp.RuleAttrInfoResp; import com.muyu.product.domain.resp.RuleInfoResp; import io.swagger.annotations.*; @@ -25,9 +25,6 @@ import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.product.domain.RuleInfo; -import com.muyu.product.domain.req.RuleInfoQueryReq; -import com.muyu.product.domain.req.RuleInfoSaveReq; -import com.muyu.product.domain.req.RuleInfoEditReq; import com.muyu.product.service.RuleInfoService; import com.muyu.common.core.web.page.TableDataInfo; @@ -102,7 +99,7 @@ public class RuleInfoController extends BaseController { @Log(title = "商品规格", businessType = BusinessType.UPDATE) @PutMapping("/{id}") @ApiOperation("修改商品规格") - public Result edit(@PathVariable Long id, @RequestBody RuleAttrInfoReq req) { + public Result edit(@PathVariable Long id, @RequestBody RuleInfoEditReq req) { ruleInfoService.updateRuleById(id,req); return Result.success(); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/GroupBuyMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/GroupBuyMapper.java new file mode 100644 index 0000000..d9cb268 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/GroupBuyMapper.java @@ -0,0 +1,15 @@ +package com.muyu.product.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.product.domain.GroupBuy; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +public interface GroupBuyMapper extends BaseMapper { + +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java index 9b99d9d..ba44caf 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java @@ -8,6 +8,7 @@ import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.CategoryInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; @@ -69,4 +70,13 @@ public interface CategoryInfoService extends IService { CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId); public List getCommon (Long categoryId, IService iService, IService bsiService); + + /** + * 回显 + * @param id + * @return + */ + CategoryParentCommonElementResp getCategoryById(Long id); + + void updateCategoryById(Long id, CategoryInfoEditReq categoryInfoEditReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/GroupBuyService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/GroupBuyService.java new file mode 100644 index 0000000..5c8b054 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/GroupBuyService.java @@ -0,0 +1,29 @@ +package com.muyu.product.service; + +import java.util.List; +import com.muyu.product.domain.GroupBuy; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.req.GroupBuyQueryReq; + +/** + * 【请填写功能名称】Service接口 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +public interface GroupBuyService extends IService { + /** + * 查询拼团列表 + * + * @param groupBuy 拼团 + * @return 【请填写功能名称】集合 + */ + public List list(GroupBuy groupBuy); + + /** + * 查询拼团列表 + * @return + */ + List groupList(GroupBuy groupBuy); + +} 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 c17c5d5..e13fbb1 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 @@ -6,6 +6,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.product.domain.RuleInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.RuleAttrInfoEditReq; import com.muyu.product.domain.req.RuleAttrInfoReq; import com.muyu.product.domain.req.RuleInfoEditReq; import com.muyu.product.domain.req.RuleInfoQueryReq; @@ -44,6 +45,6 @@ public interface RuleInfoService extends IService { RuleInfoAddModel getRuleAttrInfoResp(Long id); - void updateRuleById(Long id, RuleAttrInfoReq req); + void updateRuleById(Long id, RuleInfoEditReq req); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java index 2d6b4d5..a7a64ff 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.muyu.product.domain.base.CategoryBase; import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.model.TemplateAttributeGroupModel; import com.muyu.product.domain.model.TemplateAttributeModel; +import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import com.muyu.product.mapper.CategoryInfoMapper; @@ -270,6 +271,54 @@ public class CategoryInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AsCategoryAttribute::getCategoryId,id); + List attributeList = asCategoryAttributeService.list(queryWrapper); + List longs = attributeList.stream().map(AsCategoryAttribute::getCategoryId).toList(); + List byIds = attributeInfoService.listByIds(longs); +//品类属性组中间表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(AsCategoryAttributeGroup::getCategoryId,id); + List list = asCategoryAttributeGroupService.list(wrapper); + List toList = list.stream().map(AsCategoryAttributeGroup::getCategoryId).toList(); + List attributeGroups = attributeGroupService.listByIds(toList); +//品类品牌中间表 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(AsCategoryBrand::getCategoryId,id); + List asCategoryBrands = asCategoryBrandService.list(lambdaQueryWrapper); + List longList = asCategoryBrands.stream().map(AsCategoryBrand::getCategoryId).toList(); + List brandInfos = brandInfoService.listByIds(longList); + return CategoryParentCommonElementResp.builder() + .id(info.getId()) + .name(info.getName()) + .image(info.getImage()) + .start(info.getStart()) + .introduction(info.getIntroduction()) + .attributeInfoList(byIds) + .attributeGroupList(attributeGroups) + .brandInfoList(brandInfos).build(); + } + + /** + * 修改 + * @param id + * @param categoryInfoEditReq + */ + @Override + public void updateCategoryById(Long id, CategoryInfoEditReq categoryInfoEditReq) { + //修改 + } + /** * 通过品类ID获取父级以上的属性、属性组、品牌集合 * diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/GroupBuyServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/GroupBuyServiceImpl.java new file mode 100644 index 0000000..2356c64 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/GroupBuyServiceImpl.java @@ -0,0 +1,86 @@ +package com.muyu.product.service.impl; + +import java.util.List; + +import com.muyu.common.core.utils.ObjUtils; +import com.muyu.product.domain.req.GroupBuyQueryReq; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.muyu.product.mapper.GroupBuyMapper; +import com.muyu.product.domain.GroupBuy; +import com.muyu.product.service.GroupBuyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author DongZeLiang + * @date 2024-11-14 + */ +@Slf4j +@Service +public class GroupBuyServiceImpl extends ServiceImpl implements GroupBuyService { + + /** + * 查询【请填写功能名称】列表 + * + * @param groupBuy 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List list(GroupBuy groupBuy) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + + if (ObjUtils.notNull(groupBuy.getProductId())){ + queryWrapper.eq(GroupBuy::getProductId, groupBuy.getProductId()); + } + + if (ObjUtils.notNull(groupBuy.getStartTime())){ + queryWrapper.eq(GroupBuy::getStartTime, groupBuy.getStartTime()); + } + + if (ObjUtils.notNull(groupBuy.getEndTime())){ + queryWrapper.eq(GroupBuy::getEndTime, groupBuy.getEndTime()); + } + + if (ObjUtils.notNull(groupBuy.getMinMembers())){ + queryWrapper.eq(GroupBuy::getMinMembers, groupBuy.getMinMembers()); + } + + if (ObjUtils.notNull(groupBuy.getStatus())){ + queryWrapper.eq(GroupBuy::getStatus, groupBuy.getStatus()); + } + return list(queryWrapper); + } + + /** + * + * @return + */ + @Override + public List groupList(GroupBuy groupBuy) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjUtils.notNull(groupBuy.getProductId())){ + queryWrapper.eq(GroupBuy::getProductId, groupBuy.getProductId()); + } + + if (ObjUtils.notNull(groupBuy.getStartTime())){ + queryWrapper.eq(GroupBuy::getStartTime, groupBuy.getStartTime()); + } + + if (ObjUtils.notNull(groupBuy.getEndTime())){ + queryWrapper.eq(GroupBuy::getEndTime, groupBuy.getEndTime()); + } + + if (ObjUtils.notNull(groupBuy.getMinMembers())){ + queryWrapper.eq(GroupBuy::getMinMembers, groupBuy.getMinMembers()); + } + + if (ObjUtils.notNull(groupBuy.getStatus())){ + queryWrapper.eq(GroupBuy::getStatus, groupBuy.getStatus()); + } + return list(queryWrapper); + } +} diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java index bba465d..6410cb2 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.muyu.product.service.impl; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.function.Function; @@ -15,6 +16,7 @@ import com.muyu.common.security.utils.SecurityUtils; import com.muyu.product.domain.RuleAttrInfo; import com.muyu.product.domain.model.RuleAttrAddModel; import com.muyu.product.domain.model.RuleInfoAddModel; +import com.muyu.product.domain.req.RuleAttrInfoEditReq; import com.muyu.product.domain.req.RuleAttrInfoReq; import com.muyu.product.domain.req.RuleInfoEditReq; import com.muyu.product.domain.req.RuleInfoQueryReq; @@ -122,24 +124,15 @@ public class RuleInfoServiceImpl extends ServiceImpl public RuleInfoAddModel getRuleAttrInfoResp(Long id) { //获取商品规格 RuleInfo byId = this.getById(id); - if (byId==null){ - throw new RuntimeException("没有这个商品规格"); - } - List ruleAttrInfos=ruleAttrInfoService.getRuleAttrInfo(byId.getId()); - ArrayList arrayList = new ArrayList<>(); - RuleAttrAddModel ruleAttrAddModel = new RuleAttrAddModel(); - for (RuleAttrInfo ruleAttrInfo : ruleAttrInfos) { - ruleAttrAddModel.setName(ruleAttrInfo.getName()); - } - List list = ruleAttrInfos.stream().map(RuleAttrInfo::getAttrValue).toList(); - ruleAttrAddModel.setValueList(list); - arrayList.add(ruleAttrAddModel); - RuleInfoAddModel resp = new RuleInfoAddModel(); - resp.setId(byId.getId()); - resp.setName(byId.getName()); - resp.setStatus(byId.getStatus()); - resp.setRuleAttrList(arrayList); - return resp; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RuleAttrInfo::getRuleId,id); + List ruleAttrInfoList = this.ruleAttrInfoService.list(queryWrapper); + return RuleInfoAddModel.builder() + .id(byId.getId()) + .name(byId.getName()) + .status(byId.getStatus()) + .ruleAttrList(ruleAttrInfoList.stream().map(ruleAttrInfo -> RuleAttrAddModel.infoBuild(ruleAttrInfo)).toList()) + .build(); } /** @@ -148,23 +141,16 @@ public class RuleInfoServiceImpl extends ServiceImpl * @param req */ @Override - public void updateRuleById(Long id, RuleAttrInfoReq req) { + public void updateRuleById(Long id, RuleInfoEditReq req) { //修改商品规格表 - ruleAttrInfoMapper.updRule(id,req); - //删除规格详情表 - ruleAttrInfoMapper.deleteRule(id); - //添加规格详情表 - List ruleAttrList = req.getRuleAttrList(); - for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) { - List valueList = ruleAttrAddModel.getValueList(); - String value=""; - String valueData=null; - for (String s : valueList) { - valueData = value + "," + s; - } - String substring = valueData.substring(1); - System.out.println(substring); - ruleAttrInfoMapper.addRuleAttrModel(id,ruleAttrAddModel.getName(),substring); + boolean b = this.updateById(RuleInfo.editBuild(id, req)); + if (b){ + //删除规格详情表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RuleAttrInfo::getRuleId,id); + ruleAttrInfoService.remove(queryWrapper); + //添加规格详情表 + ruleAttrInfoService.saveBatch(req.getRuleAttrList().stream().map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel,()->id,SecurityUtils::getUsername)).toList()); } } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/GroupBuyMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/GroupBuyMapper.xml new file mode 100644 index 0000000..f7f90af --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/GroupBuyMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + select id, product_id, start_time, end_time, min_members, status from group_buy + + +