master
meng 2024-11-14 21:36:32 +08:00
parent bee8ea148a
commit 0a68d33206
18 changed files with 687 additions and 42 deletions

View File

@ -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();
}
}

View File

@ -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<Long> attributeGroupIdList;
/**
* ID
*/
private List<Long> attributeIdList;
/**
* ID
*/
private List<Long> brandIdList;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<RuleAttrAddModel> ruleAttrList;
}

View File

@ -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;
/**
*
*/

View File

@ -112,8 +112,9 @@ public class CategoryInfoController extends BaseController {
@Log(title = "品类信息", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
@ApiOperation("修改品类信息")
public Result<String> 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();
}
/**

View File

@ -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<TableDataInfo<GroupBuy>> list(GroupBuyQueryReq groupBuyQueryReq) {
startPage();
List<GroupBuy> list= groupBuyService.groupList(GroupBuy.queryBuild(groupBuyQueryReq));
// List<GroupBuy> list = groupBuyService.list();
// List<GroupBuy> 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<GroupBuy> list = groupBuyService.list(groupBuy);
ExcelUtil<GroupBuy> util = new ExcelUtil<GroupBuy>(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<GroupBuy> getInfo(@PathVariable("id") Long id) {
return Result.success(groupBuyService.getById(id));
}
/**
*
*/
@RequiresPermissions("product:buy:add")
@Log(title = "新增拼团", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("新增拼团")
public Result<String> 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<String> 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<String> remove(@PathVariable List<Long> ids) {
return toAjax(groupBuyService.removeBatchByIds(ids));
}
}

View File

@ -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();
}

View File

@ -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<GroupBuy> {
}

View File

@ -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<CategoryInfo> {
CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId);
public <T, AS> List<T> getCommon (Long categoryId, IService<AS> iService, IService<T> bsiService);
/**
*
* @param id
* @return
*/
CategoryParentCommonElementResp getCategoryById(Long id);
void updateCategoryById(Long id, CategoryInfoEditReq categoryInfoEditReq);
}

View File

@ -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<GroupBuy> {
/**
*
*
* @param groupBuy
* @return
*/
public List<GroupBuy> list(GroupBuy groupBuy);
/**
*
* @return
*/
List<GroupBuy> groupList(GroupBuy groupBuy);
}

View File

@ -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<RuleInfo> {
RuleInfoAddModel getRuleAttrInfoResp(Long id);
void updateRuleById(Long id, RuleAttrInfoReq req);
void updateRuleById(Long id, RuleInfoEditReq req);
}

View File

@ -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<CategoryInfoMapper, Cat
return list;
}
/**
*
* @param id
* @return
*/
@Override
public CategoryParentCommonElementResp getCategoryById(Long id) {
//品类信息
CategoryInfo info = this.getById(id);
//品类属性中间表
LambdaQueryWrapper<AsCategoryAttribute> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AsCategoryAttribute::getCategoryId,id);
List<AsCategoryAttribute> attributeList = asCategoryAttributeService.list(queryWrapper);
List<Long> longs = attributeList.stream().map(AsCategoryAttribute::getCategoryId).toList();
List<AttributeInfo> byIds = attributeInfoService.listByIds(longs);
//品类属性组中间表
LambdaQueryWrapper<AsCategoryAttributeGroup> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(AsCategoryAttributeGroup::getCategoryId,id);
List<AsCategoryAttributeGroup> list = asCategoryAttributeGroupService.list(wrapper);
List<Long> toList = list.stream().map(AsCategoryAttributeGroup::getCategoryId).toList();
List<AttributeGroup> attributeGroups = attributeGroupService.listByIds(toList);
//品类品牌中间表
LambdaQueryWrapper<AsCategoryBrand> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(AsCategoryBrand::getCategoryId,id);
List<AsCategoryBrand> asCategoryBrands = asCategoryBrandService.list(lambdaQueryWrapper);
List<Long> longList = asCategoryBrands.stream().map(AsCategoryBrand::getCategoryId).toList();
List<BrandInfo> 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
*

View File

@ -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<GroupBuyMapper, GroupBuy> implements GroupBuyService {
/**
*
*
* @param groupBuy
* @return
*/
@Override
public List<GroupBuy> list(GroupBuy groupBuy) {
LambdaQueryWrapper<GroupBuy> 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<GroupBuy> groupList(GroupBuy groupBuy) {
LambdaQueryWrapper<GroupBuy> 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);
}
}

View File

@ -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<RuleInfoMapper, RuleInfo>
public RuleInfoAddModel getRuleAttrInfoResp(Long id) {
//获取商品规格
RuleInfo byId = this.getById(id);
if (byId==null){
throw new RuntimeException("没有这个商品规格");
}
List<RuleAttrInfo> ruleAttrInfos=ruleAttrInfoService.getRuleAttrInfo(byId.getId());
ArrayList<RuleAttrAddModel> arrayList = new ArrayList<>();
RuleAttrAddModel ruleAttrAddModel = new RuleAttrAddModel();
for (RuleAttrInfo ruleAttrInfo : ruleAttrInfos) {
ruleAttrAddModel.setName(ruleAttrInfo.getName());
}
List<String> 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<RuleAttrInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(RuleAttrInfo::getRuleId,id);
List<RuleAttrInfo> 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<RuleInfoMapper, RuleInfo>
* @param req
*/
@Override
public void updateRuleById(Long id, RuleAttrInfoReq req) {
public void updateRuleById(Long id, RuleInfoEditReq req) {
//修改商品规格表
ruleAttrInfoMapper.updRule(id,req);
boolean b = this.updateById(RuleInfo.editBuild(id, req));
if (b){
//删除规格详情表
ruleAttrInfoMapper.deleteRule(id);
LambdaQueryWrapper<RuleAttrInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(RuleAttrInfo::getRuleId,id);
ruleAttrInfoService.remove(queryWrapper);
//添加规格详情表
List<RuleAttrAddModel> ruleAttrList = req.getRuleAttrList();
for (RuleAttrAddModel ruleAttrAddModel : ruleAttrList) {
List<String> 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);
ruleAttrInfoService.saveBatch(req.getRuleAttrList().stream().map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel,()->id,SecurityUtils::getUsername)).toList());
}
}
}

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.GroupBuyMapper">
<resultMap type="com.muyu.product.domain.GroupBuy" id="GroupBuyResult">
<result property="id" column="id" />
<result property="productId" column="product_id" />
<result property="startTime" column="start_time" />
<result property="endTime" column="end_time" />
<result property="minMembers" column="min_members" />
<result property="status" column="status" />
</resultMap>
<sql id="selectGroupBuyVo">
select id, product_id, start_time, end_time, min_members, status from group_buy
</sql>
</mapper>