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

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

+API:分类关联规格|标签(商品标签、音乐人等)|店铺分类列表;

parent bae5de7b
package com.liquidnet.service.goblin.dto.manage.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "GoblinMgtCategorySpecVo", description = "分类关联的规格信息")
@Data
public class GoblinMgtCategorySpecVo implements Serializable, Cloneable {
private static final long serialVersionUID = -1807588898644126000L;
@ApiModelProperty(position = 11, value = "分类ID")
private String cateId;
@ApiModelProperty(position = 12, value = "规格ID")
private String specId;
@ApiModelProperty(position = 13, value = "规格名称")
private String specName;
@ApiModelProperty(position = 14, value = "删除标记[0-未删除|1-删除")
private String delFlg;
private static final GoblinMgtCategorySpecVo obj = new GoblinMgtCategorySpecVo();
public static GoblinMgtCategorySpecVo getNew() {
try {
return (GoblinMgtCategorySpecVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinMgtCategorySpecVo();
}
}
}
......@@ -14,7 +14,9 @@ public class GoblinGoodsTagVo implements Serializable, Cloneable {
private String tagId;
@ApiModelProperty(position = 12, value = "标签名称")
private String tagName;
@ApiModelProperty(position = 13, value = "排序[数值越小,排序越前]")
@ApiModelProperty(position = 13, value = "标签图片")
private String tagPic;
@ApiModelProperty(position = 14, value = "排序[数值越小,排序越前]")
private Integer sort;
public GoblinGoodsTagVo setSort(Integer sort) {
......@@ -35,6 +37,7 @@ public class GoblinGoodsTagVo implements Serializable, Cloneable {
if (null == source) return this;
this.setTagId(source.getTagId());
this.setTagName(source.getTagName());
this.setTagPic(source.getTagPic());
return this;
}
}
......@@ -22,8 +22,8 @@ public class GoblinSelfTagVo implements Serializable, Cloneable {
private String tagType;
@ApiModelProperty(position = 15, value = "标签所属[0-普通标签|1-专属标签]")
private String tagBelong;
@ApiModelProperty(position = 16, value = "排序[数值越小,排序越前]")
private Integer sort;
@ApiModelProperty(position = 16, value = "删除标记[0-未删除|1-删除]")
private String delFlg;
private static final GoblinSelfTagVo obj = new GoblinSelfTagVo();
......
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "GoblinStoreGoodsCategoryVo", description = "店铺商品分类")
@Data
public class GoblinStoreGoodsCategoryVo implements Serializable, Cloneable {
private static final long serialVersionUID = -9043528667634548144L;
@ApiModelProperty(position = 11, value = "店铺ID")
private String storeId;
@ApiModelProperty(position = 12, value = "分类ID")
private String cateId;
@ApiModelProperty(position = 13, value = "分类名称")
private String name;
@ApiModelProperty(position = 14, value = "排序[数值越小,排序越前]")
private Integer sort;
@ApiModelProperty(position = 15, value = "分类层级[1-一级|2-二级|3-三级]")
private String grade;
@ApiModelProperty(position = 16, value = "父级分类ID")
private String catePid;
@ApiModelProperty(position = 17, value = "是否需要填写ISBN[0-否|1-是]")
private String neIsbn;
@ApiModelProperty(position = 18, value = "删除标记[0-未删除|1-删除]")
private String delFlg;
private String createdBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
private String updatedBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
private String deletedBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime deletedAt;
private static final GoblinStoreGoodsCategoryVo obj = new GoblinStoreGoodsCategoryVo();
public static GoblinStoreGoodsCategoryVo getNew() {
try {
return (GoblinStoreGoodsCategoryVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinStoreGoodsCategoryVo();
}
}
}
......@@ -38,6 +38,11 @@ public class GoblinGoodsTag implements Serializable {
*/
private Integer sort;
/**
* 标签所属[0-普通标签|1-专属标签]
*/
private String tagBelong;
/**
* 删除标记[0-未删除|1-删除]
*/
......
......@@ -222,12 +222,13 @@ create index idx_ggss_spu_id on goblin_goods_service_support (spu_id);
drop table if exists goblin_goods_tag;
create table goblin_goods_tag
(
mid bigint auto_increment primary key,
spu_id varchar(64) not null comment '商品id',
tag_id varchar(30) not null comment '标签id,对应 goblin_self_goods_tag.tag_id | goblin_self_extag.tag_id',
sort int default 0 comment '排序[数值越小,排序越前]',
del_flg char default '0' comment '删除标记[0-未删除|1-删除]',
comment varchar(255)
mid bigint auto_increment primary key,
spu_id varchar(64) not null comment '商品id',
tag_id varchar(30) not null comment '标签id,对应 goblin_self_tag.tag_id',
sort int default 0 comment '排序[数值越小,排序越前]',
tag_belong char default '0' comment '标签所属[0-普通标签|1-专属标签]',
del_flg char default '0' comment '删除标记[0-未删除|1-删除]',
comment varchar(255)
) engine = InnoDB comment '商品关联标签';
create index idx_ggt_tag_id on goblin_goods_tag (tag_id);
......
package com.liquidnet.service.goblin.controller.manage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreGoodsCategoryVo;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ApiSupport(order = 149003)
@Api(tags = "店铺分类管理")
@Slf4j
@Validated
@RestController
@RequestMapping("store/mgt/category")
public class GoblinStoreMgtCategoryController {
@Autowired
GoblinMongoUtils goblinMongoUtils;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "列表")
@GetMapping("list")
public ResponseDto<PagedResult<GoblinStoreGoodsCategoryVo>> list() {
return ResponseDto.success(null);
}
}
package com.liquidnet.service.goblin.controller.manage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSelfTagVo;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.List;
@ApiSupport(order = 149003)
@Api(tags = "附加数据")
@Slf4j
@Validated
@RestController
@RequestMapping("store/mgt/extra")
public class GoblinStoreMgtExtraController {
@Autowired
GoblinRedisUtils goblinRedisUtils;
@Autowired
GoblinMongoUtils goblinMongoUtils;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "分类关联的规格信息")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "cateId", value = "分类ID"),
})
@GetMapping("cate-specs")
public ResponseDto<List<GoblinMgtCategorySpecVo>> categorySpecList(@RequestParam String cateId) {
if (StringUtils.isBlank(cateId)) return ResponseDto.success();
return ResponseDto.success(goblinMongoUtils.getCategorySpecVos(cateId));
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "标签信息", notes = "获取商品标签与音乐人、艺人、IP")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "keyword", value = "标签关键字"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "belong", value = "标签所属[0-普通标签|1-专属标签]", allowableValues = "0,1"),
})
@GetMapping("tags")
public ResponseDto<List<GoblinSelfTagVo>> tagList(@RequestParam String keyword,
@NotBlank(message = "标签所属参数无效")
@Pattern(regexp = "\\b(0|1)\\b", message = "标签所属[0-普通标签|1-专属标签]")
@RequestParam String belong) {
return ResponseDto.success(goblinMongoUtils.getSelfTagVos(belong, keyword));
}
}
......@@ -10,6 +10,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsActionParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsEditSkuParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo;
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;
......@@ -104,11 +105,13 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
goblinMongoUtils.setGoodsInfoVo(goodsInfoVo);
goblinMongoUtils.setGoodsSkuInfoVos(goodsSkuInfoVoList);
String spuId = goodsInfoVo.getSpuId();
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(),
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(),
......@@ -126,9 +129,40 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
skuInfoVo.getStatus(), skuInfoVo.getShelvesStatus(), skuInfoVo.getSkuAppear(), skuInfoVo.getShelvesAt(), skuInfoVo.getCreatedBy(),
skuInfoVo.getCreatedAt(), skuInfoVo.getLogisticsTemplate()
}));
toMqSqls.add(SqlMapping.get("goblin_goods_image.insert"));
LinkedList<Object[]> initGoodsImageObjs = CollectionUtil.linkedListObjectArr();
if (CollectionUtils.isEmpty(goodsInfoVo.getImageList())) {
goodsInfoVo.getImageList().forEach(imageUrl -> initGoodsImageObjs.add(new Object[]{spuId, imageUrl}));
}
toMqSqls.add(SqlMapping.get("goblin_goods_tag.insert"));
LinkedList<Object[]> initGoodsTagObjs = CollectionUtil.linkedListObjectArr();
if (!CollectionUtils.isEmpty(goodsInfoVo.getTagVoList())) {
goodsInfoVo.getTagVoList().forEach(tagVo -> initGoodsTagObjs.add(new Object[]{spuId, tagVo.getTagId(), tagVo.getSort(), "0"}));
}
if (!CollectionUtils.isEmpty(goodsInfoVo.getExtagVoList())) {
goodsInfoVo.getExtagVoList().forEach(exTagVo -> initGoodsTagObjs.add(new Object[]{spuId, exTagVo.getTagId(), exTagVo.getSort(), "1"}));
}
toMqSqls.add(SqlMapping.get("goblin_goods_service_support.insert"));
LinkedList<Object[]> initGoodsServiceSupportObjs = CollectionUtil.linkedListObjectArr();
if (!CollectionUtils.isEmpty(goodsInfoVo.getServiceSupportVoList())) {
goodsInfoVo.getServiceSupportVoList().forEach(ssvo -> initGoodsServiceSupportObjs.add(new Object[]{spuId, ssvo.getSsid()}));
}
{// 规格记录
List<GoblinGoodsSpecVo> specVoList = goodsInfoVo.getSpecVoList();
String cateFid = goodsInfoVo.getCateFid();
String cateSid = goodsInfoVo.getCateSid();
String cateTid = goodsInfoVo.getCateTid();
String filterCateId = StringUtils.isBlank(cateTid) ? (StringUtils.isBlank(cateSid) ? cateFid : cateSid) : cateTid;
List<GoblinMgtCategorySpecVo> categorySpecVoList = goblinMongoUtils.getCategorySpecVos(filterCateId);
if (CollectionUtils.isEmpty(categorySpecVoList)) {// 根据分类ID未查取到规格信息,则新增
} else {// 根据分类ID查取到规格信息,则进一步比对判断是否新增
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_STORE.getKey(),
SqlMapping.gets(toMqSqls, initGoodsObjs, initGoodsSkuObjs));
}
}
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, initGoodsObjs, initGoodsSkuObjs, initGoodsImageObjs, initGoodsTagObjs, initGoodsServiceSupportObjs));
}
@Override
......@@ -268,8 +302,21 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
String storeId = storeMgtGoodsActionParam.getStoreId();
List<String> spuIdList = storeMgtGoodsActionParam.getSpuIdList();
goblinMongoUtils.updateGoodsInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now);
// TODO: 2022/1/7 zhanggb redis+sql
if (goblinMongoUtils.updateGoodsInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now)) {
// TODO: 2022/1/7 zhanggb redis
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_goods.update_by_shelves"));
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
String shelvesStatus = shelvesFlg ? "3" : "1";
spuIdList.forEach(spuId -> updateGoodsObjs.add(new Object[]{shelvesStatus, now, uid, now, spuId, storeId}));
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_shelves"));
LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
spuIdList.forEach(spuId -> updateGoodsSkuObjs.add(new Object[]{shelvesStatus, now, uid, now, spuId, storeId}));
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, updateGoodsObjs, updateGoodsSkuObjs));
}
}
@Override
......@@ -278,6 +325,19 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
String storeId = storeMgtGoodsActionParam.getStoreId();
List<String> spuIdList = storeMgtGoodsActionParam.getSpuIdList();
goblinMongoUtils.delGoodsInfoVoBySpuIds(storeId, spuIdList, uid, now);
if (goblinMongoUtils.delGoodsInfoVoBySpuIds(storeId, spuIdList, uid, now)) {
// TODO: 2022/1/7 zhanggb redis
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_goods.update_by_del"));
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
spuIdList.forEach(spuId -> updateGoodsObjs.add(new Object[]{uid, now, uid, now, spuId, storeId}));
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del"));
LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
spuIdList.forEach(spuId -> updateGoodsSkuObjs.add(new Object[]{uid, now, uid, now, spuId, storeId}));
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, updateGoodsObjs, updateGoodsSkuObjs));
}
}
}
......@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinMgtCategorySpecVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.vo.*;
import com.mongodb.BasicDBObject;
......@@ -40,8 +41,25 @@ public class GoblinMongoUtils {
@Autowired
MongoConverter mongoConverter;
/* ---------------------------------------- 分类数据源 ---------------------------------------- */
/* ---------------------------------------- 分类规格数据源 ---------------------------------------- */
public List<GoblinMgtCategorySpecVo> getCategorySpecVos(String cateId) {
return mongoTemplate.find(Query.query(Criteria.where("cateId").is(cateId).and("delFlg").is("0")),
GoblinMgtCategorySpecVo.class,GoblinMgtCategorySpecVo.class.getSimpleName());
}
/* ---------------------------------------- 标签数据源 ---------------------------------------- */
public List<GoblinSelfTagVo> getSelfTagVos(String belong, String keyword) {
Criteria criteria = Criteria.where("delFlg").is("0").and("tagBelong").is(belong);
if (StringUtils.isNotBlank(keyword)) {
criteria.and("tagName").regex("^.*" + keyword + ".*$");
}
return mongoTemplate.find(Query.query(criteria).skip(0).limit(20), GoblinSelfTagVo.class, GoblinSelfTagVo.class.getSimpleName());
}
public List<GoblinSelfTagVo> getSelfTagVos(List<String> tagIds) {
if (CollectionUtils.isEmpty(tagIds)) return ObjectUtil.getGoblinSelfTagVoArrayList();
......@@ -149,7 +167,7 @@ public class GoblinMongoUtils {
Criteria criteria = new Criteria();
if (StringUtils.isNotBlank(filterParam.getKeyword())) {
Pattern pattern = Pattern.compile("^.*" + filterParam.getKeyword() + ".*$", Pattern.CASE_INSENSITIVE);
criteria.orOperator(
criteria.andOperator(
Criteria.where("name").regex(pattern)
);
}
......
......@@ -9,10 +9,24 @@ goblin_store_certification.update_by_cert=UPDATE goblin_store_certification SET
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.update_by_shelves=UPDATE goblin_goods SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE spu_id=? AND store_id=? AND sku_appear='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 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_goods_sku.update_by_shelves=UPDATE goblin_goods_sku SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE spu_id=? AND store_id=? AND sku_appear='0'
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg=1,updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND store_id=?
goblin_goods_image.insert=INSERT INTO goblin_goods_image (spu_id,url)VALUES(?,?)
goblin_goods_tag.insert=insert into goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?)
goblin_goods_service_support.insert=INSERT INTO goblin_goods_service_support (spu_id,ssid)VALUES(?,?)
goblin_goods_spu_spec_value.insert=INSERT INTO goblin_goods_spu_spec_value (spu_id,spec_id,spec_vid)VALUES(?,?,?)
goblin_goods_sku_spec_value.insert=INSERT INTO goblin_goods_sku_spec_value (spu_id,sku_id,spec_id,spec_vid)VALUES(?,?,?,?)
goblin_goods_category_spec.insert=insert into goblin_goods_category_spec (cate_id, spec_id)VALUES(?,?)
goblin_goods_spec.insert=INSERT INTO goblin_goods_spec (spec_id,spec_name,created_by,created_at)VALUES(?,?,?,?)
goblin_goods_spec_value.insert=INSERT INTO goblin_goods_spec_value (spec_id,spec_vid,spec_vname,created_by,created_at)VALUES(?,?,?,?,?)
#---- 商铺活动
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 (?,?,?,?,?,?,?,?,?,?,?)
goblin.store.market.status=UPDATE goblin_store_marketing SET status=? , del_flag=? WHERE store_market_id =? and store_id =?
......
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