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