2024-11-14(属性组 商品规格)
parent
50c1706b77
commit
c4464794cc
|
@ -62,6 +62,8 @@ public class CategoryInfo extends TreeEntity {
|
|||
@ApiModelProperty(name = "介绍", value = "介绍")
|
||||
private String introduction;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询构造器
|
||||
*/
|
||||
|
|
|
@ -55,7 +55,6 @@ public class RuleAttrInfo extends BaseEntity {
|
|||
@Excel(name = "规格值")
|
||||
@ApiModelProperty(name = "规格值", value = "规格值")
|
||||
private String attrValue;
|
||||
|
||||
/**
|
||||
* 查询构造器
|
||||
*/
|
||||
|
|
|
@ -51,6 +51,10 @@ public class RuleInfo extends BaseEntity {
|
|||
@ApiModelProperty(name = "规格状态", value = "规格状态")
|
||||
private String status;
|
||||
|
||||
/** 规格状态 */
|
||||
@Excel(name = "规格描述")
|
||||
@ApiModelProperty(name = "规格描述", value = "规格描述")
|
||||
private String remark;
|
||||
/**
|
||||
* 查询构造器
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.muyu.product.domain.req;
|
||||
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
@ -7,6 +8,9 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.experimental.SuperBuilder;
|
||||
import io.swagger.annotations.*;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import org.springframework.beans.PropertyValues;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品规格对象 rule_info
|
||||
|
@ -30,5 +34,9 @@ public class RuleInfoEditReq extends BaseEntity {
|
|||
/** 规格状态 */
|
||||
@ApiModelProperty(name = "规格状态", value = "规格状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 规格子集
|
||||
*/
|
||||
@ApiModelProperty(name = "规格子集", value = "规格子集")
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
/**
|
||||
* 规格修改
|
||||
*/
|
||||
public class RuleInfoUpdResp {
|
||||
/** 主键 */
|
||||
private Long id;
|
||||
|
||||
/** 规格名称 */
|
||||
private String name;
|
||||
|
||||
/** 规格状态 */
|
||||
private String status;
|
||||
/** 规格描述*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 规格子集
|
||||
*/
|
||||
private List<RuleAttrAddModel> ruleAttrList;
|
||||
}
|
|
@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import com.muyu.common.core.text.Convert;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import com.muyu.product.domain.resp.RuleInfoUpdResp;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -77,8 +78,8 @@ public class RuleInfoController extends BaseController {
|
|||
@RequiresPermissions("product:rule:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
|
||||
public Result<RuleInfo> getInfo(@PathVariable("id") Long id) {
|
||||
return Result.success(ruleInfoService.getById(id));
|
||||
public Result<RuleInfoUpdResp> getInfo(@PathVariable("id") Long id) {
|
||||
return Result.success(ruleInfoService.getUpdById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,7 +101,7 @@ public class RuleInfoController extends BaseController {
|
|||
@PutMapping("/{id}")
|
||||
@ApiOperation("修改商品规格")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody RuleInfoEditReq ruleInfoEditReq) {
|
||||
return toAjax(ruleInfoService.updateById(RuleInfo.editBuild(id,ruleInfoEditReq)));
|
||||
return toAjax(ruleInfoService.updateGoodsSpecifications(id,ruleInfoEditReq));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -6,8 +6,10 @@ import com.muyu.common.core.web.page.TableDataInfo;
|
|||
import com.muyu.product.domain.RuleInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.req.RuleInfoEditReq;
|
||||
import com.muyu.product.domain.req.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import com.muyu.product.domain.resp.RuleInfoUpdResp;
|
||||
|
||||
/**
|
||||
* 商品规格Service接口
|
||||
|
@ -32,4 +34,20 @@ public interface RuleInfoService extends IService<RuleInfo> {
|
|||
public boolean save(RuleInfoAddModel ruleInfoAddModel);
|
||||
|
||||
TableDataInfo<RuleInfoResp> queryList (RuleInfoQueryReq ruleInfoQueryReq);
|
||||
|
||||
/**
|
||||
* 回显 (吴彦祖)
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
RuleInfoUpdResp getUpdById(Long id);
|
||||
|
||||
/**
|
||||
* 修改(吴彦祖)
|
||||
* @param id
|
||||
* @param ruleInfoEditReq
|
||||
* @return
|
||||
*/
|
||||
|
||||
boolean updateGoodsSpecifications(Long id, RuleInfoEditReq ruleInfoEditReq);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
|
@ -15,8 +16,10 @@ import com.muyu.common.security.utils.SecurityUtils;
|
|||
import com.muyu.product.domain.RuleAttrInfo;
|
||||
import com.muyu.product.domain.model.RuleAttrAddModel;
|
||||
import com.muyu.product.domain.model.RuleInfoAddModel;
|
||||
import com.muyu.product.domain.req.RuleInfoEditReq;
|
||||
import com.muyu.product.domain.req.RuleInfoQueryReq;
|
||||
import com.muyu.product.domain.resp.RuleInfoResp;
|
||||
import com.muyu.product.domain.resp.RuleInfoUpdResp;
|
||||
import com.muyu.product.service.RuleAttrInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -51,6 +54,7 @@ public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo>
|
|||
LambdaQueryWrapper<RuleInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
|
||||
|
||||
if (ObjUtils.notNull(ruleInfo.getName())){
|
||||
queryWrapper.like(RuleInfo::getName, ruleInfo.getName());
|
||||
}
|
||||
|
@ -79,7 +83,8 @@ public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo>
|
|||
boolean save = this.save(ruleInfo);
|
||||
ruleAttrInfoService.saveBatch(
|
||||
ruleInfoAddModel.getRuleAttrList().stream()
|
||||
.map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, ruleInfo::getId, SecurityUtils::getUsername))
|
||||
.map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel, ruleInfo::getId,
|
||||
SecurityUtils::getUsername))
|
||||
.toList()
|
||||
);
|
||||
return save;
|
||||
|
@ -107,4 +112,56 @@ public class RuleInfoServiceImpl extends ServiceImpl<RuleInfoMapper, RuleInfo>
|
|||
.total(isPage ? new PageInfo<>(list).getTotal() : 0)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品规格 回显(wyz)
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RuleInfoUpdResp getUpdById(Long id) {
|
||||
RuleInfo ruleInfo = this.getById(id);
|
||||
//查询规格
|
||||
LambdaQueryWrapper<RuleAttrInfo> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(RuleAttrInfo::getRuleId ,ruleInfo.getId());
|
||||
|
||||
|
||||
List<RuleAttrInfo> infoList = this.ruleAttrInfoService.list(wrapper);
|
||||
return RuleInfoUpdResp.builder()
|
||||
.id(ruleInfo.getId())
|
||||
.name(ruleInfo.getName())
|
||||
.status(ruleInfo.getStatus())
|
||||
.ruleAttrList(infoList.stream().map(RuleAttrAddModel::infoBuild).toList())
|
||||
.remark(ruleInfo.getRemark())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 商品规格 修改(wyz)
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean updateGoodsSpecifications(Long id, RuleInfoEditReq ruleInfoEditReq) {
|
||||
|
||||
//修改
|
||||
boolean update = this.updateById(RuleInfo.editBuild(id, ruleInfoEditReq));
|
||||
if (update){
|
||||
LambdaQueryWrapper<RuleAttrInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RuleAttrInfo::getRuleId,id);
|
||||
//删除
|
||||
this.ruleAttrInfoService.remove(queryWrapper);
|
||||
//添加
|
||||
ruleAttrInfoService.saveBatch(
|
||||
ruleInfoEditReq.getRuleAttrList().stream()
|
||||
.map(ruleAttrAddModel -> RuleAttrInfo.addModelBuild(ruleAttrAddModel,
|
||||
() -> id,
|
||||
SecurityUtils::getUsername))
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
|
||||
return update;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue