- sku man.
This commit is contained in:
@@ -1,78 +1,14 @@
|
|||||||
package cms
|
package cms
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
)
|
)
|
||||||
|
|
||||||
type VendorSync struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
CurVendorSync VendorSync
|
CurVendorSync VendorSync
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
|
||||||
ErrEntityNotExist = errors.New("找不到相应实体")
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
||||||
return basesch.FixedBaseScheduler.GetPurchasePlatformFromVendorID(vendorID)
|
return basesch.FixedBaseScheduler.GetPurchasePlatformFromVendorID(vendorID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncCategory(categoryID int, isForce bool, userName string) (err error) {
|
|
||||||
db := dao.GetDB()
|
|
||||||
cats := []*model.SkuCategory{}
|
|
||||||
cond := make(map[string]interface{})
|
|
||||||
if categoryID != 0 {
|
|
||||||
cond["ID"] = categoryID
|
|
||||||
}
|
|
||||||
err = dao.GetEntities(db, &cats, cond, true)
|
|
||||||
for _, cat := range cats {
|
|
||||||
if (cat.JdSyncStatus & model.SyncFlagNewMask) != 0 { // 新增
|
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).CreateCategory(cat, userName)
|
|
||||||
} else if (cat.JdSyncStatus&model.SyncFlagModifiedMask) != 0 || isForce { // 修改
|
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).UpdateCategory(cat, userName)
|
|
||||||
} else if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 {
|
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).DeleteCategory(cat, userName)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
cat.JdSyncStatus = 0
|
|
||||||
_, err = dao.UpdateEntity(db, cat, model.FieldJdSyncStatus)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID int, store *model.Store, isForce bool, userName string) (err error) {
|
|
||||||
var (
|
|
||||||
storeMaps []*model.StoreMap
|
|
||||||
)
|
|
||||||
if db == nil {
|
|
||||||
db = dao.GetDB()
|
|
||||||
}
|
|
||||||
err = dao.GetEntities(db, &storeMaps, utils.Params2Map(model.FieldStoreID, store.ID), true)
|
|
||||||
if err == nil {
|
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(store, false))
|
|
||||||
copiedStore := *store
|
|
||||||
for _, storeMap := range storeMaps {
|
|
||||||
if (vendorID == -1 || storeMap.VendorID == vendorID) && (isForce || storeMap.SyncStatus != 0) {
|
|
||||||
copiedStore.Status = mergeStoreStatus(store.Status, storeMap.Status)
|
|
||||||
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(storeMap.VendorStoreID, &copiedStore, userName); err == nil {
|
|
||||||
storeMap.SyncStatus = 0
|
|
||||||
dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func AddCategory(cat *model.SkuCategory, userName string) (outCat *model.SkuCate
|
|||||||
cat.JdSyncStatus = model.SyncFlagNewMask
|
cat.JdSyncStatus = model.SyncFlagNewMask
|
||||||
if err = dao.CreateEntity(nil, cat); err == nil {
|
if err = dao.CreateEntity(nil, cat); err == nil {
|
||||||
outCat = cat
|
outCat = cat
|
||||||
err = CurVendorSync.SyncCategory(cat.ID, false, userName)
|
err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName)
|
||||||
}
|
}
|
||||||
return outCat, err
|
return outCat, err
|
||||||
}
|
}
|
||||||
@@ -64,10 +64,12 @@ func UpdateCategory(categoryID int, payload map[string]interface{}, userName str
|
|||||||
cat := &model.SkuCategory{}
|
cat := &model.SkuCategory{}
|
||||||
cat.ID = categoryID
|
cat.ID = categoryID
|
||||||
valid := dao.NormalMakeMapByStructObject(payload, cat, userName)
|
valid := dao.NormalMakeMapByStructObject(payload, cat, userName)
|
||||||
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
|
if len(valid) > 0 {
|
||||||
db := dao.GetDB()
|
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
|
||||||
if num, err = dao.UpdateEntityByKV(db, cat, valid, nil); err == nil {
|
db := dao.GetDB()
|
||||||
err = CurVendorSync.SyncCategory(categoryID, false, userName)
|
if num, err = dao.UpdateEntityByKV(db, cat, valid, nil); err == nil {
|
||||||
|
err = CurVendorSync.SyncCategory(db, categoryID, false, userName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
@@ -107,7 +109,8 @@ func DeleteCategory(categoryID int, isForce bool, userName string) (num int64, e
|
|||||||
cat := &model.SkuCategory{}
|
cat := &model.SkuCategory{}
|
||||||
cat.ID = categoryID
|
cat.ID = categoryID
|
||||||
var countInfos []*struct{ Ct int }
|
var countInfos []*struct{ Ct int }
|
||||||
if err = dao.GetRows(nil, &countInfos, `
|
db := dao.GetDB()
|
||||||
|
if err = dao.GetRows(db, &countInfos, `
|
||||||
SELECT COUNT(*) ct
|
SELECT COUNT(*) ct
|
||||||
FROM sku t1
|
FROM sku t1
|
||||||
WHERE t1.category_id = ?
|
WHERE t1.category_id = ?
|
||||||
@@ -127,8 +130,8 @@ func DeleteCategory(categoryID int, isForce bool, userName string) (num int64, e
|
|||||||
} else if countInfos[2].Ct != 0 {
|
} else if countInfos[2].Ct != 0 {
|
||||||
return 0, errors.New("还有商品类别使用此类别,不能删除")
|
return 0, errors.New("还有商品类别使用此类别,不能删除")
|
||||||
}
|
}
|
||||||
if num, err = dao.DeleteEntity(nil, cat, nil, userName, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask)); err == nil && num == 1 {
|
if num, err = dao.DeleteEntity(db, cat, nil, userName, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask)); err == nil && num == 1 {
|
||||||
err = CurVendorSync.SyncCategory(cat.ID, false, userName)
|
err = CurVendorSync.SyncCategory(db, cat.ID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
@@ -137,12 +140,12 @@ func DeleteCategory(categoryID int, isForce bool, userName string) (num int64, e
|
|||||||
func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) {
|
func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
FROM sku_name t1
|
FROM sku_name t1
|
||||||
JOIN sku t2 ON t1.id = t2.name_id
|
LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = '1970-01-01 00:00:00'
|
||||||
WHERE`
|
WHERE t1.deleted_at = '1970-01-01 00:00:00'`
|
||||||
sqlParams := make([]interface{}, 0)
|
sqlParams := make([]interface{}, 0)
|
||||||
if keyword != "" {
|
if keyword != "" {
|
||||||
keywordLike := "%" + keyword + "%"
|
keywordLike := "%" + keyword + "%"
|
||||||
sql += " (t1.name LIKE ? OR t1.prefix LIKE ? OR t1.comment LIKE ?"
|
sql += " AND (t1.name LIKE ? OR t1.prefix LIKE ? OR t1.comment LIKE ?"
|
||||||
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike)
|
sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike)
|
||||||
|
|
||||||
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil {
|
||||||
@@ -150,8 +153,6 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|||||||
sqlParams = append(sqlParams, keywordInt64, keywordInt64, keywordInt64)
|
sqlParams = append(sqlParams, keywordInt64, keywordInt64, keywordInt64)
|
||||||
}
|
}
|
||||||
sql += ")"
|
sql += ")"
|
||||||
} else {
|
|
||||||
sql += " 1 = 1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if params["id"] != nil {
|
if params["id"] != nil {
|
||||||
@@ -252,8 +253,10 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|||||||
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
||||||
skuNamesInfo.TotalCount = countInfo.Ct
|
skuNamesInfo.TotalCount = countInfo.Ct
|
||||||
for _, skuName := range skuNamesInfo.SkuNames {
|
for _, skuName := range skuNamesInfo.SkuNames {
|
||||||
if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil {
|
if skuName.SkusStr != "" {
|
||||||
break
|
if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -262,6 +265,9 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|||||||
}
|
}
|
||||||
|
|
||||||
func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuNameExt, err error) {
|
func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuNameExt, err error) {
|
||||||
|
if skuNameExt.CategoryID == 0 {
|
||||||
|
return nil, errors.New("CategoryID不能为空")
|
||||||
|
}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
|
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
|
||||||
@@ -271,6 +277,8 @@ func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuName
|
|||||||
}
|
}
|
||||||
for _, sku := range skuNameExt.Skus {
|
for _, sku := range skuNameExt.Skus {
|
||||||
dao.WrapAddIDCULDEntity(sku, userName)
|
dao.WrapAddIDCULDEntity(sku, userName)
|
||||||
|
sku.NameID = skuNameExt.ID
|
||||||
|
sku.JdSyncStatus = model.SyncFlagNewMask
|
||||||
if err = dao.CreateEntity(db, sku); err != nil {
|
if err = dao.CreateEntity(db, sku); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -285,9 +293,25 @@ func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuName
|
|||||||
return nil, ErrEntityNotExist
|
return nil, ErrEntityNotExist
|
||||||
}
|
}
|
||||||
outSkuNameExt = tmpInfo.SkuNames[0]
|
outSkuNameExt = tmpInfo.SkuNames[0]
|
||||||
|
err = CurVendorSync.SyncSku(db, &outSkuNameExt.SkuName, -1, false, userName)
|
||||||
return outSkuNameExt, err
|
return outSkuNameExt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateSkuName(skuNameID int, payload map[string]interface{}) (num int64, err error) {
|
func UpdateSkuName(nameID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
||||||
|
skuName := &model.SkuName{}
|
||||||
|
skuName.ID = nameID
|
||||||
|
valid := dao.NormalMakeMapByStructObject(payload, skuName, userName)
|
||||||
|
if len(valid) > 0 {
|
||||||
|
db := dao.GetDB()
|
||||||
|
if num, err = dao.UpdateEntityByKV(db, skuName, valid, nil); err == nil && num == 1 {
|
||||||
|
sku := &model.Sku{}
|
||||||
|
_, err2 := dao.UpdateEntityByKV(db, sku, utils.Params2Map(model.FieldSyncStatus, model.SyncFlagModifiedMask), utils.Params2Map(model.FieldNameID, skuName.ID))
|
||||||
|
if err = err2; err == nil {
|
||||||
|
if err = dao.GetEntity(db, skuName); err == nil {
|
||||||
|
err = CurVendorSync.SyncSku(db, skuName, -1, false, userName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import (
|
|||||||
"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"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type StoreExt struct {
|
type StoreExt struct {
|
||||||
@@ -201,13 +200,15 @@ func UpdateStore(storeID int, payload map[string]interface{}, userName string) (
|
|||||||
store := &model.Store{}
|
store := &model.Store{}
|
||||||
store.ID = storeID
|
store.ID = storeID
|
||||||
valid := dao.NormalMakeMapByStructObject(payload, store, userName)
|
valid := dao.NormalMakeMapByStructObject(payload, store, userName)
|
||||||
db := dao.GetDB()
|
if len(valid) > 0 {
|
||||||
if num, err = dao.UpdateEntityByKV(db, store, valid, nil); err == nil {
|
db := dao.GetDB()
|
||||||
dummy := &model.StoreMap{}
|
if num, err = dao.UpdateEntityByKV(db, store, valid, nil); err == nil && num == 1 {
|
||||||
_, err2 := dao.UpdateEntityByKV(db, dummy, utils.Params2Map(model.FieldSyncStatus, model.SyncFlagModifiedMask), utils.Params2Map(model.FieldStoreID, store.ID))
|
dummy := &model.StoreMap{}
|
||||||
if err = err2; err == nil {
|
_, err2 := dao.UpdateEntityByKV(db, dummy, utils.Params2Map(model.FieldSyncStatus, model.SyncFlagModifiedMask), utils.Params2Map(model.FieldStoreID, store.ID))
|
||||||
if err = dao.GetEntity(db, store); err == nil {
|
if err = err2; err == nil {
|
||||||
err = CurVendorSync.SyncStore(db, -1, store, false, userName)
|
if err = dao.GetEntity(db, store); err == nil {
|
||||||
|
err = CurVendorSync.SyncStore(db, -1, store, false, userName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,13 +233,15 @@ func GetStoreVendorMaps(db *dao.DaoDB, storeID int, vendorID int) (storeMaps []*
|
|||||||
return storeMaps, dao.GetEntities(db, &storeMaps, cond, false)
|
return storeMaps, dao.GetEntities(db, &storeMaps, cond, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddStoreVendorMap(db *dao.DaoDB, storeMap *model.StoreMap, userName string) (outStoreMap *model.StoreMap, err error) {
|
func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.StoreMap, userName string) (outStoreMap *model.StoreMap, err error) {
|
||||||
store, err := GetPurchaseHandler(storeMap.VendorID).ReadStore(storeMap.VendorStoreID)
|
store, err := GetPurchaseHandler(storeMap.VendorID).ReadStore(storeMap.VendorStoreID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
dao.WrapAddIDCULEntity(storeMap, userName)
|
dao.WrapAddIDCULEntity(storeMap, userName)
|
||||||
|
storeMap.StoreID = storeID
|
||||||
|
storeMap.VendorID = vendorID
|
||||||
storeMap.DeliveryType = store.DeliveryType
|
storeMap.DeliveryType = store.DeliveryType
|
||||||
storeMap.Status = store.Status
|
storeMap.Status = store.Status
|
||||||
storeMap.SyncStatus = model.SyncFlagModifiedMask
|
storeMap.SyncStatus = model.SyncFlagModifiedMask // 新增绑定门店是修改的概念
|
||||||
if err = dao.CreateEntity(db, storeMap); err == nil {
|
if err = dao.CreateEntity(db, storeMap); err == nil {
|
||||||
outStoreMap = storeMap
|
outStoreMap = storeMap
|
||||||
err = CurVendorSync.SyncStore(db, storeMap.VendorID, store, true, userName)
|
err = CurVendorSync.SyncStore(db, storeMap.VendorID, store, true, userName)
|
||||||
@@ -265,16 +268,17 @@ func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[stri
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
dummyStoreMap := &model.StoreMap{}
|
dummyStoreMap := &model.StoreMap{}
|
||||||
valid := dao.NormalMakeMapByStructObject(payload, dummyStoreMap, userName)
|
valid := dao.NormalMakeMapByStructObject(payload, dummyStoreMap, userName)
|
||||||
if valid["status"] != nil { // 对于store vendor map,只有Status改变才需要同步到厂商
|
if len(valid) > 0 {
|
||||||
valid[model.FieldSyncStatus] = model.SyncFlagModifiedMask
|
if valid["status"] != nil { // 对于store vendor map,只有Status改变才需要同步到厂商
|
||||||
}
|
valid[model.FieldSyncStatus] = model.SyncFlagModifiedMask
|
||||||
globals.SugarLogger.Debug(utils.Format4Output(valid, false))
|
}
|
||||||
if num, err = dao.UpdateEntityByKV(db, dummyStoreMap, valid, utils.Params2Map(model.FieldStoreID, storeID, model.FieldVendorID, vendorID)); err == nil {
|
if num, err = dao.UpdateEntityByKV(db, dummyStoreMap, valid, utils.Params2Map(model.FieldStoreID, storeID, model.FieldVendorID, vendorID)); err == nil {
|
||||||
if valid["status"] != nil {
|
if valid["status"] != nil {
|
||||||
store := &model.Store{}
|
store := &model.Store{}
|
||||||
store.ID = storeID
|
store.ID = storeID
|
||||||
if err = dao.GetEntity(db, store); err == nil {
|
if err = dao.GetEntity(db, store); err == nil {
|
||||||
err = CurVendorSync.SyncStore(db, vendorID, store, true, userName)
|
err = CurVendorSync.SyncStore(db, vendorID, store, false, userName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
92
business/jxstore/cms/sync.go
Normal file
92
business/jxstore/cms/sync.go
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
package cms
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
)
|
||||||
|
|
||||||
|
type VendorSync struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
||||||
|
ErrEntityNotExist = errors.New("找不到相应实体")
|
||||||
|
)
|
||||||
|
|
||||||
|
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
|
||||||
|
if db == nil {
|
||||||
|
db = dao.GetDB()
|
||||||
|
}
|
||||||
|
var cats []*model.SkuCategory
|
||||||
|
cond := make(map[string]interface{})
|
||||||
|
if categoryID > 0 {
|
||||||
|
cond[model.FieldID] = categoryID
|
||||||
|
}
|
||||||
|
if err = dao.GetEntities(db, &cats, cond, true); err == nil {
|
||||||
|
for _, cat := range cats {
|
||||||
|
if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 { //删除
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).DeleteCategory(cat, userName)
|
||||||
|
} else if (cat.JdSyncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).CreateCategory(cat, userName)
|
||||||
|
} else if (cat.JdSyncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).UpdateCategory(cat, userName)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
cat.JdSyncStatus = 0
|
||||||
|
_, err = dao.UpdateEntity(db, cat, model.FieldJdSyncStatus)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID int, store *model.Store, isForce bool, userName string) (err error) {
|
||||||
|
if db == nil {
|
||||||
|
db = dao.GetDB()
|
||||||
|
}
|
||||||
|
var storeMapList []*model.StoreMap
|
||||||
|
if err = dao.GetEntities(db, &storeMapList, utils.Params2Map(model.FieldStoreID, store.ID), true); err == nil {
|
||||||
|
copiedStore := *store
|
||||||
|
for _, storeMap := range storeMapList {
|
||||||
|
if (vendorID == -1 || vendorID == storeMap.VendorID) && (isForce || storeMap.SyncStatus != 0) { // 对于门店,当前只有修改标记
|
||||||
|
copiedStore.Status = mergeStoreStatus(store.Status, storeMap.Status)
|
||||||
|
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(storeMap.VendorStoreID, &copiedStore, userName); err == nil {
|
||||||
|
storeMap.SyncStatus = 0
|
||||||
|
dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *VendorSync) SyncSku(db *dao.DaoDB, skuName *model.SkuName, skuID int, isForce bool, userName string) (err error) {
|
||||||
|
if db == nil {
|
||||||
|
db = dao.GetDB()
|
||||||
|
}
|
||||||
|
var skuList []*model.Sku
|
||||||
|
if err = dao.GetEntities(db, &skuList, utils.Params2Map(model.FieldNameID, skuName.ID), true); err == nil {
|
||||||
|
for _, sku := range skuList {
|
||||||
|
if (skuID == -1 || skuID == sku.ID) && (isForce || sku.JdSyncStatus != 0) {
|
||||||
|
if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).CreateSku(sku, userName)
|
||||||
|
} else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 新增
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).DeleteSku(sku, userName)
|
||||||
|
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
||||||
|
err = GetPurchaseHandler(model.VendorIDJD).UpdateSku(sku, userName)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
sku.JdSyncStatus = 0
|
||||||
|
dao.UpdateEntity(db, sku, model.FieldSyncStatus)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
35
business/jxstore/cms/validation.go
Normal file
35
business/jxstore/cms/validation.go
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package cms
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
unitNamesMap map[string]int
|
||||||
|
specUnitNamesMap map[string]int
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
unitNamesMap = jxutils.MakeValidationMapFromSlice(model.UnitNames, 1)
|
||||||
|
specUnitNamesMap = jxutils.MakeValidationMapFromSlice(model.SpecUnitNames, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateStringInMap(name string, value interface{}, flagMap map[string]int) (err error) {
|
||||||
|
if strValue, ok := value.(string); ok {
|
||||||
|
if flagMap[strValue] == 1 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Errorf("属性%s类型或取值不合法,要求string", name)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ValidateUnit(value interface{}) (err error) {
|
||||||
|
return validateStringInMap("Unit", value, unitNamesMap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ValidateSpecUnit(value interface{}) (err error) {
|
||||||
|
return validateStringInMap("SpecUnit", value, specUnitNamesMap)
|
||||||
|
}
|
||||||
@@ -331,3 +331,11 @@ func FilterMapByFieldList(mapData map[string]interface{}, fields []string) (vali
|
|||||||
func GetObjFieldByName(obj interface{}, fieldName string) interface{} {
|
func GetObjFieldByName(obj interface{}, fieldName string) interface{} {
|
||||||
return reflect.Indirect(reflect.ValueOf(obj)).FieldByName(fieldName).Interface()
|
return reflect.Indirect(reflect.ValueOf(obj)).FieldByName(fieldName).Interface()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MakeValidationMapFromSlice(validValues []string, flag int) map[string]int {
|
||||||
|
retVal := make(map[string]int)
|
||||||
|
for _, v := range validValues {
|
||||||
|
retVal[v] = flag
|
||||||
|
}
|
||||||
|
return retVal
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,20 +10,23 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func NormalFilterMapByStructObject(mapData map[string]interface{}, obj interface{}) (valid map[string]interface{}, invalid map[string]interface{}) {
|
func NormalFilterMapByStructObject(mapData map[string]interface{}, obj interface{}) (valid map[string]interface{}, invalid map[string]interface{}) {
|
||||||
return jxutils.FilterMapByStructObject(mapData, obj, []string{"id", "createdAt", "syncStatus", "lastOperator", "updatedAt", "finishedAt"})
|
// 这里必须用首字母小写,因为是用于访问map,是用于访问map,是需要完全匹配的
|
||||||
|
return jxutils.FilterMapByStructObject(mapData, obj, []string{"id", "createdAt", "updatedAt", "finishedAt", "deletedAt", "syncStatus", "lastOperator"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func NormalMakeMapByStructObject(mapData map[string]interface{}, obj interface{}, userName string) (retVal map[string]interface{}) {
|
func NormalMakeMapByStructObject(mapData map[string]interface{}, obj interface{}, userName string) (retVal map[string]interface{}) {
|
||||||
retVal, _ = NormalFilterMapByStructObject(mapData, obj)
|
retVal, _ = NormalFilterMapByStructObject(mapData, obj)
|
||||||
retVal["lastOperator"] = userName
|
if len(retVal) > 0 {
|
||||||
retVal["updatedAt"] = time.Now()
|
WrapUpdateULEntity(retVal, userName)
|
||||||
|
}
|
||||||
return retVal
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
func NormalMakeMapByFieldList(mapData map[string]interface{}, fields []string, userName string) (retVal map[string]interface{}) {
|
func NormalMakeMapByFieldList(mapData map[string]interface{}, fields []string, userName string) (retVal map[string]interface{}) {
|
||||||
retVal, _ = jxutils.FilterMapByFieldList(mapData, fields)
|
retVal, _ = jxutils.FilterMapByFieldList(mapData, fields)
|
||||||
retVal["lastOperator"] = userName
|
if len(retVal) > 0 {
|
||||||
retVal["updatedAt"] = time.Now()
|
WrapUpdateULEntity(retVal, userName)
|
||||||
|
}
|
||||||
return retVal
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ const (
|
|||||||
FieldVendorID = "VendorID"
|
FieldVendorID = "VendorID"
|
||||||
FieldStoreID = "StoreID"
|
FieldStoreID = "StoreID"
|
||||||
FieldVendorStoreID = "VendorStoreID"
|
FieldVendorStoreID = "VendorStoreID"
|
||||||
|
FieldNameID = "NameID"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelIDCUL struct {
|
type ModelIDCUL struct {
|
||||||
|
|||||||
@@ -80,13 +80,12 @@ type SkuCategory struct {
|
|||||||
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
|
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
|
||||||
Seq int `json:"seq"`
|
Seq int `json:"seq"`
|
||||||
|
|
||||||
JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
|
JdCategoryID int `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
|
||||||
JdCategoryID int `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
|
|
||||||
|
|
||||||
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
|
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
|
||||||
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
|
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
|
||||||
|
|
||||||
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
|
||||||
|
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*SkuCategory) TableUnique() [][]string {
|
func (*SkuCategory) TableUnique() [][]string {
|
||||||
@@ -96,7 +95,7 @@ func (*SkuCategory) TableUnique() [][]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type SkuName struct {
|
type SkuName struct {
|
||||||
ModelIDCUL
|
ModelIDCULD
|
||||||
|
|
||||||
Prefix string `orm:"size(255)" json:"prefix"`
|
Prefix string `orm:"size(255)" json:"prefix"`
|
||||||
Name string `orm:"size(255)" json:"name"`
|
Name string `orm:"size(255)" json:"name"`
|
||||||
@@ -120,7 +119,7 @@ type SkuName struct {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
type Sku struct {
|
type Sku struct {
|
||||||
ModelIDCUL
|
ModelIDCULD
|
||||||
|
|
||||||
CategoryID int `orm:"column(category_id)" json:"categoryID"` // 特殊类别,一般用于秒杀,特价之类的特殊类别
|
CategoryID int `orm:"column(category_id)" json:"categoryID"` // 特殊类别,一般用于秒杀,特价之类的特殊类别
|
||||||
NameID int `orm:"column(name_id)" json:"nameID"` // todo 这个索引应该要求唯一
|
NameID int `orm:"column(name_id)" json:"nameID"` // todo 这个索引应该要求唯一
|
||||||
@@ -128,7 +127,8 @@ type Sku struct {
|
|||||||
SpecUnit string `orm:"size(8)" json:"specUnit"` // 质量或容量
|
SpecUnit string `orm:"size(8)" json:"specUnit"` // 质量或容量
|
||||||
Weight int `json:"weight"` // 重量/质量,单位为克,当相应的SkuName的SpecUnit为g或kg时,必须等于SpecQuality
|
Weight int `json:"weight"` // 重量/质量,单位为克,当相应的SkuName的SpecUnit为g或kg时,必须等于SpecQuality
|
||||||
|
|
||||||
JdID int64 `orm:"column(jd_id)" json:"jdID"`
|
JdID int64 `orm:"column(jd_id)" json:"jdID"`
|
||||||
|
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Sku) TableUnique() [][]string {
|
func (*Sku) TableUnique() [][]string {
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ type IPurchasePlatformHandler interface {
|
|||||||
DeleteCategory(cat *model.SkuCategory, userName string) error
|
DeleteCategory(cat *model.SkuCategory, userName string) error
|
||||||
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
||||||
|
|
||||||
CreateSku(sku *model.Sku) (err error)
|
CreateSku(sku *model.Sku, userName string) (err error)
|
||||||
ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error)
|
ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error)
|
||||||
UpdateSku(sku *model.Sku) (err error)
|
UpdateSku(sku *model.Sku, userName string) (err error)
|
||||||
DeleteSku(sku *model.Sku) (err error)
|
DeleteSku(sku *model.Sku, userName string) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IDeliveryPlatformHandler interface {
|
type IDeliveryPlatformHandler interface {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ func (p *PurchaseHandler) ReorderCategories(parentCat *model.SkuCategory, userNa
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) CreateSku(sku *model.Sku, userName string) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,10 +34,10 @@ func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuName *model.SkuName, s
|
|||||||
return nil, nil, nil, nil
|
return nil, nil, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) DeleteSku(sku *model.Sku, userName string) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ func (p *PurchaseHandler) cuSku(sku *model.Sku, handler func(skuExt *skuInfoExt,
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) CreateSku(sku *model.Sku, userName string) (err error) {
|
||||||
return p.cuSku(sku, func(skuExt *skuInfoExt, skuName string, shopCategories []int64, addParams map[string]interface{}) (string, error) {
|
return p.cuSku(sku, func(skuExt *skuInfoExt, skuName string, shopCategories []int64, addParams map[string]interface{}) (string, error) {
|
||||||
return api.JdAPI.AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, skuExt.Price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, 1, true, addParams)
|
return api.JdAPI.AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, skuExt.Price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, 1, true, addParams)
|
||||||
})
|
})
|
||||||
@@ -214,7 +214,7 @@ func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuName *model.SkuName, s
|
|||||||
return nil, nil, nil, err
|
return nil, nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
||||||
return p.cuSku(sku, func(skuExt *skuInfoExt, skuName string, shopCategories []int64, addParams map[string]interface{}) (string, error) {
|
return p.cuSku(sku, func(skuExt *skuInfoExt, skuName string, shopCategories []int64, addParams map[string]interface{}) (string, error) {
|
||||||
params := utils.MergeMaps(addParams)
|
params := utils.MergeMaps(addParams)
|
||||||
params["categoryId"] = skuExt.JdCategoryID
|
params["categoryId"] = skuExt.JdCategoryID
|
||||||
@@ -228,7 +228,7 @@ func (p *PurchaseHandler) UpdateSku(sku *model.Sku) (err error) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteSku(sku *model.Sku) (err error) {
|
func (p *PurchaseHandler) DeleteSku(sku *model.Sku, userName string) (err error) {
|
||||||
if !globals.EnableStoreWrite {
|
if !globals.EnableStoreWrite {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,8 +126,8 @@ func (c *SkuController) DeleteCategory() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 得到京西门店信息
|
// @Title 得到商品信息
|
||||||
// @Description 得到京西门店信息,如下条件之间是与的关系
|
// @Description 得到商品信息,如下条件之间是与的关系
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
||||||
// @Param id query int false "SkuName ID"
|
// @Param id query int false "SkuName ID"
|
||||||
@@ -151,3 +151,38 @@ func (c *SkuController) GetSkuNames() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 新增商品信息
|
||||||
|
// @Description 新增商品信息
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param payload formData string true "json数据,SkuNameExt对象(),可传Skus"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /AddSkuName [post]
|
||||||
|
func (c *SkuController) AddSkuName() {
|
||||||
|
c.callAddSkuName(func(params *tSkuAddSkuNameParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
skuName := &cms.SkuNameExt{}
|
||||||
|
if err = utils.UnmarshalUseNumber([]byte(params.Payload), skuName); err == nil {
|
||||||
|
retVal, err = cms.AddSkuName(skuName, GetUserNameFromToken(params.Token))
|
||||||
|
}
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Title 修改商品名信息
|
||||||
|
// @Description 修改商品名信息
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param nameID formData int true "需要修改的商品名ID,payload中的相应数据会被忽略"
|
||||||
|
// @Param payload formData string true "json数据,SkuNameExt对象(),Skus无效"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /UpdateSkuName [put]
|
||||||
|
func (c *SkuController) UpdateSkuName() {
|
||||||
|
c.callUpdateSkuName(func(params *tSkuUpdateSkuNameParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
payload := make(map[string]interface{})
|
||||||
|
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil {
|
||||||
|
retVal, err = cms.UpdateSkuName(params.NameID, payload, GetUserNameFromToken(params.Token))
|
||||||
|
}
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -198,6 +198,8 @@ func (c *StoreController) UpdateStoreVendorMap() {
|
|||||||
// @Title 新增门店映射信息
|
// @Title 新增门店映射信息
|
||||||
// @Description 新增门店映射信息
|
// @Description 新增门店映射信息
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
|
// @Param storeID formData int true "门店ID,payload中的相应字段会被忽略"
|
||||||
|
// @Param vendorID formData int true "厂商ID,payload中的相应字段会被忽略"
|
||||||
// @Param payload formData string true "json数据,storeMap对象({'vendorID':0,'vendorStoreID':'11732425','autoPickup':1,'deliveryCompetition':1, 'pricePercentage':100})"
|
// @Param payload formData string true "json数据,storeMap对象({'vendorID':0,'vendorStoreID':'11732425','autoPickup':1,'deliveryCompetition':1, 'pricePercentage':100})"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
@@ -206,7 +208,7 @@ func (c *StoreController) AddStoreVendorMap() {
|
|||||||
c.callAddStoreVendorMap(func(params *tStoreAddStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
|
c.callAddStoreVendorMap(func(params *tStoreAddStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
|
||||||
storeMap := &model.StoreMap{}
|
storeMap := &model.StoreMap{}
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params.Payload), storeMap); err == nil {
|
if err = utils.UnmarshalUseNumber([]byte(params.Payload), storeMap); err == nil {
|
||||||
retVal, err = cms.AddStoreVendorMap(nil, storeMap, GetUserNameFromToken(params.Token))
|
retVal, err = cms.AddStoreVendorMap(nil, params.StoreID, params.VendorID, storeMap, GetUserNameFromToken(params.Token))
|
||||||
}
|
}
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -135,6 +135,14 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "AddSkuName",
|
||||||
|
Router: `/AddSkuName`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "DeleteCategory",
|
Method: "DeleteCategory",
|
||||||
@@ -191,6 +199,14 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "UpdateSkuName",
|
||||||
|
Router: `/UpdateSkuName`,
|
||||||
|
AllowHTTPMethods: []string{"put"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "AddStoreVendorMap",
|
Method: "AddStoreVendorMap",
|
||||||
|
|||||||
Reference in New Issue
Block a user