|
|
|
|
@@ -3,6 +3,8 @@ package cms
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"strconv"
|
|
|
|
|
"strings"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
|
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
|
|
|
@@ -148,9 +150,9 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|
|
|
|
sql += ")"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if params["id"] != nil {
|
|
|
|
|
if params["nameID"] != nil {
|
|
|
|
|
sql += " AND t1.id = ?"
|
|
|
|
|
sqlParams = append(sqlParams, params["id"].(int))
|
|
|
|
|
sqlParams = append(sqlParams, params["nameID"].(int))
|
|
|
|
|
}
|
|
|
|
|
if params["categoryID"] != nil {
|
|
|
|
|
sql += " AND t1.category_id = ?"
|
|
|
|
|
@@ -172,16 +174,28 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|
|
|
|
sql += " AND t1.unit = ?"
|
|
|
|
|
sqlParams = append(sqlParams, params["unit"].(string))
|
|
|
|
|
}
|
|
|
|
|
if params["placeCode"] != nil {
|
|
|
|
|
sql += " AND (SELECT COUNT(*) FROM sku_name_place_bind bind WHERE bind.sku_name_id = t1.id AND bind.place_code = ?) > 0"
|
|
|
|
|
sqlParams = append(sqlParams, params["placeCode"].(int))
|
|
|
|
|
}
|
|
|
|
|
if params["isGlobal"] != nil {
|
|
|
|
|
if params["isGlobal"].(bool) {
|
|
|
|
|
sql += " AND t1.is_global = 1"
|
|
|
|
|
if placeCond := strings.ToUpper(utils.Interface2String(params["placeCond"])); placeCond == "AND" || placeCond == "OR" {
|
|
|
|
|
if placeCond == "AND" {
|
|
|
|
|
sql += " AND ( 1 = 1"
|
|
|
|
|
} else {
|
|
|
|
|
sql += " AND t1.is_global = 0"
|
|
|
|
|
sql += " AND ( 1 = 0"
|
|
|
|
|
}
|
|
|
|
|
if params["placeCode"] != nil {
|
|
|
|
|
sql += " " + placeCond + " (SELECT COUNT(*) FROM sku_name_place_bind bind WHERE bind.sku_name_id = t1.id AND bind.place_code = ?) > 0"
|
|
|
|
|
sqlParams = append(sqlParams, params["placeCode"].(int))
|
|
|
|
|
}
|
|
|
|
|
if params["isGlobal"] != nil {
|
|
|
|
|
if params["isGlobal"].(bool) {
|
|
|
|
|
sql += " " + placeCond + " t1.is_global = 1"
|
|
|
|
|
} else {
|
|
|
|
|
sql += " " + placeCond + " t1.is_global = 0"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
sql += ")"
|
|
|
|
|
}
|
|
|
|
|
if params["skuID"] != nil {
|
|
|
|
|
sql += " AND t2.id = ?"
|
|
|
|
|
sqlParams = append(sqlParams, params["skuID"].(int))
|
|
|
|
|
}
|
|
|
|
|
if params["fromStatus"] != nil {
|
|
|
|
|
fromStatus := params["fromStatus"].(int)
|
|
|
|
|
@@ -284,7 +298,7 @@ func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuName
|
|
|
|
|
return nil, ErrEntityNotExist
|
|
|
|
|
}
|
|
|
|
|
outSkuNameExt = tmpInfo.SkuNames[0]
|
|
|
|
|
err = CurVendorSync.SyncSku(db, &outSkuNameExt.SkuName, -1, false, userName)
|
|
|
|
|
err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, -1, false, userName)
|
|
|
|
|
return outSkuNameExt, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -296,13 +310,89 @@ func UpdateSkuName(nameID int, payload map[string]interface{}, userName string)
|
|
|
|
|
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))
|
|
|
|
|
_, err2 := dao.UpdateEntityByKV(db, sku, utils.Params2Map(model.FieldJdSyncStatus, 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)
|
|
|
|
|
err = CurVendorSync.SyncSku(db, skuName.ID, -1, false, userName)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return num, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func DeleteSkuName(nameID int, userName string) (num int64, err error) {
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
dao.Begin(db)
|
|
|
|
|
skuName := &model.SkuName{}
|
|
|
|
|
skuName.ID = nameID
|
|
|
|
|
if num, err = dao.DeleteEntity(db, skuName, nil, userName, nil); err == nil && num == 1 {
|
|
|
|
|
dummy := &model.Sku{}
|
|
|
|
|
num2, err2 := dao.UpdateEntityByKV(db, dummy, map[string]interface{}{
|
|
|
|
|
model.FieldDeletedAt: time.Now(),
|
|
|
|
|
model.FieldLastOperator: userName,
|
|
|
|
|
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
|
|
|
|
"Status": model.SkuStatusDeleted,
|
|
|
|
|
}, utils.Params2Map(model.FieldNameID, skuName.ID))
|
|
|
|
|
if err2 == nil {
|
|
|
|
|
dao.Commit(db)
|
|
|
|
|
if num2 > 0 {
|
|
|
|
|
err = CurVendorSync.SyncSku(db, skuName.ID, -1, false, userName)
|
|
|
|
|
}
|
|
|
|
|
return num, err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dao.Rollback(db)
|
|
|
|
|
return num, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func AddSku(nameID int, sku *model.Sku, userName string) (outSkuNameExt *SkuNameExt, err error) {
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
dao.WrapAddIDCULDEntity(sku, userName)
|
|
|
|
|
sku.JdSyncStatus = model.SyncFlagNewMask
|
|
|
|
|
sku.NameID = nameID
|
|
|
|
|
if err = dao.CreateEntity(db, sku); err == nil {
|
|
|
|
|
result, err2 := GetSkuNames("", utils.Params2Map("skuID", sku.ID), 0, 0)
|
|
|
|
|
if err = err2; err == nil {
|
|
|
|
|
if result.TotalCount == 1 {
|
|
|
|
|
outSkuNameExt = result.SkuNames[0]
|
|
|
|
|
err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, sku.ID, false, userName)
|
|
|
|
|
} else {
|
|
|
|
|
err = ErrEntityNotExist
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return outSkuNameExt, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func UpdateSku(skuID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
|
|
|
|
sku := &model.Sku{}
|
|
|
|
|
sku.ID = skuID
|
|
|
|
|
valid := dao.NormalMakeMapByStructObject(payload, sku, userName)
|
|
|
|
|
if len(valid) > 0 {
|
|
|
|
|
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
if num, err = dao.UpdateEntityByKV(db, sku, valid, nil); err == nil {
|
|
|
|
|
if num == 1 {
|
|
|
|
|
err = CurVendorSync.SyncSku(db, -1, sku.ID, false, userName)
|
|
|
|
|
} else {
|
|
|
|
|
err = ErrEntityNotExist
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return num, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func DeleteSku(skuID int, userName string) (num int64, err error) {
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
sku := &model.Sku{}
|
|
|
|
|
sku.ID = skuID
|
|
|
|
|
if num, err = dao.DeleteEntity(db, sku, nil, userName, nil); err == nil {
|
|
|
|
|
if num == 1 {
|
|
|
|
|
err = CurVendorSync.SyncSku(db, -1, sku.ID, false, userName)
|
|
|
|
|
} else {
|
|
|
|
|
err = ErrEntityNotExist
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return num, err
|
|
|
|
|
}
|
|
|
|
|
|