修改商品信息

cloud-server
刘河平 2024-11-18 17:23:41 +08:00
parent 0c740780d8
commit de0bc16a1c
12 changed files with 274 additions and 18 deletions

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.product.domain.base.CategoryBase;
import com.muyu.product.domain.model.TemplateAttributeGroupModel;
import com.muyu.product.domain.model.TemplateAttributeModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -13,6 +15,8 @@ import io.swagger.annotations.*;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import java.util.List;
/**
* as_category_attribute_group
*

View File

@ -1,6 +1,7 @@
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;
@ -35,21 +36,62 @@ public class AttributeInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 属性编号 */
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(name = "属性编号", value = "属性编号")
private Long id;
/** 属性编码 */
/**
*
*/
@Excel(name = "属性编码")
@ApiModelProperty(name = "属性编码", value = "属性编码", required = true)
private String code;
/** 属性名 */
/**
*
*/
@Excel(name = "属性名")
@ApiModelProperty(name = "属性名", value = "属性名", required = true)
private String name;
/**
*
*/
@Excel(name = "创建人")
@ApiModelProperty(name = "创建人", value = "创建人", required = true)
private String createBy;
/**
*
*/
@Excel(name = "创建时间")
@ApiModelProperty(name = "创建时间", value = "创建时间", required = true)
private Date createTime;
/**
*
*/
@Excel(name = "更新人")
@ApiModelProperty(name = "更新人", value = "更新人", required = true)
private String updateBy;
/**
*
*/
@Excel(name = "更新时间")
@ApiModelProperty(name = "更新时间", value = "更新时间", required = true)
private Date updateTime;
/**
*
*/
@Excel(name = "备注")
@ApiModelProperty(name = "备注", value = "备注", required = true)
private String remark;
public TemplateAttributeModel buildTemplateModel() {
return TemplateAttributeModel.builder()
@ -64,8 +106,14 @@ public class AttributeInfo extends BaseEntity {
*/
public static AttributeInfo queryBuild(AttributeInfoQueryReq attributeInfoQueryReq) {
return AttributeInfo.builder()
.id(attributeInfoQueryReq.getId())
.name(attributeInfoQueryReq.getName())
.code(attributeInfoQueryReq.getCode())
.createBy(attributeInfoQueryReq.getCreateBy())
.updateBy(attributeInfoQueryReq.getUpdateBy())
.createTime(attributeInfoQueryReq.getCreateTime())
.updateTime(attributeInfoQueryReq.getUpdateTime())
.remark(attributeInfoQueryReq.getRemark())
.build();
}
@ -74,8 +122,14 @@ public class AttributeInfo extends BaseEntity {
*/
public static AttributeInfo saveBuild(AttributeInfoSaveReq attributeInfoSaveReq) {
return AttributeInfo.builder()
.id(attributeInfoSaveReq.getId())
.name(attributeInfoSaveReq.getName())
.code(attributeInfoSaveReq.getCode())
.createBy(attributeInfoSaveReq.getCreateBy())
.updateBy(attributeInfoSaveReq.getUpdateBy())
.createTime(attributeInfoSaveReq.getCreateTime())
.updateTime(attributeInfoSaveReq.getUpdateTime())
.remark(attributeInfoSaveReq.getRemark())
.build();
}
@ -87,6 +141,11 @@ public class AttributeInfo extends BaseEntity {
.id(id)
.name(attributeInfoEditReq.getName())
.code(attributeInfoEditReq.getCode())
.createBy(attributeInfoEditReq.getCreateBy())
.updateBy(attributeInfoEditReq.getUpdateBy())
.createTime(attributeInfoEditReq.getCreateTime())
.updateTime(attributeInfoEditReq.getUpdateTime())
.remark(attributeInfoEditReq.getRemark())
.build();
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.product.domain.model.ProjectAddModel;
import com.muyu.product.domain.model.TemplateAttributeGroupModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -17,6 +18,7 @@ import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.common.core.web.domain.BaseEntity;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**

View File

@ -1,10 +1,14 @@
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.ProjectInfoEditReq;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
* @author DongZl
* @description:
@ -57,4 +61,28 @@ public class ProjectAddModel extends BaseEntity {
/** 品牌 */
@ApiModelProperty(name = "品牌", value = "品牌")
private Long brandId;
/**
*
*/
public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){
return ProjectInfo.builder()
.id(id)
.name(projectInfoEditReq.getName())
.introduction(projectInfoEditReq.getIntroduction())
.mianType(projectInfoEditReq.getMianType())
.parentType(projectInfoEditReq.getParentType())
.type(projectInfoEditReq.getType())
.image(projectInfoEditReq.getImage())
.carouselImages(projectInfoEditReq.getCarouselImages())
.status(projectInfoEditReq.getStatus())
.ruleId(projectInfoEditReq.getRuleId())
.brandId(projectInfoEditReq.getBrandId())
.remark(projectInfoEditReq.getRemark())
.updateBy(projectInfoEditReq.getUpdateBy())
.createTime(new Date())
.createBy(projectInfoEditReq.getCreateBy())
.updateTime(new Date())
.build();
}
}

View File

@ -0,0 +1,14 @@
package com.muyu.product.domain.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectModel {
private Long id;
private String value;
}

View File

@ -0,0 +1,36 @@
package com.muyu.product.domain.model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectSkuModel {
/** 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

@ -2,6 +2,7 @@ package com.muyu.product.domain.req;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -37,4 +38,29 @@ public class AttributeInfoEditReq extends BaseEntity {
private String code;
/** 属性编码 */
@Excel(name = "创建人")
@ApiModelProperty(name = "创建人", value = "创建人", required = true)
private String createBy;
/** 属性名 */
@Excel(name = "创建时间")
@ApiModelProperty(name = "创建时间", value = "创建时间", required = true)
private Date createTime;
/** 属性编码 */
@Excel(name = "更新人")
@ApiModelProperty(name = "更新人", value = "更新人", required = true)
private String updateBy;
/** 属性名 */
@Excel(name = "更新时间")
@ApiModelProperty(name = "更新时间", value = "更新时间", required = true)
private Date updateTime;
/** 属性名 */
@Excel(name = "备注")
@ApiModelProperty(name = "备注", value = "备注", required = true)
private String remark;
}

View File

@ -24,6 +24,7 @@ import com.muyu.common.core.web.domain.BaseEntity;
public class AttributeInfoQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
private Long id;
/** 属性名 */
@ApiModelProperty(name = "属性名", value = "属性名")

View File

@ -1,5 +1,8 @@
package com.muyu.product.domain.req;
import com.muyu.product.domain.model.ProjectAddModel;
import com.muyu.product.domain.model.ProjectModel;
import com.muyu.product.domain.model.ProjectSkuModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -64,6 +67,8 @@ public class ProjectInfoEditReq extends BaseEntity {
/** 品牌 */
@ApiModelProperty(name = "品牌", value = "品牌")
private Long brandId;
private List<Long> productSkuList;
private ProjectAddModel projectAddModel;
private List<ProjectModel> attrValueList;
private List<ProjectSkuModel> productSkuList;
}

View File

@ -4,8 +4,13 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.muyu.product.cache.ProjectInfoCache;
import com.muyu.product.domain.BrandInfo;
import com.muyu.product.domain.RuleInfo;
import com.muyu.product.domain.resp.ProjectDetailResp;
import com.muyu.product.service.BrandInfoService;
import com.muyu.product.service.RuleInfoService;
import io.swagger.annotations.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -42,7 +47,10 @@ public class ProjectInfoController extends BaseController {
private ProjectInfoService projectInfoService;
@Autowired
private ProjectInfoCache projectInfoCache;
private BrandInfoService brandInfoService;
@Autowired
private RuleInfoService ruleInfoService;
/**
*
@ -78,6 +86,10 @@ public class ProjectInfoController extends BaseController {
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) {
ProjectInfo serviceById = projectInfoService.getById(id);
BrandInfo brandInfo = brandInfoService.getById(serviceById.getBrandId());
// BeanUtils.copyProperties(brandInfo,serviceById);
RuleInfo ruleInfo = ruleInfoService.getById(serviceById.getRuleId());
// BeanUtils.copyProperties(ruleInfo,serviceById);
return Result.success(serviceById);
}
@ -122,7 +134,8 @@ public class ProjectInfoController extends BaseController {
@PutMapping("/{id}")
@ApiOperation("修改商品信息")
public Result<String> edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) {
return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq)));
// return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq)));
return projectInfoService.updProject(id, projectInfoEditReq);
}
/**

View File

@ -1,8 +1,11 @@
package com.muyu.product.service;
import java.util.List;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
import com.muyu.product.domain.resp.ProjectDetailResp;
@ -34,4 +37,12 @@ public interface ProjectInfoService extends IService<ProjectInfo> {
* @return
*/
ProjectDetailResp getDetailInfo (Long id);
/**
*
* @param id
* @param projectInfoEditReq
* @return
*/
Result updProject(Long id, ProjectInfoEditReq projectInfoEditReq);
}

View File

@ -2,22 +2,29 @@ package com.muyu.product.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.*;
import com.muyu.product.domain.model.*;
import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
import com.muyu.product.domain.resp.CategoryCommonElementResp;
import com.muyu.product.domain.resp.ProjectDetailResp;
import com.muyu.product.service.*;
import io.netty.util.internal.StringUtil;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.util.CollectionUtils;
/**
* Service
@ -229,4 +236,54 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
.attributeGroupList(templateAttributeGroupList)
.build();
}
/**
*
* @param id
* @param projectInfoEditReq
* @return
*/
@Override
public Result updProject(Long id, ProjectInfoEditReq projectInfoEditReq) {
this.updateById(ProjectAddModel.editBuild(id,projectInfoEditReq));
if(!CollectionUtils.isEmpty(projectInfoEditReq.getAttrValueList())){
List<AttributeInfo> attributeInfos = projectInfoEditReq.getAttrValueList().stream()
.filter(projectModel->!StringUtils.isBlank(projectModel.getValue()))
.map(item -> {
AttributeInfo attributeInfo = AttributeInfo.builder()
.id(item.getId())
.name(item.getValue())
.build();
return attributeInfo;
}).toList();
//批量修改
attributeInfoService.updateBatchById(attributeInfos);
}
if(!CollectionUtils.isEmpty(projectInfoEditReq.getProductSkuList())){
List<ProjectSkuInfo> skuInfoList = projectInfoEditReq.getProductSkuList().stream()
.map(projectSkuInfoModel -> {
ProjectSkuInfo projectSkuInfo = ProjectSkuInfo.builder()
.sku(projectSkuInfoModel.getSku())
.image(projectSkuInfoModel.getImage())
.stock(projectSkuInfoModel.getStock())
.price(projectSkuInfoModel.getPrice())
.build();
return projectSkuInfo;
}).toList();
skuInfoList.forEach(projectSkuInfoModel -> {
LambdaUpdateWrapper<ProjectSkuInfo> wrapper = new LambdaUpdateWrapper<>();
if(!StringUtils.isBlank(projectSkuInfoModel.getImage())){
wrapper.set(ProjectSkuInfo::getImage,projectSkuInfoModel.getImage());
}
wrapper.set(ProjectSkuInfo::getStock,projectSkuInfoModel.getStock());
wrapper.set(ProjectSkuInfo::getPrice,projectSkuInfoModel.getPrice());
wrapper.eq(ProjectSkuInfo::getSku, projectSkuInfoModel.getSku());
projectSkuInfoService.update(null,wrapper);
});
}
return Result.success(null,"修改成功");
}
}