jd2配置
SyncSkuNames SyncCategorys
This commit is contained in:
@@ -666,22 +666,7 @@ func (v *VendorSync) SyncSkuNames(ctx *jxcontext.Context, nameIDs []int, isForce
|
||||
func (v *VendorSync) oldSyncSkuNames(ctx *jxcontext.Context, nameIDs []int, isForce, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
db := dao.GetDB()
|
||||
if isForce {
|
||||
sql := `
|
||||
UPDATE sku t1
|
||||
SET t1.jd_sync_status = t1.jd_sync_status | ?
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
model.SyncFlagModifiedMask,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(nameIDs) > 0 {
|
||||
sql += " AND t1.name_id IN(" + dao.GenQuestionMarks(len(nameIDs)) + ")"
|
||||
sqlParams = append(sqlParams, nameIDs)
|
||||
}
|
||||
if _, err = dao.ExecuteSQL(db, sql, sqlParams...); err != nil {
|
||||
return "", err
|
||||
}
|
||||
dao.SetSkuNameSyncStatus(db, nil, nil, nameIDs, model.SyncFlagModifiedMask)
|
||||
}
|
||||
return v.SyncSkus(ctx, db, nameIDs, nil, isAsync, isContinueWhenError, ctx.GetUserName())
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import "git.rosy.net.cn/jx-callback/business/model"
|
||||
|
||||
import "git.rosy.net.cn/baseapi/utils"
|
||||
|
||||
import "git.rosy.net.cn/jx-callback/globals"
|
||||
|
||||
func GetThingMapList(db *DaoDB, thingType int, vendorIDs, thingIDs []int) (cats []*model.ThingMap, err error) {
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
@@ -32,3 +34,55 @@ func GetThingMapMap(db *DaoDB, thingType int, vendorIDs, thingIDs []int) (thingM
|
||||
}
|
||||
return thingMapMap, err
|
||||
}
|
||||
|
||||
func SetThingMapSyncStatus(db *DaoDB, vendorIDs []int, vendorOrgCodes []string, thingType int, thingIDs []int, syncStatus int8) (num int64, err error) {
|
||||
sql := `
|
||||
UPDATE thing_map t1
|
||||
SET t1.sync_status |= ?
|
||||
WHERE t1.deleted_at = ? AND t1.thing_type = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
syncStatus,
|
||||
utils.DefaultTimeValue,
|
||||
thingType,
|
||||
}
|
||||
if len(vendorIDs) > 0 {
|
||||
sql += " AND t1.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
|
||||
sqlParams = append(sqlParams, vendorIDs)
|
||||
}
|
||||
if len(vendorOrgCodes) > 0 {
|
||||
sql += " AND t1.vendor_org_code IN (" + GenQuestionMarks(len(vendorOrgCodes)) + ")"
|
||||
sqlParams = append(sqlParams, vendorOrgCodes)
|
||||
}
|
||||
if len(thingIDs) > 0 {
|
||||
sql += " AND t1.thing_id IN (" + GenQuestionMarks(len(thingIDs)) + ")"
|
||||
sqlParams = append(sqlParams, thingIDs)
|
||||
}
|
||||
num, err = ExecuteSQL(db, sql, sqlParams...)
|
||||
return num, err
|
||||
}
|
||||
|
||||
func SetSkuNameSyncStatus(db *DaoDB, vendorIDs []int, vendorOrgCodes []string, nameIDs []int, syncStatus int8) (num int64, err error) {
|
||||
if globals.IsUseThingMap {
|
||||
skuIDs, err2 := GetSkuIDByNames(db, nameIDs)
|
||||
if err = err2; err == nil {
|
||||
num, err = SetThingMapSyncStatus(db, vendorIDs, vendorOrgCodes, model.ThingTypeSku, skuIDs, syncStatus)
|
||||
}
|
||||
} else {
|
||||
sql := `
|
||||
UPDATE sku t1
|
||||
SET t1.jd_sync_status = t1.jd_sync_status | ?
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
syncStatus,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(nameIDs) > 0 {
|
||||
sql += " AND t1.name_id IN(" + GenQuestionMarks(len(nameIDs)) + ")"
|
||||
sqlParams = append(sqlParams, nameIDs)
|
||||
}
|
||||
num, err = ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
@@ -365,9 +365,13 @@ func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrg
|
||||
return vendorStoreIDs, err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) storeUploadImgByURL(inImgURL string) (imgURL string, err error) {
|
||||
func (c *PurchaseHandler) storeUploadImgByURL(vendorOrgCode, inImgURL string) (imgURL string, err error) {
|
||||
if globals.EnableJdStoreWrite {
|
||||
if vendorOrgCode == globals.JdOrgCode {
|
||||
imgURL, err = api.JdPageAPI.StoreUploadImgByURL(inImgURL)
|
||||
} else {
|
||||
imgURL, err = getAPI(vendorOrgCode).StoreUploadImgByURL(inImgURL)
|
||||
}
|
||||
} else {
|
||||
imgURL = utils.GetUUID()
|
||||
}
|
||||
@@ -395,7 +399,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
licenceURL, err := c.storeUploadImgByURL(storeDetail.Licence)
|
||||
licenceURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.Licence)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -417,7 +421,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S
|
||||
Scope: licenceDetail.Scope,
|
||||
})
|
||||
|
||||
idFrondURL, err := c.storeUploadImgByURL(storeDetail.IDCardFront)
|
||||
idFrondURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.IDCardFront)
|
||||
if err != nil {
|
||||
return addStoreInfo2Err(err, storeDetail.ID)
|
||||
}
|
||||
@@ -451,7 +455,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S
|
||||
qualifyList = append(qualifyList, addInfo)
|
||||
}
|
||||
if storeDetail.IDExpire == "" {
|
||||
idBackURL, err := c.storeUploadImgByURL(storeDetail.IDCardBack)
|
||||
idBackURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.IDCardBack)
|
||||
if err != nil {
|
||||
return addStoreInfo2Err(err, storeDetail.ID)
|
||||
}
|
||||
|
||||
@@ -59,6 +59,8 @@ backstageHost = "http://www.jxc4.com"
|
||||
wxBackstageHost = "http://wx.jxc4.com"
|
||||
|
||||
jdStorePageCookie = "OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3LYUCSS54VI6WPOAGGDK532VYPEWWVCXUFRWENWDI4PEKM7SXBZ5BJO6DBLLERUA74YR2CVCGP4WUROCAHAMXKJ2VBGHTZYRL2DHR3BMXAHCTBAHYQLL24K5YI2PULRJL2UGAVD7VFRMEYTOXYHWCYVDXJ6HYFIPWIN3ULLXDDLN2ICON4GRK"
|
||||
jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTHXLZR3RDCQD6WXIWTDOSXTP3AQEC2D3ZS24VYF7PTTKKUKN7G4XBQS3QOBGUDNLQNEY7CLSNLWZCC7LNI6GZOWOOEN72AWG53MMCURHIQRBG7CGEGVIZQNRKV2NAWXHUA2REY6NP2B3GHPO6S4H35ST5KQXRJWL5LJSIWZHXGPYA3OGPRNAHBLVVNTQE6OL2RPMHQYNXCFMU5QQERDWPFLIWKB7W4GI7GHKLYDY"
|
||||
|
||||
ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ"
|
||||
ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA"
|
||||
mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow"
|
||||
@@ -105,6 +107,11 @@ jdToken = "77e703b7-7997-441b-a12a-2e522efb117a"
|
||||
jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
|
||||
jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
|
||||
|
||||
jd2OrgCode = "349454"
|
||||
jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7"
|
||||
jd2AppKey = "7fb947624ff847ae94ff2f068cc99652"
|
||||
jd2Secret = "1097abd7ef09427099b4922784af123a"
|
||||
|
||||
elmIsProd = false
|
||||
elmToken = "2d2b583447b04b6bba5a6f3faed3559b"
|
||||
elmAppKey = "RwT214gAsS"
|
||||
@@ -137,6 +144,11 @@ jdToken = "77e703b7-7997-441b-a12a-2e522efb117a"
|
||||
jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
|
||||
jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
|
||||
|
||||
jd2OrgCode = ""
|
||||
jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7"
|
||||
jd2AppKey = "7fb947624ff847ae94ff2f068cc99652"
|
||||
jd2Secret = "1097abd7ef09427099b4922784af123a"
|
||||
|
||||
elmIsProd = true
|
||||
elmToken = ""
|
||||
elmAppKey = "KLRDcOZGrk"
|
||||
@@ -307,6 +319,11 @@ jdToken = "77e703b7-7997-441b-a12a-2e522efb117a"
|
||||
jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
|
||||
jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
|
||||
|
||||
jd2OrgCode = "349454"
|
||||
jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7"
|
||||
jd2AppKey = "7fb947624ff847ae94ff2f068cc99652"
|
||||
jd2Secret = "1097abd7ef09427099b4922784af123a"
|
||||
|
||||
elmIsProd = true
|
||||
elmToken = ""
|
||||
elmAppKey = "KLRDcOZGrk"
|
||||
|
||||
@@ -4,7 +4,9 @@ import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"github.com/astaxie/beego"
|
||||
)
|
||||
|
||||
@@ -142,22 +144,62 @@ func (c *SyncController) DeleteRemoteStoreSkus() {
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 同步SkuName(多门店平台)
|
||||
// @Description 同步SkuName(多门店平台)
|
||||
// @Title 同步商家分类(多门店平台)
|
||||
// @Description 同步商家分类(多门店平台)
|
||||
// @Param token header string true "认证token"
|
||||
// @Param nameIDs formData string false "name ID列表"
|
||||
// @Param vendorID formData int false "平台ID(京东0 美团1 饿百3)"
|
||||
// @Param vendorOrgCode formData string false "平台账号"
|
||||
// @Param isForce formData bool false "是否强制(设置修改标志)"
|
||||
// @Param isAsync formData bool false "是否异步"
|
||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /SyncSkuNames [put]
|
||||
// @router /SyncCategories [post]
|
||||
func (c *SyncController) SyncCategories() {
|
||||
c.callSyncCategories(func(params *tSyncSyncCategoriesParams) (retVal interface{}, errCode string, err error) {
|
||||
var vendorIDs []int
|
||||
if params.MapData["vendorID"] != nil {
|
||||
vendorIDs = append(vendorIDs, params.VendorID)
|
||||
}
|
||||
vendorOrgCodes := jxutils.BatchString2Slice(params.VendorOrgCode)
|
||||
if params.IsForce {
|
||||
dao.SetThingMapSyncStatus(dao.GetDB(), vendorIDs, vendorOrgCodes, model.ThingTypeCategory, nil, model.SyncFlagModifiedMask)
|
||||
}
|
||||
retVal, err = cms.SyncCategories(params.Ctx, nil, vendorIDs, vendorOrgCodes, nil, params.IsAsync)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 同步SkuName(多门店平台)
|
||||
// @Description 同步SkuName(多门店平台)
|
||||
// @Param token header string true "认证token"
|
||||
// @Param nameIDs formData string false "name ID列表"
|
||||
// @Param isForce formData bool false "是否强制(设置修改标志)"
|
||||
// @Param vendorID formData int false "平台ID(京东0 美团1 饿百3)"
|
||||
// @Param vendorOrgCode formData string false "平台账号"
|
||||
// @Param isAsync formData bool false "是否异步"
|
||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /SyncSkuNames [put,post]
|
||||
func (c *SyncController) SyncSkuNames() {
|
||||
c.callSyncSkuNames(func(params *tSyncSyncSkuNamesParams) (retVal interface{}, errCode string, err error) {
|
||||
var nameIDs []int
|
||||
if err = jxutils.Strings2Objs(params.NameIDs, &nameIDs); err == nil {
|
||||
if globals.IsUseThingMap {
|
||||
var vendorIDs []int
|
||||
if params.MapData["vendorID"] != nil {
|
||||
vendorIDs = append(vendorIDs, params.VendorID)
|
||||
}
|
||||
vendorOrgCodes := jxutils.BatchString2Slice(params.VendorOrgCode)
|
||||
if params.IsForce {
|
||||
dao.SetSkuNameSyncStatus(dao.GetDB(), vendorIDs, vendorOrgCodes, nameIDs, model.SyncFlagModifiedMask)
|
||||
}
|
||||
retVal, err = cms.SyncSkus(params.Ctx, nil, vendorIDs, vendorOrgCodes, nameIDs, nil, params.IsAsync)
|
||||
} else {
|
||||
retVal, err = cms.CurVendorSync.SyncSkuNames(params.Ctx, nameIDs, params.IsForce, params.IsAsync, params.IsContinueWhenError)
|
||||
}
|
||||
}
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -34,6 +34,9 @@ import (
|
||||
var (
|
||||
JdAPI *jdapi.API
|
||||
JdPageAPI *jdapi.API
|
||||
|
||||
Jd2API *jdapi.API
|
||||
|
||||
ElmAPI *elmapi.API
|
||||
EbaiAPI *ebaiapi.API
|
||||
MtwmAPI *mtwmapi.API
|
||||
@@ -79,6 +82,11 @@ func Init() {
|
||||
conf := platformapi.NewDefAPIConfig()
|
||||
conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟
|
||||
JdPageAPI = jdapi.NewPageOnly(cookieValue, conf)
|
||||
|
||||
if globals.Jd2OrgCode != "" {
|
||||
Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret"))
|
||||
Jd2API.SetJdCookie(beego.AppConfig.DefaultString("jd2StorePageCookie", ""))
|
||||
}
|
||||
} else {
|
||||
JdAPI = nil
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{})
|
||||
func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) {
|
||||
switch vendorID {
|
||||
case model.VendorIDJD:
|
||||
appOrgCodeList = []string{globals.JdOrgCode}
|
||||
appOrgCodeList = jxutils.BatchString2Slice(globals.JdOrgCode, globals.Jd2OrgCode)
|
||||
case model.VendorIDMTWM:
|
||||
appOrgCodeList = []string{api.MtwmAPI.GetAppID()}
|
||||
case model.VendorIDEBAI:
|
||||
|
||||
@@ -51,6 +51,7 @@ var (
|
||||
WxpayNotifyURL string
|
||||
|
||||
JdOrgCode string
|
||||
Jd2OrgCode string
|
||||
|
||||
IsUseThingMap bool
|
||||
)
|
||||
@@ -101,6 +102,7 @@ func Init() {
|
||||
|
||||
WxpayNotifyURL = beego.AppConfig.DefaultString("wxpayNotifyURL", "")
|
||||
JdOrgCode = beego.AppConfig.DefaultString("jdOrgCode", "")
|
||||
Jd2OrgCode = beego.AppConfig.DefaultString("jd2OrgCode", "")
|
||||
|
||||
IsUseThingMap = beego.AppConfig.DefaultBool("useThingMap", false)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user