This commit is contained in:
邹宗楠
2022-11-21 13:47:24 +08:00
parent d3c73d48fc
commit 79512dc35a
2 changed files with 64 additions and 81 deletions

View File

@@ -9,7 +9,6 @@ import (
sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request"
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/model"
@@ -19,7 +18,6 @@ import (
"git.rosy.net.cn/jx-callback/globals"
"regexp"
"strings"
"time"
)
const (
@@ -437,84 +435,25 @@ func (p *PurchaseHandler) UpdateStoreSkusSpecTag(ctx *jxcontext.Context, vendorO
return err
}
type CategoryList struct {
DdId string `json:"dd_id"`
Id int `json:"id"`
NameId int `json:"name_id"`
}
func GetProductAuditList(vendorOrgCode string) map[string]string {
var page int64 = 1
var pageSize int64 = 1
updateCategory := make(map[string]string, 100) // 修改分类的Map
ddIDList := make([]string, 0, 100)
skuList := make([]CategoryList, 0, 100)
db := dao.GetDB()
for {
data, _, err := getAPI(vendorOrgCode, 0, "").GetProductAuditList(page, pageSize, 2)
if err != nil || len(data) == 0 {
break
}
for _, v := range data {
if _, ok := v.AuditReason["综合原因"]; ok {
if strings.Contains(v.AuditReason["综合原因"][0], "该商品类目选择错误,推荐放置在") {
list := strings.Split(v.AuditReason["综合原因"][0], ``)
list2 := strings.Split(list[1], ``)
categoryNameList := strings.Split(list2[0], "/")
updateCategory[utils.Int64ToStr(v.ProductId)] = categoryNameList[len(categoryNameList)-1]
ddIDList = append(ddIDList, utils.Int64ToStr(v.ProductId))
}
}
data, _, err := getAPI(vendorOrgCode, 0, "").GetProductAuditList(page, pageSize, 2)
if err != nil || len(data) == 0 {
return nil
}
for _, v := range data {
if _, ok := v.AuditReason["综合原因"]; ok {
if strings.Contains(v.AuditReason["综合原因"][0], "该商品类目选择错误,推荐放置在") {
list := strings.Split(v.AuditReason["综合原因"][0], ``)
list2 := strings.Split(list[1], ``)
categoryNameList := strings.Split(list2[0], "/")
updateCategory[utils.Int64ToStr(v.ProductId)] = categoryNameList[len(categoryNameList)-1]
}
}
sql := " SELECT b.dd_id,s.id,s.name_id FROM store_sku_bind b INNER JOIN sku s ON b.sku_id = s.id AND s.deleted_at = ? WHERE b.dd_id IN (" + dao.GenQuestionMarks(len(ddIDList)) + ") AND b.deleted_at = ?"
params := []interface{}{utils.DefaultTimeValue, ddIDList, utils.DefaultTimeValue}
if err := dao.GetRows(db, &skuList, sql, params...); err != nil {
return nil
}
for _, v := range skuList {
item := &model.SkuVendorCategoryMap{
ModelIDCULD: model.ModelIDCULD{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
DeletedAt: utils.DefaultTimeValue,
LastOperator: "18981810340",
},
NameID: v.NameId,
VendorID: model.VendorIDDD,
VendorCategoryID: updateCategory[v.DdId],
}
vendorCatgory, err := cms.GetVendorCategoriesByName(14, updateCategory[v.DdId])
if err != nil {
globals.SugarLogger.Debugf("====================err2 %s", err)
return nil
}
item.VendorCategoryID = vendorCatgory.VendorCategoryID
skuVendorCategoryMap := &model.SkuVendorCategoryMap{}
if err := dao.GetRow(db, skuVendorCategoryMap, `SELECT * FROM sku_vendor_category_map WHERE name_id = ? AND vendor_id = ? AND deleted_at = ?`, []interface{}{v.NameId, model.VendorIDDD, utils.DefaultTimeValue}); err != nil {
globals.SugarLogger.Debugf("====================err3 %s", err)
return nil
}
if skuVendorCategoryMap != nil && skuVendorCategoryMap.ID > 0 {
if _, err := dao.UpdateEntity(db, skuVendorCategoryMap, "VendorCategoryID"); err != nil {
globals.SugarLogger.Debugf("====================err4 %s", err)
}
} else {
if err := dao.CreateEntity(db, item); err != nil {
globals.SugarLogger.Debugf("====================err5 %s", err)
}
}
}
break
//if page*pageSize < total {
// page++
//}
//updateCategory = make(map[string]string, 100) // 修改分类的Map
//ddIDList = make([]string, 0, 100)
//skuList = make([]CategoryList, 0, 100)
}
return updateCategory
}

View File

@@ -11,6 +11,7 @@ import (
"git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/server/web"
"time"
)
type SkuController struct {
@@ -831,6 +832,12 @@ func (c *SkuController) BatchSetRestockingPrice() {
})
}
type CategoryList struct {
DdId string `json:"dd_id"`
Id int `json:"id"`
NameId int `json:"name_id"`
}
// @Title 抖店商品类目修改
// @Description 抖店商品类目修改
// @Success 200 {object} controllers.CallResult
@@ -839,17 +846,54 @@ func (c *SkuController) BatchSetRestockingPrice() {
func (c *SkuController) UpdateTiktokCategory() {
c.callUpdateTiktokCategory(func(params *tSkuUpdateTiktokCategoryParams) (interface{}, string, error) {
data := tiktok_store.GetProductAuditList("57939570")
globals.SugarLogger.Debugf("==========111 %s", utils.Format4Output(data, false))
ddIDList := make([]string, 0, 100)
skuList := make([]CategoryList, 0, 100)
db := dao.GetDB()
for k, v := range data {
vendorCatgory, err := cms.GetVendorCategoriesByName(14, v)
if err != nil || vendorCatgory == nil {
data[k] = v
globals.SugarLogger.Debugf("err := %s", err)
continue
}
vendorCatgory, _ := cms.GetVendorCategoriesByName(14, v)
ddIDList = append(ddIDList, k)
data[k] = vendorCatgory.VendorCategoryID
}
globals.SugarLogger.Debugf("==========222 %s", utils.Format4Output(data, false))
sql := " SELECT b.dd_id,s.id,s.name_id FROM store_sku_bind b INNER JOIN sku s ON b.sku_id = s.id AND s.deleted_at = ? WHERE b.dd_id IN (" + dao.GenQuestionMarks(len(ddIDList)) + ") AND b.deleted_at = ?"
param := []interface{}{utils.DefaultTimeValue, ddIDList, utils.DefaultTimeValue}
if err := dao.GetRows(db, &skuList, sql, param...); err != nil {
return nil, "", err
}
for _, v1 := range data {
for _, v := range skuList {
item := &model.SkuVendorCategoryMap{
ModelIDCULD: model.ModelIDCULD{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
DeletedAt: utils.DefaultTimeValue,
LastOperator: "18981810340",
},
NameID: v.NameId,
VendorID: model.VendorIDDD,
}
item.VendorCategoryID = v1
skuVendorCategoryMap := &model.SkuVendorCategoryMap{}
if err := dao.GetRow(db, skuVendorCategoryMap, `SELECT * FROM sku_vendor_category_map WHERE name_id = ? AND vendor_id = ? AND deleted_at = ?`, []interface{}{v.NameId, model.VendorIDDD, utils.DefaultTimeValue}); err != nil {
globals.SugarLogger.Debugf("====================err3 %s", err)
return nil, "", err
}
if skuVendorCategoryMap != nil && skuVendorCategoryMap.ID > 0 {
if _, err := dao.UpdateEntity(db, skuVendorCategoryMap, "VendorCategoryID"); err != nil {
globals.SugarLogger.Debugf("====================err4 %s", err)
}
} else {
if err := dao.CreateEntity(db, item); err != nil {
globals.SugarLogger.Debugf("====================err5 %s", err)
}
}
}
}
return data, "", nil
})
}