规格信息
parent
6b382157d9
commit
b52f1b46f3
|
@ -71,11 +71,11 @@ public class AttributeGroup extends BaseEntity {
|
|||
}
|
||||
|
||||
/**
|
||||
* 修改构造器
|
||||
*/
|
||||
public static AttributeGroup editBuild(Long id, AttributeGroupEditReq attributeGroupEditReq){
|
||||
* 修改构造器
|
||||
*/
|
||||
public static AttributeGroup editBuild(Long id,AttributeGroupEditReq attributeGroupEditReq){
|
||||
return AttributeGroup.builder()
|
||||
.id(id)
|
||||
.id(id)
|
||||
.name(attributeGroupEditReq.getName())
|
||||
.states(attributeGroupEditReq.getStates())
|
||||
.build();
|
||||
|
|
|
@ -3,6 +3,8 @@ 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.RuleAttrAddModel;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -15,6 +17,9 @@ import com.muyu.product.domain.req.RuleAttrInfoSaveReq;
|
|||
import com.muyu.product.domain.req.RuleAttrInfoEditReq;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* 规格详情对象 rule_attr_info
|
||||
*
|
||||
|
@ -86,4 +91,14 @@ public class RuleAttrInfo extends BaseEntity {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static RuleAttrInfo addModelBuild (RuleAttrAddModel ruleAttrAddModel, Supplier<Long> ruleId, Supplier<String> createBy) {
|
||||
return RuleAttrInfo.builder()
|
||||
.ruleId(ruleId.get())
|
||||
.name(ruleAttrAddModel.getName())
|
||||
.attrValue(String.join(",", ruleAttrAddModel.getValueList()))
|
||||
.createBy(createBy.get())
|
||||
.createTime(new Date())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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.RuleInfoAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -15,6 +16,9 @@ import com.muyu.product.domain.req.RuleInfoSaveReq;
|
|||
import com.muyu.product.domain.req.RuleInfoEditReq;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* 商品规格对象 rule_info
|
||||
*
|
||||
|
@ -78,4 +82,16 @@ public class RuleInfo extends BaseEntity {
|
|||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加模型
|
||||
*/
|
||||
public static RuleInfo addModelBuild(RuleInfoAddModel ruleInfoAddModel, Supplier<String> createBy){
|
||||
return RuleInfo.builder()
|
||||
.name(ruleInfoAddModel.getName())
|
||||
.status(ruleInfoAddModel.getStatus())
|
||||
.createBy(createBy.get())
|
||||
.createTime(new Date())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.RuleAttrInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import org.w3c.dom.stylesheets.LinkStyle;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RuleAttrAddModel extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 规格属性名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格属性集合
|
||||
*/
|
||||
private List<String> valueList;
|
||||
|
||||
public static RuleAttrAddModel infoBuild(RuleAttrInfo ruleAttrInfo){
|
||||
return RuleAttrAddModel.builder()
|
||||
.name(ruleAttrInfo.getName())
|
||||
.valueList(Arrays.stream(ruleAttrInfo.getAttrValue().split(",")).toList())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.req.RuleInfoSaveReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RuleInfoAddModel extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 规格名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 规格状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 规格属性集合
|
||||
*/
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
|
||||
public static RuleInfoAddModel saveReqBuild(RuleInfoSaveReq req){
|
||||
return RuleInfoAddModel.builder()
|
||||
.name(req.getName())
|
||||
.status(req.getStatus())
|
||||
.ruleAttrList(req.getRuleAttrList())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
@ -8,6 +9,8 @@ import lombok.experimental.SuperBuilder;
|
|||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品规格对象 rule_info
|
||||
*
|
||||
|
@ -38,4 +41,9 @@ public class RuleInfoSaveReq extends BaseEntity {
|
|||
@ApiModelProperty(name = "规格状态", value = "规格状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 规格属性集合
|
||||
*/
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.RuleInfo;
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@SuperBuilder
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RuleInfoResp extends BaseEntity {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String status;
|
||||
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
|
||||
public static RuleInfoResp infoBuild(RuleInfo ruleInfo, Function<Long,List<RuleAttrAddModel>> ruleAttrList){
|
||||
return RuleInfoResp.builder()
|
||||
.id(ruleInfo.getId())
|
||||
.name(ruleInfo.getName())
|
||||
.status(ruleInfo.getStatus())
|
||||
.ruleAttrList(ruleAttrList.apply(ruleInfo.getId()))
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -4,7 +4,9 @@ import java.util.List;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.domain.AttributeGroup;
|
||||
import com.muyu.product.domain.model.CategoryInfoSaveModel;
|
||||
import com.muyu.product.domain.req.AttributeGroupEditReq;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.muyu.product.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
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;
|
||||
|
@ -45,10 +47,10 @@ public class RuleInfoController extends BaseController {
|
|||
@ApiOperation("获取商品规格列表")
|
||||
@RequiresPermissions("product:rule:list")
|
||||
@GetMapping("/list")
|
||||
public Result<TableDataInfo<RuleInfo>> list(RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
public Result<TableDataInfo<RuleInfoResp>> list(RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
startPage();
|
||||
List<RuleInfo> list = ruleInfoService.list(RuleInfo.queryBuild(ruleInfoQueryReq));
|
||||
return getDataTable(list);
|
||||
TableDataInfo<RuleInfoResp> tableDataInfo = ruleInfoService.queryList(ruleInfoQueryReq);
|
||||
return Result.success(tableDataInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,7 +85,7 @@ public class RuleInfoController extends BaseController {
|
|||
@PostMapping
|
||||
@ApiOperation("新增商品规格")
|
||||
public Result<String> add(@RequestBody RuleInfoSaveReq ruleInfoSaveReq) {
|
||||
return toAjax(ruleInfoService.save(RuleInfo.saveBuild(ruleInfoSaveReq)));
|
||||
return toAjax(ruleInfoService.save(RuleInfoAddModel.saveReqBuild(ruleInfoSaveReq)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,7 +104,7 @@ public class RuleInfoController extends BaseController {
|
|||
*/
|
||||
@RequiresPermissions("product:rule:remove")
|
||||
@Log(title = "商品规格", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
@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) {
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
package com.muyu.product.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
|
||||
/**
|
||||
* 商品规格Service接口
|
||||
|
@ -19,4 +24,12 @@ public interface RuleInfoService extends IService<RuleInfo> {
|
|||
*/
|
||||
public List<RuleInfo> list(RuleInfo ruleInfo);
|
||||
|
||||
/**
|
||||
* 添加规格信息
|
||||
*/
|
||||
public boolean save(RuleInfoAddModel ruleInfoAddModel);
|
||||
|
||||
TableDataInfo<RuleInfoResp> queryList(RuleInfoQueryReq ruleInfoQueryReq);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
* 通过品类id获取属性组集合
|
||||
*/
|
||||
@Override
|
||||
public List<AttributeGroup> getAttributeGroupList(Long categoryId) {
|
||||
public List<AttributeGroup> getAttributeGroupList(Long categoryId){
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,24 @@
|
|||
package com.muyu.product.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
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.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import com.muyu.product.service.RuleAttrInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.RuleInfoMapper;
|
||||
import com.muyu.product.domain.RuleInfo;
|
||||
|
@ -21,11 +36,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
@Service
|
||||
public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo> implements RuleInfoService {
|
||||
|
||||
@Autowired
|
||||
private RuleAttrInfoService ruleAttrInfoService;
|
||||
|
||||
/**
|
||||
* 查询商品规格列表
|
||||
*
|
||||
* @param ruleInfo 商品规格
|
||||
* @return 商品规格
|
||||
*/
|
||||
@Override
|
||||
public List<RuleInfo> list(RuleInfo ruleInfo) {
|
||||
|
@ -46,4 +61,35 @@ public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo>
|
|||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加规格信息
|
||||
*/
|
||||
@Override
|
||||
public boolean save (RuleInfoAddModel ruleInfoAddModel) {
|
||||
RuleInfo ruleInfo = RuleInfo.addModelBuild(ruleInfoAddModel, SecurityUtils::getUsername);
|
||||
boolean save = this.save(ruleInfo);
|
||||
ruleAttrInfoService.saveBatch(
|
||||
ruleInfoAddModel.getRuleAttrList().stream()
|
||||
.map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, ruleInfo::getId, SecurityUtils::getUsername))
|
||||
.toList()
|
||||
);
|
||||
return save;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<RuleInfoResp> queryList (RuleInfoQueryReq ruleInfoQueryReq) {
|
||||
List<RuleInfo> list = this.list(RuleInfo.queryBuild(ruleInfoQueryReq));
|
||||
List<RuleInfoResp> ruleInfoRespList = list.stream()
|
||||
.map(ruleInfo -> RuleInfoResp.infoBuild(ruleInfo, ruleId -> {
|
||||
LambdaQueryWrapper<RuleAttrInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RuleAttrInfo::getRuleId, ruleId);
|
||||
return ruleAttrInfoService.list(queryWrapper).stream().map(RuleAttrAddModel::infoBuild).toList();
|
||||
}))
|
||||
.toList();
|
||||
return TableDataInfo.<RuleInfoResp>builder()
|
||||
.rows(ruleInfoRespList)
|
||||
.total(new PageInfo<>(list).getTotal())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue