1
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user