master
parent
2672e1cd35
commit
7a3169a969
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 = "商品名称")
|
||||||
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue