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

Commit 760b5020 authored by 张国柄's avatar 张国柄

~API:添加商品+MYSQL逻辑;

parent c0752c48
......@@ -259,7 +259,7 @@ public class GoblinStoreMgtGoodsAddParam implements Serializable {
vo.setStatus("3");// 没有审核流程,默认通过
// vo.setReason();
vo.setShelvesStatus("0");
vo.setSkuAppear(addSkuParam.getSkuAppear());
vo.setSkuAppear(StringUtils.isBlank(addSkuParam.getSkuAppear()) ? "0" : addSkuParam.getSkuAppear());
vo.setDelFlg("0");
// vo.setShelvesAt();
vo.setCreatedBy(goodsInfoVo.getCreatedBy());
......
......@@ -7,6 +7,8 @@ import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import java.util.List;
public interface IGoblinstoreMgtGoodsService {
/**
* 商品管理:SPU列表
......@@ -19,9 +21,10 @@ public interface IGoblinstoreMgtGoodsService {
/**
* 商品管理:SPU添加
*
* @param storeMgtGoodsAddParam GoblinStoreMgtGoodsAddParam
* @param goodsInfoVo GoblinGoodsInfoVo
* @param goodsSkuInfoVoList List<GoblinGoodsSkuInfoVo>
*/
void goodsAdd(GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam);
void goodsAdd(GoblinGoodsInfoVo goodsInfoVo, List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList);
/**
* 商品管理:SPU详情
......
......@@ -270,7 +270,7 @@ create table goblin_goods
store_cate_fid varchar(30) null comment '店铺一级分类id',
store_cate_sid varchar(30) null comment '店铺二级分类id',
store_cate_tid varchar(30) null comment '店铺三级分类id',
brand_id varchar(30) not null comment '品牌id',
brand_id varchar(30) null comment '品牌id',
shelves_handle char default '1' comment '上架处理方式[1-等待手动上架|2-直接上架售卖|3-预约定时上架]',
shelves_time datetime null comment '预约上架时间[上架处理方式为3-预约定时上架时需要指定]',
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.goblin.controller.manage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
......@@ -14,11 +15,9 @@ import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsEditSkuParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsInfoVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSpecValueVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSpecVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.manage.IGoblinstoreMgtGoodsService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
import io.swagger.annotations.Api;
......@@ -34,10 +33,8 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
......@@ -52,6 +49,8 @@ public class GoblinStoreMgtGoodsController {
IGoblinstoreMgtGoodsService goblinstoreMgtGoodsService;
@Autowired
GoblinRedisUtils goblinRedisUtils;
@Autowired
GoblinMongoUtils goblinMongoUtils;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "SPU列表")
......@@ -129,13 +128,52 @@ public class GoblinStoreMgtGoodsController {
@ApiOperation(value = "SPU添加")
@PutMapping("add")
public ResponseDto<Object> add(@Valid @RequestBody GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam) {
if (!goblinRedisUtils.hasStoreId(CurrentUtil.getCurrentUid(), storeMgtGoodsAddParam.getStoreId())) {
String currentUid = CurrentUtil.getCurrentUid();
if (!goblinRedisUtils.hasStoreId(currentUid, storeMgtGoodsAddParam.getStoreId())) {
return ResponseDto.failure(ErrorMapping.get("149002"));
}
if (log.isDebugEnabled()) {
log.debug("商品管理:SPU添加:[GoblinStoreMgtGoodsAddParam={}]", JsonUtils.toJson(storeMgtGoodsAddParam));
}
goblinstoreMgtGoodsService.goodsAdd(storeMgtGoodsAddParam);
LocalDateTime now = LocalDateTime.now();
GoblinGoodsInfoVo goodsInfoVo = storeMgtGoodsAddParam.initGoodsInfoVo();
goodsInfoVo.setCreatedBy(currentUid);
goodsInfoVo.setCreatedAt(now);
ArrayList<GoblinGoodsSpecVo> goodsSpecVoList = ObjectUtil.getGoblinGoodsSpecVoArrayList();
List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList = ObjectUtil.getGoblinGoodsSkuInfoVoArrayList();
storeMgtGoodsAddParam.initGoodsSkuInfoVo(goodsInfoVo, goodsSkuInfoVoList, goodsSpecVoList);
{// 标签处理
List<String> goodsTagIdList = storeMgtGoodsAddParam.getTagList(), goodsExtagIdList = storeMgtGoodsAddParam.getExtagList();
List<String> tagIdList = CollectionUtil.arrayListString();
tagIdList.addAll(goodsTagIdList);
tagIdList.addAll(goodsExtagIdList);
if (!CollectionUtils.isEmpty(tagIdList)) {
List<GoblinSelfTagVo> selfTagVoList = goblinMongoUtils.getSelfTagVos(tagIdList);
if (!CollectionUtils.isEmpty(goodsTagIdList)) {
List<GoblinGoodsTagVo> goodsTagVoList = ObjectUtil.getGoblinGoodsTagVoArrayList();
for (int i = 0; i < goodsTagIdList.size(); i++)
for (GoblinSelfTagVo r : selfTagVoList)
if (r.getTagId().equals(goodsTagIdList.get(i))) goodsTagVoList.add(GoblinGoodsTagVo.getNew().copy(r).setSort(i));
goodsInfoVo.setTagVoList(goodsTagVoList);
}
if (!CollectionUtils.isEmpty(goodsExtagIdList)) {
List<GoblinGoodsExtagVo> goodsExtagVoList = ObjectUtil.getGoblinGoodsExtagVoArrayList();
for (int i = 0; i < goodsExtagIdList.size(); i++)
for (GoblinSelfTagVo r : selfTagVoList)
if (r.getTagId().equals(goodsExtagIdList.get(i))) goodsExtagVoList.add(GoblinGoodsExtagVo.getNew().copy(r).setSort(i));
goodsInfoVo.setExtagVoList(goodsExtagVoList);
}
}
}
// 服务保障处理
goodsInfoVo.setServiceSupportVoList(goblinMongoUtils.getServiceSupportVos(storeMgtGoodsAddParam.getSsidList()));
goblinstoreMgtGoodsService.goodsAdd(goodsInfoVo, goodsSkuInfoVoList);
return ResponseDto.success();
}
......
......@@ -167,6 +167,8 @@ public class GoblinStoreMgtCertificationServiceImpl implements IGoblinStoreMgtCe
updateGoodsObjs.add(new Object[]{uid, now, uid, now, storeId});
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del"));
// TODO: 2022/1/10 redis+规格|标签|服务支持关联入库
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_STORE.getKey(), SqlMapping.gets(toMqSqls, updateStoreObjs, updateStoreObjs, updateGoodsObjs, updateGoodsObjs));
}
return false;
......
......@@ -3,6 +3,8 @@ package com.liquidnet.service.goblin.service.impl.manage;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.GoblinGoodsSpecDto;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsActionParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsAddParam;
......@@ -10,7 +12,10 @@ import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsEditSkuParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsInfoVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSpecValueVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSpecVo;
import com.liquidnet.service.goblin.service.manage.IGoblinstoreMgtGoodsService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
......@@ -22,7 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -42,62 +47,88 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
}
@Override
public void goodsAdd(GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam) {
String uid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
GoblinGoodsInfoVo goodsInfoVo = storeMgtGoodsAddParam.initGoodsInfoVo();
goodsInfoVo.setCreatedBy(uid);
goodsInfoVo.setCreatedAt(now);
ArrayList<GoblinGoodsSpecVo> goodsSpecVoList = ObjectUtil.getGoblinGoodsSpecVoArrayList();
List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList = ObjectUtil.getGoblinGoodsSkuInfoVoArrayList();
storeMgtGoodsAddParam.initGoodsSkuInfoVo(goodsInfoVo, goodsSkuInfoVoList, goodsSpecVoList);
{// 标签处理
List<String> goodsTagIdList = storeMgtGoodsAddParam.getTagList();
List<String> goodsExtagIdList = storeMgtGoodsAddParam.getExtagList();
boolean goodsTagIsEmpty = CollectionUtils.isEmpty(goodsTagIdList);
boolean goodsExtagIsEmpty = CollectionUtils.isEmpty(goodsExtagIdList);
ArrayList<String> tagIdList = CollectionUtil.arrayListString();
tagIdList.addAll(goodsTagIdList);
tagIdList.addAll(goodsExtagIdList);
if (!CollectionUtils.isEmpty(tagIdList)) {
List<GoblinSelfTagVo> selfTagVoList = goblinMongoUtils.getSelfTagVos(tagIdList);
if (!goodsTagIsEmpty) {
List<GoblinGoodsTagVo> goodsTagVoList = ObjectUtil.getGoblinGoodsTagVoArrayList();
for (int i = 0; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i);
for (GoblinSelfTagVo r : selfTagVoList) {
if (r.getTagId().equals(tagId)) {
goodsTagVoList.add(GoblinGoodsTagVo.getNew().copy(r).setSort(i));
}
}
}
goodsInfoVo.setTagVoList(goodsTagVoList);
}
if (!goodsExtagIsEmpty) {
List<GoblinGoodsExtagVo> goodsExtagVoList = ObjectUtil.getGoblinGoodsExtagVoArrayList();
for (int i = 0; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i);
for (GoblinSelfTagVo r : selfTagVoList) {
if (r.getTagId().equals(tagId)) {
goodsExtagVoList.add(GoblinGoodsExtagVo.getNew().copy(r).setSort(i));
}
}
}
goodsInfoVo.setExtagVoList(goodsExtagVoList);
}
}
}
// 服务保障处理
goodsInfoVo.setServiceSupportVoList(goblinMongoUtils.getServiceSupportVos(storeMgtGoodsAddParam.getSsidList()));
public void goodsAdd(GoblinGoodsInfoVo goodsInfoVo, List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList) {
// String uid = CurrentUtil.getCurrentUid();
// LocalDateTime now = LocalDateTime.now();
// GoblinGoodsInfoVo goodsInfoVo = storeMgtGoodsAddParam.initGoodsInfoVo();
// goodsInfoVo.setCreatedBy(uid);
// goodsInfoVo.setCreatedAt(now);
//
// ArrayList<GoblinGoodsSpecVo> goodsSpecVoList = ObjectUtil.getGoblinGoodsSpecVoArrayList();
// List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList = ObjectUtil.getGoblinGoodsSkuInfoVoArrayList();
//
// storeMgtGoodsAddParam.initGoodsSkuInfoVo(goodsInfoVo, goodsSkuInfoVoList, goodsSpecVoList);
// {// 标签处理
// List<String> goodsTagIdList = storeMgtGoodsAddParam.getTagList();
// List<String> goodsExtagIdList = storeMgtGoodsAddParam.getExtagList();
// boolean goodsTagIsEmpty = CollectionUtils.isEmpty(goodsTagIdList);
// boolean goodsExtagIsEmpty = CollectionUtils.isEmpty(goodsExtagIdList);
//
// ArrayList<String> tagIdList = CollectionUtil.arrayListString();
// tagIdList.addAll(goodsTagIdList);
// tagIdList.addAll(goodsExtagIdList);
// if (!CollectionUtils.isEmpty(tagIdList)) {
// List<GoblinSelfTagVo> selfTagVoList = goblinMongoUtils.getSelfTagVos(tagIdList);
// if (!goodsTagIsEmpty) {
// List<GoblinGoodsTagVo> goodsTagVoList = ObjectUtil.getGoblinGoodsTagVoArrayList();
// for (int i = 0; i < tagIdList.size(); i++) {
// String tagId = tagIdList.get(i);
// for (GoblinSelfTagVo r : selfTagVoList) {
// if (r.getTagId().equals(tagId)) {
// goodsTagVoList.add(GoblinGoodsTagVo.getNew().copy(r).setSort(i));
// }
// }
// }
// goodsInfoVo.setTagVoList(goodsTagVoList);
// }
// if (!goodsExtagIsEmpty) {
// List<GoblinGoodsExtagVo> goodsExtagVoList = ObjectUtil.getGoblinGoodsExtagVoArrayList();
// for (int i = 0; i < tagIdList.size(); i++) {
// String tagId = tagIdList.get(i);
// for (GoblinSelfTagVo r : selfTagVoList) {
// if (r.getTagId().equals(tagId)) {
// goodsExtagVoList.add(GoblinGoodsExtagVo.getNew().copy(r).setSort(i));
// }
// }
// }
// goodsInfoVo.setExtagVoList(goodsExtagVoList);
// }
// }
// }
//
// // 服务保障处理
// goodsInfoVo.setServiceSupportVoList(goblinMongoUtils.getServiceSupportVos(storeMgtGoodsAddParam.getSsidList()));
goblinMongoUtils.setGoodsInfoVo(goodsInfoVo);
goblinMongoUtils.setGoodsSkuInfoVos(goodsSkuInfoVoList);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_goods.insert"));
LinkedList<Object[]> initGoodsObjs = CollectionUtil.linkedListObjectArr();
initGoodsObjs.add(new Object[]{
goodsInfoVo.getSpuId(), goodsInfoVo.getSpuNo(), goodsInfoVo.getName(), goodsInfoVo.getSubtitle(), goodsInfoVo.getSellPrice(),
goodsInfoVo.getPriceGe(), goodsInfoVo.getPriceLe(), goodsInfoVo.getIntro(), goodsInfoVo.getDetails(), goodsInfoVo.getCoverPic(),
goodsInfoVo.getVideo(), goodsInfoVo.getSpecMode(), goodsInfoVo.getStoreId(), goodsInfoVo.getCateFid(), goodsInfoVo.getCateSid(),
goodsInfoVo.getCateTid(), goodsInfoVo.getStoreCateFid(), goodsInfoVo.getStoreCateSid(), goodsInfoVo.getStoreCateTid(), goodsInfoVo.getBrandId(),
goodsInfoVo.getShelvesHandle(), goodsInfoVo.getShelvesTime(), goodsInfoVo.getSpuValidity(), goodsInfoVo.getVirtualFlg(), goodsInfoVo.getStatus(),
goodsInfoVo.getShelvesStatus(), goodsInfoVo.getSpuAppear(), goodsInfoVo.getShelvesAt(), goodsInfoVo.getCreatedBy(), goodsInfoVo.getCreatedAt(),
goodsInfoVo.getLogisticsTemplate()
});
toMqSqls.add(SqlMapping.get("goblin_goods_sku.insert"));
LinkedList<Object[]> initGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
goodsSkuInfoVoList.forEach(skuInfoVo -> initGoodsSkuObjs.add(new Object[]{
skuInfoVo.getSkuId(), skuInfoVo.getSpuId(), skuInfoVo.getSkuNo(), skuInfoVo.getName(), skuInfoVo.getSubtitle(),
skuInfoVo.getSellPrice(), skuInfoVo.getSkuPic(), skuInfoVo.getSkuIsbn(), skuInfoVo.getStock(), skuInfoVo.getSkuStock(),
skuInfoVo.getWarningStock(), skuInfoVo.getPrice(), skuInfoVo.getPriceMember(), skuInfoVo.getWeight(), skuInfoVo.getBuyFactor(),
skuInfoVo.getBuyRoster(), skuInfoVo.getBuyLimit(), skuInfoVo.getStoreId(), skuInfoVo.getSkuValidity(), skuInfoVo.getVirtualFlg(),
skuInfoVo.getStatus(), skuInfoVo.getShelvesStatus(), skuInfoVo.getSkuAppear(), skuInfoVo.getShelvesAt(), skuInfoVo.getCreatedBy(),
skuInfoVo.getCreatedAt(), skuInfoVo.getLogisticsTemplate()
}));
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_STORE.getKey(),
SqlMapping.gets(toMqSqls, initGoodsObjs, initGoodsSkuObjs));
}
@Override
......
......@@ -8,8 +8,10 @@ goblin_store_certification.insert_by_cert=INSERT INTO goblin_store_certification
goblin_store_certification.update_by_cert=UPDATE goblin_store_certification SET person_cert_type=?,person_name=?,person_cert_code=?,person_cert_validity=?,person_cert_lasting=?,person_cert_fpic=?,person_cert_bpic=?,person_cert_spic=?,province_id=?,province_name=?,city_id=?,city_name=?,county_id=?,county_name=?,bus_address=?,bus_name=?,bus_cert_code=?,bus_cert_validity=?,bus_cert_lasting=?,bus_cert_pic=?,bus_quality_pic=?,updated_by=?,updated_at=? WHERE store_id=?
goblin_store_certification.update_by_del=UPDATE goblin_store_certification SET del_flg=1,updated_by=?,updated_at=? WHERE store_id=?
#---- 商品信息
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_del=UPDATE goblin_goods SET del_flg=1,updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=?
goblin_goods_sku.insert=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,name,subtitle, sell_price,sku_pic,sku_isbn,stock,sku_stock, warning_stock,price,price_member,weight,buy_factor, buy_roster,buy_limit,store_id,sku_validity,virtual_flg, status,shelves_status,sku_appear,shelves_at,created_by, created_at,logistics_template)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg=1,updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=?
#---- 商铺活动
goblin.store.market.insert=INSERT INTO goblin_store_marketing (`store_market_id`,`name`,`type`,`status`,`store_id`,`start_time`,`end_time`,`del_flag`,`is_pre`,`pre_time`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?)
......
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