尽量减少对于api.JdAPI的直接依赖
This commit is contained in:
@@ -255,79 +255,3 @@ func (c *OrderManager) UpdataOrderFinancialInfo(orderFinancial *model.OrderFinan
|
|||||||
// orderFinancial 和 OrderSkuFinancial 数据计算完毕,准备进行更新
|
// orderFinancial 和 OrderSkuFinancial 数据计算完毕,准备进行更新
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 正向订单设置小费后更新信息,需要再去订单查询列表接口查询小费金额,然后传递过来,感觉这样一个个写非常麻烦(以下demo是以京东为例)
|
|
||||||
// 为什么不直接用OrderDetail2Financial再处理一遍,通过传递一个type=新建/更新,在SaveOrderFinancialInfo进行相应的数据库操作
|
|
||||||
|
|
||||||
// func UpdataOrderFinancialInfoByTips(orderFinancial *model.OrderFinancial, orderData map[string]interface{}) (err error) {
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// dao.Begin(db)
|
|
||||||
// defer dao.Rollback(db)
|
|
||||||
// order1, err2 := api.JdAPI.OrderShoudSettlementService(orderFinancial.VendorOrderID) // 考虑放到上层实现然后传递过来
|
|
||||||
// orderFinancial.FreightTipsMoney = utils.MustInterface2Int64(orderData["tips"])
|
|
||||||
// pmMoney := orderFinancial.PmMoney
|
|
||||||
// JxPmMoney := orderFinancial.JxPmMoney
|
|
||||||
// orderFinancial.PmMoney = 0
|
|
||||||
// // 京东/京西平台费可能会变化
|
|
||||||
// if err = err2; err == nil {
|
|
||||||
// orderFinancial.ShopMoney = utils.Interface2Int64WithDefault(order1["settlementAmount"], 0)
|
|
||||||
// orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["goodsCommission"], 0)
|
|
||||||
// orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["freightCommission"], 0)
|
|
||||||
// orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["packageCommission"], 0)
|
|
||||||
// orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["guaranteedCommission"], 0)
|
|
||||||
// orderFinancial.JxPmMoney = (orderFinancial.ShopMoney+orderFinancial.PmMoney)*TotalRate/1000 - orderFinancial.PmMoney // 京西平台费 = 总金额*20%-第三方平台费
|
|
||||||
// if orderFinancial.JxPmMoney < 0 { // 如果算出京西平台费为负数,则置0
|
|
||||||
// orderFinancial.JxPmMoney = 0
|
|
||||||
// }
|
|
||||||
// // 计算在此次变动中,第三方平台结算费用的变化值
|
|
||||||
// decMoney := orderFinancial.FreightTipsMoney + orderFinancial.PmMoney - pmMoney
|
|
||||||
// orderFinancial.ShopMoneyByCal -= decMoney
|
|
||||||
// decMoney2 := decMoney
|
|
||||||
// // 计算在此次变动中,京西结算费用的变化值
|
|
||||||
// jxDecMoney := decMoney + orderFinancial.JxPmMoney - JxPmMoney
|
|
||||||
// orderFinancial.JxShopMoney -= jxDecMoney
|
|
||||||
// jxDecMoney2 := jxDecMoney
|
|
||||||
|
|
||||||
// for _, sku := range orderFinancial.Skus[1:] {
|
|
||||||
// // 重新计算单条sku平台应该结算的金额
|
|
||||||
// skuDecMoney := utils.Float64TwoInt64(float64(decMoney*sku.SalePrice*int64(sku.Count)+sku.MealBoxMoney) / float64(orderFinancial.SalePriceMoney+orderFinancial.MealBoxMoney))
|
|
||||||
// sku.PmDeductionsMoney += skuDecMoney
|
|
||||||
// sku.ShopMoneyByCal -= skuDecMoney
|
|
||||||
// decMoney2 -= skuDecMoney
|
|
||||||
|
|
||||||
// // 重新计算单条sku京西应该结算的金额
|
|
||||||
// skuJxDecMoney := utils.Float64TwoInt64(float64(jxDecMoney*sku.SalePrice*int64(sku.Count)+sku.MealBoxMoney) / float64(orderFinancial.SalePriceMoney+orderFinancial.MealBoxMoney))
|
|
||||||
// sku.JxDeductionsMoney += skuJxDecMoney
|
|
||||||
// sku.JxShopMoney -= skuJxDecMoney
|
|
||||||
// jxDecMoney2 -= skuJxDecMoney
|
|
||||||
// if err = dao.UpdateEntity(db, sku); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if len(orderFinancial.Skus) > 0 {
|
|
||||||
// sku := orderFinancial.Skus[0]
|
|
||||||
|
|
||||||
// sku.PmDeductionsMoney += decMoney2
|
|
||||||
// sku.ShopMoneyByCal -= decMoney2
|
|
||||||
|
|
||||||
// sku.JxDeductionsMoney += jxDecMoney2
|
|
||||||
// sku.JxShopMoney -= jxDecMoney2
|
|
||||||
// if err = dao.UpdateEntity(db, sku); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// // orderFinancial 和 OrderSkuFinancial 数据计算完毕,准备进行更新
|
|
||||||
// // 更新
|
|
||||||
// // 更新
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// globals.SugarLogger.Warnf("jd OrderDetail2Financial, orderID:%s is not found from api.JdAPI.OrderShoudSettlementService", orderFinancial.VendorOrderID)
|
|
||||||
// }
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 正向订单转自配送后更新信息
|
|
||||||
// func SaveOrderFinancialInfoBySelf(orderFinancial *model.OrderFinancial) (err error) {
|
|
||||||
// // 此时考虑之前有没有设置小费,如果设置了小费,要扣掉
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
package initdata
|
package initdata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/autonavi"
|
"git.rosy.net.cn/baseapi/platformapi/autonavi"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/datares"
|
"git.rosy.net.cn/jx-callback/business/jxutils/datares"
|
||||||
@@ -16,10 +12,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
"github.com/qiniu/api.v7/storage"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TruncateTable(db *dao.DaoDB, tableName string) (err error) {
|
func TruncateTable(db *dao.DaoDB, tableName string) (err error) {
|
||||||
@@ -142,107 +135,6 @@ func InitPlace(ctx *jxcontext.Context) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func RefreshSkuNameImg(ctx *jxcontext.Context, parentTask tasksch.ITask, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
||||||
db := dao.GetDB()
|
|
||||||
var skuNameList []*model.SkuName
|
|
||||||
if err = dao.GetRows(db, &skuNameList, `
|
|
||||||
SELECT t1.id, t1.img, MAX(t2.jd_id) jd_id
|
|
||||||
FROM sku_name t1
|
|
||||||
JOIN sku t2 ON t2.name_id = t1.id AND t2.deleted_at = ?
|
|
||||||
WHERE t1.deleted_at = ?
|
|
||||||
GROUP BY 1,2
|
|
||||||
ORDER BY t1.id
|
|
||||||
`, utils.DefaultTimeValue, utils.DefaultTimeValue); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
task := tasksch.NewParallelTask("RefreshSkuNameImg", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
||||||
skuName := batchItemList[0].(*model.SkuName)
|
|
||||||
if !jxutils.IsEmptyID(skuName.JdID) {
|
|
||||||
if skuName.Img == "" || isForce {
|
|
||||||
var imgList []*jdapi.SkuPageImg
|
|
||||||
if imgList, err = api.JdAPI.GetSkuPageImageInfo(skuName.JdID); err == nil {
|
|
||||||
if len(imgList) > 0 {
|
|
||||||
skuName.Img = imgList[0].Big
|
|
||||||
_, err = dao.UpdateEntity(db, skuName, "Img")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, skuNameList)
|
|
||||||
tasksch.HandleTask(task, parentTask, true).Run()
|
|
||||||
if !isAsync {
|
|
||||||
_, err = task.GetResult(0)
|
|
||||||
} else {
|
|
||||||
hint = task.ID
|
|
||||||
}
|
|
||||||
return hint, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// func RefreshImgMd5(ctx *jxcontext.Context, parentTask tasksch.ITask, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// var skuNameList []*model.SkuName
|
|
||||||
// if err = dao.GetRows(db, &skuNameList, `
|
|
||||||
// SELECT *
|
|
||||||
// FROM sku_name
|
|
||||||
// WHERE deleted_at = ? AND img <> ''
|
|
||||||
// ORDER BY id
|
|
||||||
// `, utils.DefaultTimeValue); err != nil {
|
|
||||||
// return "", err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// task := tasksch.NewParallelTask("InitSkuName calculate md5", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
|
||||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
||||||
// skuName := batchItemList[0].(*model.SkuName)
|
|
||||||
// if skuName.ImgHashCode == "" || isForce {
|
|
||||||
// response, err := http.Get(skuName.Img)
|
|
||||||
// if err == nil {
|
|
||||||
// defer response.Body.Close()
|
|
||||||
// if response.StatusCode == http.StatusOK {
|
|
||||||
// data, err2 := ioutil.ReadAll(response.Body)
|
|
||||||
// if err = err2; err == nil {
|
|
||||||
// skuName.ImgHashCode = fmt.Sprintf("%X", md5.Sum(data))
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// _, err = dao.UpdateEntity(db, skuName, "ImgHashCode")
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// err = platformapi.ErrHTTPCodeIsNot200
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return nil, err
|
|
||||||
// }, skuNameList)
|
|
||||||
// tasksch.HandleTask(task, parentTask, true).Run()
|
|
||||||
// if !isAsync {
|
|
||||||
// _, err = task.GetResult(0)
|
|
||||||
// } else {
|
|
||||||
// hint = task.ID
|
|
||||||
// }
|
|
||||||
// return hint, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
func InitSkuName(ctx *jxcontext.Context, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
||||||
rootTask := tasksch.NewSeqTask("InitSkuName", ctx,
|
|
||||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
|
||||||
switch step {
|
|
||||||
case 0:
|
|
||||||
_, err = RefreshSkuNameImg(ctx, task, isForce, false, isContinueWhenError)
|
|
||||||
case 1:
|
|
||||||
// _, err = RefreshImgMd5(ctx, task, isForce, false, isContinueWhenError)
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, 2)
|
|
||||||
tasksch.ManageTask(rootTask).Run()
|
|
||||||
if !isAsync {
|
|
||||||
_, err = rootTask.GetResult(0)
|
|
||||||
} else {
|
|
||||||
hint = rootTask.ID
|
|
||||||
}
|
|
||||||
return hint, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func InitVendorCategory(ctx *jxcontext.Context, vendorID int, isAsync bool) (hint string, err error) {
|
func InitVendorCategory(ctx *jxcontext.Context, vendorID int, isAsync bool) (hint string, err error) {
|
||||||
if handler := partner.GetPurchasePlatformFromVendorID(vendorID); handler != nil {
|
if handler := partner.GetPurchasePlatformFromVendorID(vendorID); handler != nil {
|
||||||
var cats []*model.SkuVendorCategory
|
var cats []*model.SkuVendorCategory
|
||||||
@@ -386,213 +278,3 @@ func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool
|
|||||||
func getSkuNameKey(prefix, name, comment, specUnit, unit string, specQuality float32) string {
|
func getSkuNameKey(prefix, name, comment, specUnit, unit string, specQuality float32) string {
|
||||||
return fmt.Sprintf("%s-%s-%f-%s-%s", prefix, name, specQuality, specUnit, unit)
|
return fmt.Sprintf("%s-%s-%f-%s-%s", prefix, name, specQuality, specUnit, unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
func BuildSkuFromEbaiStore(ctx *jxcontext.Context, baiduShopID int64, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
||||||
ebaiCatIDKey := "ebaiCatID"
|
|
||||||
catList, err := api.EbaiAPI.PageGetCustomCatList(baiduShopID)
|
|
||||||
if err != nil {
|
|
||||||
return hint, err
|
|
||||||
}
|
|
||||||
catMap := make(map[string]map[string]interface{})
|
|
||||||
|
|
||||||
allSkuInfo := make(map[string]map[string]map[string]map[string]interface{})
|
|
||||||
for _, cat := range catList {
|
|
||||||
catName := utils.Interface2String(cat["cat_name"])
|
|
||||||
if catName == "限时特惠" || catName == "应季热销" {
|
|
||||||
catName = "应季水果"
|
|
||||||
}
|
|
||||||
skuNameMap := allSkuInfo[catName]
|
|
||||||
if skuNameMap == nil {
|
|
||||||
skuNameMap = make(map[string]map[string]map[string]interface{})
|
|
||||||
allSkuInfo[catName] = skuNameMap
|
|
||||||
}
|
|
||||||
if catMap[catName] == nil {
|
|
||||||
catMap[catName] = cat
|
|
||||||
}
|
|
||||||
skuList, err2 := api.EbaiAPI.PageGetCustomSkuList(baiduShopID, utils.Str2Int64(utils.Interface2String(cat["cat_id"])))
|
|
||||||
if err = err2; err != nil {
|
|
||||||
return hint, err
|
|
||||||
}
|
|
||||||
for _, sku := range skuList {
|
|
||||||
_, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(sku["upc_name"].(string))
|
|
||||||
if specQuality > 0 {
|
|
||||||
if catMap[catName][ebaiCatIDKey] == nil {
|
|
||||||
catMap[catName][ebaiCatIDKey] = utils.Interface2String(sku["cat3_id"])
|
|
||||||
}
|
|
||||||
skuNameKey := sku["photos"].([]interface{})[0].(map[string]interface{})["url"].(string)
|
|
||||||
if skuNameMap[skuNameKey] == nil {
|
|
||||||
skuNameMap[skuNameKey] = make(map[string]map[string]interface{})
|
|
||||||
}
|
|
||||||
skuNameMap[skuNameKey][fmt.Sprintf("%f.%s", specQuality, specUnit)] = sku
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
allSkuInfo2 := make(map[*model.SkuCategory][]*model.SkuNameExt)
|
|
||||||
catSeq := 0
|
|
||||||
for catName, catSkuNameMap := range allSkuInfo {
|
|
||||||
if len(catSkuNameMap) > 0 {
|
|
||||||
skuCat := &model.SkuCategory{
|
|
||||||
Name: catName,
|
|
||||||
ParentID: 0,
|
|
||||||
Level: 1,
|
|
||||||
Type: model.SkuCategoryNormal,
|
|
||||||
Seq: catSeq,
|
|
||||||
EbaiCategoryID: utils.Str2Int64(utils.Interface2String(catMap[catName][ebaiCatIDKey])),
|
|
||||||
}
|
|
||||||
catSeq++
|
|
||||||
for _, skuList := range catSkuNameMap {
|
|
||||||
var skuNameExt *model.SkuNameExt
|
|
||||||
for _, sku := range skuList {
|
|
||||||
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(sku["upc_name"].(string))
|
|
||||||
if skuNameExt == nil {
|
|
||||||
skuNameExt = &model.SkuNameExt{
|
|
||||||
SkuName: model.SkuName{
|
|
||||||
Prefix: prefix,
|
|
||||||
Name: name,
|
|
||||||
// CategoryID:
|
|
||||||
IsGlobal: 1,
|
|
||||||
Unit: unit,
|
|
||||||
SpecQuality: specQuality,
|
|
||||||
SpecUnit: specUnit,
|
|
||||||
Price: int(jxutils.StandardPrice2Int(utils.MustInterface2Float64(sku["sale_price"]))),
|
|
||||||
Img: sku["photos"].([]interface{})[0].(map[string]interface{})["url"].(string),
|
|
||||||
Status: model.SkuStatusNormal,
|
|
||||||
IsSpu: 0,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if len(skuList) > 1 {
|
|
||||||
skuNameExt.Unit = "份"
|
|
||||||
skuNameExt.SpecQuality = 500
|
|
||||||
skuNameExt.SpecUnit = "g"
|
|
||||||
}
|
|
||||||
if skuNameExt.Unit == "份" {
|
|
||||||
tmpSpecQuality := specQuality
|
|
||||||
if specUnit == "kg" || specUnit == "l" {
|
|
||||||
tmpSpecQuality *= 1000
|
|
||||||
}
|
|
||||||
skuNameExt.Price = int(float32(skuNameExt.Price) * 500 / tmpSpecQuality)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mySku := &model.Sku{
|
|
||||||
// CategoryID:
|
|
||||||
// NameID:
|
|
||||||
Comment: comment,
|
|
||||||
SpecQuality: specQuality,
|
|
||||||
SpecUnit: specUnit,
|
|
||||||
Weight: int(utils.Str2Int64(utils.Interface2String(sku["weight"]))),
|
|
||||||
Status: model.SkuStatusNormal,
|
|
||||||
|
|
||||||
LinkID: int(jxutils.StandardPrice2Int(utils.MustInterface2Float64(sku["sale_price"]))), // 临时传递价格用
|
|
||||||
}
|
|
||||||
if sku["enabled"].(string) == "0" {
|
|
||||||
mySku.Status = model.SkuStatusDontSale
|
|
||||||
}
|
|
||||||
skuNameExt.Skus = append(skuNameExt.Skus, mySku)
|
|
||||||
}
|
|
||||||
allSkuInfo2[skuCat] = append(allSkuInfo2[skuCat], skuNameExt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
startOutSkuID := 1000
|
|
||||||
var skuCatList []*model.SkuCategory
|
|
||||||
for cat := range allSkuInfo2 {
|
|
||||||
skuCatList = append(skuCatList, cat)
|
|
||||||
}
|
|
||||||
putPolicy := storage.PutPolicy{
|
|
||||||
Scope: globals.QiniuBucket,
|
|
||||||
// Expires: 10 * 60,
|
|
||||||
}
|
|
||||||
cfg := &storage.Config{}
|
|
||||||
upToken := putPolicy.UploadToken(api.QiniuAPI)
|
|
||||||
rootTask := tasksch.NewSeqTask("BuildSkuFromEbaiStore", ctx,
|
|
||||||
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
|
||||||
var catID string
|
|
||||||
cat := skuCatList[step]
|
|
||||||
skuNameExtList := allSkuInfo2[cat]
|
|
||||||
catID, err = addShopCategory(0, cat.Name, int(cat.Level), cat.Seq, ctx.GetUserName())
|
|
||||||
if err == nil {
|
|
||||||
shopCategories := []int64{utils.Str2Int64(catID)}
|
|
||||||
for _, skuNameExt := range skuNameExtList {
|
|
||||||
var imgContent []byte
|
|
||||||
skuNameExt.CategoryID = cat.ID
|
|
||||||
skuNameExt.Img = strings.Replace(skuNameExt.Img, "https://", "http://", 1)
|
|
||||||
if imgContent, _, err = jxutils.DownloadFileByURL(skuNameExt.Img); err != nil {
|
|
||||||
globals.SugarLogger.Infof("download pic %s failed with error:%v", skuNameExt.Img, err)
|
|
||||||
if !isContinueWhenError {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = nil
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
formUploader := storage.NewFormUploader(cfg)
|
|
||||||
ret := storage.PutRet{}
|
|
||||||
key := jxutils.GenPicFileName(".jpeg")
|
|
||||||
for i := 0; i < 3; i++ {
|
|
||||||
if err = formUploader.Put(context.Background(), &ret, upToken, key, bytes.NewReader(imgContent), int64(len(imgContent)), &storage.PutExtra{}); err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
globals.SugarLogger.Infof("upload pic %s failed with error:%v", skuNameExt.Img, err)
|
|
||||||
if !isContinueWhenError {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = nil
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
qiniuImgURL := jxutils.ComposeQiniuResURL(key) + "?imageMogr2/thumbnail/x800/gravity/Center/crop/800x800"
|
|
||||||
for _, sku := range skuNameExt.Skus {
|
|
||||||
jdCatID := 22410 // 其他国产水果
|
|
||||||
if cat.Name == "进口水果" {
|
|
||||||
jdCatID = 20342 // 其他进口水果
|
|
||||||
}
|
|
||||||
price := sku.LinkID
|
|
||||||
sku.LinkID = 0
|
|
||||||
skuName := jxutils.ComposeSkuName(skuNameExt.Prefix, skuNameExt.Name, sku.Comment, skuNameExt.Unit, sku.SpecQuality, sku.SpecUnit, jdapi.MaxSkuNameCharCount)
|
|
||||||
fixedStatus := 1
|
|
||||||
if sku.Status != model.SkuStatusNormal {
|
|
||||||
fixedStatus = 2
|
|
||||||
}
|
|
||||||
var vendorSkuID string
|
|
||||||
vendorSkuID, err = addSku(utils.Int2Str(startOutSkuID), jdCatID, shopCategories, jd.DefBrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{qiniuImgURL}, fixedStatus, true, nil)
|
|
||||||
if err == nil {
|
|
||||||
globals.SugarLogger.Debugf("vendorSkuID=%s", vendorSkuID)
|
|
||||||
} else {
|
|
||||||
globals.SugarLogger.Infof("create %s failed with error:%v", skuName, err)
|
|
||||||
if !isContinueWhenError {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
// fmt.Printf("%s,[%s]%s-%f-%s, %s, %s\n", cat.Name, skuNameExt.Prefix, skuNameExt.Name, skuNameExt.SpecQuality, skuNameExt.SpecUnit, qiniuImgURL, skuName)
|
|
||||||
startOutSkuID++
|
|
||||||
// rootTask.Cancel()
|
|
||||||
// return nil, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, len(skuCatList))
|
|
||||||
tasksch.ManageTask(rootTask).Run()
|
|
||||||
if !isAsync {
|
|
||||||
_, err = rootTask.GetResult(0)
|
|
||||||
} else {
|
|
||||||
hint = rootTask.ID
|
|
||||||
}
|
|
||||||
return hint, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func addShopCategory(pid int64, shopCategoryName string, shopCategoryLevel, sort int, userName string) (catId string, err error) {
|
|
||||||
// globals.SugarLogger.Debug(pid, shopCategoryName, shopCategoryLevel, sort, userName)
|
|
||||||
// return "123", err
|
|
||||||
return api.JdAPI.AddShopCategory(pid, shopCategoryName, shopCategoryLevel, sort, userName)
|
|
||||||
}
|
|
||||||
|
|
||||||
func addSku(outSkuId string, cagtegoryId int, shopCategories []int64, brandId int, skuName string, skuPrice int, weight float32, images []string, fixedStatus int, isSale bool, addParams map[string]interface{}) (skuId string, err error) {
|
|
||||||
// globals.SugarLogger.Debug(outSkuId, cagtegoryId, shopCategories, brandId, skuName, skuPrice, weight, images, fixedStatus, isSale, addParams)
|
|
||||||
// return "456", err
|
|
||||||
return api.JdAPI.AddSku(outSkuId, cagtegoryId, shopCategories, brandId, skuName, skuPrice, weight, images, fixedStatus, isSale, addParams)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package tempop
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"image"
|
"image"
|
||||||
"image/jpeg"
|
"image/jpeg"
|
||||||
@@ -15,6 +16,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||||
"github.com/360EntSecGroup-Skylar/excelize"
|
"github.com/360EntSecGroup-Skylar/excelize"
|
||||||
|
"github.com/qiniu/api.v7/storage"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||||
@@ -29,6 +31,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
|
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/ebai"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
@@ -600,78 +603,6 @@ type GoodsOrderOriginalEx struct {
|
|||||||
OrderStatus int
|
OrderStatus int
|
||||||
}
|
}
|
||||||
|
|
||||||
// func CreateOrderFromOriginal(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
||||||
// sqlBatchCount := 5000
|
|
||||||
// rootTask := tasksch.NewSeqTask("CreateOrderFromOriginal", ctx,
|
|
||||||
// func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
|
||||||
// sql := `
|
|
||||||
// SELECT t1.*, t3.order_status
|
|
||||||
// FROM goods_order_original t1
|
|
||||||
// LEFT JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id
|
|
||||||
// LEFT JOIN jxorder t3 ON t3.order_id = t1.vendor_order_id
|
|
||||||
// WHERE t2.id IS NULL
|
|
||||||
// LIMIT ?;
|
|
||||||
// `
|
|
||||||
// db := dao.GetDB()
|
|
||||||
// var orderList []*GoodsOrderOriginalEx
|
|
||||||
// if err = dao.GetRows(db, &orderList, sql, sqlBatchCount); err != nil {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// if len(orderList) > 0 {
|
|
||||||
// task := tasksch.NewParallelTask("CreateOrderFromOriginal", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(1), ctx,
|
|
||||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
||||||
// orderOriginal := batchItemList[0].(*GoodsOrderOriginalEx)
|
|
||||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal processing orderID:%s", orderOriginal.VendorOrderID)
|
|
||||||
// if handler := partner.GetPurchasePlatformFromVendorID(orderOriginal.VendorID); handler != nil {
|
|
||||||
// var detail map[string]interface{}
|
|
||||||
// if err = utils.UnmarshalUseNumber([]byte(strings.Replace(strings.Replace(orderOriginal.OriginalData, "\n", "", -1), "\r", "", -1)), &detail); err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// order := handler.Map2Order(detail)
|
|
||||||
// if order.Status < model.OrderStatusEndBegin {
|
|
||||||
// if orderOriginal.OrderStatus == 3 {
|
|
||||||
// order.Status = model.OrderStatusFinished
|
|
||||||
// } else if orderOriginal.OrderStatus == 7 {
|
|
||||||
// order.Status = model.OrderStatusCanceled
|
|
||||||
// } else {
|
|
||||||
// order2, err2 := handler.GetOrder(order.VendorOrderID)
|
|
||||||
// if err = err2; err == nil {
|
|
||||||
// order.Status = order2.Status
|
|
||||||
// } else {
|
|
||||||
// err = nil // ignore get status error
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if err == nil {
|
|
||||||
// if _, err = orderman.FixedOrderManager.SaveOrder(order, false, dao.GetDB()); err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s, error:%v", orderOriginal.VendorOrderID, err)
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// globals.SugarLogger.Debugf("CreateOrderFromOriginal abnormal orderID:%s", orderOriginal.VendorOrderID)
|
|
||||||
// }
|
|
||||||
// return nil, err
|
|
||||||
// }, orderList)
|
|
||||||
// // rootTask.AddChild(task).Run()
|
|
||||||
// task.Run()
|
|
||||||
// _, err = task.GetResult(0)
|
|
||||||
// } else {
|
|
||||||
// rootTask.Cancel()
|
|
||||||
// }
|
|
||||||
// return nil, err
|
|
||||||
// }, math.MaxInt32)
|
|
||||||
// tasksch.ManageTask(rootTask).Run()
|
|
||||||
// if !isAsync {
|
|
||||||
// _, err = rootTask.GetResult(0)
|
|
||||||
// } else {
|
|
||||||
// hint = rootTask.ID
|
|
||||||
// }
|
|
||||||
// return hint, err
|
|
||||||
// }
|
|
||||||
|
|
||||||
func TransformJdSpu2Sku(ctx *jxcontext.Context, skuNameIDs []int, count int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func TransformJdSpu2Sku(ctx *jxcontext.Context, skuNameIDs []int, count int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.*
|
SELECT t1.*
|
||||||
@@ -1359,3 +1290,213 @@ func JdStoreInfo1125() (hint string, err error) {
|
|||||||
}
|
}
|
||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BuildSkuFromEbaiStore(ctx *jxcontext.Context, baiduShopID int64, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
|
ebaiCatIDKey := "ebaiCatID"
|
||||||
|
catList, err := api.EbaiAPI.PageGetCustomCatList(baiduShopID)
|
||||||
|
if err != nil {
|
||||||
|
return hint, err
|
||||||
|
}
|
||||||
|
catMap := make(map[string]map[string]interface{})
|
||||||
|
|
||||||
|
allSkuInfo := make(map[string]map[string]map[string]map[string]interface{})
|
||||||
|
for _, cat := range catList {
|
||||||
|
catName := utils.Interface2String(cat["cat_name"])
|
||||||
|
if catName == "限时特惠" || catName == "应季热销" {
|
||||||
|
catName = "应季水果"
|
||||||
|
}
|
||||||
|
skuNameMap := allSkuInfo[catName]
|
||||||
|
if skuNameMap == nil {
|
||||||
|
skuNameMap = make(map[string]map[string]map[string]interface{})
|
||||||
|
allSkuInfo[catName] = skuNameMap
|
||||||
|
}
|
||||||
|
if catMap[catName] == nil {
|
||||||
|
catMap[catName] = cat
|
||||||
|
}
|
||||||
|
skuList, err2 := api.EbaiAPI.PageGetCustomSkuList(baiduShopID, utils.Str2Int64(utils.Interface2String(cat["cat_id"])))
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return hint, err
|
||||||
|
}
|
||||||
|
for _, sku := range skuList {
|
||||||
|
_, _, _, specUnit, _, specQuality := jxutils.SplitSkuName(sku["upc_name"].(string))
|
||||||
|
if specQuality > 0 {
|
||||||
|
if catMap[catName][ebaiCatIDKey] == nil {
|
||||||
|
catMap[catName][ebaiCatIDKey] = utils.Interface2String(sku["cat3_id"])
|
||||||
|
}
|
||||||
|
skuNameKey := sku["photos"].([]interface{})[0].(map[string]interface{})["url"].(string)
|
||||||
|
if skuNameMap[skuNameKey] == nil {
|
||||||
|
skuNameMap[skuNameKey] = make(map[string]map[string]interface{})
|
||||||
|
}
|
||||||
|
skuNameMap[skuNameKey][fmt.Sprintf("%f.%s", specQuality, specUnit)] = sku
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
allSkuInfo2 := make(map[*model.SkuCategory][]*model.SkuNameExt)
|
||||||
|
catSeq := 0
|
||||||
|
for catName, catSkuNameMap := range allSkuInfo {
|
||||||
|
if len(catSkuNameMap) > 0 {
|
||||||
|
skuCat := &model.SkuCategory{
|
||||||
|
Name: catName,
|
||||||
|
ParentID: 0,
|
||||||
|
Level: 1,
|
||||||
|
Type: model.SkuCategoryNormal,
|
||||||
|
Seq: catSeq,
|
||||||
|
EbaiCategoryID: utils.Str2Int64(utils.Interface2String(catMap[catName][ebaiCatIDKey])),
|
||||||
|
}
|
||||||
|
catSeq++
|
||||||
|
for _, skuList := range catSkuNameMap {
|
||||||
|
var skuNameExt *model.SkuNameExt
|
||||||
|
for _, sku := range skuList {
|
||||||
|
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(sku["upc_name"].(string))
|
||||||
|
if skuNameExt == nil {
|
||||||
|
skuNameExt = &model.SkuNameExt{
|
||||||
|
SkuName: model.SkuName{
|
||||||
|
Prefix: prefix,
|
||||||
|
Name: name,
|
||||||
|
// CategoryID:
|
||||||
|
IsGlobal: 1,
|
||||||
|
Unit: unit,
|
||||||
|
SpecQuality: specQuality,
|
||||||
|
SpecUnit: specUnit,
|
||||||
|
Price: int(jxutils.StandardPrice2Int(utils.MustInterface2Float64(sku["sale_price"]))),
|
||||||
|
Img: sku["photos"].([]interface{})[0].(map[string]interface{})["url"].(string),
|
||||||
|
Status: model.SkuStatusNormal,
|
||||||
|
IsSpu: 0,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if len(skuList) > 1 {
|
||||||
|
skuNameExt.Unit = "份"
|
||||||
|
skuNameExt.SpecQuality = 500
|
||||||
|
skuNameExt.SpecUnit = "g"
|
||||||
|
}
|
||||||
|
if skuNameExt.Unit == "份" {
|
||||||
|
tmpSpecQuality := specQuality
|
||||||
|
if specUnit == "kg" || specUnit == "l" {
|
||||||
|
tmpSpecQuality *= 1000
|
||||||
|
}
|
||||||
|
skuNameExt.Price = int(float32(skuNameExt.Price) * 500 / tmpSpecQuality)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mySku := &model.Sku{
|
||||||
|
// CategoryID:
|
||||||
|
// NameID:
|
||||||
|
Comment: comment,
|
||||||
|
SpecQuality: specQuality,
|
||||||
|
SpecUnit: specUnit,
|
||||||
|
Weight: int(utils.Str2Int64(utils.Interface2String(sku["weight"]))),
|
||||||
|
Status: model.SkuStatusNormal,
|
||||||
|
|
||||||
|
LinkID: int(jxutils.StandardPrice2Int(utils.MustInterface2Float64(sku["sale_price"]))), // 临时传递价格用
|
||||||
|
}
|
||||||
|
if sku["enabled"].(string) == "0" {
|
||||||
|
mySku.Status = model.SkuStatusDontSale
|
||||||
|
}
|
||||||
|
skuNameExt.Skus = append(skuNameExt.Skus, mySku)
|
||||||
|
}
|
||||||
|
allSkuInfo2[skuCat] = append(allSkuInfo2[skuCat], skuNameExt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
startOutSkuID := 1000
|
||||||
|
var skuCatList []*model.SkuCategory
|
||||||
|
for cat := range allSkuInfo2 {
|
||||||
|
skuCatList = append(skuCatList, cat)
|
||||||
|
}
|
||||||
|
putPolicy := storage.PutPolicy{
|
||||||
|
Scope: globals.QiniuBucket,
|
||||||
|
// Expires: 10 * 60,
|
||||||
|
}
|
||||||
|
cfg := &storage.Config{}
|
||||||
|
upToken := putPolicy.UploadToken(api.QiniuAPI)
|
||||||
|
rootTask := tasksch.NewSeqTask("BuildSkuFromEbaiStore", ctx,
|
||||||
|
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
|
var catID string
|
||||||
|
cat := skuCatList[step]
|
||||||
|
skuNameExtList := allSkuInfo2[cat]
|
||||||
|
catID, err = addShopCategory(0, cat.Name, int(cat.Level), cat.Seq, ctx.GetUserName())
|
||||||
|
if err == nil {
|
||||||
|
shopCategories := []int64{utils.Str2Int64(catID)}
|
||||||
|
for _, skuNameExt := range skuNameExtList {
|
||||||
|
var imgContent []byte
|
||||||
|
skuNameExt.CategoryID = cat.ID
|
||||||
|
skuNameExt.Img = strings.Replace(skuNameExt.Img, "https://", "http://", 1)
|
||||||
|
if imgContent, _, err = jxutils.DownloadFileByURL(skuNameExt.Img); err != nil {
|
||||||
|
globals.SugarLogger.Infof("download pic %s failed with error:%v", skuNameExt.Img, err)
|
||||||
|
if !isContinueWhenError {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
err = nil
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
formUploader := storage.NewFormUploader(cfg)
|
||||||
|
ret := storage.PutRet{}
|
||||||
|
key := jxutils.GenPicFileName(".jpeg")
|
||||||
|
for i := 0; i < 3; i++ {
|
||||||
|
if err = formUploader.Put(context.Background(), &ret, upToken, key, bytes.NewReader(imgContent), int64(len(imgContent)), &storage.PutExtra{}); err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
globals.SugarLogger.Infof("upload pic %s failed with error:%v", skuNameExt.Img, err)
|
||||||
|
if !isContinueWhenError {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
err = nil
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
qiniuImgURL := jxutils.ComposeQiniuResURL(key) + "?imageMogr2/thumbnail/x800/gravity/Center/crop/800x800"
|
||||||
|
for _, sku := range skuNameExt.Skus {
|
||||||
|
jdCatID := 22410 // 其他国产水果
|
||||||
|
if cat.Name == "进口水果" {
|
||||||
|
jdCatID = 20342 // 其他进口水果
|
||||||
|
}
|
||||||
|
price := sku.LinkID
|
||||||
|
sku.LinkID = 0
|
||||||
|
skuName := jxutils.ComposeSkuName(skuNameExt.Prefix, skuNameExt.Name, sku.Comment, skuNameExt.Unit, sku.SpecQuality, sku.SpecUnit, jdapi.MaxSkuNameCharCount)
|
||||||
|
fixedStatus := 1
|
||||||
|
if sku.Status != model.SkuStatusNormal {
|
||||||
|
fixedStatus = 2
|
||||||
|
}
|
||||||
|
var vendorSkuID string
|
||||||
|
vendorSkuID, err = addSku(utils.Int2Str(startOutSkuID), jdCatID, shopCategories, jd.DefBrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{qiniuImgURL}, fixedStatus, true, nil)
|
||||||
|
if err == nil {
|
||||||
|
globals.SugarLogger.Debugf("vendorSkuID=%s", vendorSkuID)
|
||||||
|
} else {
|
||||||
|
globals.SugarLogger.Infof("create %s failed with error:%v", skuName, err)
|
||||||
|
if !isContinueWhenError {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
// fmt.Printf("%s,[%s]%s-%f-%s, %s, %s\n", cat.Name, skuNameExt.Prefix, skuNameExt.Name, skuNameExt.SpecQuality, skuNameExt.SpecUnit, qiniuImgURL, skuName)
|
||||||
|
startOutSkuID++
|
||||||
|
// rootTask.Cancel()
|
||||||
|
// return nil, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, len(skuCatList))
|
||||||
|
tasksch.ManageTask(rootTask).Run()
|
||||||
|
if !isAsync {
|
||||||
|
_, err = rootTask.GetResult(0)
|
||||||
|
} else {
|
||||||
|
hint = rootTask.ID
|
||||||
|
}
|
||||||
|
return hint, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func addShopCategory(pid int64, shopCategoryName string, shopCategoryLevel, sort int, userName string) (catId string, err error) {
|
||||||
|
// globals.SugarLogger.Debug(pid, shopCategoryName, shopCategoryLevel, sort, userName)
|
||||||
|
// return "123", err
|
||||||
|
return api.JdAPI.AddShopCategory(pid, shopCategoryName, shopCategoryLevel, sort, userName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func addSku(outSkuId string, cagtegoryId int, shopCategories []int64, brandId int, skuName string, skuPrice int, weight float32, images []string, fixedStatus int, isSale bool, addParams map[string]interface{}) (skuId string, err error) {
|
||||||
|
// globals.SugarLogger.Debug(outSkuId, cagtegoryId, shopCategories, brandId, skuName, skuPrice, weight, images, fixedStatus, isSale, addParams)
|
||||||
|
// return "456", err
|
||||||
|
return api.JdAPI.AddSku(outSkuId, cagtegoryId, shopCategories, brandId, skuName, skuPrice, weight, images, fixedStatus, isSale, addParams)
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,22 +22,6 @@ func (c *InitDataController) InitPlace() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 初始化skuname(当前主要是计算md5)
|
|
||||||
// @Description 初始化skuname(当前主要是计算md5)
|
|
||||||
// @Param token header string true "认证token"
|
|
||||||
// @Param isForce formData bool false "是否强刷,即即使本地已经有了hashCode也重新计算,缺省为false"
|
|
||||||
// @Param isAsync formData bool false "是否异步操作"
|
|
||||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
|
||||||
// @Success 200 {object} controllers.CallResult
|
|
||||||
// @Failure 200 {object} controllers.CallResult
|
|
||||||
// @router /InitSkuName [post]
|
|
||||||
func (c *InitDataController) InitSkuName() {
|
|
||||||
c.callInitSkuName(func(params *tInitdataInitSkuNameParams) (retVal interface{}, errCode string, err error) {
|
|
||||||
retVal, err = initdata.InitSkuName(params.Ctx, params.IsForce, params.IsAsync, params.IsContinueWhenError)
|
|
||||||
return retVal, "", err
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 初始化vendor category
|
// @Title 初始化vendor category
|
||||||
// @Description 初始化vendor category
|
// @Description 初始化vendor category
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
@@ -67,19 +51,3 @@ func (c *InitDataController) UploadImage4Vendors() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 从饿百店建商品
|
|
||||||
// @Description 从饿百店建商品
|
|
||||||
// @Param token header string true "认证token"
|
|
||||||
// @Param baiduShopID formData int true "skuNameID"
|
|
||||||
// @Param isAsync formData bool false "是否异步操作"
|
|
||||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
|
||||||
// @Success 200 {object} controllers.CallResult
|
|
||||||
// @Failure 200 {object} controllers.CallResult
|
|
||||||
// @router /BuildSkuFromEbaiStore [post]
|
|
||||||
func (c *InitDataController) BuildSkuFromEbaiStore() {
|
|
||||||
c.callBuildSkuFromEbaiStore(func(params *tInitdataBuildSkuFromEbaiStoreParams) (retVal interface{}, errCode string, err error) {
|
|
||||||
retVal, err = initdata.BuildSkuFromEbaiStore(params.Ctx, int64(params.BaiduShopID), params.IsAsync, params.IsContinueWhenError)
|
|
||||||
return retVal, "", err
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -352,3 +352,19 @@ func (c *TempOpController) FixMtwmCategory() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 从饿百店建商品
|
||||||
|
// @Description 从饿百店建商品
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param baiduShopID formData int true "skuNameID"
|
||||||
|
// @Param isAsync formData bool false "是否异步操作"
|
||||||
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /BuildSkuFromEbaiStore [post]
|
||||||
|
func (c *TempOpController) BuildSkuFromEbaiStore() {
|
||||||
|
c.callBuildSkuFromEbaiStore(func(params *tTempopBuildSkuFromEbaiStoreParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
retVal, err = tempop.BuildSkuFromEbaiStore(params.Ctx, int64(params.BaiduShopID), params.IsAsync, params.IsContinueWhenError)
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -484,15 +484,6 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
|
||||||
beego.ControllerComments{
|
|
||||||
Method: "BuildSkuFromEbaiStore",
|
|
||||||
Router: `/BuildSkuFromEbaiStore`,
|
|
||||||
AllowHTTPMethods: []string{"post"},
|
|
||||||
MethodParams: param.Make(),
|
|
||||||
Filters: nil,
|
|
||||||
Params: nil})
|
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "Change2JDSPU4Store",
|
Method: "Change2JDSPU4Store",
|
||||||
@@ -529,15 +520,6 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
|
||||||
beego.ControllerComments{
|
|
||||||
Method: "InitSkuName",
|
|
||||||
Router: `/InitSkuName`,
|
|
||||||
AllowHTTPMethods: []string{"post"},
|
|
||||||
MethodParams: param.Make(),
|
|
||||||
Filters: nil,
|
|
||||||
Params: nil})
|
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "InitVendorCategory",
|
Method: "InitVendorCategory",
|
||||||
@@ -1818,6 +1800,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "BuildSkuFromEbaiStore",
|
||||||
|
Router: `/BuildSkuFromEbaiStore`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "CheckSkuDiffBetweenJxAndVendor",
|
Method: "CheckSkuDiffBetweenJxAndVendor",
|
||||||
|
|||||||
Reference in New Issue
Block a user