master
20300 2024-03-23 13:01:03 +08:00
parent 2672e1cd35
commit 7a3169a969
6 changed files with 91 additions and 47 deletions

View File

@ -126,6 +126,7 @@ public class ProjectInfo extends BaseEntity {
.brandId(projectAddModel.getBrandId()) .brandId(projectAddModel.getBrandId())
.createBy(createBy.get()) .createBy(createBy.get())
.createTime(new Date()) .createTime(new Date())
.id(projectAddModel.getId())
.build(); .build();
} }
@ -135,16 +136,16 @@ public class ProjectInfo extends BaseEntity {
public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){ public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){
return ProjectInfo.builder() return ProjectInfo.builder()
.id(id) .id(id)
.name(projectInfoEditReq.getName()) .name(projectInfoEditReq.getProjectAddModel().getName())
.introduction(projectInfoEditReq.getIntroduction()) .introduction(projectInfoEditReq.getProjectAddModel().getIntroduction())
.mianType(projectInfoEditReq.getMianType()) .mianType(projectInfoEditReq.getProjectAddModel().getMianType())
.parentType(projectInfoEditReq.getParentType()) .parentType(projectInfoEditReq.getProjectAddModel().getParentType())
.type(projectInfoEditReq.getType()) .type(projectInfoEditReq.getProjectAddModel().getType())
.image(projectInfoEditReq.getImage()) .image(projectInfoEditReq.getProjectAddModel().getImage())
.carouselImages(projectInfoEditReq.getCarouselImages()) .carouselImages(projectInfoEditReq.getProjectAddModel().getCarouselImages())
.status(projectInfoEditReq.getStatus()) .status(projectInfoEditReq.getProjectAddModel().getStatus())
.ruleId(projectInfoEditReq.getRuleId()) .ruleId(projectInfoEditReq.getProjectAddModel().getRuleId())
.brandId(projectInfoEditReq.getBrandId()) .brandId(projectInfoEditReq.getProjectAddModel().getBrandId())
.build(); .build();
} }

View File

@ -16,6 +16,7 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class ProjectAddModel extends BaseEntity { public class ProjectAddModel extends BaseEntity {
private Long id;
/** 商品名称 */ /** 商品名称 */
@ApiModelProperty(name = "商品名称", value = "商品名称") @ApiModelProperty(name = "商品名称", value = "商品名称")

View File

@ -1,5 +1,8 @@
package com.muyu.product.domain.req; 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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -8,6 +11,8 @@ import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import java.util.List;
/** /**
* project_info * project_info
* *
@ -23,44 +28,21 @@ public class ProjectInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 商品名称 */
@ApiModelProperty(name = "商品名称", value = "商品名称")
private String name;
/** 商品描述 */
@ApiModelProperty(name = "商品描述", value = "商品描述")
private String introduction;
/** 主类型 */ /**
@ApiModelProperty(name = "主类型", value = "主类型") *
private String mianType; */
private ProjectAddModel projectAddModel;
/** 父类型 */ /**
@ApiModelProperty(name = "父类型", value = "父类型") *
private String parentType; */
private List<AttrValueModel> attrValueList;
/** 商品类型 */ /**
@ApiModelProperty(name = "商品类型", value = "商品类型") * SKu
private String type; */
private List<ProductSkuModel> productSkuList;
/** 商品图片 */
@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;
} }

View File

