- rf.
This commit is contained in:
@@ -35,6 +35,7 @@ func InitServiceInfo(version, buildDate, gitCommit string) {
|
||||
"storeStatus": model.StoreStatusName,
|
||||
"categoryType": model.CategoryTypeName,
|
||||
"skuStatus": model.SkuStatusName,
|
||||
"skuNamePrefix": model.SkuNamePrefixNames,
|
||||
"vendorName": model.VendorChineseNames,
|
||||
"orderStatus": model.OrderStatusName,
|
||||
"waybillStatus": model.WaybillStatusName,
|
||||
|
||||
@@ -20,7 +20,7 @@ func init() {
|
||||
}
|
||||
|
||||
func TestGetQiniuUploadToken(t *testing.T) {
|
||||
token, err := GetQiniuUploadToken()
|
||||
token, err := GetQiniuUploadToken("")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package cms
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
@@ -26,6 +25,9 @@ type StoreSkuBindInfo struct {
|
||||
IsFocus int `json:"isFocus"` // -1:不关注,0:忽略,1:关注
|
||||
IsSale int `json:"isSale"` // -1:不可售,0:忽略,1:可售
|
||||
Price int `json:"price"`
|
||||
|
||||
ElmID int64 `json:"elmID"`
|
||||
EbaiID int64 `json:"ebaiID"`
|
||||
}
|
||||
|
||||
func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *StoreSkuNamesInfo, err error) {
|
||||
@@ -85,8 +87,15 @@ func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, of
|
||||
sqlParams = append(sqlParams, params["unit"].(string))
|
||||
}
|
||||
if params["skuID"] != nil {
|
||||
sql += " AND t2.id = ?"
|
||||
sqlParams = append(sqlParams, params["skuID"].(int))
|
||||
skuID, ok := params["skuID"].(int)
|
||||
if ok {
|
||||
sql += " AND t2.id = ?"
|
||||
sqlParams = append(sqlParams, skuID)
|
||||
} else {
|
||||
skuIDs := params["skuID"].([]interface{})
|
||||
sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
}
|
||||
}
|
||||
if params["fromStatus"] != nil {
|
||||
fromStatus := params["fromStatus"].(int)
|
||||
@@ -166,12 +175,10 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
||||
db := dao.GetDB()
|
||||
var existBinds []*model.StoreSkuBind
|
||||
skuIDs := make([]int, len(skuBinds))
|
||||
placeHolders := make([]string, len(skuBinds))
|
||||
for k, v := range skuBinds {
|
||||
skuIDs[k] = v.SkuID
|
||||
placeHolders[k] = "?"
|
||||
}
|
||||
questions := "(" + strings.Join(placeHolders, ",") + ")"
|
||||
questions := "(" + dao.GenQuestionMarks(len(skuBinds)) + ")"
|
||||
if err = dao.GetRows(db, &existBinds, `
|
||||
SELECT *
|
||||
FROM store_sku_bind
|
||||
@@ -201,6 +208,9 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
||||
if skuBind != nil {
|
||||
if v.Price != 0 {
|
||||
skuBind.Price = v.Price
|
||||
skuBind.JdSyncStatus |= model.SyncFlagPriceMask
|
||||
skuBind.ElmSyncStatus |= model.SyncFlagPriceMask
|
||||
skuBind.EbaiSyncStatus |= model.SyncFlagPriceMask
|
||||
}
|
||||
if v.IsSale != 0 {
|
||||
if v.IsSale == 1 {
|
||||
@@ -208,6 +218,9 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
||||
} else {
|
||||
skuBind.Status = model.StoreSkuBindStatusDontSale
|
||||
}
|
||||
skuBind.JdSyncStatus |= model.SyncFlagSaleMask
|
||||
skuBind.ElmSyncStatus |= model.SyncFlagSaleMask
|
||||
skuBind.EbaiSyncStatus |= model.SyncFlagSaleMask
|
||||
}
|
||||
if ok {
|
||||
if v.IsFocus == -1 {
|
||||
@@ -217,13 +230,20 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
||||
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
|
||||
})
|
||||
} else {
|
||||
// todo 如果修改ebai与elm ID怎么处理呢?
|
||||
skuBind.DeletedAt = utils.DefaultTimeValue
|
||||
skuBind.JdSyncStatus = model.SyncFlagModifiedMask
|
||||
skuBind.ElmSyncStatus = model.SyncFlagModifiedMask
|
||||
skuBind.EbaiSyncStatus = model.SyncFlagModifiedMask
|
||||
skuBind.JdSyncStatus |= model.SyncFlagModifiedMask
|
||||
skuBind.ElmSyncStatus |= model.SyncFlagModifiedMask
|
||||
skuBind.EbaiSyncStatus |= model.SyncFlagModifiedMask
|
||||
_, err = dao.UpdateEntity(db, skuBind)
|
||||
}
|
||||
} else {
|
||||
if v.EbaiID != 0 {
|
||||
skuBind.EbaiID = v.EbaiID
|
||||
}
|
||||
if v.ElmID != 0 {
|
||||
skuBind.ElmID = v.ElmID
|
||||
}
|
||||
skuBind.JdSyncStatus = model.SyncFlagNewMask
|
||||
skuBind.ElmSyncStatus = model.SyncFlagNewMask
|
||||
skuBind.EbaiSyncStatus = model.SyncFlagNewMask
|
||||
@@ -236,7 +256,7 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
||||
}
|
||||
}
|
||||
dao.Commit(db)
|
||||
err = CurVendorSync.SyncStoreSku(db, storeID, -1, false, userName)
|
||||
err = CurVendorSync.SyncStoreSku(db, storeID, skuIDs, false, userName)
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
@@ -98,6 +98,31 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncStoreSku(db *dao.DaoDB, storeID, skuID int, isForce bool, userName string) (err error) {
|
||||
func (v *VendorSync) SyncStoreSku(db *dao.DaoDB, storeID int, skuIDs []int, isForce bool, userName string) (err error) {
|
||||
storeMapList := v.GetStoreMapInfo(db, storeID)
|
||||
var skuNamesInfo *StoreSkuNamesInfo
|
||||
if skuNamesInfo, err = GetStoreSkus(storeID, "", utils.Params2Map("skuID", skuIDs), 0, 10000); err == nil {
|
||||
if skuNamesInfo.TotalCount != len(skuNamesInfo.SkuNames) {
|
||||
panic("too many skus!")
|
||||
}
|
||||
for _, storeMap := range storeMapList {
|
||||
switch storeMap.VendorID {
|
||||
case model.VendorIDJD:
|
||||
err = v.SyncStoreSku2JD(db, skuNamesInfo.SkuNames, isForce, userName)
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncStoreSku2JD(db *dao.DaoDB, skuInfoList []*StoreSkuNameExt, isForce bool, userName string) (err error) {
|
||||
// for _, skuInfo := range skuInfoList {
|
||||
|
||||
// }
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) GetStoreMapInfo(db *dao.DaoDB, storeID int) (storeMapList []*model.StoreMap) {
|
||||
dao.GetEntities(db, &storeMapList, utils.Params2Map(model.FieldStoreID, storeID), false)
|
||||
return storeMapList
|
||||
}
|
||||
|
||||
@@ -81,3 +81,14 @@ func WrapUpdateULEntity(item interface{}, lastOperator string) interface{} {
|
||||
}
|
||||
return item
|
||||
}
|
||||
|
||||
func GenQuestionMarks(count int) string {
|
||||
marks := ""
|
||||
if count > 0 {
|
||||
marks = "?"
|
||||
for i := 1; i < count; i++ {
|
||||
marks += ", ?"
|
||||
}
|
||||
}
|
||||
return marks
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ const (
|
||||
SyncFlagModifiedMask = 1
|
||||
SyncFlagNewMask = 2
|
||||
SyncFlagDeletedMask = 4
|
||||
|
||||
SyncFlagSaleMask = 5
|
||||
SyncFlagPriceMask = 6
|
||||
)
|
||||
|
||||
// const (
|
||||
|
||||
@@ -51,6 +51,40 @@ var (
|
||||
"支",
|
||||
"杯",
|
||||
}
|
||||
SkuNamePrefixNames = []string{
|
||||
"新鲜",
|
||||
"组合菜",
|
||||
"冰鲜",
|
||||
"优",
|
||||
"精",
|
||||
"熟食",
|
||||
"鲜",
|
||||
"净菜",
|
||||
"净",
|
||||
"冻",
|
||||
"半熟",
|
||||
"果切",
|
||||
"熟",
|
||||
"优质",
|
||||
"生",
|
||||
"干货",
|
||||
"快捷菜",
|
||||
"手工厨房",
|
||||
"带壳",
|
||||
"长条",
|
||||
"鲜活宰杀",
|
||||
"惠",
|
||||
"鱼腥草",
|
||||
"冰冻",
|
||||
"思念",
|
||||
"散装",
|
||||
"优质精品",
|
||||
"干",
|
||||
"湿",
|
||||
"生品",
|
||||
"虾仁",
|
||||
"鲜活现宰",
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
Reference in New Issue
Block a user