商品规格回显
parent
106eac1803
commit
55bb4bc9e6
|
@ -53,6 +53,11 @@ public class AsCategoryAttribute extends BaseEntity implements CategoryBase {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static AsCategoryAttribute categoryAttribute(Long attributeId){
|
||||
return AsCategoryAttribute.builder()
|
||||
.categoryId(attributeId)
|
||||
.build();
|
||||
}
|
||||
@Override
|
||||
public Long getBaseId () {
|
||||
return this.attributeId;
|
||||
|
|
|
@ -52,6 +52,11 @@ public class AsCategoryAttributeGroup extends BaseEntity implements CategoryBase
|
|||
.categoryId(categoryInfoId)
|
||||
.build();
|
||||
}
|
||||
public static AsCategoryAttributeGroup categoryBuild(Long categoryInfoId) {
|
||||
return AsCategoryAttributeGroup.builder()
|
||||
.categoryId(categoryInfoId)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getBaseId () {
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
package com.muyu.product.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
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 com.muyu.product.domain.model.AttrValueModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -51,4 +54,17 @@ public class AsProductAttributeInfo extends BaseEntity {
|
|||
@ApiModelProperty(name = "属性值", value = "属性值", required = true)
|
||||
private String value;
|
||||
|
||||
public static AsProductAttributeInfo attrValueModelBuild(AttrValueModel attrValueModel, Supplier<Long> projectId ){
|
||||
return AsProductAttributeInfo.builder()
|
||||
.productId(projectId.get())
|
||||
.attributeId(attrValueModel.getId())
|
||||
.value(attrValueModel.getValue())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static AsProductAttributeInfo productAttributeInfo(Long productId){
|
||||
return AsProductAttributeInfo.builder()
|
||||
.attributeId(productId)
|
||||
.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.ProductSkuModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -11,10 +13,12 @@ import lombok.experimental.SuperBuilder;
|
|||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.product.domain.req.ProjectInfoQueryReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* 商品信息对象 project_info
|
||||
*
|
||||
|
@ -108,18 +112,20 @@ public class ProjectInfo extends BaseEntity {
|
|||
/**
|
||||
* 添加构造器
|
||||
*/
|
||||
public static ProjectInfo saveBuild(ProjectInfoSaveReq projectInfoSaveReq){
|
||||
public static ProjectInfo saveModelBuild(ProjectAddModel projectAddModel, Supplier<String> createBy){
|
||||
return ProjectInfo.builder()
|
||||
.name(projectInfoSaveReq.getName())
|
||||
.introduction(projectInfoSaveReq.getIntroduction())
|
||||
.mianType(projectInfoSaveReq.getMianType())
|
||||
.parentType(projectInfoSaveReq.getParentType())
|
||||
.type(projectInfoSaveReq.getType())
|
||||
.image(projectInfoSaveReq.getImage())
|
||||
.carouselImages(projectInfoSaveReq.getCarouselImages())
|
||||
.status(projectInfoSaveReq.getStatus())
|
||||
.ruleId(projectInfoSaveReq.getRuleId())
|
||||
.brandId(projectInfoSaveReq.getBrandId())
|
||||
.name(projectAddModel.getName())
|
||||
.introduction(projectAddModel.getIntroduction())
|
||||
.mianType(projectAddModel.getMianType())
|
||||
.parentType(projectAddModel.getParenType())
|
||||
.type(projectAddModel.getType())
|
||||
.image(projectAddModel.getImage())
|
||||
.carouselImages(projectAddModel.getCarouselImages())
|
||||
.status(projectAddModel.getStatus())
|
||||
.ruleId(projectAddModel.getRuleId())
|
||||
.brandId(projectAddModel.getBrandId())
|
||||
.createBy(createBy.get())
|
||||
.createTime(new Date())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -142,4 +148,5 @@ public class ProjectInfo extends BaseEntity {
|
|||
.build();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.muyu.product.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -103,4 +106,15 @@ public class ProjectSkuInfo extends BaseEntity {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static ProjectSkuInfo productSkuModelNuild(ProductSkuModel productSkuModel, Supplier<Long> projectId){
|
||||
return ProjectSkuInfo.builder()
|
||||
.projectId(projectId.get())
|
||||
.sku(productSkuModel.getSku())
|
||||
.image(productSkuModel.getImage())
|
||||
.stock(productSkuModel.getStock())
|
||||
.price(productSkuModel.getPrice())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"品牌":
|
||||
{
|
||||
"id"
|
||||
"品牌中间表"
|
||||
}
|
||||
"轮播图"
|
||||
"名称":
|
||||
"价格"
|
||||
"商品规格"{
|
||||
"规格详情表"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 商品属性 AttrValueModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/3/22
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AttrValueModel {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
private String value;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 商品sku ProductSkuModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/3/22
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProductSkuModel {
|
||||
/**
|
||||
* sku
|
||||
*/
|
||||
@ApiModelProperty(name = "sku",value = "sku",required = true)
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* 商品库存
|
||||
*/
|
||||
@ApiModelProperty(name = "商品库存",value = "商品库存",required = true)
|
||||
private Long stock;
|
||||
|
||||
/**
|
||||
* 商品价格
|
||||
*/
|
||||
@ApiModelProperty(name = "商品价格",value = "商品价格",required = true)
|
||||
private BigDecimal price;
|
||||
|
||||
/*
|
||||
规格图片
|
||||
*/
|
||||
@ApiModelProperty(name = "规格图片",value = "规格图片",required = true)
|
||||
private String image;
|
||||
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
package com.muyu.product.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.ProjectInfo;
|
||||
import com.muyu.product.domain.req.ProjectInfoQueryReq;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 商品添加模型 ProjectAddModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/3/22
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ProjectAddModel extends BaseEntity {
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
@ApiModelProperty(name = "商品名称",value = "商品名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 商品描述
|
||||
*/
|
||||
@ApiModelProperty(name = "商品描述",value = "商品描述")
|
||||
private String introduction;
|
||||
|
||||
/**
|
||||
* 主类型
|
||||
*/
|
||||
@ApiModelProperty(name = "主类型",value = "主类型")
|
||||
private String mianType;
|
||||
|
||||
/**
|
||||
* 父类型
|
||||
*/
|
||||
@ApiModelProperty(name = "父类型",value = "父类型")
|
||||
private String parenType;
|
||||
|
||||
/**
|
||||
* 商品类型
|
||||
*/
|
||||
@ApiModelProperty(name = "商品类型",value = "商品类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 商品图片
|
||||
*/
|
||||
@ApiModelProperty(name = "商品图片",value = "商品图片")
|
||||
private String image;
|
||||
|
||||
/**
|
||||
* 商品轮播图
|
||||
*/
|
||||
@ApiModelProperty(name = "商品轮播图",value = "商品轮播图")
|
||||
private String carouselImages;
|
||||
|
||||
/**
|
||||
* 商品状态
|
||||
*/
|
||||
@ApiModelProperty(name = "商品状态",value = "商品状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 规格
|
||||
*/
|
||||
@ApiModelProperty(name = "规格",value = "规格")
|
||||
private Long ruleId;
|
||||
|
||||
/**
|
||||
* 品牌
|
||||
*/
|
||||
@ApiModelProperty(name = "品牌",value = "品牌")
|
||||
private Long brandId;
|
||||
|
||||
|
||||
private ProductSkuModel productSkuModel;
|
||||
|
||||
|
||||
public static ProjectAddModel queryBuild(ProjectInfo projectInfoQueryReq){
|
||||
return ProjectAddModel.builder()
|
||||
.name(projectInfoQueryReq.getName())
|
||||
.introduction(projectInfoQueryReq.getIntroduction())
|
||||
.mianType(projectInfoQueryReq.getMianType())
|
||||
.parenType(projectInfoQueryReq.getParentType())
|
||||
.type(projectInfoQueryReq.getType())
|
||||
.image(projectInfoQueryReq.getImage())
|
||||
.carouselImages(projectInfoQueryReq.getCarouselImages())
|
||||
.status(projectInfoQueryReq.getStatus())
|
||||
.ruleId(projectInfoQueryReq.getRuleId())
|
||||
.brandId(projectInfoQueryReq.getBrandId())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
*
|
||||
|
@ -39,4 +41,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;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package com.muyu.product.domain.req;
|
||||
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import com.muyu.product.domain.model.ProductSkuModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -8,6 +11,8 @@ import lombok.experimental.SuperBuilder;
|
|||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息对象 project_info
|
||||
*
|
||||
|
@ -22,60 +27,16 @@ import com.muyu.common.core.web.domain.BaseEntity;
|
|||
public class ProjectInfoSaveReq extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键 */
|
||||
|
||||
@ApiModelProperty(name = "主键", value = "主键")
|
||||
private Long id;
|
||||
|
||||
/** 商品名称 */
|
||||
|
||||
@ApiModelProperty(name = "商品名称", value = "商品名称")
|
||||
private String name;
|
||||
|
||||
/** 商品描述 */
|
||||
|
||||
@ApiModelProperty(name = "商品描述", value = "商品描述")
|
||||
private String introduction;
|
||||
|
||||
/** 主类型 */
|
||||
|
||||
@ApiModelProperty(name = "主类型", value = "主类型")
|
||||
private String mianType;
|
||||
|
||||
/** 父类型 */
|
||||
|
||||
@ApiModelProperty(name = "父类型", value = "父类型")
|
||||
private String parentType;
|
||||
|
||||
/** 商品类型 */
|
||||
|
||||
@ApiModelProperty(name = "商品类型", value = "商品类型")
|
||||
private String type;
|
||||
|
||||
/** 商品图片 */
|
||||
|
||||
@ApiModelProperty(name = "商品图片", value = "商品图片")
|
||||
private String image;
|
||||
|
||||
/** 商品轮播图 */
|
||||
|
||||
@ApiModelProperty(name = "商品轮播图", value = "商品轮播图")
|
||||
private String carouselImages;
|
||||
|
||||
/** 商品状态 */
|
||||
|
||||
@ApiModelProperty(name = "商品状态", value = "商品状态")
|
||||
private String status;
|
||||
|
||||
/** 规格 */
|
||||
|
||||
@ApiModelProperty(name = "规格", value = "规格")
|
||||
private Long ruleId;
|
||||
|
||||
/** 品牌 */
|
||||
|
||||
@ApiModelProperty(name = "品牌", value = "品牌")
|
||||
private Long brandId;
|
||||
|
||||
/**
|
||||
* 商品添加基本属性
|
||||
*/
|
||||
private ProjectAddModel projectAddModel;
|
||||
/**
|
||||
* 商品属性
|
||||
*/
|
||||
private List<AttrValueModel> attrValueList;
|
||||
/**
|
||||
* 商品sku
|
||||
*/
|
||||
private List<ProductSkuModel> productSkuList;
|
||||
}
|
||||
|
|
|
@ -98,6 +98,7 @@ public class BrandInfoController extends BaseController {
|
|||
@PutMapping("/{id}")
|
||||
@ApiOperation("修改品牌信息")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody BrandInfoEditReq brandInfoEditReq) {
|
||||
brandInfoService.urikBrand(brandInfoEditReq,id);
|
||||
return toAjax(brandInfoService.updateById(BrandInfo.editBuild(id,brandInfoEditReq)));
|
||||
}
|
||||
|
||||
|
@ -110,6 +111,7 @@ public class BrandInfoController extends BaseController {
|
|||
@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(brandInfoService.removeBatchByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,6 +113,7 @@ public class CategoryInfoController extends BaseController {
|
|||
@PutMapping("/{id}")
|
||||
@ApiOperation("修改品类信息")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) {
|
||||
categoryInfoService.util(id,categoryInfoEditReq);
|
||||
return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoEditReq)));
|
||||
}
|
||||
|
||||
|
@ -125,6 +126,7 @@ public class CategoryInfoController extends BaseController {
|
|||
@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) {
|
||||
categoryInfoService.removeBatchById(ids);
|
||||
return toAjax(categoryInfoService.removeBatchByIds(ids));
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,10 @@ package com.muyu.product.controller;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.product.domain.model.ProductSkuModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import io.swagger.annotations.*;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
@ -71,8 +74,9 @@ public class ProjectInfoController extends BaseController {
|
|||
@RequiresPermissions("product:info:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
|
||||
public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) {
|
||||
return Result.success(projectInfoService.getById(id));
|
||||
public Result<ProjectAddModel> getInfo(@PathVariable("id") Long id) {
|
||||
ProductSkuModel ProductSkuModel= projectInfoService.find(id);
|
||||
return Result.success(projectInfoService.getById1(id,ProductSkuModel));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,7 +87,7 @@ public class ProjectInfoController extends BaseController {
|
|||
@PostMapping
|
||||
@ApiOperation("新增商品信息")
|
||||
public Result<String> add(@RequestBody ProjectInfoSaveReq projectInfoSaveReq) {
|
||||
return toAjax(projectInfoService.save(ProjectInfo.saveBuild(projectInfoSaveReq)));
|
||||
return toAjax(projectInfoService.save(projectInfoSaveReq));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,6 +98,7 @@ public class ProjectInfoController extends BaseController {
|
|||
@PutMapping("/{id}")
|
||||
@ApiOperation("修改商品信息")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) {
|
||||
projectInfoService.util(id,projectInfoEditReq);
|
||||
return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq)));
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.muyu.product.mapper;
|
|||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.product.domain.ProjectSkuInfo;
|
||||
import com.muyu.product.domain.model.ProductSkuModel;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 商品SKUMapper接口
|
||||
|
@ -10,6 +12,8 @@ import com.muyu.product.domain.ProjectSkuInfo;
|
|||
* @author DongZeLiang
|
||||
* @date 2024-02-27
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProjectSkuInfoMapper extends BaseMapper<ProjectSkuInfo> {
|
||||
|
||||
ProductSkuModel find(Long id);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.muyu.product.service;
|
|||
import java.util.List;
|
||||
import com.muyu.product.domain.BrandInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.req.BrandInfoEditReq;
|
||||
|
||||
/**
|
||||
* 品牌信息Service接口
|
||||
|
@ -19,4 +20,5 @@ public interface BrandInfoService extends IService<BrandInfo> {
|
|||
*/
|
||||
public List<BrandInfo> list(BrandInfo brandInfo);
|
||||
|
||||
void urikBrand(BrandInfoEditReq brandInfoEditReq, Long id);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
@ -67,4 +68,8 @@ public interface CategoryInfoService extends IService<CategoryInfo> {
|
|||
* @return 品类共有属性
|
||||
*/
|
||||
CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId);
|
||||
|
||||
Boolean removeBatchById(List<Long> ids);
|
||||
|
||||
void util(Long id, CategoryInfoEditReq categoryInfoEditReq);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,10 @@ 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.ProductSkuModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
|
||||
/**
|
||||
* 商品信息Service接口
|
||||
|
@ -19,4 +23,12 @@ public interface ProjectInfoService extends IService<ProjectInfo> {
|
|||
*/
|
||||
public List<ProjectInfo> list(ProjectInfo projectInfo);
|
||||
|
||||
boolean save(ProjectInfoSaveReq projectInfoSaveReq);
|
||||
|
||||
|
||||
boolean util(Long id, ProjectInfoEditReq projectInfoEditReq);
|
||||
|
||||
ProductSkuModel find(Long id);
|
||||
|
||||
ProjectAddModel getById1(Long id, ProductSkuModel productSkuModel);
|
||||
}
|
||||
|
|
|
@ -9,9 +9,7 @@ import com.muyu.product.domain.AsAttributeGroup;
|
|||
import com.muyu.product.domain.AttributeGroup;
|
||||
import com.muyu.product.domain.AttributeInfo;
|
||||
import com.muyu.product.domain.model.AttributeGroupSaveModel;
|
||||
import com.muyu.product.domain.req.AttributeGroupEditReq;
|
||||
import com.muyu.product.domain.resp.AttributeGroupPageResp;
|
||||
import com.muyu.product.mapper.AsAttributeGroupMapper;
|
||||
import com.muyu.product.mapper.AttributeGroupMapper;
|
||||
import com.muyu.product.service.AsAttributeGroupService;
|
||||
import com.muyu.product.service.AttributeGroupService;
|
||||
|
@ -21,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -110,38 +107,4 @@ public class AttributeGroupServiceImpl extends ServiceImpl<AttributeGroupMapper,
|
|||
);
|
||||
return save;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改属性组
|
||||
* @param attributeGroupEditReq
|
||||
* @param id
|
||||
*/
|
||||
@Override
|
||||
public void updateAsAttributGroup(AttributeGroupEditReq attributeGroupEditReq, Long id) {
|
||||
AsAttributeGroup asAttributeGroup = AsAttributeGroup.buildGroup(id);
|
||||
List<AsAttributeGroup> list = attributeGroupService.list(asAttributeGroup);
|
||||
ArrayList<Long> longs = new ArrayList<>();
|
||||
for (Long aLong : longs) {
|
||||
longs.add(aLong);
|
||||
}
|
||||
|
||||
attributeGroupService.removeBatchByIds(longs);
|
||||
List<Long> attributeIdList = attributeGroupEditReq.getAttributeIdList();
|
||||
attributeGroupService.saveBatch(
|
||||
attributeIdList.stream()
|
||||
.map(aLong -> AsAttributeGroup.buildGroup(
|
||||
id,aLong
|
||||
)).toList()
|
||||
);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private AsAttributeGroupMapper asAttributeGroupMapper;
|
||||
@Override
|
||||
public Boolean removeBatchById(List<Long> ids) {
|
||||
LambdaQueryWrapper<AsAttributeGroup> asAttributeGroupLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
asAttributeGroupLambdaQueryWrapper.in(AsAttributeGroup::getGroupId,ids);
|
||||
asAttributeGroupMapper.delete(asAttributeGroupLambdaQueryWrapper);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.domain.req.BrandInfoEditReq;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.BrandInfoMapper;
|
||||
|
@ -53,6 +54,11 @@ public class BrandInfoServiceImpl extends ServiceImpl<BrandInfoMapper, BrandInfo
|
|||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void urikBrand(BrandInfoEditReq brandInfoEditReq, Long id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean save(BrandInfo entity) {
|
||||
entity.setCreateBy(SecurityUtils.getUsername());
|
||||
|
|
|
@ -10,8 +10,12 @@ 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.AsCategoryAttributeGroupMapper;
|
||||
import com.muyu.product.mapper.AsCategoryAttributeMapper;
|
||||
import com.muyu.product.mapper.AsCategoryBrandMapper;
|
||||
import com.muyu.product.mapper.CategoryInfoMapper;
|
||||
import com.muyu.product.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -372,4 +376,52 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
|
|||
.attributeList(attributeModelList)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private AsCategoryAttributeGroupMapper asCategoryAttributeGroupMapper;
|
||||
@Autowired
|
||||
private AsCategoryAttributeMapper asCategoryAttributeMapper;
|
||||
@Autowired
|
||||
private AsCategoryBrandMapper asCategoryBrandMapper;
|
||||
/**
|
||||
* 删除中间表
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean removeBatchById(List<Long> ids) {
|
||||
//删除品类属性组中间表
|
||||
LambdaQueryWrapper<AsCategoryAttributeGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(AsCategoryAttributeGroup::getAttributeGroupId, ids);
|
||||
asCategoryAttributeGroupMapper.delete(lambdaQueryWrapper);
|
||||
//删除品类属性中间表
|
||||
LambdaQueryWrapper<AsCategoryAttribute> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(AsCategoryAttribute::getAttributeId, ids);
|
||||
asCategoryAttributeMapper.delete(queryWrapper);
|
||||
//删除品类品牌中间
|
||||
LambdaQueryWrapper<AsCategoryBrand> asCategoryBrandLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
asCategoryBrandLambdaQueryWrapper.in(AsCategoryBrand::getBrandId, ids);
|
||||
asCategoryBrandMapper.delete(asCategoryBrandLambdaQueryWrapper);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void util(Long id, CategoryInfoEditReq categoryInfoEditReq) {
|
||||
//品类 属性组
|
||||
AsCategoryAttribute asCategoryAttribute = AsCategoryAttribute.categoryAttribute(id);
|
||||
List<AsCategoryAttribute> list = asCategoryAttributeService.list(asCategoryAttribute);
|
||||
ArrayList<Long> longs = new ArrayList<>();
|
||||
for (AsCategoryAttribute categoryAttribute : list) {
|
||||
longs.add(categoryAttribute.getId());
|
||||
}
|
||||
asCategoryAttributeService.removeBatchByIds(longs);
|
||||
List<Long> attributeGroupIdList = categoryInfoEditReq.getAttributeGroupIdList();
|
||||
asCategoryAttributeService.saveBatch(
|
||||
attributeGroupIdList.stream()
|
||||
.map(aLong -> AsCategoryAttribute.categoryBuild(id,aLong))
|
||||
.toList()
|
||||
);
|
||||
|
||||
AsCategoryAttributeGroup asCategoryAttributeGroup = AsCategoryAttributeGroup.categoryBuild(id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,24 @@
|
|||
package com.muyu.product.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.controller.ProjectInfoController;
|
||||
import com.muyu.product.domain.*;
|
||||
import com.muyu.product.domain.model.AttrValueModel;
|
||||
import com.muyu.product.domain.model.ProductSkuModel;
|
||||
import com.muyu.product.domain.model.ProjectAddModel;
|
||||
import com.muyu.product.domain.req.ProjectInfoEditReq;
|
||||
import com.muyu.product.domain.req.ProjectInfoSaveReq;
|
||||
import com.muyu.product.mapper.ProjectSkuInfoMapper;
|
||||
import com.muyu.product.service.AsProductAttributeInfoService;
|
||||
import com.muyu.product.service.ProjectSkuInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.ProjectInfoMapper;
|
||||
import com.muyu.product.domain.ProjectInfo;
|
||||
import com.muyu.product.service.ProjectInfoService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
@ -20,7 +32,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
@Slf4j
|
||||
@Service
|
||||
public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, ProjectInfo> implements ProjectInfoService {
|
||||
|
||||
@Autowired
|
||||
private AsProductAttributeInfoService asProductAttributeInfoService;
|
||||
@Autowired
|
||||
private ProjectSkuInfoService projectSkuInfoService;
|
||||
/**
|
||||
* 查询商品信息列表
|
||||
*
|
||||
|
@ -78,4 +93,59 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
|
|||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存商品信息
|
||||
* @param projectInfoSaveReq
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean save(ProjectInfoSaveReq projectInfoSaveReq) {
|
||||
ProjectAddModel projectAddModel = projectInfoSaveReq.getProjectAddModel();
|
||||
ProjectInfo projectInfo = ProjectInfo.saveModelBuild(projectAddModel, SecurityUtils::getUsername);
|
||||
boolean save = this.save(projectInfo);
|
||||
if (save){
|
||||
//属性值
|
||||
List<AttrValueModel> attrValueList = projectInfoSaveReq.getAttrValueList();
|
||||
List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
|
||||
.map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId))
|
||||
.toList();
|
||||
if (!asProductAttributeInfoList.isEmpty()){
|
||||
asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
|
||||
}
|
||||
//sku
|
||||
List<ProductSkuModel> productSkuModelList = projectInfoSaveReq.getProductSkuList();
|
||||
List<ProjectSkuInfo> projectSkuInfos = productSkuModelList.stream().map(
|
||||
productSkuModel -> ProjectSkuInfo.productSkuModelNuild(productSkuModel, projectInfo::getId)
|
||||
).toList();
|
||||
if (!productSkuModelList.isEmpty()){
|
||||
projectSkuInfoService.saveBatch(projectSkuInfos);
|
||||
}
|
||||
}
|
||||
return save;
|
||||
}
|
||||
@Override
|
||||
public boolean util(Long id, ProjectInfoEditReq projectInfoEditReq) {
|
||||
|
||||
return false;
|
||||
}
|
||||
@Autowired
|
||||
private ProjectSkuInfoMapper projectSkuInfoMapper;
|
||||
@Override
|
||||
public ProductSkuModel find(Long id) {
|
||||
|
||||
|
||||
return projectSkuInfoMapper.find(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectAddModel getById1(Long id, ProductSkuModel productSkuModel) {
|
||||
|
||||
ProjectInfo byId = this.getById(id);
|
||||
ProjectAddModel projectAddModel = ProjectAddModel.queryBuild(byId);
|
||||
projectAddModel.setProductSkuModel(productSkuModel);
|
||||
return projectAddModel;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,4 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<sql id="selectProjectSkuInfoVo">
|
||||
select id, project_id, sku, stock, price, image, remark, create_by, create_time, update_by, update_time from project_sku_info
|
||||
</sql>
|
||||
<select id="find" resultType="com.muyu.product.domain.model.ProductSkuModel">
|
||||
select * from project_sku_info where id =#{id}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue