提交 eedd79cb 作者: xiaowang

修改:商城规格详情及编辑

上级 58b7c127
package com.mmc.pms.dao.mall; package com.mmc.pms.dao.mall;
import com.mmc.pms.entity.SkuUnitDO;
import com.mmc.pms.entity.mall.*; import com.mmc.pms.entity.mall.*;
import com.mmc.pms.model.mall.MallGoodsVO; import com.mmc.pms.model.mall.MallGoodsVO;
import com.mmc.pms.model.mall.SpecAttrVO;
import com.mmc.pms.model.sale.qo.MallGoodsInfoQO; import com.mmc.pms.model.sale.qo.MallGoodsInfoQO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -21,34 +21,16 @@ public interface MallGoodsDao { ...@@ -21,34 +21,16 @@ public interface MallGoodsDao {
void insertMallGoodsBaseInfo(MallGoodsDO mallGoodsDO); void insertMallGoodsBaseInfo(MallGoodsDO mallGoodsDO);
void insertGoodsSpec(GoodsSpecDO goodsSpecDO);
void batchInsertSpecValues(List<GoodsSpecValuesDO> goodsSpecValuesList);
void batchInsertMallGoodsResources(List<MallGoodsResourcesDO> mallGoodsResourcesList); void batchInsertMallGoodsResources(List<MallGoodsResourcesDO> mallGoodsResourcesList);
MallGoodsDO getMallGoodsBaseInfo(Integer id); MallGoodsDO getMallGoodsBaseInfo(Integer id);
List<MallGoodsResourcesDO> getMallGoodsResources(Integer id); List<MallGoodsResourcesDO> getMallGoodsResources(Integer id);
List<GoodsSpecDO> getMallGoodsSpec(Integer id);
List<GoodsSpecValuesDO> getMallGoodsSpecValues(List<Integer> ids);
void updateMallGoods(@Param("mallGoodsDO") MallGoodsDO mallGoodsDO); void updateMallGoods(@Param("mallGoodsDO") MallGoodsDO mallGoodsDO);
void deleteMallGoodsResources(Integer id); void deleteMallGoodsResources(Integer id);
void deleteGoodsSpec(List<Integer> deleteSpec);
void updateGoodsSpec(GoodsSpecDO goodsSpecDO);
void deleteGoodsSpecValues(List<Integer> deleteSpecValueId);
void updateGoodsSpecValue(GoodsSpecValuesDO goodsSpecValuesDO);
List<SkuUnitDO> getSkuUnit();
int countListMallGoods(MallGoodsInfoQO param); int countListMallGoods(MallGoodsInfoQO param);
List<MallGoodsDO> listMallGoods(MallGoodsInfoQO param); List<MallGoodsDO> listMallGoods(MallGoodsInfoQO param);
...@@ -61,7 +43,25 @@ public interface MallGoodsDao { ...@@ -61,7 +43,25 @@ public interface MallGoodsDao {
void feignRemoveGoodsByBackUserAccountId(Integer id); void feignRemoveGoodsByBackUserAccountId(Integer id);
void batchInsertSpecAttr(List<SpecAttrDO> list); void batchInsertSpecAttr(List<SpecAttrValueDO> list);
void batchInsertPriceStock(List<PriceStockDO> list); void batchInsertPriceStock(List<PriceStockDO> list);
List<SpecAttrDO> listSpecAttr(Integer id);
List<PriceStockDO> listPriceStock(Integer id);
void insertSpecAttr(SpecAttrDO specAttrDO);
List<SpecAttrValueDO> listSpecAttrValue(List<Integer> specIds);
void deleteMallPriceStock(Integer id);
void deleteSpecAttr(List<Integer> delIds);
void updateSpecAttr(SpecAttrVO specAttrVO);
void deleteSpecAttrValue(List<Integer> delValueIds);
void updateSpecAttrValue(SpecAttrVO attrVO);
} }
...@@ -94,7 +94,7 @@ public class MallGoodsDO implements Serializable { ...@@ -94,7 +94,7 @@ public class MallGoodsDO implements Serializable {
public MallGoodsVO buildMallGoodsVO() { public MallGoodsVO buildMallGoodsVO() {
return MallGoodsVO.builder().id(id).userAccountId(userAccountId).tradeName(tradeName).description(description) return MallGoodsVO.builder().id(id).userAccountId(userAccountId).tradeName(tradeName).description(description)
.categoryPrimaryId(categoryPrimaryId).categorySubId(categorySubId).shelfStatus(shelfStatus) .categoryPrimaryId(categoryPrimaryId).categorySubId(categorySubId).shelfStatus(shelfStatus)
.goodsLabel(goodsLabel).labelShow(labelShow).goodsDetails(goodsDetails).build(); .goodsLabel(goodsLabel).labelShow(labelShow).createTime(createTime).goodsDetails(goodsDetails).build();
} }
public MallGoodsVO buildListMallGoodsVO() { public MallGoodsVO buildListMallGoodsVO() {
......
...@@ -64,5 +64,10 @@ public class PriceStockDO implements Serializable { ...@@ -64,5 +64,10 @@ public class PriceStockDO implements Serializable {
this.stock = param.getStock(); this.stock = param.getStock();
this.skuNo = param.getSkuNo(); this.skuNo = param.getSkuNo();
} }
public PriceStockVO buildPriceStockVO() {
return PriceStockVO.builder().id(id).productSpec(productSpec).salePrice(salePrice)
.skuImage(skuImage).channelPrice(channelPrice).stock(stock).skuNo(skuNo).build();
}
} }
package com.mmc.pms.entity.mall; package com.mmc.pms.entity.mall;
import com.mmc.pms.model.mall.SpecAttrVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -28,13 +29,14 @@ public class SpecAttrDO implements Serializable { ...@@ -28,13 +29,14 @@ public class SpecAttrDO implements Serializable {
* 规格名称 * 规格名称
*/ */
private String specName; private String specName;
/**
* 规格值名称
*/
private String specValueName;
private Date createTime; private Date createTime;
private Date updateTime; private Date updateTime;
public SpecAttrVO buildSpecAttr() {
return SpecAttrVO.builder().id(id).specName(specName).build();
}
} }
package com.mmc.pms.entity.mall;
import com.mmc.pms.model.mall.SpecAttrVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 规格属性表(SpecAttrDO)实体类
*
* @author makejava
* @since 2023-08-08 14:30:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SpecAttrValueDO implements Serializable {
private static final long serialVersionUID = -59237014539007263L;
private Integer id;
/**
* 商品id
*/
private Integer specAttrId;
/**
* 规格值名称
*/
private String specValueName;
private Date createTime;
public SpecAttrValueDO(SpecAttrVO specAttrVO) {
specAttrId = specAttrVO.getId();
specValueName = specAttrVO.getSpecName();
}
public SpecAttrVO buildSpecAttr() {
return SpecAttrVO.builder().id(id).specName(specValueName).build();
}
}
...@@ -59,10 +59,6 @@ public class MallGoodsVO { ...@@ -59,10 +59,6 @@ public class MallGoodsVO {
private Integer labelShow; private Integer labelShow;
@ApiModelProperty(value = "规格") @ApiModelProperty(value = "规格")
@NotEmpty(message = "规格不能为空")
private List<GoodsSpecVO> goodsSpecList;
@ApiModelProperty(value = "规格")
@NotEmpty(message = "规格不能为空", groups = {Update.class, Create.class}) @NotEmpty(message = "规格不能为空", groups = {Update.class, Create.class})
private List<SpecAttrVO> specAttrList; private List<SpecAttrVO> specAttrList;
......
...@@ -22,7 +22,6 @@ import javax.annotation.Resource; ...@@ -22,7 +22,6 @@ import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -49,26 +48,32 @@ public class MallGoodsServiceImpl implements MallGoodsService { ...@@ -49,26 +48,32 @@ public class MallGoodsServiceImpl implements MallGoodsService {
// 将商品图片等资源存入数据库中 // 将商品图片等资源存入数据库中
insertMallGoodsResources(mallGoodsVO, mallGoodsDO.getId()); insertMallGoodsResources(mallGoodsVO, mallGoodsDO.getId());
// 将商品规格存入数据库 // 将商品规格存入数据库
// insertMallGoodsSpec(mallGoodsVO.getGoodsSpecList(), mallGoodsDO.getId());
addMallGoodsSpec(mallGoodsVO.getSpecAttrList(), mallGoodsDO.getId(), mallGoodsVO.getPriceStock()); addMallGoodsSpec(mallGoodsVO.getSpecAttrList(), mallGoodsDO.getId(), mallGoodsVO.getPriceStock());
return ResultBody.success(); return ResultBody.success();
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void addMallGoodsSpec(List<SpecAttrVO> specAttrList, Integer id, List<PriceStockVO> priceStock) { public void addMallGoodsSpec(List<SpecAttrVO> specAttrList, Integer id, List<PriceStockVO> priceStock) {
List<SpecAttrDO> list = specAttrList.stream() if (CollectionUtils.isNotEmpty(specAttrList)) {
.flatMap(specAttrVO -> specAttrVO.getSpecValuesList().stream() for (SpecAttrVO specAttrVO : specAttrList) {
.map(attrVO -> { SpecAttrDO specAttrDO = new SpecAttrDO();
SpecAttrDO specAttrDO = new SpecAttrDO(); specAttrDO.setMallGoodsId(id);
specAttrDO.setMallGoodsId(id); specAttrDO.setSpecName(specAttrVO.getSpecName());
specAttrDO.setSpecName(specAttrVO.getSpecName()); mallGoodsDao.insertSpecAttr(specAttrDO);
specAttrDO.setSpecValueName(attrVO.getSpecName()); List<SpecAttrVO> specValuesList = specAttrVO.getSpecValuesList();
return specAttrDO; List<SpecAttrValueDO> list = specValuesList.stream().map(d -> {
})) SpecAttrValueDO specAttrValueDO = new SpecAttrValueDO();
.collect(Collectors.toList()); specAttrValueDO.setSpecValueName(d.getSpecName());
mallGoodsDao.batchInsertSpecAttr(list); specAttrValueDO.setSpecAttrId(specAttrDO.getId());
List<PriceStockDO> priceStockDOList = priceStock.stream().map(d -> new PriceStockDO(d, id)).collect(Collectors.toList()); return specAttrValueDO;
mallGoodsDao.batchInsertPriceStock(priceStockDOList); }).collect(Collectors.toList());
mallGoodsDao.batchInsertSpecAttr(list);
}
}
if (CollectionUtils.isNotEmpty(priceStock)) {
List<PriceStockDO> priceStockDOList = priceStock.stream().map(d -> new PriceStockDO(d, id)).collect(Collectors.toList());
mallGoodsDao.batchInsertPriceStock(priceStockDOList);
}
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -124,18 +129,22 @@ public class MallGoodsServiceImpl implements MallGoodsService { ...@@ -124,18 +129,22 @@ public class MallGoodsServiceImpl implements MallGoodsService {
List<MallGoodsResourcesDO> mallGoodsResourcesList = mallGoodsDao.getMallGoodsResources(id); List<MallGoodsResourcesDO> mallGoodsResourcesList = mallGoodsDao.getMallGoodsResources(id);
mallGoodsVO.setResourcesList(mallGoodsResourcesList.stream() mallGoodsVO.setResourcesList(mallGoodsResourcesList.stream()
.map(MallGoodsResourcesDO::buildGoodsResourcesVO).collect(Collectors.toList())); .map(MallGoodsResourcesDO::buildGoodsResourcesVO).collect(Collectors.toList()));
// 获取规格信息 // 获取规格及规格值
List<GoodsSpecDO> goodsSpecList = mallGoodsDao.getMallGoodsSpec(id); List<SpecAttrDO> specAttrDOList = mallGoodsDao.listSpecAttr(id);
List<GoodsSpecVO> goodsSpec = goodsSpecList.stream().map(GoodsSpecDO::buildGoodsSpecVO) List<Integer> specIds = specAttrDOList.stream().map(SpecAttrDO::getId).collect(Collectors.toList());
.collect(Collectors.toList()); List<SpecAttrValueDO> specAttrValueDOList = mallGoodsDao.listSpecAttrValue(specIds);
// 获取规格值信息 // 转成vo
List<GoodsSpecValuesDO> goodsSpecValuesList = mallGoodsDao.getMallGoodsSpecValues(goodsSpec.stream().map(GoodsSpecVO::getId).collect(Collectors.toList())); List<SpecAttrVO> specAttrVOList = specAttrDOList.stream().map(SpecAttrDO::buildSpecAttr).collect(Collectors.toList());
List<GoodsSpecValuesVO> goodsSpecValues = goodsSpecValuesList.stream().map(GoodsSpecValuesDO::buildGoodsSpecValuesVO).collect(Collectors.toList()); // 拼装数据
Map<Integer, List<GoodsSpecValuesVO>> goodsSpecValuesVO = goodsSpecValues.stream().collect(Collectors.groupingBy(GoodsSpecValuesVO::getGoodsSpecId)); Map<Integer, List<SpecAttrValueDO>> specValueMap = specAttrValueDOList.stream().collect(Collectors.groupingBy(SpecAttrValueDO::getSpecAttrId));
for (GoodsSpecVO goodsSpecVO : goodsSpec) { specAttrVOList = specAttrVOList.stream().peek(d -> {
goodsSpecVO.setGoodsSpecValuesList(goodsSpecValuesVO.get(goodsSpecVO.getId())); List<SpecAttrValueDO> attrValueList = specValueMap.get(d.getId());
} d.setSpecValuesList(attrValueList.stream().map(SpecAttrValueDO::buildSpecAttr).collect(Collectors.toList()));
mallGoodsVO.setGoodsSpecList(goodsSpec); }).collect(Collectors.toList());
mallGoodsVO.setSpecAttrList(specAttrVOList);
// 获取价格库存排列组合
List<PriceStockDO> priceStockDOList = mallGoodsDao.listPriceStock(id);
mallGoodsVO.setPriceStock(priceStockDOList.stream().map(PriceStockDO::buildPriceStockVO).collect(Collectors.toList()));
return ResultBody.success(mallGoodsVO); return ResultBody.success(mallGoodsVO);
} }
...@@ -151,53 +160,64 @@ public class MallGoodsServiceImpl implements MallGoodsService { ...@@ -151,53 +160,64 @@ public class MallGoodsServiceImpl implements MallGoodsService {
// 修改商城商品的图片等资源信息,先删除后新增 // 修改商城商品的图片等资源信息,先删除后新增
mallGoodsDao.deleteMallGoodsResources(mallGoodsVO.getId()); mallGoodsDao.deleteMallGoodsResources(mallGoodsVO.getId());
this.insertMallGoodsResources(mallGoodsVO, mallGoodsVO.getId()); this.insertMallGoodsResources(mallGoodsVO, mallGoodsVO.getId());
// 从数据库获取商品规格信息 // 修改规格
List<GoodsSpecDO> dbGoodsSpec = mallGoodsDao.getMallGoodsSpec(mallGoodsVO.getId()); List<SpecAttrVO> specAttrList = mallGoodsVO.getSpecAttrList();
List<Integer> specIds = mallGoodsVO.getGoodsSpecList().stream().map(GoodsSpecVO::getId).filter(Objects::nonNull).collect(Collectors.toList()); // 从数据库获取该商品下的所有规格
// 对比要删除的规格 List<SpecAttrDO> dbSpecList = mallGoodsDao.listSpecAttr(mallGoodsVO.getId());
List<Integer> deleteSpec = dbGoodsSpec.stream().map(GoodsSpecDO::getId).filter(id -> !specIds.contains(id)).collect(Collectors.toList()); List<Integer> delIds = dbSpecList.stream().map(SpecAttrDO::getId)
if (deleteSpec.size() != 0) { .filter(id -> !specAttrList.stream().map(SpecAttrVO::getId).collect(Collectors.toList()).contains(id))
mallGoodsDao.deleteGoodsSpec(deleteSpec); .collect(Collectors.toList());
if (delIds.size() != 0) {
// 删除多余规格
mallGoodsDao.deleteSpecAttr(delIds);
} }
// 获取规格值信息 // 获取id不为空的规格,进行修改
Map<Integer, List<GoodsSpecValuesDO>> specValuesMap = mallGoodsDao.getMallGoodsSpecValues(specIds).stream() List<SpecAttrVO> updateSpecAttr = specAttrList.stream().filter(spec -> spec.getId() != null).collect(Collectors.toList());
.collect(Collectors.groupingBy(GoodsSpecValuesDO::getGoodsSpecId)); // 从数据库获取规格下的规格值信息,获取所有,避免重复查询数据库
// 修改规格信息 Map<Integer, List<SpecAttrValueDO>> specValueMap = mallGoodsDao.listSpecAttrValue(updateSpecAttr.stream().map(SpecAttrVO::getId).collect(Collectors.toList()))
for (GoodsSpecVO goodsSpecVO : mallGoodsVO.getGoodsSpecList()) { .stream().collect(Collectors.groupingBy(SpecAttrValueDO::getSpecAttrId));
if (goodsSpecVO.getId() != null) { if (CollectionUtils.isNotEmpty(updateSpecAttr)) {
GoodsSpecDO goodsSpecDO = new GoodsSpecDO(goodsSpecVO); for (SpecAttrVO specAttrVO : updateSpecAttr) {
mallGoodsDao.updateGoodsSpec(goodsSpecDO); // 修改规格信息
// 数据库获取到的规格值信息 mallGoodsDao.updateSpecAttr(specAttrVO);
List<GoodsSpecValuesDO> dbSpecValues = specValuesMap.get(goodsSpecVO.getId()); // 获取该规格下数据库里的规格值信息
List<Integer> specValuesId = goodsSpecVO.getGoodsSpecValuesList().stream().map(GoodsSpecValuesVO::getId).filter(Objects::nonNull).collect(Collectors.toList()); List<SpecAttrValueDO> dbSpecAttrValue = specValueMap.get(specAttrVO.getId());
List<Integer> deleteSpecValueId = dbSpecValues.stream().map(GoodsSpecValuesDO::getId).filter(id -> !specValuesId.contains(id)).collect(Collectors.toList()); List<Integer> delValueIds = dbSpecAttrValue.stream()
if (deleteSpecValueId.size() != 0) { .map(SpecAttrValueDO::getId)
mallGoodsDao.deleteGoodsSpecValues(deleteSpecValueId); .filter(id -> !specAttrVO.getSpecValuesList().stream().map(SpecAttrVO::getId).collect(Collectors.toList()).contains(id))
.collect(Collectors.toList());
if (delValueIds.size() != 0) {
// 删除多余规格值
mallGoodsDao.deleteSpecAttrValue(delValueIds);
} }
// 修改规格值的信息 // 获取规格值id不为空的就进行规格值修改
List<GoodsSpecValuesVO> updateSpecValue = goodsSpecVO.getGoodsSpecValuesList().stream().filter(d -> d.getId() != null).collect(Collectors.toList()); List<SpecAttrVO> updateSpecValue = specAttrVO.getSpecValuesList().stream().filter(var -> var.getId() != null).collect(Collectors.toList());
for (GoodsSpecValuesVO goodsSpecValuesVO : updateSpecValue) { if (CollectionUtils.isNotEmpty(updateSpecValue)) {
GoodsSpecValuesDO goodsSpecValuesDO = new GoodsSpecValuesDO(goodsSpecValuesVO); for (SpecAttrVO attrVO : updateSpecValue) {
goodsSpecValuesDO.setGoodsSpecId(goodsSpecVO.getId()); mallGoodsDao.updateSpecAttrValue(attrVO);
mallGoodsDao.updateGoodsSpecValue(goodsSpecValuesDO); }
} }
// 新增id为空的规格值 // 新增规格值
List<GoodsSpecValuesVO> newGoodsSpecValues = goodsSpecVO.getGoodsSpecValuesList().stream().filter(d -> d.getId() == null).collect(Collectors.toList()); List<SpecAttrVO> addSpecValue = specAttrVO.getSpecValuesList().stream().filter(var -> var.getId() == null).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(newGoodsSpecValues)) { if (CollectionUtils.isNotEmpty(addSpecValue)) {
List<GoodsSpecValuesDO> goodsSpecValuesList = newGoodsSpecValues.stream().map(d -> { List<SpecAttrValueDO> specValueList = addSpecValue.stream().map(d -> {
d.setGoodsSpecId(goodsSpecVO.getId()); SpecAttrValueDO specAttrValueDO = new SpecAttrValueDO();
return new GoodsSpecValuesDO(d); specAttrValueDO.setSpecAttrId(specAttrVO.getId());
specAttrValueDO.setSpecValueName(d.getSpecName());
return specAttrValueDO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// 批量插入规格值的信息 mallGoodsDao.batchInsertSpecAttr(specValueList);
mallGoodsDao.batchInsertSpecValues(goodsSpecValuesList);
} }
} }
} }
// 新增id为空的规格 // 获取规格id为空的值,进行新增
List<GoodsSpecVO> newGoodsSpec = mallGoodsVO.getGoodsSpecList().stream().filter(d -> d.getId() == null).collect(Collectors.toList()); List<SpecAttrVO> addSpecAttr = specAttrList.stream().filter(spec -> spec.getId() == null).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(newGoodsSpec)) { if (CollectionUtils.isNotEmpty(addSpecAttr)) {
this.insertMallGoodsSpec(newGoodsSpec, mallGoodsVO.getId()); addMallGoodsSpec(addSpecAttr, mallGoodsVO.getId(), null);
} }
// 修改排列组合数据
mallGoodsDao.deleteMallPriceStock(mallGoodsVO.getId());
addMallGoodsSpec(null, mallGoodsVO.getId(), mallGoodsVO.getPriceStock());
return ResultBody.success(); return ResultBody.success();
} }
......
...@@ -19,31 +19,7 @@ ...@@ -19,31 +19,7 @@
values ( #{goodsNo}, #{tradeName}, #{description}, #{categoryPrimaryId}, #{categorySubId} values ( #{goodsNo}, #{tradeName}, #{description}, #{categoryPrimaryId}, #{categorySubId}
, #{shelfStatus}, #{goodsLabel}, #{labelShow}, #{goodsDetails}, #{userAccountId}, #{sort}) , #{shelfStatus}, #{goodsLabel}, #{labelShow}, #{goodsDetails}, #{userAccountId}, #{sort})
</insert> </insert>
<insert id="insertGoodsSpec" parameterType="com.mmc.pms.entity.mall.GoodsSpecDO"
keyProperty="id" useGeneratedKeys="true">
insert into goods_spec (mall_goods_id,
spec_name,
choose_type,
must,
sku_unit_id)
values (#{mallGoodsId}, #{specName}, #{chooseType}, #{must}, #{skuUnitId})
</insert>
<!-- 新版待删除 -->
<insert id="batchInsertSpecValues" parameterType="list">
insert into goods_spec_values (goods_spec_id,
spec_value_name,
part_no,
spec_value_image,
show_price,
stock,
sale_price,
channel_price)
values
<foreach collection="list" item="item" separator=",">
(#{item.goodsSpecId},#{item.specValueName},#{item.partNo},#{item.specValueImage}
,#{item.showPrice},#{item.stock},#{item.salePrice},#{item.channelPrice})
</foreach>
</insert>
<insert id="batchInsertMallGoodsResources"> <insert id="batchInsertMallGoodsResources">
insert into mall_goods_resources (mall_goods_id, insert into mall_goods_resources (mall_goods_id,
url, url,
...@@ -55,13 +31,12 @@ ...@@ -55,13 +31,12 @@
</foreach> </foreach>
</insert> </insert>
<insert id="batchInsertSpecAttr"> <insert id="batchInsertSpecAttr">
insert into spec_attr (mall_goods_id, insert into spec_attr_value (spec_attr_id,
spec_name,
spec_value_name spec_value_name
) )
values values
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.mallGoodsId},#{item.specName},#{item.specValueName}) (#{item.specAttrId},#{item.specValueName})
</foreach> </foreach>
</insert> </insert>
<insert id="batchInsertPriceStock"> <insert id="batchInsertPriceStock">
...@@ -77,6 +52,12 @@ ...@@ -77,6 +52,12 @@
(#{item.mallGoodsId},#{item.productSpec},#{item.salePrice},#{item.skuImage},#{item.channelPrice},#{item.stock},#{item.skuNo}) (#{item.mallGoodsId},#{item.productSpec},#{item.salePrice},#{item.skuImage},#{item.channelPrice},#{item.stock},#{item.skuNo})
</foreach> </foreach>
</insert> </insert>
<insert id="insertSpecAttr" useGeneratedKeys="true" keyProperty="id"
parameterType="com.mmc.pms.entity.mall.SpecAttrDO">
insert into spec_attr (mall_goods_id,
spec_name)
values (#{mallGoodsId}, #{specName})
</insert>
<update id="updateMallGoods"> <update id="updateMallGoods">
UPDATE mall_goods UPDATE mall_goods
SET trade_name = #{mallGoodsDO.tradeName}, SET trade_name = #{mallGoodsDO.tradeName},
...@@ -89,26 +70,6 @@ ...@@ -89,26 +70,6 @@
goods_details = #{mallGoodsDO.goodsDetails} goods_details = #{mallGoodsDO.goodsDetails}
WHERE id = #{mallGoodsDO.id} WHERE id = #{mallGoodsDO.id}
</update> </update>
<update id="updateGoodsSpec">
update goods_spec
set spec_name = #{specName},
choose_type = #{chooseType},
must = #{must},
sku_unit_id = #{skuUnitId}
where id = #{id}
</update>
<update id="updateGoodsSpecValue">
update goods_spec_values
set goods_spec_id = #{goodsSpecId},
spec_value_name = #{specValueName},
part_no =#{partNo},
spec_value_image = #{specValueImage},
show_price = #{showPrice},
stock = #{stock},
sale_price = #{salePrice},
channel_price =#{channelPrice}
where id = #{id}
</update>
<update id="updateMallGoodsSort"> <update id="updateMallGoodsSort">
update mall_goods update mall_goods
set sort = #{sort} set sort = #{sort}
...@@ -129,23 +90,38 @@ ...@@ -129,23 +90,38 @@
set is_deleted = 1 set is_deleted = 1
where user_account_id = #{id} where user_account_id = #{id}
</update> </update>
<update id="updateSpecAttr">
update spec_attr
set spec_name = #{specName}
where id = #{id}
</update>
<update id="updateSpecAttrValue">
update spec_attr_value
set spec_value_name = #{specName}
where id = #{id}
</update>
<delete id="deleteMallGoodsResources"> <delete id="deleteMallGoodsResources">
delete delete
from mall_goods_resources from mall_goods_resources
where mall_goods_id = #{id} where mall_goods_id = #{id}
</delete> </delete>
<delete id="deleteGoodsSpec"> <delete id="deleteMallPriceStock">
delete
from price_stock
where mall_goods_id = #{id}
</delete>
<delete id="deleteSpecAttr">
delete delete
from goods_spec from spec_attr
<where> <where>
<foreach collection="list" open="id in (" close=")" item="item" separator=","> <foreach collection="list" open="id in (" close=")" item="item" separator=",">
#{item} #{item}
</foreach> </foreach>
</where> </where>
</delete> </delete>
<delete id="deleteGoodsSpecValues"> <delete id="deleteSpecAttrValue">
delete delete
from goods_spec_values from spec_attr_value
<where> <where>
<foreach collection="list" open="id in (" close=")" item="item" separator=","> <foreach collection="list" open="id in (" close=")" item="item" separator=",">
#{item} #{item}
...@@ -179,7 +155,8 @@ ...@@ -179,7 +155,8 @@
label_show, label_show,
goods_details, goods_details,
user_account_id, user_account_id,
sort sort,
create_time
FROM mall_goods FROM mall_goods
WHERE id = #{id} WHERE id = #{id}
and is_deleted = 0 and is_deleted = 0
...@@ -192,40 +169,7 @@ ...@@ -192,40 +169,7 @@
from mall_goods_resources from mall_goods_resources
where mall_goods_id = #{id} where mall_goods_id = #{id}
</select> </select>
<select id="getMallGoodsSpec" resultType="com.mmc.pms.entity.mall.GoodsSpecDO">
select id,
mall_goods_id,
spec_name,
choose_type,
must,
sku_unit_id
from goods_spec
where mall_goods_id = #{id}
</select>
<select id="getMallGoodsSpecValues" resultType="com.mmc.pms.entity.mall.GoodsSpecValuesDO">
select id,
goods_spec_id,
spec_value_name,
part_no,
spec_value_image,
show_price,
stock,
sale_price,
channel_price
from goods_spec_values
<where>
<foreach collection="list" separator="," item="item" open="goods_spec_id in (" close=")">
#{item}
</foreach>
</where>
</select>
<select id="getSkuUnit" resultType="com.mmc.pms.entity.SkuUnitDO">
SELECT id,
unit_name unitName,
create_time createTime
FROM sku_unit
WHERE is_deleted = 0
</select>
<select id="countListMallGoods" resultType="java.lang.Integer"> <select id="countListMallGoods" resultType="java.lang.Integer">
SELECT SELECT
count(*) count(*)
...@@ -283,4 +227,34 @@ ...@@ -283,4 +227,34 @@
mg.shelf_status DESC , mg.sort DESC,mg.create_time DESC mg.shelf_status DESC , mg.sort DESC,mg.create_time DESC
limit #{pageNo},#{pageSize} limit #{pageNo},#{pageSize}
</select> </select>
<select id="listSpecAttr" resultType="com.mmc.pms.entity.mall.SpecAttrDO">
SELECT id, spec_name, mall_goods_id, create_time
FROM spec_attr
where mall_goods_id = #{id}
</select>
<select id="listPriceStock" resultType="com.mmc.pms.entity.mall.PriceStockDO">
SELECT id,
mall_goods_id,
product_spec,
sale_price,
sku_image,
channel_price,
stock,
sku_no,
create_time
FROM price_stock
WHERE mall_goods_id = #{id}
</select>
<select id="listSpecAttrValue" resultType="com.mmc.pms.entity.mall.SpecAttrValueDO">
SELECT id,
spec_attr_id,
spec_value_name,
create_time
FROM spec_attr_value
<where>
<foreach collection="list" separator="," open="spec_attr_id in (" close=")" item="item">
#{item}
</foreach>
</where>
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论