商品规格回显

master
rouchen 2024-03-21 16:47:58 +08:00
parent 106eac1803
commit 55bb4bc9e6
23 changed files with 449 additions and 110 deletions

View File

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

View File

@ -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 () {

View File

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

View File

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

View File

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

View File

@ -0,0 +1,13 @@
{
"品牌":
{
"id"
"品牌中间表"
}
"轮播图"
"名称":
"价格"
"商品规格"{
"规格详情表"
}
}

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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