- sku man.

This commit is contained in:
gazebo
2018-09-11 16:20:27 +08:00
parent 70bf5a522a
commit 7f4c125279
15 changed files with 280 additions and 124 deletions

View File

@@ -55,7 +55,7 @@ func AddCategory(cat *model.SkuCategory, userName string) (outCat *model.SkuCate
cat.JdSyncStatus = model.SyncFlagNewMask
if err = dao.CreateEntity(nil, cat); err == nil {
outCat = cat
err = CurVendorSync.SyncCategory(cat.ID, false, userName)
err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName)
}
return outCat, err
}
@@ -64,10 +64,12 @@ func UpdateCategory(categoryID int, payload map[string]interface{}, userName str
cat := &model.SkuCategory{}
cat.ID = categoryID
valid := dao.NormalMakeMapByStructObject(payload, cat, userName)
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
db := dao.GetDB()
if num, err = dao.UpdateEntityByKV(db, cat, valid, nil); err == nil {
err = CurVendorSync.SyncCategory(categoryID, false, userName)
if len(valid) > 0 {
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
db := dao.GetDB()
if num, err = dao.UpdateEntityByKV(db, cat, valid, nil); err == nil {
err = CurVendorSync.SyncCategory(db, categoryID, false, userName)
}
}
return num, err
}
@@ -107,7 +109,8 @@ func DeleteCategory(categoryID int, isForce bool, userName string) (num int64, e
cat := &model.SkuCategory{}
cat.ID = categoryID
var countInfos []*struct{ Ct int }
if err = dao.GetRows(nil, &countInfos, `
db := dao.GetDB()
if err = dao.GetRows(db, &countInfos, `
SELECT COUNT(*) ct
FROM sku t1
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 {
return 0, errors.New("还有商品类别使用此类别,不能删除")
}
if num, err = dao.DeleteEntity(nil, cat, nil, userName, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask)); err == nil && num == 1 {
err = CurVendorSync.SyncCategory(cat.ID, false, userName)
if num, err = dao.DeleteEntity(db, cat, nil, userName, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask)); err == nil && num == 1 {
err = CurVendorSync.SyncCategory(db, cat.ID, false, userName)
}
}
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) {
sql := `
FROM sku_name t1
JOIN sku t2 ON t1.id = t2.name_id
WHERE`
LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = '1970-01-01 00:00:00'
WHERE t1.deleted_at = '1970-01-01 00:00:00'`
sqlParams := make([]interface{}, 0)
if 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)
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)
}
sql += ")"
} else {
sql += " 1 = 1"
}
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 {
skuNamesInfo.TotalCount = countInfo.Ct
for _, skuName := range skuNamesInfo.SkuNames {
if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil {
break
if skuName.SkusStr != "" {
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) {
if skuNameExt.CategoryID == 0 {
return nil, errors.New("CategoryID不能为空")
}
db := dao.GetDB()
dao.Begin(db)
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
@@ -271,6 +277,8 @@ func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuName
}
for _, sku := range skuNameExt.Skus {
dao.WrapAddIDCULDEntity(sku, userName)
sku.NameID = skuNameExt.ID
sku.JdSyncStatus = model.SyncFlagNewMask
if err = dao.CreateEntity(db, sku); err != nil {
dao.Rollback(db)
return nil, err
@@ -285,9 +293,25 @@ func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuName
return nil, ErrEntityNotExist
}
outSkuNameExt = tmpInfo.SkuNames[0]
err = CurVendorSync.SyncSku(db, &outSkuNameExt.SkuName, -1, false, userName)
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
}