- UpdateStoreSku
This commit is contained in:
@@ -2,6 +2,7 @@ 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"
|
||||||
@@ -19,6 +20,14 @@ type StoreSkuNamesInfo struct {
|
|||||||
SkuNames []*StoreSkuNameExt `json:"skuNames"`
|
SkuNames []*StoreSkuNameExt `json:"skuNames"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StoreSkuBindInfo struct {
|
||||||
|
SkuID int `json:"skuID"`
|
||||||
|
SubStoreID int `json:"subStoreID"`
|
||||||
|
IsFocus int `json:"isFocus"` // -1:不关注,0:忽略,1:关注
|
||||||
|
IsSale int `json:"isSale"` // -1:不可售,0:忽略,1:可售
|
||||||
|
Price int `json:"price"`
|
||||||
|
}
|
||||||
|
|
||||||
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) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
sql := `
|
sql := `
|
||||||
@@ -153,10 +162,81 @@ func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, of
|
|||||||
return skuNamesInfo, err
|
return skuNamesInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetStoreSkuStatus(storeID int, isSale bool, userName string) (num int64, err error) {
|
func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string) (num int64, err error) {
|
||||||
return num, err
|
db := dao.GetDB()
|
||||||
}
|
var existBinds []*model.StoreSkuBind
|
||||||
|
skuIDs := make([]int, len(skuBinds))
|
||||||
func SetStoreFocusSku(storeID int, skuID int, isFocus, isSale bool, userName string) (num int64, err error) {
|
placeHolders := make([]string, len(skuBinds))
|
||||||
|
for k, v := range skuBinds {
|
||||||
|
skuIDs[k] = v.SkuID
|
||||||
|
placeHolders[k] = "?"
|
||||||
|
}
|
||||||
|
questions := "(" + strings.Join(placeHolders, ",") + ")"
|
||||||
|
if err = dao.GetRows(db, &existBinds, `
|
||||||
|
SELECT *
|
||||||
|
FROM store_sku_bind
|
||||||
|
WHERE store_id = ?
|
||||||
|
AND sku_id IN `+questions, storeID, skuIDs); err == nil {
|
||||||
|
existBindsMap := make(map[int]*model.StoreSkuBind, len(existBinds))
|
||||||
|
for _, v := range existBinds {
|
||||||
|
existBindsMap[v.SkuID] = v
|
||||||
|
}
|
||||||
|
dao.Begin(db)
|
||||||
|
for _, v := range skuBinds {
|
||||||
|
skuBind, ok := existBindsMap[v.SkuID]
|
||||||
|
if !ok {
|
||||||
|
if v.IsFocus == 1 {
|
||||||
|
skuBind = &model.StoreSkuBind{
|
||||||
|
StoreID: storeID,
|
||||||
|
SkuID: v.SkuID,
|
||||||
|
SubStoreID: v.SubStoreID, // todo 这个应该从用户信息中自动获得
|
||||||
|
}
|
||||||
|
dao.WrapAddIDCULDEntity(skuBind, userName)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if v.IsFocus != -1 {
|
||||||
|
dao.WrapUpdateULEntity(skuBind, userName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if skuBind != nil {
|
||||||
|
if v.Price != 0 {
|
||||||
|
skuBind.Price = v.Price
|
||||||
|
}
|
||||||
|
if v.IsSale != 0 {
|
||||||
|
if v.IsSale == 1 {
|
||||||
|
skuBind.Status = model.StoreSkuBindStatusNormal
|
||||||
|
} else {
|
||||||
|
skuBind.Status = model.StoreSkuBindStatusDontSale
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ok {
|
||||||
|
if v.IsFocus == -1 {
|
||||||
|
_, err = dao.DeleteEntityLogically(db, skuBind, nil, userName, map[string]interface{}{
|
||||||
|
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
||||||
|
model.FieldElmSyncStatus: model.SyncFlagDeletedMask,
|
||||||
|
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
skuBind.DeletedAt = utils.DefaultTimeValue
|
||||||
|
skuBind.JdSyncStatus = model.SyncFlagModifiedMask
|
||||||
|
skuBind.ElmSyncStatus = model.SyncFlagModifiedMask
|
||||||
|
skuBind.EbaiSyncStatus = model.SyncFlagModifiedMask
|
||||||
|
_, err = dao.UpdateEntity(db, skuBind)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
skuBind.JdSyncStatus = model.SyncFlagNewMask
|
||||||
|
skuBind.ElmSyncStatus = model.SyncFlagNewMask
|
||||||
|
skuBind.EbaiSyncStatus = model.SyncFlagNewMask
|
||||||
|
err = dao.CreateEntity(db, skuBind)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
return num, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dao.Commit(db)
|
||||||
|
err = CurVendorSync.SyncStoreSku(db, storeID, -1, false, userName)
|
||||||
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,3 +97,7 @@ 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) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,15 +5,17 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
FieldID = "ID"
|
FieldID = "ID"
|
||||||
FieldParentID = "ParentID"
|
FieldParentID = "ParentID"
|
||||||
FieldDeletedAt = "DeletedAt"
|
FieldDeletedAt = "DeletedAt"
|
||||||
FieldCreatedAt = "CreatedAt"
|
FieldCreatedAt = "CreatedAt"
|
||||||
FieldUpdatedAt = "UpdatedAt"
|
FieldUpdatedAt = "UpdatedAt"
|
||||||
FieldLastOperator = "LastOperator"
|
FieldLastOperator = "LastOperator"
|
||||||
FieldStatus = "Status"
|
FieldStatus = "Status"
|
||||||
FieldSyncStatus = "SyncStatus"
|
FieldSyncStatus = "SyncStatus"
|
||||||
FieldJdSyncStatus = "JdSyncStatus"
|
FieldJdSyncStatus = "JdSyncStatus"
|
||||||
|
FieldElmSyncStatus = "ElmSyncStatus"
|
||||||
|
FieldEbaiSyncStatus = "EbaiSyncStatus"
|
||||||
|
|
||||||
FieldVendorID = "VendorID"
|
FieldVendorID = "VendorID"
|
||||||
FieldStoreID = "StoreID"
|
FieldStoreID = "StoreID"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
@@ -34,3 +35,21 @@ func (c *StoreSkuController) GetStoreSkus() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 修改商家商品绑定
|
||||||
|
// @Description 修改商家商品绑定
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param storeID formData int true "需要修改的商品名ID,payload中的相应数据会被忽略"
|
||||||
|
// @Param payload formData string true "json数据,StoreSkuBindInfo对象数组
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /UpdateStoreSku [put]
|
||||||
|
func (c *StoreSkuController) UpdateStoreSku() {
|
||||||
|
c.callUpdateStoreSku(func(params *tStoreSkuUpdateStoreSkuParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
var skuBinds []*cms.StoreSkuBindInfo
|
||||||
|
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &skuBinds); err == nil {
|
||||||
|
retVal, err = cms.UpdateStoreSku(params.StoreID, skuBinds, GetUserNameFromToken(params.Token))
|
||||||
|
}
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user