更新 商品信息修改回显 删除

master
rouchen 2024-03-24 19:05:03 +08:00
parent 5c9f4287d5
commit 9ef7aba9b8
8 changed files with 98 additions and 14 deletions

View File

@ -59,12 +59,14 @@ public class AsProductAttributeInfo extends BaseEntity {
.productId(projectId.get())
.attributeId(attrValueModel.getId())
.value(attrValueModel.getValue())
.productId(projectId.get())
.build();
}
public static AsProductAttributeInfo productAttributeInfo(Long productId){
return AsProductAttributeInfo.builder()
.attributeId(productId)
.productId(productId)
.build();
}
}

View File

@ -26,6 +26,7 @@ import java.util.List;
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ProjectAddModel extends BaseEntity {
private Long id;
/**
*
*/
@ -85,6 +86,11 @@ public class ProjectAddModel extends BaseEntity {
*/
@ApiModelProperty(name = "品牌",value = "品牌")
private Long brandId;
/**
*
*/
@ApiModelProperty(name = "备注",value = "备注")
private String remark;
private List<AsProductAttributeInfo> asProductAttributeInfos;
@ -104,6 +110,7 @@ public class ProjectAddModel extends BaseEntity {
.ruleId(projectInfoQueryReq.getRuleId())
.brandId(projectInfoQueryReq.getBrandId())
.projectSkuInfos(projectSkuInfoList)
.remark(projectInfoQueryReq.getRemark())
.asProductAttributeInfos(asProductAttributeInfoList)
.build();
}

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
*
@ -63,4 +68,9 @@ public class ProjectInfoEditReq extends BaseEntity {
@ApiModelProperty(name = "品牌", value = "品牌")
private Long brandId;
private ProjectAddModel projectAddModel;
private List<AttrValueModel> attrValueList;
private List<ProductSkuModel> productSkuList;
}

View File

@ -99,7 +99,6 @@ public class AttributeGroupController extends BaseController {
@PutMapping("/{id}")
@ApiOperation("修改属性组")
public Result<String> edit(@PathVariable Long id, @RequestBody AttributeGroupEditReq attributeGroupEditReq) {
attributeGroupService.updateAsAttributGroup(attributeGroupEditReq,id);
return toAjax(attributeGroupService.updateById(AttributeGroup.editBuild(id,attributeGroupEditReq)));
}
@ -112,7 +111,6 @@ public class AttributeGroupController 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) {
attributeGroupService.removeBatchById(ids);
return toAjax(attributeGroupService.removeBatchByIds(ids));
}
}

View File

@ -91,14 +91,13 @@ public class ProjectInfoController extends BaseController {
List<AsProductAttributeInfo> list = asProductAttributeInfoService.list(asProductAttributeInfoLambdaQueryWrapper);
ProjectInfo projectInfo = projectInfoService.getById(id);
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,id);
List<ProjectSkuInfo> projectSkuInfos = projectSkuInfoService.list(projectSkuInfoLambdaQueryWrapper);
ProjectAddModel projectAddModel = ProjectAddModel.queryBuild(projectInfo,
list, projectSkuInfos
);
projectAddModel.setId(id);
return Result.success(projectAddModel);
}
@ -121,8 +120,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)));
return toAjax(projectInfoService.updateInfo(projectInfoEditReq));
}
/**
@ -134,6 +132,7 @@ public class ProjectInfoController 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) {
projectInfoService.del(ids);
return toAjax(projectInfoService.removeBatchByIds(ids));
}
}

View File

@ -40,7 +40,5 @@ public interface AttributeGroupService extends IService<AttributeGroup> {
*/
public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel);
void updateAsAttributGroup(AttributeGroupEditReq attributeGroupEditReq, Long id);
Boolean removeBatchById(List<Long> ids);
}

View File

@ -26,7 +26,7 @@ public interface ProjectInfoService extends IService<ProjectInfo> {
boolean save(ProjectInfoSaveReq projectInfoSaveReq);
boolean updateInfo(ProjectInfoEditReq projectInfoEditReq);
boolean del(List<Long> ids);
}

View File

@ -13,14 +13,11 @@ import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
import com.muyu.product.mapper.CategoryInfoMapper;
import com.muyu.product.mapper.ProjectSkuInfoMapper;
import com.muyu.product.service.AsProductAttributeInfoService;
import com.muyu.product.service.CategoryInfoService;
import com.muyu.product.service.ProjectSkuInfoService;
import com.muyu.product.service.*;
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.service.ProjectInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -125,8 +122,81 @@ public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, Proje
}
return save;
}
@Autowired
private AsBrandProjectService asBrandProjectService;
@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, projectInfoEditReq.getProjectAddModel().getId());
boolean remove = asBrandProjectService.remove(asBrandProjectLambdaQueryWrapper);
if (remove) {
log.debug("删除中间表成功");
}
AsBrandProject asBrandProject = new AsBrandProject(null, projectInfo.getBrandId(), String.valueOf(projectInfoEditReq.getProjectAddModel().getId()));
boolean save1 = asBrandProjectService.save(asBrandProject);
LambdaQueryWrapper<ProjectInfo> projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectInfoLambdaQueryWrapper.eq(ProjectInfo::getId, projectInfoEditReq.getProjectAddModel().getId());
boolean save = this.update(projectInfo, projectInfoLambdaQueryWrapper);
if (save) {
//删除属性值
LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId, projectInfoEditReq.getProjectAddModel().getId());
asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper);
// 添加属性值
List<AttrValueModel> attrValueList = projectInfoEditReq.getAttrValueList();
List<AsProductAttributeInfo> asProductAttributeInfoList = attrValueList.stream()
.map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfoEditReq.getProjectAddModel()::getId))
.toList();
if (!asProductAttributeInfoList.isEmpty()) {
asProductAttributeInfoService.saveBatch(asProductAttributeInfoList);
}
// sku ProductSkuModel -》 ProjectSkuInfo
//删除SKU
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId, projectInfoEditReq.getProjectAddModel().getId());
projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper);
//添加sku
List<ProductSkuModel> productSkuModelList = projectInfoEditReq.getProductSkuList();
List<ProjectSkuInfo> projectSkuInfoList = productSkuModelList.stream().map(
productSkuModel -> ProjectSkuInfo.productSkuModelNuild(productSkuModel, projectInfoEditReq.getProjectAddModel()::getId)
).toList();
if (!projectSkuInfoList.isEmpty()) {
projectSkuInfoService.saveBatch(projectSkuInfoList);
}
}
return save;
}
@Override
public boolean del(List<Long> ids) {
LambdaQueryWrapper<ProjectInfo> projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectInfoLambdaQueryWrapper.in(ProjectInfo::getId,ids );
boolean remove = this.remove(projectInfoLambdaQueryWrapper);
if (remove){
LambdaQueryWrapper<ProjectSkuInfo> projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectSkuInfoLambdaQueryWrapper.in(ProjectSkuInfo::getProjectId, ids);
List<ProjectSkuInfo> list = projectSkuInfoService.list(projectSkuInfoLambdaQueryWrapper);
boolean b = projectSkuInfoService.removeBatchByIds(list);
if (b){
LambdaQueryWrapper<AsProductAttributeInfo> asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
asProductAttributeInfoLambdaQueryWrapper.in(AsProductAttributeInfo::getProductId, ids);
List<AsProductAttributeInfo> list1 = asProductAttributeInfoService.list(asProductAttributeInfoLambdaQueryWrapper);
asProductAttributeInfoService.removeBatchByIds(list1);
return true;
}
}
return false;
}
}