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

Commit 04771566 authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/dev_221107_zgb_goods_import' into dev_221101ZGB01

# Conflicts:
#	liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/docu/db_ln_goblin_initialdata.sql
parents cddbb989 9f349e3f
package com.liquidnet.service.goblin.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class GoblinGoodsImportDto {
@ExcelProperty(value = "商品编码", index = 0)
private String spuCode;
@ExcelProperty(value = "商品名称", index = 1)
private String spuName;
@ExcelProperty(value = "商品图片", index = 2)
private String spuImgs;
private List<String> spuImgList;//
@ExcelProperty(value = "商品规格", index = 3)
private String skuSpec;
private List<GoblinGoodsSpecDto> skuSpecDtos;//
@ExcelProperty(value = "规格编码", index = 4)
private String skuCode;
@ExcelProperty(value = "价格", index = 5)
private BigDecimal price;
@ExcelProperty(value = "库存", index = 6)
private Integer stock;
@ExcelProperty(value = "规格图片", index = 7)
private String skuImg;
@ExcelProperty(value = "规格条码", index = 8)
private String skuBarCode;
// @ExcelProperty(value = "商品条码")
// private String spuBarCode;
private String failureReason;//
}
......@@ -22,8 +22,12 @@ public class GoblinGoodsInfoVo implements Serializable, Cloneable {
private String storeId;
@ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId;
@ApiModelProperty(position = 12, value = "商品编码[默认为系统编码,也可手动输入商家自己的编码]")
@ApiModelProperty(position = 12, value = "商品编码[50]默认为系统编码,也可手动输入商家自己的编码")
private String spuNo;
@ApiModelProperty(position = 12, value = "商品条码[32]")
private String spuBarCode;
@ApiModelProperty(position = 12, value = "ERP商品编码[64]")
private String spuErpCode;
@ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]")
private int spuType;
@ApiModelProperty(position = 13, value = "商品名称[100]")
......
......@@ -23,8 +23,12 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable {
private String skuId;
@ApiModelProperty(position = 11, value = "商品ID[64]")
private String spuId;
@ApiModelProperty(position = 12, value = "单品的编号[45]")
@ApiModelProperty(position = 12, value = "单品的条码[50]默认为系统编码,也可手动输入商家自己的编码")
private String skuNo;
@ApiModelProperty(position = 12, value = "单品条码[32]")
private String skuBarCode;
@ApiModelProperty(position = 12, value = "ERP单品编码[64]")
private String skuErpCode;
@ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]")
private int skuType;
@ApiModelProperty(position = 13, value = "单品的名称[100]")
......
......@@ -35,6 +35,16 @@ public class GoblinGoods implements Serializable {
*/
private String spuNo;
/**
* 商品条码
*/
private String spuBarCode;
/**
* ERP商品编码
*/
private String spuErpCode;
/**
* 商品类型[0-常规|1-数字藏品]
*/
......
......@@ -28,10 +28,20 @@ public class GoblinGoodsSku implements Serializable {
private String spuId;
/**
* 单品的编号
* 单品编码
*/
private String skuNo;
/**
* 单品条码
*/
private String skuBarCode;
/**
* ERP单品编码
*/
private String skuErpCode;
/**
* 商品类型[0-常规|1-数字藏品]
*/
......
......@@ -1198,6 +1198,14 @@ create table goblin_goods_anticipate_mix
state int(1) default 0 not null comment '状态(0:正常(默认))',
created_date datetime null comment '创建时间'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci comment '用户mix预约记录';
# -- >>------------------------------------------------------------------------------------ |20221110商品导入扫码
alter table goblin_goods modify spu_no varchar(64) not null comment '商品编码';
alter table goblin_goods add spu_bar_code varchar(64) null comment '商品条码' after spu_no;
alter table goblin_goods add spu_erp_code varchar(64) null comment 'ERP商品编码' after spu_bar_code;
alter table goblin_goods_sku modify sku_no varchar(64) not null comment '单品编码';
alter table goblin_goods_sku add sku_bar_code varchar(64) null comment '单品条码' after sku_no;
alter table goblin_goods_sku add sku_erp_code varchar(64) null comment 'ERP单品编码' after sku_bar_code;
# -- >>------------------------------------------------------------------------------------
# -- >>------------------------------------------------------------------------------------
# -- >>------------------------------------------------------------------------------------
......
package com.liquidnet.service.goblin.controller.manage;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.service.impl.manage.GoblinStoreMgtGoodsImportService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
@Api(tags = "店铺商品管理")
@Slf4j
@RestController
@RequestMapping("store/mgt/goods")
public class GoblinStoreMgtGoodsImportController {
@Autowired
GoblinRedisUtils goblinRedisUtils;
@Autowired
private GoblinStoreMgtGoodsImportService goblinStoreMgtGoodsImportService;
@PostMapping("/upload")
@ApiOperation(value = "批量导入数据", notes = "同一个店铺多次导入数据时间间隔最短30秒")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "File", name = "file", value = "文件"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "dataType", value = "导入数据类型[1-商品数据]", example = "1"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeId", value = "店铺ID"),
})
public ResponseDto<String> upload(@RequestParam MultipartFile file, @RequestParam int dataType,
@RequestParam @NotBlank(message = "店铺ID不能为空") String storeId) {
String currentUid = CurrentUtil.getCurrentUid();
if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002"));
}
if (!goblinRedisUtils.redisUtil.lock(GoblinRedisConst.BASIC_GOODS_SKU.concat("lk").concat(storeId), 1, 30)) {
return ResponseDto.failure(ErrorMapping.get("140000"));
}
String analysisResultMsg;
try {
switch (dataType) {
case 1:
analysisResultMsg = goblinStoreMgtGoodsImportService.goodsInformationDataAnalysisProcessing(file, currentUid, storeId);
break;
case 2:
default:
return ResponseDto.failure(ErrorMapping.get("149001"));
}
} catch (LiquidnetServiceException e) {
return ResponseDto.failure(e.getMessage());
} catch (IOException e) {
log.warn("店铺商品管理:批量导入数据:异常[UID={},dataType={},fileName={}]", currentUid, dataType, file.getOriginalFilename(), e);
return ResponseDto.failure("数据有误,解析失败");
}
return ResponseDto.success(analysisResultMsg);
}
}
......@@ -158,12 +158,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
goblinRedisUtils.setSkuStock(null, skuId, skuInfoVo.getSkuStock());
initGoodsSkuObjs.add(new Object[]{
skuId, 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(),
buyRoster, skuInfoVo.getBuyLimit(), skuInfoVo.getStoreId(), skuInfoVo.getSkuValidity(), skuInfoVo.getVirtualFlg(),
skuInfoVo.getStatus(), skuInfoVo.getShelvesStatus(), skuInfoVo.getSkuAppear(), skuInfoVo.getShelvesAt(), createdBy,
createdAt, skuInfoVo.getLogisticsTemplate()
skuId, skuInfoVo.getSpuId(), skuInfoVo.getSkuNo(), skuInfoVo.getSkuBarCode(), skuInfoVo.getName(),
skuInfoVo.getSubtitle(), skuInfoVo.getSellPrice(), skuInfoVo.getSkuPic(), skuInfoVo.getSkuIsbn(), skuInfoVo.getStock(),
skuInfoVo.getSkuStock(), skuInfoVo.getWarningStock(), skuInfoVo.getPrice(), skuInfoVo.getPriceMember(), skuInfoVo.getWeight(),
skuInfoVo.getBuyFactor(), buyRoster, skuInfoVo.getBuyLimit(), skuInfoVo.getStoreId(), skuInfoVo.getSkuValidity(),
skuInfoVo.getVirtualFlg(), skuInfoVo.getStatus(), skuInfoVo.getShelvesStatus(), skuInfoVo.getSkuAppear(), skuInfoVo.getShelvesAt(),
createdBy, createdAt, skuInfoVo.getLogisticsTemplate()
});
skuInfoVo.getSkuSpecList().forEach(skuSpecDto -> initGoodsSkuSpecValueObjs.add(new Object[]{
......@@ -178,13 +178,13 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
toMqSqls.add(SqlMapping.get("goblin_goods.insert"));
LinkedList<Object[]> initGoodsObjs = CollectionUtil.linkedListObjectArr();
initGoodsObjs.add(new Object[]{
spuId, 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(), createdBy, createdAt,
goodsInfoVo.getLogisticsTemplate()
spuId, goodsInfoVo.getSpuNo(), goodsInfoVo.getSpuBarCode(), 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(), createdBy,
createdAt, goodsInfoVo.getLogisticsTemplate()
});
toMqSqls.add(SqlMapping.get("goblin_goods_sku.insert"));
toMqSqls.add(SqlMapping.get("goblin_goods_image.insert_byreplace"));
......@@ -930,12 +930,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
toMqSqls.add(SqlMapping.get("goblin_goods_sku.insert"));
LinkedList<Object[]> initGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
initGoodsSkuObjs.add(new Object[]{
addSkuInfoVo.getSkuId(), addSkuInfoVo.getSpuId(), addSkuInfoVo.getSkuNo(), addSkuInfoVo.getName(), addSkuInfoVo.getSubtitle(),
addSkuInfoVo.getSellPrice(), addSkuInfoVo.getSkuPic(), addSkuInfoVo.getSkuIsbn(), addSkuInfoVo.getStock(), addSkuInfoVo.getSkuStock(),
addSkuInfoVo.getWarningStock(), addSkuInfoVo.getPrice(), addSkuInfoVo.getPriceMember(), addSkuInfoVo.getWeight(), addSkuInfoVo.getBuyFactor(),
addSkuInfoVo.getBuyRoster(), addSkuInfoVo.getBuyLimit(), addSkuInfoVo.getStoreId(), addSkuInfoVo.getSkuValidity(), addSkuInfoVo.getVirtualFlg(),
addSkuInfoVo.getStatus(), addSkuInfoVo.getShelvesStatus(), addSkuInfoVo.getSkuAppear(), addSkuInfoVo.getShelvesAt(), uid,
now, addSkuInfoVo.getLogisticsTemplate()
addSkuInfoVo.getSkuId(), addSkuInfoVo.getSpuId(), addSkuInfoVo.getSkuNo(), addSkuInfoVo.getSkuBarCode(), addSkuInfoVo.getName(),
addSkuInfoVo.getSubtitle(), addSkuInfoVo.getSellPrice(), addSkuInfoVo.getSkuPic(), addSkuInfoVo.getSkuIsbn(), addSkuInfoVo.getStock(),
addSkuInfoVo.getSkuStock(), addSkuInfoVo.getWarningStock(), addSkuInfoVo.getPrice(), addSkuInfoVo.getPriceMember(), addSkuInfoVo.getWeight(),
addSkuInfoVo.getBuyFactor(), addSkuInfoVo.getBuyRoster(), addSkuInfoVo.getBuyLimit(), addSkuInfoVo.getStoreId(), addSkuInfoVo.getSkuValidity(),
addSkuInfoVo.getVirtualFlg(), addSkuInfoVo.getStatus(), addSkuInfoVo.getShelvesStatus(), addSkuInfoVo.getSkuAppear(), addSkuInfoVo.getShelvesAt(),
uid, now, addSkuInfoVo.getLogisticsTemplate()
});
toMqSqls.add(SqlMapping.get("goblin_goods_spec.insert_byreplace"));
LinkedList<Object[]> initGoodsSpecObjs = CollectionUtil.linkedListObjectArr();
......
......@@ -506,6 +506,10 @@ public class GoblinMongoUtils {
return mongoTemplate.insert(vo, GoblinGoodsInfoVo.class.getSimpleName());
}
public List<GoblinGoodsInfoVo> insertMgtGoodsInfoVos(List<GoblinGoodsInfoVo> vos) {
return (List<GoblinGoodsInfoVo>) mongoTemplate.insert(vos, GoblinGoodsInfoVo.class.getSimpleName());
}
public void upsertGoodsInfoVo(GoblinGoodsInfoVo vo) {
Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
......@@ -790,6 +794,10 @@ public class GoblinMongoUtils {
return mongoTemplate.insert(vo, GoblinGoodsSkuInfoVo.class.getSimpleName());
}
public List<GoblinGoodsSkuInfoVo> insertMgtGoodsSkuInfoVos(List<GoblinGoodsSkuInfoVo> vos) {
return (List<GoblinGoodsSkuInfoVo>) mongoTemplate.insert(vos, GoblinGoodsSkuInfoVo.class.getSimpleName());
}
public UpdateResult upsertGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo) {
Document document = (Document) mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
......@@ -883,6 +891,15 @@ public class GoblinMongoUtils {
return pagedResult.setList(list).setTotal(count, pageSize);
}
// 根据sku条码获取skuNo
public List<String> existGoodsSkuNoBySkuNoList(String storeId, List<String> skuNoList) {
Query query = Query.query(Criteria.where("delFlg").is("0").and("storeId").is(storeId).and("skuNo").in(skuNoList));
query.fields().include("skuNo");
List<GoblinGoodsSkuInfoVo> vos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
return CollectionUtils.isEmpty(vos) ? null : vos.stream().map(GoblinGoodsSkuInfoVo::getSkuNo).collect(Collectors.toList());
// return mongoTemplate.count(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
}
// SKU信息
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVo(String skuId) {
// return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0").and("shelvesStatus").is("3")),
......
......@@ -43,7 +43,7 @@ import static com.liquidnet.service.goblin.constant.GoblinRedisConst.REDIS_GOBLI
@Component
public class GoblinRedisUtils {
@Autowired
RedisUtil redisUtil;
public RedisUtil redisUtil;
@Autowired
GoblinMongoUtils goblinMongoUtils;
@Autowired
......
......@@ -34,7 +34,8 @@ goblin_goods_sku_spec_value.insert_byreplace=REPLACE INTO goblin_goods_sku_spec_
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'
#---- \u5546\u54C1\u4FE1\u606F
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.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.insert=INSERT INTO goblin_goods (spu_id,spu_no,spu_bar_code,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.insert_for_digital=INSERT INTO goblin_goods (spu_id,spu_no,spu_type,name,intro,attention,store_id,cate_fid,cate_sid,cate_tid,virtual_flg,status,shelves_status,spu_appear,author,publisher,created_by,created_at)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'
goblin_goods.update_by_edit_for_digital=UPDATE goblin_goods SET name=?,intro=?,cate_fid=?,cate_sid=?,cate_tid=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
......@@ -46,7 +47,8 @@ goblin_goods.update_by_edit_sku_for_digital=UPDATE goblin_goods SET price_ge=?,p
goblin_goods.update_by_del_sku=UPDATE goblin_goods SET price_ge=?,price_le=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods.update_by_del_store=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=? AND del_flg='0'
goblin_goods.update_by_del=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND del_flg='0'
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.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.insert=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,sku_bar_code,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.insert_for_digital=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,sku_type,name,subtitle,sku_pic,sku_watch,watch_type,sku_watch_pic,stock,sku_stock,hit_ratio,price,price_v,product_id,price_member,intro,details,buy_factor,buy_limit,store_id,shelves_handle,shelves_time,sale_start_time,virtual_flg,status,shelves_status,sku_appear,sku_canbuy,unbox,opening_time,shelves_at,created_by,created_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods_sku.update_by_edit_for_market=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,weight=?,stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku.update_by_edit=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,price=?,price_member=?,weight=?,stock=?,sku_stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,buy_factor=?,buy_roster=?,buy_limit=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_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