@ -3,9 +3,9 @@ package com.muyu.product.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.muyu.product.domain.AsBrandProject;
import com.muyu.product.domain.resp.ProjectInfoResp; import com.muyu.product.domain.resp.ProjectInfoResp;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -37,6 +37,7 @@ import com.muyu.common.core.web.page.TableDataInfo;
@Api(tags = "商品信息") @Api(tags = "商品信息")
@RestController @RestController
@RequestMapping("/info") @RequestMapping("/info")
@Slf4j
public class ProjectInfoController extends BaseController { public class ProjectInfoController extends BaseController {
@Autowired @Autowired
private ProjectInfoService projectInfoService; private ProjectInfoService projectInfoService;
@ -98,7 +99,8 @@ public class ProjectInfoController extends BaseController {
@PutMapping("/{id}") @PutMapping("/{id}")
@ApiOperation("修改商品信息") @ApiOperation("修改商品信息")
public Result<String> edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) { public Result<String> edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) {
return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq))); log.error(projectInfoEditReq.toString());
return toAjax(projectInfoService.updateInfo(projectInfoEditReq));
} }
/** /**

View File

@ -3,6 +3,7 @@ package com.muyu.product.service;
import java.util.List; import java.util.List;
import com.muyu.product.domain.ProjectInfo; import com.muyu.product.domain.ProjectInfo;
import com.baomidou.mybatisplus.extension.service.IService; 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.req.ProjectInfoSaveReq;
import com.muyu.product.domain.resp.ProjectInfoResp; import com.muyu.product.domain.resp.ProjectInfoResp;
@ -29,4 +30,6 @@ public interface ProjectInfoService extends IService<ProjectInfo> {
boolean save (ProjectInfoSaveReq projectInfoSaveReq); boolean save (ProjectInfoSaveReq projectInfoSaveReq);
ProjectInfoResp getInfoById(Long id); ProjectInfoResp getInfoById(Long id);
boolean updateInfo(ProjectInfoEditReq projectInfoEditReq);
} }

View File

@ -10,6 +10,7 @@ import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.domain.model.AttrValueModel; import com.muyu.product.domain.model.AttrValueModel;
import com.muyu.product.domain.model.ProductSkuModel; import com.muyu.product.domain.model.ProductSkuModel;
import com.muyu.product.domain.model.ProjectAddModel; 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.domain.req.ProjectInfoSaveReq;
import com.muyu.product.domain.resp.ProjectInfoResp; import com.muyu.product.domain.resp.ProjectInfoResp;
import com.muyu.product.service.AsBrandProjectService; import com.muyu.product.service.AsBrandProjectService;
@ -157,4 +158,58 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
return projectInfoResp; return projectInfoResp;
} }
@Override
public boolean updateInfo(ProjectInfoEditReq projectInfoEditReq) {
ProjectAddModel projectAddModel = projectInfoEditReq.getProjectAddModel();
ProjectInfo projectInfo = ProjectInfo.saveModelBuild(projectAddModel, SecurityUtils::getUsername);
//删除品牌中间表
LambdaQueryWrapper<AsBrandProject> asBrandProjectLambdaQueryWrapper = new LambdaQueryWrapper<>();
asBrandProjectLambdaQueryWrapper.eq(AsBrandProject::getProjectId,projectInfo.getId());
boolean remove = asBrandProjectService.remove(asBrandProjectLambdaQueryWrapper);
if (remove){
log.debug("删除品牌中间表成功");
}
//添加品牌中间表
AsBrandProject asBrandProject = new AsBrandProject(null, projectInfo.getBrandId(), String.valueOf(projectInfo.getId()));
boolean save1 = asBrandProjectService.save(asBrandProject);
//修改商品信息
LambdaQueryWrapper<ProjectInfo> projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectInfoLambdaQueryWrapper.eq(ProjectInfo::getId,projectInfo.getId());
boolean save = this.update(projectInfo,projectInfoLambdaQueryWrapper);
if (save){
//删除属性值
LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId,projectInfo.getId());
asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper);
// 添加属性值
List<AttrValueModel> attrValueList = projectInfoEditReq.getAttrValueList();
List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
.map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId))
.toList();
if (!asProductAttributeInfoList.isEmpty()){
asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
}
// sku ProductSkuModel -》 ProjectSkuInfo
//删除SKU
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,projectInfo.getId());
projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper);
//添加sku
List<ProductSkuModel> productSkuModelList = projectInfoEditReq.getProductSkuList();
List<ProjectSkuInfo> projectSkuInfoList = productSkuModelList.stream().map(
productSkuModel -> ProjectSkuInfo.productSkuModelBuild(productSkuModel, projectInfo::getId)
).toList();
if (!projectSkuInfoList.isEmpty()){
projectSkuInfoService.saveBatch(projectSkuInfoList);
}
}
return save;
}
} }