记得上下班打卡 | git大法好,push需谨慎

Commit c7856837 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev_goblin' into dev_goblin

parents eb31ebc6 e46494b9
......@@ -8,6 +8,7 @@ import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
......@@ -21,6 +22,7 @@ public class GoblinStoreMgtGoodsAddSkuParam implements Serializable {
@ApiModelProperty(position = 10, required = false, value = "单品ID[编辑时必传]")
private String skuId;
@ApiModelProperty(position = 11, required = true, value = "单品默认图片的url[256]")
@NotBlank(message = "图片不能为空")
private String skuPic;
@ApiModelProperty(position = 12, required = true, value = "单品规格信息")
@NotNull(message = "规格信息不能为空")
......
......@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -24,8 +25,8 @@ public class GoblinFrontGoodDetailVo implements Serializable {
List<GoblinGoodsSkuInfoDetailVo> goblinGoodsSkuInfoVolist;
@ApiModelProperty(value = "商铺名称")
String storeName;
@ApiModelProperty(value = "商品可参与券类型")
ArrayList<String> getSpuType;
private static final long serialVersionUID = 1L;
......
......@@ -73,9 +73,10 @@ public interface IGoblinstoreMgtGoodsService {
*
* @param uid UID
* @param goodsSkuInfoVo GoblinGoodsSkuInfoVo
* @param mgtGoodsInfoVo GoblinGoodsInfoVo
* @return boolean
*/
boolean goodsEditSkuDel(String uid, GoblinGoodsSkuInfoVo goodsSkuInfoVo);
boolean goodsEditSkuDel(String uid, GoblinGoodsSkuInfoVo goodsSkuInfoVo, GoblinGoodsInfoVo mgtGoodsInfoVo);
// /**
// * 商品管理:商品编辑:SKU批改
......
......@@ -523,7 +523,11 @@ public class GoblinStoreMgtGoodsController {
boolean diffSpecFlg = false;
for (GoblinGoodsSpecDto goodsSpecDto : paramSkuSpecDtoList) {
if (!skuSpecMap.get(goodsSpecDto.getSpecName()).equals(goodsSpecDto.getSpecVname())) {
String skuSpecVname = skuSpecMap.get(goodsSpecDto.getSpecName());
if (null == skuSpecVname) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "规格无效");
}
if (!skuSpecVname.equals(goodsSpecDto.getSpecVname())) {
diffSpecFlg = true;// 多个规格中只要存在一个不一致,即可跳过,标记为允许添加
break;
}
......@@ -549,6 +553,9 @@ public class GoblinStoreMgtGoodsController {
for (GoblinGoodsSpecVo specVo : specVoList) {// 同步添加SPU规格信息
List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues();
String paramSkuSpecVname = paramSkuSpecMap.get(specVo.getSpecName());
if (StringUtils.isBlank(paramSkuSpecVname)) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "规格无效");
}
if (specValues.stream().noneMatch(r -> r.getSpecVname().equals(paramSkuSpecVname))) {
specValues.add(GoblinGoodsSpecValueVo.getNew().setSpecVname(paramSkuSpecVname).setSpecVsort(specValues.size()));
}
......@@ -582,7 +589,13 @@ public class GoblinStoreMgtGoodsController {
if (mgtGoodsSkuInfoVo.getShelvesStatus().equals("3")) {
return ResponseDto.failure(ErrorMapping.get("149016"));
}
return ResponseDto.success(goblinstoreMgtGoodsService.goodsEditSkuDel(currentUid, mgtGoodsSkuInfoVo));
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getGoodsInfoVo(mgtGoodsSkuInfoVo.getSpuId());
if (null == mgtGoodsInfoVo || !mgtGoodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:商品编辑:SKU删除警告:SPU不存在或已删除[uid={},skuId={}]", currentUid, skuId);
return ResponseDto.failure(ErrorMapping.get("149010"));
}
boolean delResultFlg = goblinstoreMgtGoodsService.goodsEditSkuDel(currentUid, mgtGoodsSkuInfoVo, mgtGoodsInfoVo);
return delResultFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("149003"));
}
// @ApiOperationSupport(order = 10)
......
......@@ -11,6 +11,7 @@ import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.*;
import com.liquidnet.service.goblin.enums.GoblinStoreConf;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.GoblinFrontService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
......@@ -49,6 +50,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
QueueUtils queueUtils;
@Autowired
GoblinMongoUtils mongoUtils;
@Autowired
GoblinCouponService goblinCouponService;
@Override
public ArrayList<GoblinFrontBannerVo> getListBanner() {
......@@ -326,6 +329,8 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
}
goblinFrontGoodDetailVo.setGoblinGoodsSkuInfoVolist(list);
}
ArrayList<String> list=goblinCouponService.getSpuType(spuId,goblinGoodsInfoDetailVo.getStoreId());
goblinFrontGoodDetailVo.setGetSpuType(list);
return goblinFrontGoodDetailVo;
}
/**
......
......@@ -753,47 +753,37 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
}
@Override
public boolean goodsEditSkuDel(String uid, GoblinGoodsSkuInfoVo goodsSkuInfoVo) {
public boolean goodsEditSkuDel(String uid, GoblinGoodsSkuInfoVo goodsSkuInfoVo, GoblinGoodsInfoVo mgtGoodsInfoVo) {
String spuId = goodsSkuInfoVo.getSpuId();
String delSkuId = goodsSkuInfoVo.getSkuId();
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null == mgtGoodsInfoVo || !mgtGoodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:商品编辑:SKU删除警告:SPU不存在或已删除[uid={},spuId={},skuId={}]", uid, spuId, delSkuId);
return false;
}
mgtGoodsInfoVo.getSkuIdList().removeIf(r -> r.equals(delSkuId));
List<GoblinGoodsSpecVo> specVoList = mgtGoodsInfoVo.getSpecVoList();
Map<String, String> delGoodsSkuSpecMap = goodsSkuInfoVo.getSkuSpecList().stream()
.collect(Collectors.toMap(GoblinGoodsSpecDto::getSpecName, GoblinGoodsSpecDto::getSpecVname));
LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr();
for (int i = 0; i < specVoList.size(); i++) {// 处理商品规格信息
GoblinGoodsSpecVo specVo = specVoList.get(i);
GoblinGoodsSpecVo specVo = specVoList.get(i);// 商品指定规格
List<GoblinGoodsSpecValueVo> modifySpecValues = ObjectUtil.getGoblinGoodsSpecValueVoArrayList();
String delSpecVname = delGoodsSkuSpecMap.get(specVo.getSpecName());
List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues();
String delSpecVname = delGoodsSkuSpecMap.get(specVo.getSpecName());// 需要删除的SKU下指定规格的规格值
List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues();// 商品指定规格下所有规格值
Integer rmIdx = null;
for (GoblinGoodsSpecValueVo specValue : specValues) {
for (GoblinGoodsSpecValueVo specValue : specValues) {// 遍历指定规格下每个规格值
if (specValue.getSpecVname().equals(delSpecVname)) {
modifySpecValues.remove(specValue);
// modifySpecValues.remove(specValue);
rmIdx = specValue.getSpecVsort();
updateGoodsSpuSpecDelObjs.add(new Object[]{spuId, specVo.getSpecName(), delSpecVname});
updateGoodsSpuSpecObjs.add(new Object[]{0, "1", spuId, specVo.getSpecName(), delSpecVname});
} else {
modifySpecValues.add(specValue);
}
if (null != rmIdx && specValue.getSpecVsort() > rmIdx) {
specValue.setSpecVsort(specValue.getSpecVsort() - 1);
updateGoodsSpuSpecObjs.add(new Object[]{specValue.getSpecVsort(), spuId, specVo.getSpecName(), specValue.getSpecVname()});
updateGoodsSpuSpecObjs.add(new Object[]{specValue.getSpecVsort(), "0", spuId, specVo.getSpecName(), specValue.getSpecVname()});
}
}
if (modifySpecValues.size() == 0) {// 规格下规格值为0的时候,移除规格
// specVoList.remove(specVo);
} else {
specVo.setSpecValues(modifySpecValues);
}
specVo.setSpecValues(modifySpecValues);
}
LocalDateTime now = LocalDateTime.now();
goodsSkuInfoVo.setUpdatedBy(uid);
......@@ -837,15 +827,16 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del"));
LinkedList<Object[]> delGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
delSkuIdList.forEach(skuId -> delGoodsSkuObjs.add(new Object[]{uid, now, uid, now, skuId}));
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku1"));
// LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku2"));
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku"));
// LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("goblin_goods_sku_spec_value.update_by_del_sku"));
LinkedList<Object[]> deleteGoodsSkuSpecObjs = CollectionUtil.linkedListObjectArr();
deleteGoodsSkuSpecObjs.add(new Object[]{delSkuId});
toMqSqls.add(SqlMapping.get("goblin_goods.update_by_del_sku"));
// LinkedList<Object[]> updateGoodsInfoObjs = CollectionUtil.linkedListObjectArr();
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, delGoodsSkuObjs, updateGoodsSpuSpecDelObjs, updateGoodsSpuSpecObjs, updateGoodsInfoObjs));
SqlMapping.gets(toMqSqls, delGoodsSkuObjs, updateGoodsSpuSpecObjs, deleteGoodsSkuSpecObjs, updateGoodsInfoObjs));
return true;
}
......
......@@ -519,8 +519,8 @@ public class GoblinMongoUtils {
public boolean delGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo, List<String> skuIdList) {
return mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuIdList).and("delFlg").is("0")).getQueryObject(),
Update.update("updatedBy", vo.getUpdatedBy()).set("updatedAt", vo.getUpdatedAt())
Query.query(Criteria.where("skuId").in(skuIdList).and("delFlg").is("0")).getQueryObject(),
Update.update("delFlg", "1").set("updatedBy", vo.getUpdatedBy()).set("updatedAt", vo.getUpdatedAt())
.set("deletedBy", vo.getDeletedBy()).set("deletedAt", vo.getDeletedAt()).getUpdateObject()
).getModifiedCount() > 0;
}
......
......@@ -32,8 +32,8 @@
149007=添加商品失败,商品名称重复
149008=商品分类名称重复,请核实
149009=请点选商品后操作
149010=商品不存在,请核实
149011=SKU不存在,请核实
149010=商品不存在或已删除,请核实
149011=SKU不存在或已删除,请核实
149012=SKU库存不足,请核实
149013=SKU编辑失败
149014=SKU编辑失败,规格信息有误
......
......@@ -30,10 +30,10 @@ goblin_goods_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spec_value (s
goblin_goods_spu_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spu_spec_value (spu_id,spec_name,spec_vname,sort,del_flg)VALUES(?,?,?,?,'0')
goblin_goods_spu_spec_value.update_by_editdel=UPDATE goblin_goods_spu_spec_value SET del_flg='1' WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0'
goblin_goods_spu_spec_value.update_by_edit=UPDATE goblin_goods_spu_spec_value SET sort=? WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0'
goblin_goods_spu_spec_value.update_by_del_sku1=UPDATE goblin_goods_spu_spec_value SET del_flg='1' WHERE spu_id=? AND spec_name=? AND spec_vname=?
goblin_goods_spu_spec_value.update_by_del_sku2=UPDATE goblin_goods_spu_spec_value SET sort=? WHERE spu_id=? AND spec_name=? AND spec_vname=?
goblin_goods_spu_spec_value.update_by_del_sku=UPDATE goblin_goods_spu_spec_value SET sort=?,del_flg=? WHERE spu_id=? AND spec_name=? AND spec_vname=?
goblin_goods_sku_spec_value.insert_byreplace=REPLACE INTO goblin_goods_sku_spec_value (spu_id,sku_id,spec_name,spec_vname,del_flg)VALUES(?,?,?,?,'0')
goblin_goods_sku_spec_value.update_by_edit=UPDATE goblin_goods_sku_spec_value SET spec_vname=? WHERE sku_id=? AND spec_name=? AND del_flg='0'
goblin_goods_sku_spec_value.update_by_del_sku=UPDATE goblin_goods_sku_spec_value SET del_flg='1' WHERE sku_id=? AND del_flg='0'
#---- 商品信息
goblin_goods.insert=INSERT INTO goblin_goods (spu_id,spu_no,name,subtitle,sell_price, price_ge,price_le,intro,details,cover_pic, video,spec_mode,store_id,cate_fid,cate_sid, cate_tid,store_cate_fid,store_cate_sid,store_cate_tid,brand_id, shelves_handle,shelves_time,spu_validity,virtual_flg,status, shelves_status,spu_appear,shelves_at,created_by,created_at, logistics_template)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods.update_by_edit=UPDATE goblin_goods SET spu_no=?,name=?,subtitle=?,sell_price=?,intro=?,details=?,cover_pic=?,video=?,spec_mode=?,cate_fid=?,cate_sid=?,cate_tid=?,shelves_handle=?,shelves_time=?,spu_validity=?,virtual_flg=?,logistics_template=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment