Merge remote-tracking branch 'origin/mark' into don
This commit is contained in:
@@ -54,10 +54,17 @@ type IUser interface {
|
|||||||
GetName() string
|
GetName() string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
UpdateUserTypeAdd = 1
|
||||||
|
UpdateUserTypeDelete = 2
|
||||||
|
UpdateUserTypeUpdate = 3
|
||||||
|
)
|
||||||
|
|
||||||
type IUserProvider interface {
|
type IUserProvider interface {
|
||||||
GetUser(authID, authIDType string) (user IUser)
|
GetUser(authID, authIDType string) (user IUser)
|
||||||
UpdateUserMobile(userID string, mobile string) (err error)
|
UpdateUserMobile(userID string, mobile string) (err error)
|
||||||
UpdateUserEmail(userID string, email string) (err error)
|
UpdateUserEmail(userID string, email string) (err error)
|
||||||
|
UpdateUserType(userID string, userTypeMask int8, updateType int) (err error)
|
||||||
// CreateUser(userID2, mobile, email, name string) (user IUser, err error)
|
// CreateUser(userID2, mobile, email, name string) (user IUser, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,6 +80,7 @@ type IAuther interface {
|
|||||||
AddAuthBind(authBindEx *AuthBindEx, userName string) (err error)
|
AddAuthBind(authBindEx *AuthBindEx, userName string) (err error)
|
||||||
UnbindAuth(userID, authType, userName string) (err error)
|
UnbindAuth(userID, authType, userName string) (err error)
|
||||||
Logout(authInfo *AuthInfo) (err error)
|
Logout(authInfo *AuthInfo) (err error)
|
||||||
|
GetUserType() (userType int8)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -232,6 +240,7 @@ func Login(authType, authID, authIDType, authSecret string) (authInfo *AuthInfo,
|
|||||||
}
|
}
|
||||||
if authBindEx, err = handler.VerifySecret(realAuthID, authSecret); err == nil {
|
if authBindEx, err = handler.VerifySecret(realAuthID, authSecret); err == nil {
|
||||||
// globals.SugarLogger.Debugf("auth2 Login authBindEx:%s", utils.Format4Output(authBindEx, false))
|
// globals.SugarLogger.Debugf("auth2 Login authBindEx:%s", utils.Format4Output(authBindEx, false))
|
||||||
|
needAutoAddAuthBind := false
|
||||||
if authBindEx == nil { // mobile, email会返回nil(表示不会新建AuthBind实体)
|
if authBindEx == nil { // mobile, email会返回nil(表示不会新建AuthBind实体)
|
||||||
user = userProvider.GetUser(authID, authIDType)
|
user = userProvider.GetUser(authID, authIDType)
|
||||||
authBindEx = &AuthBindEx{
|
authBindEx = &AuthBindEx{
|
||||||
@@ -252,12 +261,19 @@ func Login(authType, authID, authIDType, authSecret string) (authInfo *AuthInfo,
|
|||||||
}
|
}
|
||||||
if user != nil {
|
if user != nil {
|
||||||
authBindEx.UserID = user.GetID()
|
authBindEx.UserID = user.GetID()
|
||||||
|
needAutoAddAuthBind = true
|
||||||
}
|
}
|
||||||
} else if authBindEx.UserID != "" {
|
} else if authBindEx.UserID != "" {
|
||||||
user = userProvider.GetUser(authBindEx.UserID, UserIDID)
|
user = userProvider.GetUser(authBindEx.UserID, UserIDID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
authInfo = createAuthInfo(user, authBindEx)
|
authInfo = createAuthInfo(user, authBindEx)
|
||||||
|
if needAutoAddAuthBind {
|
||||||
|
if authers[authInfo.AuthBindInfo.Type].AddAuthBind(authInfo.AuthBindInfo, user.GetName()) == nil {
|
||||||
|
// todo,用户类型应该要与RegisterUser一起统一处理
|
||||||
|
userProvider.UpdateUserType(user.GetID(), handler.GetUserType(), UpdateUserTypeAdd)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = ErrIllegalAuthType
|
err = ErrIllegalAuthType
|
||||||
|
|||||||
@@ -53,6 +53,10 @@ func (a *DefAuther) Logout(authInfo *auth2.AuthInfo) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *DefAuther) GetUserType() (userType int8) {
|
||||||
|
return model.UserTypeConsumer
|
||||||
|
}
|
||||||
|
|
||||||
// 此函数用于联合(通过unionID)查找用户
|
// 此函数用于联合(通过unionID)查找用户
|
||||||
func (a *DefAuther) UnionFindAuthBind(curAuthType string, unionAuthTypeList []string, openID, unionID string, authDetail interface{}) (authBindEx *auth2.AuthBindEx, err error) {
|
func (a *DefAuther) UnionFindAuthBind(curAuthType string, unionAuthTypeList []string, openID, unionID string, authDetail interface{}) (authBindEx *auth2.AuthBindEx, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package dingding
|
package dingding
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AuthTypeDingDing = "dingding"
|
AuthTypeStaff = "ddstaff" // 钉钉企业登录
|
||||||
AuthTypeStaff = "ddstaff" // 钉钉企业登录
|
AuthTypeQRCode = "ddqrcode"
|
||||||
AuthTypeQRCode = "ddqrcode"
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ func (a *QRCodeAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthB
|
|||||||
userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code)
|
userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
globals.SugarLogger.Debugf("dingding qrcode VerifySecret code:%s, userQRInfo:%s", code, utils.Format4Output(userQRInfo, false))
|
globals.SugarLogger.Debugf("dingding qrcode VerifySecret code:%s, userQRInfo:%s", code, utils.Format4Output(userQRInfo, false))
|
||||||
if authBindEx, err = a.UnionFindAuthBind(AuthTypeQRCode, []string{AuthTypeDingDing, AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo); err == nil {
|
if authBindEx, err = a.UnionFindAuthBind(AuthTypeQRCode, []string{AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo); err == nil {
|
||||||
authBindEx.UserHint = &auth2.UserBasic{
|
authBindEx.UserHint = &auth2.UserBasic{
|
||||||
Name: userQRInfo.Nickname,
|
Name: userQRInfo.Nickname,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2"
|
"git.rosy.net.cn/jx-callback/business/auth2"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"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"
|
||||||
)
|
)
|
||||||
@@ -28,7 +29,7 @@ func (a *StaffAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBi
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
userDetail, err2 := api.DingDingAPI.GetUserDetail(userID.UserID)
|
userDetail, err2 := api.DingDingAPI.GetUserDetail(userID.UserID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if authBindEx, err = a.UnionFindAuthBind(AuthTypeStaff, []string{AuthTypeDingDing, AuthTypeStaff, AuthTypeQRCode}, userID.UserID, utils.Interface2String(userDetail["unionid"]), userDetail); err == nil {
|
if authBindEx, err = a.UnionFindAuthBind(AuthTypeStaff, []string{AuthTypeStaff, AuthTypeQRCode}, userID.UserID, utils.Interface2String(userDetail["unionid"]), userDetail); err == nil {
|
||||||
authBindEx.UserHint = &auth2.UserBasic{
|
authBindEx.UserHint = &auth2.UserBasic{
|
||||||
UserID2: userID.UserID,
|
UserID2: userID.UserID,
|
||||||
Mobile: utils.Interface2String(userDetail["mobile"]),
|
Mobile: utils.Interface2String(userDetail["mobile"]),
|
||||||
@@ -40,3 +41,7 @@ func (a *StaffAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBi
|
|||||||
}
|
}
|
||||||
return authBindEx, err
|
return authBindEx, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *StaffAuther) GetUserType() (userType int8) {
|
||||||
|
return model.UserTypeOperator
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2"
|
"git.rosy.net.cn/jx-callback/business/auth2"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"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"
|
||||||
)
|
)
|
||||||
@@ -68,3 +69,7 @@ func (a *Auther) getAPI() *weixinapi.API {
|
|||||||
}
|
}
|
||||||
return api.WeixinAPI
|
return api.WeixinAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Auther) GetUserType() (userType int8) {
|
||||||
|
return model.UserTypeStoreBoss
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2"
|
"git.rosy.net.cn/jx-callback/business/auth2"
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"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"
|
||||||
)
|
)
|
||||||
@@ -57,6 +58,10 @@ func (a *MiniAuther) DecryptData(authInfo *auth2.AuthInfo, encryptedData, iv str
|
|||||||
return base64.StdEncoding.EncodeToString(decryptedData), nil
|
return base64.StdEncoding.EncodeToString(decryptedData), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *MiniAuther) GetUserType() (userType int8) {
|
||||||
|
return model.UserTypeStoreBoss
|
||||||
|
}
|
||||||
|
|
||||||
func ProxySNSCode2Session(jsCode string) (sessionInfo *weixinapi.SessionInfo, err error) {
|
func ProxySNSCode2Session(jsCode string) (sessionInfo *weixinapi.SessionInfo, err error) {
|
||||||
miniApi := api.WeixinMiniAPI
|
miniApi := api.WeixinMiniAPI
|
||||||
list := strings.Split(jsCode, ",")
|
list := strings.Split(jsCode, ",")
|
||||||
|
|||||||
@@ -1090,15 +1090,23 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in
|
|||||||
vendorIDs = append(vendorIDs, vendorID)
|
vendorIDs = append(vendorIDs, vendorID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
type tDateVendorPair struct {
|
if len(vendorIDs) == 0 {
|
||||||
QueryDate time.Time
|
return "", fmt.Errorf("找不到指定的平台")
|
||||||
VendorID int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fromDate = utils.Time2Date(fromDate)
|
fromDate = utils.Time2Date(fromDate)
|
||||||
if utils.IsTimeZero(toDate) {
|
if utils.IsTimeZero(toDate) {
|
||||||
toDate = fromDate
|
toDate = fromDate
|
||||||
}
|
}
|
||||||
toDate = utils.Time2Date(toDate)
|
toDate = utils.Time2Date(toDate)
|
||||||
|
if toDate.Sub(fromDate) > 7*24*time.Hour {
|
||||||
|
return "", fmt.Errorf("最多一次一周,请调整时间")
|
||||||
|
}
|
||||||
|
|
||||||
|
type tDateVendorPair struct {
|
||||||
|
QueryDate time.Time
|
||||||
|
VendorID int
|
||||||
|
}
|
||||||
var dateVendorList []*tDateVendorPair
|
var dateVendorList []*tDateVendorPair
|
||||||
for _, vendorID := range vendorIDs {
|
for _, vendorID := range vendorIDs {
|
||||||
for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) {
|
for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) {
|
||||||
@@ -1114,21 +1122,21 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in
|
|||||||
}
|
}
|
||||||
if len(dateVendorList) > 0 {
|
if len(dateVendorList) > 0 {
|
||||||
var missingOrderList []*tOrderVendorPair
|
var missingOrderList []*tOrderVendorPair
|
||||||
|
db := dao.GetDB()
|
||||||
|
vendorStoreIDMap := make(map[int]string)
|
||||||
|
if storeID > 0 {
|
||||||
|
for _, vendorID := range vendorIDs {
|
||||||
|
storeDetail, err2 := dao.GetStoreDetail(db, storeID, vendorID)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
vendorStoreIDMap[vendorID] = storeDetail.VendorStoreID
|
||||||
|
}
|
||||||
|
}
|
||||||
task := tasksch.NewSeqTask("AmendMissingOrders", ctx,
|
task := tasksch.NewSeqTask("AmendMissingOrders", ctx,
|
||||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
db := dao.GetDB()
|
|
||||||
vendorStoreIDMap := make(map[int]string)
|
|
||||||
if storeID > 0 {
|
|
||||||
for _, vendorID := range vendorIDs {
|
|
||||||
storeDetail, err2 := dao.GetStoreDetail(db, storeID, vendorID)
|
|
||||||
if err = err2; err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
vendorStoreIDMap[vendorID] = storeDetail.VendorStoreID
|
|
||||||
}
|
|
||||||
}
|
|
||||||
task1 := tasksch.NewParallelTask("AmendMissingOrders ListOrders", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
task1 := tasksch.NewParallelTask("AmendMissingOrders ListOrders", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
vendorDate := batchItemList[0].(*tDateVendorPair)
|
vendorDate := batchItemList[0].(*tDateVendorPair)
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import (
|
|||||||
const (
|
const (
|
||||||
DefActSkuStock = 200 // 缺省活动库存
|
DefActSkuStock = 200 // 缺省活动库存
|
||||||
|
|
||||||
maxDiscount4SkuSecKill = 80
|
maxDiscount4SkuSecKill = 100
|
||||||
minDiscount4SkuDirectDown = 40
|
minDiscount4SkuDirectDown = 0
|
||||||
)
|
)
|
||||||
|
|
||||||
type ActOrderRuleParam struct {
|
type ActOrderRuleParam struct {
|
||||||
|
|||||||
@@ -1319,7 +1319,7 @@ func formatAutoSaleTime(autoSaleTime time.Time) (outAutoSaleTime time.Time) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// todo 应该用updateStoresSkusWithoutSync实现
|
// todo 应该用updateStoresSkusWithoutSync实现
|
||||||
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string) (needSyncSkus []int, err error) {
|
func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, ignoreDontSale bool, userName string) (needSyncSkus []int, err error) {
|
||||||
var num int64
|
var num int64
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
needSyncIDMap := make(map[int]int)
|
needSyncIDMap := make(map[int]int)
|
||||||
@@ -1345,28 +1345,31 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
|
|||||||
autoSaleTime = formatAutoSaleTime(autoSaleTime)
|
autoSaleTime = formatAutoSaleTime(autoSaleTime)
|
||||||
for _, skuBind := range storeSkuList {
|
for _, skuBind := range storeSkuList {
|
||||||
if v := skuBindSkuInfosMap[skuBind.SkuID]; v != nil && v.IsSale != 0 {
|
if v := skuBindSkuInfosMap[skuBind.SkuID]; v != nil && v.IsSale != 0 {
|
||||||
if v.IsSale == 1 {
|
if !(!utils.IsTimeZero(autoSaleTime) && ignoreDontSale && skuBind.Status == model.StoreSkuBindStatusDontSale) {
|
||||||
skuBind.Status = model.StoreSkuBindStatusNormal
|
if v.IsSale == -1 || !utils.IsTimeZero(autoSaleTime) {
|
||||||
} else {
|
skuBind.Status = model.StoreSkuBindStatusDontSale
|
||||||
skuBind.Status = model.StoreSkuBindStatusDontSale
|
} else if v.IsSale == 1 {
|
||||||
}
|
skuBind.Status = model.StoreSkuBindStatusNormal
|
||||||
kvs := map[string]interface{}{
|
}
|
||||||
model.FieldStatus: skuBind.Status,
|
kvs := map[string]interface{}{
|
||||||
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
model.FieldStatus: skuBind.Status,
|
||||||
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
||||||
}
|
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
||||||
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
}
|
||||||
autoSaleTime = utils.DefaultTimeValue
|
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
||||||
}
|
kvs["AutoSaleAt"] = utils.DefaultTimeValue
|
||||||
kvs["AutoSaleAt"] = autoSaleTime
|
} else {
|
||||||
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
|
kvs["AutoSaleAt"] = autoSaleTime
|
||||||
dao.Rollback(db)
|
}
|
||||||
return nil, err
|
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
|
||||||
}
|
dao.Rollback(db)
|
||||||
if num == 1 {
|
return nil, err
|
||||||
needSyncIDMap[v.SkuID] = 1
|
}
|
||||||
|
if num == 1 {
|
||||||
|
needSyncIDMap[v.SkuID] = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1386,13 +1389,13 @@ func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuIn
|
|||||||
return outSkuBindSkuInfos
|
return outSkuBindSkuInfos
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func UpdateStoresSkusSale(ctx *jxcontext.Context, storeIDs []int, skuBindSkuInfos []*StoreSkuBindSkuInfo, autoSaleTime time.Time, ignoreDontSale bool, userName string, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
storeIDs = uniqueStoreIDs(storeIDs)
|
storeIDs = uniqueStoreIDs(storeIDs)
|
||||||
skuBindSkuInfos = uniqueStoreSkuBind(skuBindSkuInfos)
|
skuBindSkuInfos = uniqueStoreSkuBind(skuBindSkuInfos)
|
||||||
|
|
||||||
var num int64
|
var num int64
|
||||||
for _, storeID := range storeIDs {
|
for _, storeID := range storeIDs {
|
||||||
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, autoSaleTime, userName)
|
skuIDs, err2 := updateStoreSkusSaleWithoutSync(ctx, storeID, skuBindSkuInfos, autoSaleTime, ignoreDontSale, userName)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,24 @@ func (*UserProvider) UpdateUserEmail(userID string, email string) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (*UserProvider) UpdateUserType(userID string, userTypeMask int8, updateType int) (err error) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
user := &model.User{
|
||||||
|
UserID: userID,
|
||||||
|
}
|
||||||
|
if err = dao.GetEntity(db, user, "UserID"); err == nil {
|
||||||
|
if updateType == auth2.UpdateUserTypeAdd {
|
||||||
|
user.Type |= userTypeMask
|
||||||
|
} else if updateType == auth2.UpdateUserTypeDelete {
|
||||||
|
user.Type &= ^userTypeMask
|
||||||
|
} else {
|
||||||
|
user.Type = userTypeMask
|
||||||
|
}
|
||||||
|
_, err = dao.UpdateEntity(db, user, "Type")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// func (*UserProvider) CreateUser(userID2, mobile, email, name string) (user auth2.IUser, err error) {
|
// func (*UserProvider) CreateUser(userID2, mobile, email, name string) (user auth2.IUser, err error) {
|
||||||
// realUser := &model.User{
|
// realUser := &model.User{
|
||||||
// UserID2: userID2,
|
// UserID2: userID2,
|
||||||
@@ -189,12 +207,16 @@ func GetStoreList4User(ctx *jxcontext.Context, mobileNum, userID string) (storeL
|
|||||||
return storeList, err
|
return storeList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMyStoreListNew(ctx *jxcontext.Context) (storeList []*dao.StoreWithCityName, err error) {
|
func GetMyStoreListNew(ctx *jxcontext.Context) (storeList []*dao.StoreWithCityName, errCode string, err error) {
|
||||||
|
if !auth2.IsV2Token(ctx.GetToken()) {
|
||||||
|
return nil, model.ErrCodeTokenIsInvalid, model.ErrTokenIsInvalid
|
||||||
|
}
|
||||||
mobileNum, userID := ctx.GetMobileAndUserID()
|
mobileNum, userID := ctx.GetMobileAndUserID()
|
||||||
if mobileNum == "" {
|
if mobileNum == "" {
|
||||||
return nil, fmt.Errorf("不能得到用户手机号")
|
return nil, "", fmt.Errorf("不能得到用户手机号")
|
||||||
}
|
}
|
||||||
return GetStoreList4User(ctx, mobileNum, userID)
|
storeList, err = GetStoreList4User(ctx, mobileNum, userID)
|
||||||
|
return storeList, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStoreRoleList(ctx *jxcontext.Context) (roleList []*authz.RoleInfo, err error) {
|
func GetStoreRoleList(ctx *jxcontext.Context) (roleList []*authz.RoleInfo, err error) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/auth2"
|
"git.rosy.net.cn/jx-callback/business/auth2"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/auth"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/auth"
|
||||||
"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/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -143,7 +144,11 @@ func (ctx *Context) GetMobileAndUserID() (mobile, userID string) {
|
|||||||
} else {
|
} else {
|
||||||
userInfo, err2 := auth.GetUserInfo(token)
|
userInfo, err2 := auth.GetUserInfo(token)
|
||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
mobile = userInfo.GetAuthID()
|
if mobile = userInfo.GetAuthID(); mobile != "" {
|
||||||
|
if user, err := dao.GetUserByID(dao.GetDB(), "mobile", mobile); err == nil {
|
||||||
|
userID = user.UserID
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mobile, userID
|
return mobile, userID
|
||||||
|
|||||||
@@ -7,10 +7,13 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defLastHours = 24
|
||||||
|
maxStoreHours = 48 // 最多存放小时数
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
defTaskMan TaskMan
|
defTaskMan TaskMan
|
||||||
defLastHours = 24
|
|
||||||
maxStoreTime = 48 * time.Hour // 最多存两天时间
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type TaskMan struct {
|
type TaskMan struct {
|
||||||
@@ -39,7 +42,7 @@ func (m *TaskMan) GetTasks(taskID string, fromStatus, toStatus int, lastHours in
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *TaskMan) ManageTask(task ITask) ITask {
|
func (m *TaskMan) ManageTask(task ITask) ITask {
|
||||||
m.taskMap.StoreWithTimeout(task.GetID(), task, maxStoreTime)
|
m.taskMap.StoreWithTimeout(task.GetID(), task, maxStoreHours*time.Hour)
|
||||||
return task
|
return task
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,3 +60,15 @@ func IsTaskRunning(taskID string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UnmanageTasks(taskIDs []string) {
|
||||||
|
if len(taskIDs) == 0 {
|
||||||
|
allTasks := GetTasks("", TaskStatusBegin, TaskStatusEnd, maxStoreHours, "")
|
||||||
|
for _, v := range allTasks {
|
||||||
|
taskIDs = append(taskIDs, v.GetID())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, v := range taskIDs {
|
||||||
|
defTaskMan.taskMap.Delete(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ const (
|
|||||||
VendorTypeUnknown = 0 // 未知
|
VendorTypeUnknown = 0 // 未知
|
||||||
VendorTypePurchase = 1 // 购物平台
|
VendorTypePurchase = 1 // 购物平台
|
||||||
VendorTypeDelivery = 2 // 快递平台
|
VendorTypeDelivery = 2 // 快递平台
|
||||||
|
VendorTypePrinter = 3 // 网络打印机
|
||||||
VendorTypeOthers = 9 // 其它
|
VendorTypeOthers = 9 // 其它
|
||||||
|
|
||||||
VendorIDUnknown = -1
|
VendorIDUnknown = -1
|
||||||
@@ -128,6 +129,35 @@ var (
|
|||||||
Value2Name: "Secret",
|
Value2Name: "Secret",
|
||||||
Value3Name: "管理后台Cookie",
|
Value3Name: "管理后台Cookie",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// VendorIDDada: &VendorInfo{
|
||||||
|
// Name: "达达快递",
|
||||||
|
// OrgCodeName: "商户ID",
|
||||||
|
// Value1Name: "app_key",
|
||||||
|
// Value2Name: "app_secret",
|
||||||
|
// },
|
||||||
|
// VendorIDMTPS: &VendorInfo{
|
||||||
|
// Name: "美团配送",
|
||||||
|
// OrgCodeName: "自编码",
|
||||||
|
// Value1Name: "Appkey",
|
||||||
|
// Value2Name: "Secret",
|
||||||
|
// },
|
||||||
|
|
||||||
|
// VendorIDFeiE: &VendorInfo{
|
||||||
|
// Name: "飞鹅",
|
||||||
|
// OrgCodeName: "User",
|
||||||
|
// Value1Name: "Key",
|
||||||
|
// },
|
||||||
|
// VendorIDXiaoWM: &VendorInfo{
|
||||||
|
// Name: "外卖管家",
|
||||||
|
// OrgCodeName: "AppID",
|
||||||
|
// Value1Name: "AppKey",
|
||||||
|
// },
|
||||||
|
// VendorIDYiLianYun: &VendorInfo{
|
||||||
|
// Name: "易联云",
|
||||||
|
// OrgCodeName: "ClientID",
|
||||||
|
// Value1Name: "ClientSecret",
|
||||||
|
// },
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ type IPurchasePlatformHandler interface {
|
|||||||
// db *dao.DaoDB,
|
// db *dao.DaoDB,
|
||||||
type IMultipleStoresHandler interface {
|
type IMultipleStoresHandler interface {
|
||||||
IPurchasePlatformHandler
|
IPurchasePlatformHandler
|
||||||
ReadCategories() (cats []*model.SkuCategory, err error)
|
GetAllCategories(ctx *jxcontext.Context, vendorOrgCode string) (cats []*BareCategoryInfo, err error)
|
||||||
|
|
||||||
CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error)
|
CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error)
|
||||||
UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error
|
UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
|
|
||||||
"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/baseapi/platformapi/jdapi"
|
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -63,9 +62,9 @@ func jdSkuActStatus2Jx(jdActState int) int {
|
|||||||
func CreatePromotionInfos(promotionType int, name string, beginDate, endDate time.Time, outInfoId, advertising, traceId string) (infoId int64, err error) {
|
func CreatePromotionInfos(promotionType int, name string, beginDate, endDate time.Time, outInfoId, advertising, traceId string) (infoId int64, err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.CreatePromotionInfosSingle(name, beginDate, endDate, outInfoId, advertising, traceId)
|
return getAPI("").CreatePromotionInfosSingle(name, beginDate, endDate, outInfoId, advertising, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.CreatePromotionInfosLimitTime(name, beginDate, endDate, outInfoId, advertising, traceId)
|
return getAPI("").CreatePromotionInfosLimitTime(name, beginDate, endDate, outInfoId, advertising, traceId)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
infoId = jxutils.GenFakeID()
|
infoId = jxutils.GenFakeID()
|
||||||
@@ -76,9 +75,9 @@ func CreatePromotionInfos(promotionType int, name string, beginDate, endDate tim
|
|||||||
func CreatePromotionRules(promotionType int, infoId int64, outInfoId string, limitDevice, limitPin, limitCount, limitDaily int, traceId string) (err error) {
|
func CreatePromotionRules(promotionType int, infoId int64, outInfoId string, limitDevice, limitPin, limitCount, limitDaily int, traceId string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.CreatePromotionRulesSingle(infoId, outInfoId, limitDevice, limitPin, limitCount, limitDaily, traceId)
|
return getAPI("").CreatePromotionRulesSingle(infoId, outInfoId, limitDevice, limitPin, limitCount, limitDaily, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.CreatePromotionRulesLimitTime(infoId, outInfoId, limitDevice, limitPin, limitCount, limitDaily, traceId)
|
return getAPI("").CreatePromotionRulesLimitTime(infoId, outInfoId, limitDevice, limitPin, limitCount, limitDaily, traceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -90,9 +89,9 @@ func CreatePromotionSku(promotionType int, infoId int64, outInfoId string, skus
|
|||||||
var tmpSkusResult []*jdapi.PromotionSku
|
var tmpSkusResult []*jdapi.PromotionSku
|
||||||
var tmpErr error
|
var tmpErr error
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
tmpSkusResult, tmpErr = api.JdAPI.CreatePromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
|
tmpSkusResult, tmpErr = getAPI("").CreatePromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
|
||||||
} else {
|
} else {
|
||||||
tmpSkusResult, tmpErr = api.JdAPI.CreatePromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
|
tmpSkusResult, tmpErr = getAPI("").CreatePromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
|
||||||
}
|
}
|
||||||
if err = tmpErr; err != nil {
|
if err = tmpErr; err != nil {
|
||||||
break
|
break
|
||||||
@@ -108,9 +107,9 @@ func CancelPromotionSku(promotionType int, infoId int64, outInfoId string, skus
|
|||||||
for _, batchSkus := range splitPromotionSku(skus, jdapi.MaxPromotionSkuCount) {
|
for _, batchSkus := range splitPromotionSku(skus, jdapi.MaxPromotionSkuCount) {
|
||||||
var tmpErr error
|
var tmpErr error
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
tmpErr = api.JdAPI.CancelPromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
|
tmpErr = getAPI("").CancelPromotionSkuSingle(infoId, outInfoId, batchSkus, traceId)
|
||||||
} else {
|
} else {
|
||||||
tmpErr = api.JdAPI.CancelPromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
|
tmpErr = getAPI("").CancelPromotionSkuLimitTime(infoId, outInfoId, batchSkus, traceId)
|
||||||
}
|
}
|
||||||
if err = tmpErr; err != nil {
|
if err = tmpErr; err != nil {
|
||||||
break
|
break
|
||||||
@@ -123,9 +122,9 @@ func CancelPromotionSku(promotionType int, infoId int64, outInfoId string, skus
|
|||||||
func ConfirmPromotion(promotionType int, infoId int64, outInfoId, traceId string) (err error) {
|
func ConfirmPromotion(promotionType int, infoId int64, outInfoId, traceId string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.ConfirmPromotionSingle(infoId, outInfoId, traceId)
|
return getAPI("").ConfirmPromotionSingle(infoId, outInfoId, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.ConfirmPromotionLimitTime(infoId, outInfoId, traceId)
|
return getAPI("").ConfirmPromotionLimitTime(infoId, outInfoId, traceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -134,9 +133,9 @@ func ConfirmPromotion(promotionType int, infoId int64, outInfoId, traceId string
|
|||||||
func CancelPromotion(promotionType int, infoId int64, outInfoId, traceId string) (err error) {
|
func CancelPromotion(promotionType int, infoId int64, outInfoId, traceId string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.CancelPromotionSingle(infoId, outInfoId, traceId)
|
return getAPI("").CancelPromotionSingle(infoId, outInfoId, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.CancelPromotionLimitTime(infoId, outInfoId, traceId)
|
return getAPI("").CancelPromotionLimitTime(infoId, outInfoId, traceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -145,9 +144,9 @@ func CancelPromotion(promotionType int, infoId int64, outInfoId, traceId string)
|
|||||||
func AdjustPromotionTime(promotionType int, infoId int64, outInfoId string, endDate time.Time, traceId string) (err error) {
|
func AdjustPromotionTime(promotionType int, infoId int64, outInfoId string, endDate time.Time, traceId string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.AdjustPromotionTimeSingle(infoId, outInfoId, endDate, traceId)
|
return getAPI("").AdjustPromotionTimeSingle(infoId, outInfoId, endDate, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.AdjustPromotionTimeLimitTime(infoId, outInfoId, endDate, traceId)
|
return getAPI("").AdjustPromotionTimeLimitTime(infoId, outInfoId, endDate, traceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -156,9 +155,9 @@ func AdjustPromotionTime(promotionType int, infoId int64, outInfoId string, endD
|
|||||||
func AdjustPromotionSku(promotionType int, infoId int64, outInfoId string, skus []*jdapi.PromotionSku, traceId string) (skusResult []*jdapi.PromotionSku, err error) {
|
func AdjustPromotionSku(promotionType int, infoId int64, outInfoId string, skus []*jdapi.PromotionSku, traceId string) (skusResult []*jdapi.PromotionSku, err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if promotionType == model.ActSkuDirectDown {
|
if promotionType == model.ActSkuDirectDown {
|
||||||
return api.JdAPI.AdjustPromotionSkuSingle(infoId, outInfoId, skus, traceId)
|
return getAPI("").AdjustPromotionSkuSingle(infoId, outInfoId, skus, traceId)
|
||||||
} else {
|
} else {
|
||||||
return api.JdAPI.AdjustPromotionSkuLimitTime(infoId, outInfoId, skus, traceId)
|
return getAPI("").AdjustPromotionSkuLimitTime(infoId, outInfoId, skus, traceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return skusResult, err
|
return skusResult, err
|
||||||
@@ -327,7 +326,7 @@ func (c *PurchaseHandler) onActMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.C
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getActFromJD(promotionID string) (act *model.Act2, actStoreSkuList []*model.ActStoreSku2, err error) {
|
func getActFromJD(promotionID string) (act *model.Act2, actStoreSkuList []*model.ActStoreSku2, err error) {
|
||||||
result, err := api.JdAPI.QueryPromotionInfo(utils.Str2Int64(promotionID))
|
result, err := getAPI("").QueryPromotionInfo(utils.Str2Int64(promotionID))
|
||||||
if err == nil && len(result.SkuResultList) > 0 {
|
if err == nil && len(result.SkuResultList) > 0 {
|
||||||
act = &model.Act2{
|
act = &model.Act2{
|
||||||
Act: model.Act{
|
Act: model.Act{
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (p *PurchaseHandler) OnFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
func (p *PurchaseHandler) OnFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
||||||
@@ -23,7 +22,7 @@ func (p *PurchaseHandler) onFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *j
|
|||||||
if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusAdjustSettle || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单
|
if msg.StatusID == jdapi.OrderStatusPayFinishedSettle || msg.StatusID == jdapi.OrderStatusTipChanged || msg.StatusID == jdapi.OrderStatusAdjustSettle || msg.StatusID == jdapi.OrderStatusSwitch2SelfSettle { // 如果是正向单
|
||||||
order, err2 := partner.CurOrderManager.LoadOrder(msg.BillID, model.VendorIDJD)
|
order, err2 := partner.CurOrderManager.LoadOrder(msg.BillID, model.VendorIDJD)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
orderData, err2 := api.JdAPI.QuerySingleOrder(msg.BillID)
|
orderData, err2 := getAPI("").QuerySingleOrder(msg.BillID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
orderFinancial, err2 := curPurchaseHandler.OrderDetail2Financial(orderData, false, order)
|
orderFinancial, err2 := curPurchaseHandler.OrderDetail2Financial(orderData, false, order)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
@@ -38,7 +37,7 @@ func (p *PurchaseHandler) onFinancialMsg(msg *jdapi.CallbackOrderMsg) (retVal *j
|
|||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
} else if msg.StatusID == jdapi.AfsServiceStateRefundSuccess || msg.StatusID == jdapi.AfsServiceStateReturnGoodsSuccess { // 如果是退款单
|
} else if msg.StatusID == jdapi.AfsServiceStateRefundSuccess || msg.StatusID == jdapi.AfsServiceStateReturnGoodsSuccess { // 如果是退款单
|
||||||
orderData, err2 := api.JdAPI.GetAfsService(msg.BillID)
|
orderData, err2 := getAPI("").GetAfsService(msg.BillID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
err = partner.CurOrderManager.SaveAfsOrderFinancialInfo(curPurchaseHandler.AfsOrderDetail2Financial(orderData))
|
err = partner.CurOrderManager.SaveAfsOrderFinancialInfo(curPurchaseHandler.AfsOrderDetail2Financial(orderData))
|
||||||
}
|
}
|
||||||
@@ -152,7 +151,7 @@ func (p *PurchaseHandler) OrderDetail2Financial(orderData map[string]interface{}
|
|||||||
}
|
}
|
||||||
globals.SugarLogger.Debug(utils.Format4Output(orderFinancial.Discounts, false))
|
globals.SugarLogger.Debug(utils.Format4Output(orderFinancial.Discounts, false))
|
||||||
}
|
}
|
||||||
order1, err2 := api.JdAPI.OrderShoudSettlementService(orderFinancial.VendorOrderID)
|
order1, err2 := getAPI("").OrderShoudSettlementService(orderFinancial.VendorOrderID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
orderFinancial.ShopMoney = utils.Interface2Int64WithDefault(order1["settlementAmount"], 0)
|
orderFinancial.ShopMoney = utils.Interface2Int64WithDefault(order1["settlementAmount"], 0)
|
||||||
orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["goodsCommission"], 0)
|
orderFinancial.PmMoney += utils.Interface2Int64WithDefault(order1["goodsCommission"], 0)
|
||||||
@@ -163,7 +162,7 @@ func (p *PurchaseHandler) OrderDetail2Financial(orderData map[string]interface{}
|
|||||||
orderFinancial.PmSubsidyMoney = utils.Interface2Int64WithDefault(order1["platOrderGoodsDiscountMoney"], 0) + orderFinancial.PmSkuSubsidyMoney
|
orderFinancial.PmSubsidyMoney = utils.Interface2Int64WithDefault(order1["platOrderGoodsDiscountMoney"], 0) + orderFinancial.PmSkuSubsidyMoney
|
||||||
} else {
|
} else {
|
||||||
if !isFromOrderDetail {
|
if !isFromOrderDetail {
|
||||||
// globals.SugarLogger.Warnf("jd OrderDetail2Financial, orderID:%s is not found from api.JdAPI.OrderShoudSettlementService, err:%v", orderFinancial.VendorOrderID, err)
|
// globals.SugarLogger.Warnf("jd OrderDetail2Financial, orderID:%s is not found from getAPI("").OrderShoudSettlementService, err:%v", orderFinancial.VendorOrderID, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return orderFinancial, err
|
return orderFinancial, err
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PurchaseHandler struct {
|
type PurchaseHandler struct {
|
||||||
@@ -18,7 +18,8 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.JdAPI != nil {
|
globals.SugarLogger.Debug("init jd")
|
||||||
|
if getAPI("") != nil {
|
||||||
curPurchaseHandler = new(PurchaseHandler)
|
curPurchaseHandler = new(PurchaseHandler)
|
||||||
partner.RegisterPurchasePlatform(curPurchaseHandler)
|
partner.RegisterPurchasePlatform(curPurchaseHandler)
|
||||||
}
|
}
|
||||||
|
|||||||
11
business/partner/purchase/jd/jd_test.go
Normal file
11
business/partner/purchase/jd/jd_test.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package jd
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "git.rosy.net.cn/jx-callback/globals/api/apimanager"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
testinit.Init()
|
||||||
|
}
|
||||||
@@ -48,7 +48,7 @@ func (c *PurchaseHandler) updateOrderFinancialInfo(orderID string) (err error) {
|
|||||||
VendorOrderID: orderID,
|
VendorOrderID: orderID,
|
||||||
VendorID: model.VendorIDJD,
|
VendorID: model.VendorIDJD,
|
||||||
}
|
}
|
||||||
orderSettlement, err := api.JdAPI.OrderShoudSettlementService2(orderID)
|
orderSettlement, err := getAPI("").OrderShoudSettlementService2(orderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if orderSettlement != nil {
|
if orderSettlement != nil {
|
||||||
updateOrderBySettleMent(order, orderSettlement)
|
updateOrderBySettleMent(order, orderSettlement)
|
||||||
@@ -112,16 +112,16 @@ func (c *PurchaseHandler) getOrder(orderID string) (order *model.GoodsOrder, ord
|
|||||||
taskIndex := batchItemList[0].(int)
|
taskIndex := batchItemList[0].(int)
|
||||||
switch taskIndex {
|
switch taskIndex {
|
||||||
case 0:
|
case 0:
|
||||||
orderMap, err = api.JdAPI.QuerySingleOrder(orderID)
|
orderMap, err = getAPI("").QuerySingleOrder(orderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
order = c.Map2Order(orderMap)
|
order = c.Map2Order(orderMap)
|
||||||
realMobile, _ = api.JdAPI.GetRealMobile4Order(orderID, order.VendorStoreID)
|
realMobile, _ = getAPI("").GetRealMobile4Order(orderID, order.VendorStoreID)
|
||||||
if realMobile != "" {
|
if realMobile != "" {
|
||||||
order.ConsigneeMobile2 = jxutils.FormalizeMobile(realMobile)
|
order.ConsigneeMobile2 = jxutils.FormalizeMobile(realMobile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
orderSettlement, _ = api.JdAPI.OrderShoudSettlementService2(orderID)
|
orderSettlement, _ = getAPI("").OrderShoudSettlementService2(orderID)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, []int{0, 1})
|
}, []int{0, 1})
|
||||||
@@ -130,11 +130,11 @@ func (c *PurchaseHandler) getOrder(orderID string) (order *model.GoodsOrder, ord
|
|||||||
if order != nil && orderSettlement != nil {
|
if order != nil && orderSettlement != nil {
|
||||||
updateOrderBySettleMent(order, orderSettlement)
|
updateOrderBySettleMent(order, orderSettlement)
|
||||||
}
|
}
|
||||||
// if orderMap, err = api.JdAPI.QuerySingleOrder(orderID); err == nil {
|
// if orderMap, err = getAPI("").QuerySingleOrder(orderID); err == nil {
|
||||||
// globals.SugarLogger.Debugf("jd getOrder2 orderID:%s", orderID)
|
// globals.SugarLogger.Debugf("jd getOrder2 orderID:%s", orderID)
|
||||||
// order = c.Map2Order(orderMap)
|
// order = c.Map2Order(orderMap)
|
||||||
// if jxutils.IsMobileFake(order.ConsigneeMobile) {
|
// if jxutils.IsMobileFake(order.ConsigneeMobile) {
|
||||||
// if realMobile, err := api.JdAPI.GetRealMobile4Order(orderID, order.VendorStoreID); err == nil { // 故意强制忽略取不到真实手机号错误
|
// if realMobile, err := getAPI("").GetRealMobile4Order(orderID, order.VendorStoreID); err == nil { // 故意强制忽略取不到真实手机号错误
|
||||||
// globals.SugarLogger.Debugf("jd getOrder3 orderID:%s", orderID)
|
// globals.SugarLogger.Debugf("jd getOrder3 orderID:%s", orderID)
|
||||||
// order.ConsigneeMobile2 = jxutils.FormalizeMobile(realMobile)
|
// order.ConsigneeMobile2 = jxutils.FormalizeMobile(realMobile)
|
||||||
// } else {
|
// } else {
|
||||||
@@ -297,7 +297,7 @@ func (c *PurchaseHandler) getStatusFromVendorStatus(vendorStatus string) int {
|
|||||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("jd AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt)
|
globals.SugarLogger.Debugf("jd AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt)
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName)
|
err = getAPI("").OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName)
|
||||||
} else {
|
} else {
|
||||||
c.postFakeMsg(order.VendorOrderID, jdapi.StatusIDWaitOutStore)
|
c.postFakeMsg(order.VendorOrderID, jdapi.StatusIDWaitOutStore)
|
||||||
}
|
}
|
||||||
@@ -307,7 +307,7 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
|||||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("jd PickupGoods orderID:%s, isSelfDelivery:%t", order.VendorOrderID, isSelfDelivery)
|
globals.SugarLogger.Debugf("jd PickupGoods orderID:%s, isSelfDelivery:%t", order.VendorOrderID, isSelfDelivery)
|
||||||
if !isSelfDelivery && globals.EnableJdStoreWrite {
|
if !isSelfDelivery && globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID, userName)
|
_, err = getAPI("").OrderJDZBDelivery(order.VendorOrderID, userName)
|
||||||
} else {
|
} else {
|
||||||
c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusFinishedPickup)
|
c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusFinishedPickup)
|
||||||
}
|
}
|
||||||
@@ -316,21 +316,21 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
|
|||||||
|
|
||||||
func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
func (p *PurchaseHandler) AcceptOrRefuseFailedGetOrder(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.ReceiveFailedAudit(order.VendorOrderID, isAcceptIt, ctx.GetUserName(), "")
|
err = getAPI("").ReceiveFailedAudit(order.VendorOrderID, isAcceptIt, ctx.GetUserName(), "")
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) CallCourier(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 拣货失败后再次招唤平台配送
|
func (p *PurchaseHandler) CallCourier(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 拣货失败后再次招唤平台配送
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.UrgeDispatching(order.VendorOrderID, ctx.GetUserName())
|
err = getAPI("").UrgeDispatching(order.VendorOrderID, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 投递失败后确认收到退货
|
func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) { // 投递失败后确认收到退货
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.ConfirmReceiveGoods(order.VendorOrderID)
|
err = getAPI("").ConfirmReceiveGoods(order.VendorOrderID)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -338,7 +338,7 @@ func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *mod
|
|||||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("jd Swtich2SelfDeliver orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("jd Swtich2SelfDeliver orderID:%s", order.VendorOrderID)
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID, userName)
|
_, err = getAPI("").ModifySellerDelivery(order.VendorOrderID, userName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 {
|
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 {
|
||||||
globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err)
|
globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err)
|
||||||
@@ -359,7 +359,7 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
|
|||||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("jd Swtich2SelfDelivered orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("jd Swtich2SelfDelivered orderID:%s", order.VendorOrderID)
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID, userName)
|
_, err = getAPI("").DeliveryEndOrder(order.VendorOrderID, userName)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -367,7 +367,7 @@ func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
|
|||||||
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("jd SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("jd SelfDeliverDelivering orderID:%s", order.VendorOrderID)
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID, userName)
|
_, err = getAPI("").OrderSerllerDelivery(order.VendorOrderID, userName)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -382,13 +382,13 @@ func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) {
|
func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) {
|
||||||
mobile, err = api.JdAPI.GetRealMobile4Order(order.VendorOrderID, order.VendorStoreID)
|
mobile, err = getAPI("").GetRealMobile4Order(order.VendorOrderID, order.VendorStoreID)
|
||||||
return mobile, err
|
return mobile, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) {
|
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.OrderCancelOperate(order.VendorOrderID, isAgree, ctx.GetUserName(), reason)
|
err = getAPI("").OrderCancelOperate(order.VendorOrderID, isAgree, ctx.GetUserName(), reason)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -396,7 +396,7 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
|
|||||||
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err1 := c.Swtich2SelfDeliver(order, ctx.GetUserName())
|
err1 := c.Swtich2SelfDeliver(order, ctx.GetUserName())
|
||||||
if err = api.JdAPI.CancelAndRefund(order.VendorOrderID, ctx.GetUserName(), reason); err != nil {
|
if err = getAPI("").CancelAndRefund(order.VendorOrderID, ctx.GetUserName(), reason); err != nil {
|
||||||
if err1 != nil {
|
if err1 != nil {
|
||||||
err = fmt.Errorf("取消订单失败,京东取消订单是要先转为自送再处理,转自送失败:%v", err1)
|
err = fmt.Errorf("取消订单失败,京东取消订单是要先转为自送再处理,转自送失败:%v", err1)
|
||||||
}
|
}
|
||||||
@@ -415,7 +415,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList)
|
err = getAPI("").AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -434,7 +434,7 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.
|
|||||||
if vendorStoreID != "" {
|
if vendorStoreID != "" {
|
||||||
queryParam.DeliveryStationNo = vendorStoreID
|
queryParam.DeliveryStationNo = vendorStoreID
|
||||||
}
|
}
|
||||||
orderList, _, err := api.JdAPI.OrderQuery2(queryParam)
|
orderList, _, err := getAPI("").OrderQuery2(queryParam)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
vendorOrderIDs = make([]string, len(orderList))
|
vendorOrderIDs = make([]string, len(orderList))
|
||||||
for k, v := range orderList {
|
for k, v := range orderList {
|
||||||
@@ -445,12 +445,12 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error) {
|
func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee int64) (err error) {
|
||||||
orderInfo, err := api.JdAPI.QuerySingleOrder2(order.VendorOrderID)
|
orderInfo, err := getAPI("").QuerySingleOrder2(order.VendorOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
tip2Add := int(tipFee) - orderInfo.Tips
|
tip2Add := int(tipFee) - orderInfo.Tips
|
||||||
if tip2Add != 0 {
|
if tip2Add != 0 {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.OrderAddTips(order.VendorOrderID, tip2Add, ctx.GetUserName())
|
err = getAPI("").OrderAddTips(order.VendorOrderID, tip2Add, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -458,7 +458,7 @@ func (c *PurchaseHandler) UpdateWaybillTip(ctx *jxcontext.Context, order *model.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder) (tipFee int64, err error) {
|
func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder) (tipFee int64, err error) {
|
||||||
orderInfo, err := api.JdAPI.QuerySingleOrder2(order.VendorOrderID)
|
orderInfo, err := getAPI("").QuerySingleOrder2(order.VendorOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
tipFee = int64(orderInfo.Tips)
|
tipFee = int64(orderInfo.Tips)
|
||||||
}
|
}
|
||||||
@@ -467,7 +467,7 @@ func (c *PurchaseHandler) GetWaybillTip(ctx *jxcontext.Context, order *model.Goo
|
|||||||
|
|
||||||
func (c *PurchaseHandler) AddWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee2Add int64) (err error) {
|
func (c *PurchaseHandler) AddWaybillTip(ctx *jxcontext.Context, order *model.GoodsOrder, tipFee2Add int64) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.OrderAddTips(order.VendorOrderID, int(tipFee2Add), ctx.GetUserName())
|
err = getAPI("").OrderAddTips(order.VendorOrderID, int(tipFee2Add), ctx.GetUserName())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -67,7 +66,7 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jd
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) onAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
func (c *PurchaseHandler) onAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
||||||
afsInfo, err := api.JdAPI.GetAfsService2(msg.BillID)
|
afsInfo, err := getAPI("").GetAfsService2(msg.BillID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
status := c.callbackAfsMsg2Status(msg, afsInfo)
|
status := c.callbackAfsMsg2Status(msg, afsInfo)
|
||||||
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
|
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
|
||||||
@@ -182,7 +181,7 @@ func (c *PurchaseHandler) buildAfsOrder(afsInfo *jdapi.AfsServiceResponse) (afsO
|
|||||||
// 审核售后单申请
|
// 审核售后单申请
|
||||||
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.AfsOpenApprove(order.AfsOrderID, afsApproveTypeMap[approveType], reason, ctx.GetUserName())
|
err = getAPI("").AfsOpenApprove(order.AfsOrderID, afsApproveTypeMap[approveType], reason, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -190,7 +189,7 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
|
|||||||
// 确认收到退货
|
// 确认收到退货
|
||||||
func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) {
|
func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.ConfirmReceipt(order.AfsOrderID, ctx.GetUserName())
|
err = getAPI("").ConfirmReceipt(order.AfsOrderID, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -218,7 +217,7 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
// 发起部分退款
|
// 发起部分退款
|
||||||
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
|
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.AfsSubmit(order.VendorOrderID, ctx.GetUserName(), utils.Int2Str(jdapi.AfsReasonWrongPurchase), reason, "", order.ConsigneeName, order.ConsigneeMobile, order.ConsigneeAddress, orderSkus2AfsSkus(refundSkuList))
|
_, err = getAPI("").AfsSubmit(order.VendorOrderID, ctx.GetUserName(), utils.Int2Str(jdapi.AfsReasonWrongPurchase), reason, "", order.ConsigneeName, order.ConsigneeMobile, order.ConsigneeAddress, orderSkus2AfsSkus(refundSkuList))
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -16,7 +15,7 @@ const (
|
|||||||
|
|
||||||
func (c *PurchaseHandler) onOrderComment2(msg *jdapi.CallbackOrderMsg) (err error) {
|
func (c *PurchaseHandler) onOrderComment2(msg *jdapi.CallbackOrderMsg) (err error) {
|
||||||
intOrderID := utils.Str2Int64(msg.BillID)
|
intOrderID := utils.Str2Int64(msg.BillID)
|
||||||
result, err := api.JdAPI.GetCommentByOrderId(intOrderID)
|
result, err := getAPI("").GetCommentByOrderId(intOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
globals.SugarLogger.Debugf("onOrderComment comment:%s", utils.Format4Output(result, true))
|
globals.SugarLogger.Debugf("onOrderComment comment:%s", utils.Format4Output(result, true))
|
||||||
orderCommend := &model.OrderComment{
|
orderCommend := &model.OrderComment{
|
||||||
@@ -44,7 +43,7 @@ func (c *PurchaseHandler) onOrderComment2(msg *jdapi.CallbackOrderMsg) (err erro
|
|||||||
|
|
||||||
func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) {
|
func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) {
|
||||||
if globals.ReallyReplyComment {
|
if globals.ReallyReplyComment {
|
||||||
err = api.JdAPI.OrgReplyComment(utils.Str2Int64(orderComment.VendorOrderID), orderComment.VendorStoreID, replyComment, ctx.GetUserName())
|
err = getAPI("").OrgReplyComment(utils.Str2Int64(orderComment.VendorOrderID), orderComment.VendorStoreID, replyComment, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,13 +10,8 @@ import (
|
|||||||
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
|
||||||
testinit.Init()
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSwitch2SelfDeliver(t *testing.T) {
|
func TestSwitch2SelfDeliver(t *testing.T) {
|
||||||
orderID := "817540316000041"
|
orderID := "817540316000041"
|
||||||
if order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil {
|
if order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import (
|
|||||||
"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/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -59,7 +58,7 @@ func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
result, err2 := api.JdAPI.AddShopCategory(jdPid, cat.Name, int(cat.Level), cat.Seq, userName)
|
result, err2 := getAPI("").AddShopCategory(jdPid, cat.Name, int(cat.Level), cat.Seq, userName)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if jdID := utils.Str2Int64WithDefault(result, 0); jdID != 0 {
|
if jdID := utils.Str2Int64WithDefault(result, 0); jdID != 0 {
|
||||||
cat.JdID = jdID
|
cat.JdID = jdID
|
||||||
@@ -69,34 +68,56 @@ func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory,
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadCategories() (cats []*model.SkuCategory, err error) {
|
func jdCat2Jx(jdCat *jdapi.CategoryInfo) (jxCat *partner.BareCategoryInfo) {
|
||||||
result, err := api.JdAPI.QueryCategoriesByOrgCode()
|
return &partner.BareCategoryInfo{
|
||||||
if err == nil {
|
VendorCatID: utils.Int64ToStr(jdCat.Id),
|
||||||
cats = make([]*model.SkuCategory, len(result))
|
Level: jdCat.Level,
|
||||||
for k, v := range result {
|
Name: jdCat.Name,
|
||||||
cats[k] = &model.SkuCategory{
|
Seq: jdCat.Sort,
|
||||||
ParentID: int(v.ParentId), // 这里是暂存,传递数据用,正确的值应该是本地的ID
|
|
||||||
Name: v.Name,
|
|
||||||
Level: int8(v.Level),
|
|
||||||
Seq: v.Sort,
|
|
||||||
JdID: v.Id,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cats, nil
|
|
||||||
}
|
}
|
||||||
return nil, err
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetAllCategories(ctx *jxcontext.Context, vendorOrgCode string) (cats []*partner.BareCategoryInfo, err error) {
|
||||||
|
result, err := getAPI(vendorOrgCode).QueryCategoriesByOrgCode()
|
||||||
|
if err == nil {
|
||||||
|
catMap := make(map[int64]*partner.BareCategoryInfo)
|
||||||
|
level := 1
|
||||||
|
for {
|
||||||
|
processedCount := 0
|
||||||
|
for _, jdCat := range result {
|
||||||
|
if jdCat.Level == level {
|
||||||
|
processedCount++
|
||||||
|
jxCat := jdCat2Jx(jdCat)
|
||||||
|
if level == 1 {
|
||||||
|
cats = append(cats, jxCat)
|
||||||
|
} else {
|
||||||
|
parentCat := catMap[jdCat.ParentId]
|
||||||
|
if parentCat != nil {
|
||||||
|
parentCat.Children = append(parentCat.Children, jxCat)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catMap[jdCat.Id] = jxCat
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if processedCount == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
level++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cats, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
|
func (p *PurchaseHandler) UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
return api.JdAPI.UpdateShopCategory(cat.JdID, cat.Name)
|
return getAPI("").UpdateShopCategory(cat.JdID, cat.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
|
func (p *PurchaseHandler) DeleteCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
return api.JdAPI.DelShopCategory(cat.JdID)
|
return getAPI("").DelShopCategory(cat.JdID)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -122,7 +143,7 @@ func (p *PurchaseHandler) ReorderCategories(db *dao.DaoDB, parentCatID int, user
|
|||||||
jdCatIDs[k] = v.JdID
|
jdCatIDs[k] = v.JdID
|
||||||
}
|
}
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.ChangeShopCategoryOrder(parentJDID, jdCatIDs)
|
err = getAPI("").ChangeShopCategoryOrder(parentJDID, jdCatIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -192,7 +213,7 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
return p.cuSku(db, sku, func(skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) {
|
return p.cuSku(db, sku, func(skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) {
|
||||||
if skuExt.IsSpu == 0 {
|
if skuExt.IsSpu == 0 {
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
vendorSkuID, err = api.JdAPI.AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams)
|
vendorSkuID, err = getAPI("").AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if jdSkuID := jdapi.GetJdSkuIDFromError(err); jdSkuID > 0 {
|
if jdSkuID := jdapi.GetJdSkuIDFromError(err); jdSkuID > 0 {
|
||||||
vendorSkuID = utils.Int64ToStr(jdSkuID)
|
vendorSkuID = utils.Int64ToStr(jdSkuID)
|
||||||
@@ -209,13 +230,13 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
jdSkuID := utils.Str2Int64(vendorSkuID)
|
jdSkuID := utils.Str2Int64(vendorSkuID)
|
||||||
skuList, _, err := api.JdAPI.QuerySkuInfos(&jdapi.QuerySkuParam{
|
skuList, _, err := getAPI("").QuerySkuInfos(&jdapi.QuerySkuParam{
|
||||||
SkuID: jdSkuID,
|
SkuID: jdSkuID,
|
||||||
})
|
})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if len(skuList) >= 1 {
|
if len(skuList) >= 1 {
|
||||||
skuNameExt = &model.SkuNameExt{}
|
skuNameExt = &model.SkuNameExt{}
|
||||||
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
||||||
SkuIDs: []int64{jdSkuID},
|
SkuIDs: []int64{jdSkuID},
|
||||||
}); err2 == nil && len(imgList) > 0 {
|
}); err2 == nil && len(imgList) > 0 {
|
||||||
skuNameExt.Img = imgList[0].SourceImgURL
|
skuNameExt.Img = imgList[0].SourceImgURL
|
||||||
@@ -288,7 +309,7 @@ func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
|
params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
|
||||||
if skuExt.IsSpu == 0 {
|
if skuExt.IsSpu == 0 {
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
vendorSkuID, err = api.JdAPI.UpdateSku(utils.Int2Str(sku.ID), params)
|
vendorSkuID, err = getAPI("").UpdateSku(utils.Int2Str(sku.ID), params)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
vendorSkuID, err = p.syncSkuNameAsSpu(db, sku, skuExt, price, skuName, shopCategories, addParams)
|
vendorSkuID, err = p.syncSkuNameAsSpu(db, sku, skuExt, price, skuName, shopCategories, addParams)
|
||||||
@@ -312,7 +333,7 @@ func (p *PurchaseHandler) DeleteSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
if skuExt.IsSpu == 0 {
|
if skuExt.IsSpu == 0 {
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
_, err = api.JdAPI.UpdateSku(utils.Int2Str(sku.ID), params)
|
_, err = getAPI("").UpdateSku(utils.Int2Str(sku.ID), params)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_, err = p.syncSkuNameAsSpu(db, sku, &skuExt, 0, "", nil, nil)
|
_, err = p.syncSkuNameAsSpu(db, sku, &skuExt, 0, "", nil, nil)
|
||||||
@@ -357,7 +378,7 @@ func (p *PurchaseHandler) RefreshAllSkusID(ctx *jxcontext.Context, parentTask ta
|
|||||||
}
|
}
|
||||||
globals.SugarLogger.Debug(utils.Format4Output(skuPairs, false))
|
globals.SugarLogger.Debug(utils.Format4Output(skuPairs, false))
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
_, err = api.JdAPI.BatchUpdateOutSkuId(skuPairs)
|
_, err = getAPI("").BatchUpdateOutSkuId(skuPairs)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, skuPairs)
|
}, skuPairs)
|
||||||
@@ -397,7 +418,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
spuAddParams, skuAddParams := splitAddParams(addParams)
|
spuAddParams, skuAddParams := splitAddParams(addParams)
|
||||||
if !jxutils.IsEmptyID(skuNameJdID) && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除SKU
|
if !jxutils.IsEmptyID(skuNameJdID) && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除SKU
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
err = getAPI("").UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -417,8 +438,8 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
if count.Ct <= 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 1就是最后删的那个
|
if count.Ct <= 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 1就是最后删的那个
|
||||||
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
if err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil {
|
if err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil {
|
||||||
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -439,7 +460,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
skus[0] = utils.MergeMaps(skus[0], skuAddParams)
|
skus[0] = utils.MergeMaps(skus[0], skuAddParams)
|
||||||
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
vendorSpuID, skuPairs, err2 := api.JdAPI.AddSpu(utils.Int2Str(skuExt.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, spuName, []string{skuExt.Img}, jxStatus2jdStatus(skuExt.Status), spuAddParams, skus)
|
vendorSpuID, skuPairs, err2 := getAPI("").AddSpu(utils.Int2Str(skuExt.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, spuName, []string{skuExt.Img}, jxStatus2jdStatus(skuExt.Status), spuAddParams, skus)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
skuExt.JdID = vendorSpuID
|
skuExt.JdID = vendorSpuID
|
||||||
// skuNameJdID = skuExt.JdID // 这个是故意去掉的,这样之后的首次SKU修改操作就会被忽略,下一条语句也就可以不用了
|
// skuNameJdID = skuExt.JdID // 这个是故意去掉的,这样之后的首次SKU修改操作就会被忽略,下一条语句也就可以不用了
|
||||||
@@ -460,7 +481,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
}, spuAddParams)
|
}, spuAddParams)
|
||||||
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params)
|
err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -474,7 +495,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
if err == nil && !jxutils.IsEmptyID(skuNameJdID) {
|
if err == nil && !jxutils.IsEmptyID(skuNameJdID) {
|
||||||
if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 非首次新增SKU
|
if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 非首次新增SKU
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
|
vendorSkuID2, err2 := getAPI("").AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
vendorSkuID = utils.Int64ToStr(vendorSkuID2)
|
vendorSkuID = utils.Int64ToStr(vendorSkuID2)
|
||||||
}
|
}
|
||||||
@@ -487,13 +508,13 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
|||||||
params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
|
params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
|
||||||
params[jdapi.KeySkuPrice] = price
|
params[jdapi.KeySkuPrice] = price
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
|
err = getAPI("").UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
|
||||||
if sku.JdSyncStatus&model.SyncFlagSpecMask != 0 {
|
if sku.JdSyncStatus&model.SyncFlagSpecMask != 0 {
|
||||||
skuIndex := sku.SkuIndex
|
skuIndex := sku.SkuIndex
|
||||||
if skuIndex > 0 {
|
if skuIndex > 0 {
|
||||||
saleAttrValue := composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit)
|
saleAttrValue := composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit)
|
||||||
globals.SugarLogger.Debugf("syncSkuNameAsSpu outSuperId:%d, saleAttrId:%d, saleAttrValueId:%d, saleAttrValueName:%s", skuExt.ID, jdapi.SaleAttrIDBase, jdapi.SaleAttrValueIDBase+skuIndex-1, saleAttrValue)
|
globals.SugarLogger.Debugf("syncSkuNameAsSpu outSuperId:%d, saleAttrId:%d, saleAttrValueId:%d, saleAttrValueName:%s", skuExt.ID, jdapi.SaleAttrIDBase, jdapi.SaleAttrValueIDBase+skuIndex-1, saleAttrValue)
|
||||||
err = api.JdAPI.UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue)
|
err = getAPI("").UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -543,7 +564,7 @@ func jxStatus2jdStatus(jxStatus int) (jdStatus int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
|
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
cats, err := api.JdAPI.QueryChildCategoriesForOP(pid)
|
cats, err := getAPI("").QueryChildCategoriesForOP(pid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -589,7 +610,7 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID
|
|||||||
PageSize: jdapi.MaxSkuIDsCount4QueryListBySkuIds, // 为了同时取图,这个值不要大于jdapi.MaxSkuIDsCount4QueryListBySkuIds
|
PageSize: jdapi.MaxSkuIDsCount4QueryListBySkuIds, // 为了同时取图,这个值不要大于jdapi.MaxSkuIDsCount4QueryListBySkuIds
|
||||||
}
|
}
|
||||||
for {
|
for {
|
||||||
skuList, _, err2 := api.JdAPI.QuerySkuInfos(param)
|
skuList, _, err2 := getAPI("").QuerySkuInfos(param)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -616,7 +637,7 @@ func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInf
|
|||||||
}
|
}
|
||||||
|
|
||||||
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
||||||
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
||||||
SkuIDs: jdSkuIDs,
|
SkuIDs: jdSkuIDs,
|
||||||
}); err2 == nil {
|
}); err2 == nil {
|
||||||
for _, v := range imgList {
|
for _, v := range imgList {
|
||||||
@@ -640,7 +661,7 @@ func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInf
|
|||||||
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
|
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
jdSkuID := batchItemList[0].(int64)
|
jdSkuID := batchItemList[0].(int64)
|
||||||
imgList, err := api.JdAPI.GetSkuPageImageInfo(jdSkuID)
|
imgList, err := getAPI("").GetSkuPageImageInfo(jdSkuID)
|
||||||
if err == nil && len(imgList) > 0 {
|
if err == nil && len(imgList) > 0 {
|
||||||
retVal = [][]string{
|
retVal = [][]string{
|
||||||
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},
|
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},
|
||||||
|
|||||||
@@ -37,12 +37,12 @@ func TestUpdateSku(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestReadCategories(t *testing.T) {
|
func TestGetAllCategories(t *testing.T) {
|
||||||
result, err := curPurchaseHandler.ReadCategories()
|
result, err := curPurchaseHandler.GetAllCategories(jxcontext.AdminCtx, "")
|
||||||
if err != nil || len(result) == 0 {
|
if err != nil || len(result) == 0 {
|
||||||
t.Fatal(err.Error())
|
t.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
t.Log(result[0])
|
t.Log(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestReadSku(t *testing.T) {
|
func TestReadSku(t *testing.T) {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ type tJdStoreInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorStoreID string) (*dao.StoreDetail, error) {
|
func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorStoreID string) (*dao.StoreDetail, error) {
|
||||||
result, err := api.JdAPI.GetStoreInfoByStationNo(vendorStoreID)
|
result, err := getAPI("").GetStoreInfoByStationNo(vendorStoreID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
retVal := &dao.StoreDetail{
|
retVal := &dao.StoreDetail{
|
||||||
Store: model.Store{
|
Store: model.Store{
|
||||||
@@ -82,7 +82,7 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorStoreID string
|
|||||||
}
|
}
|
||||||
|
|
||||||
retVal.ID = int(utils.Str2Int64WithDefault(utils.Interface2String(result["outSystemId"]), 0))
|
retVal.ID = int(utils.Str2Int64WithDefault(utils.Interface2String(result["outSystemId"]), 0))
|
||||||
result, err2 := api.JdAPI.GetDeliveryRangeByStationNo(vendorStoreID)
|
result, err2 := getAPI("").GetDeliveryRangeByStationNo(vendorStoreID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
retVal.DeliveryRangeType = int8(utils.MustInterface2Int64(result["deliveryRangeType"]))
|
retVal.DeliveryRangeType = int8(utils.MustInterface2Int64(result["deliveryRangeType"]))
|
||||||
if retVal.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
if retVal.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
||||||
@@ -147,7 +147,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
|||||||
}
|
}
|
||||||
globals.SugarLogger.Debug(utils.Format4Output(params, false))
|
globals.SugarLogger.Debug(utils.Format4Output(params, false))
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
if err = api.JdAPI.UpdateStoreInfo4Open(store.VendorStoreID, store.RealLastOperator, params); err != nil {
|
if err = getAPI("").UpdateStoreInfo4Open(store.VendorStoreID, store.RealLastOperator, params); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -161,11 +161,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
|||||||
// params := map[string]interface{}{
|
// params := map[string]interface{}{
|
||||||
// "yn": 1,
|
// "yn": 1,
|
||||||
// }
|
// }
|
||||||
// return api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
// return getAPI("").UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// func (p *PurchaseHandler) EnableAutoAcceptOrder(vendorStoreID string, isEnabled bool) error {
|
// func (p *PurchaseHandler) EnableAutoAcceptOrder(vendorStoreID string, isEnabled bool) error {
|
||||||
// _, err := api.JdAPI.UpdateStoreConfig4Open(vendorStoreID, isEnabled)
|
// _, err := getAPI("").UpdateStoreConfig4Open(vendorStoreID, isEnabled)
|
||||||
// return err
|
// return err
|
||||||
// }
|
// }
|
||||||
|
|
||||||
@@ -174,7 +174,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
|||||||
// "closeStatus": 0,
|
// "closeStatus": 0,
|
||||||
// "storeNotice": "",
|
// "storeNotice": "",
|
||||||
// }
|
// }
|
||||||
// return api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
// return getAPI("").UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// func (p *PurchaseHandler) CloseStore(vendorStoreID, closeNotice, userName string) error {
|
// func (p *PurchaseHandler) CloseStore(vendorStoreID, closeNotice, userName string) error {
|
||||||
@@ -182,7 +182,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
|||||||
// "closeStatus": 1,
|
// "closeStatus": 1,
|
||||||
// "storeNotice": closeNotice,
|
// "storeNotice": closeNotice,
|
||||||
// }
|
// }
|
||||||
// return api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
// return getAPI("").UpdateStoreInfo4Open(vendorStoreID, userName, params)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
///////////////////////
|
///////////////////////
|
||||||
@@ -233,7 +233,7 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask
|
|||||||
storeParams["outSystemId"] = store.VendorStoreID
|
storeParams["outSystemId"] = store.VendorStoreID
|
||||||
}
|
}
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.UpdateStoreInfo4Open(store.VendorStoreID, ctx.GetUserName(), storeParams)
|
err = getAPI("").UpdateStoreInfo4Open(store.VendorStoreID, ctx.GetUserName(), storeParams)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, stores)
|
}, stores)
|
||||||
@@ -288,7 +288,7 @@ func JdDeliveryType2Jx(deliveryType int) int8 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string) (storeStatus int, err error) {
|
func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string) (storeStatus int, err error) {
|
||||||
result, err := api.JdAPI.GetStoreInfoByStationNo(vendorStoreID)
|
result, err := getAPI("").GetStoreInfoByStationNo(vendorStoreID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
storeStatus = JdStoreStatus2JxStatus(result["yn"], result["closeStatus"])
|
storeStatus = JdStoreStatus2JxStatus(result["yn"], result["closeStatus"])
|
||||||
}
|
}
|
||||||
@@ -316,7 +316,7 @@ func (c *PurchaseHandler) OnStoreMsg(msg *jdapi.CallbackOrderMsg) (response *jda
|
|||||||
func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, status int) (err error) {
|
func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, status int) (err error) {
|
||||||
_, closeStatus := JxStoreStatus2JdStatus(status)
|
_, closeStatus := JxStoreStatus2JdStatus(status)
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, ctx.GetUserName(), map[string]interface{}{
|
err = getAPI("").UpdateStoreInfo4Open(vendorStoreID, ctx.GetUserName(), map[string]interface{}{
|
||||||
"closeStatus": closeStatus,
|
"closeStatus": closeStatus,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -348,13 +348,13 @@ func fillOpTimeParams(params map[string]interface{}, opTimeList []int16) map[str
|
|||||||
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
|
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
|
||||||
params := fillOpTimeParams(nil, opTimeList)
|
params := fillOpTimeParams(nil, opTimeList)
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, ctx.GetUserName(), params)
|
err = getAPI("").UpdateStoreInfo4Open(vendorStoreID, ctx.GetUserName(), params)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context) (vendorStoreIDs []string, err error) {
|
func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context) (vendorStoreIDs []string, err error) {
|
||||||
vendorStoreIDs, err = api.JdAPI.GetStationsByVenderId()
|
vendorStoreIDs, err = getAPI("").GetStationsByVenderId()
|
||||||
return vendorStoreIDs, err
|
return vendorStoreIDs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ package jd
|
|||||||
// // todo 以下可以优化为并行操作
|
// // todo 以下可以优化为并行操作
|
||||||
// // globals.SugarLogger.Debug(utils.Format4Output(skuVendibilityList, false), utils.Format4Output(skuPriceInfoList, false), utils.Format4Output(skuStockList, false))
|
// // globals.SugarLogger.Debug(utils.Format4Output(skuVendibilityList, false), utils.Format4Output(skuPriceInfoList, false), utils.Format4Output(skuStockList, false))
|
||||||
// if len(skuVendibilityList) > 0 {
|
// if len(skuVendibilityList) > 0 {
|
||||||
// if _, err = api.JdAPI.BatchUpdateVendibility(ctx.GetTrackInfo(), "", stationNo, skuVendibilityList, ctx.GetUserName()); err == nil {
|
// if _, err = getAPI("").BatchUpdateVendibility(ctx.GetTrackInfo(), "", stationNo, skuVendibilityList, ctx.GetUserName()); err == nil {
|
||||||
// syncMask |= model.SyncFlagSaleMask
|
// syncMask |= model.SyncFlagSaleMask
|
||||||
// } else {
|
// } else {
|
||||||
// if !isPartialFailed {
|
// if !isPartialFailed {
|
||||||
@@ -94,9 +94,9 @@ package jd
|
|||||||
// }
|
// }
|
||||||
// if (err == nil || isContinueWhenError) && len(skuStockList) > 0 {
|
// if (err == nil || isContinueWhenError) && len(skuStockList) > 0 {
|
||||||
// if len(skuStockList) == 1 {
|
// if len(skuStockList) == 1 {
|
||||||
// err = api.JdAPI.UpdateCurrentQty(ctx.GetTrackInfo(), stationNo, utils.Str2Int64WithDefault(vendorSkuID4Qty, 0), skuStockList[0].StockQty)
|
// err = getAPI("").UpdateCurrentQty(ctx.GetTrackInfo(), stationNo, utils.Str2Int64WithDefault(vendorSkuID4Qty, 0), skuStockList[0].StockQty)
|
||||||
// } else {
|
// } else {
|
||||||
// _, err = api.JdAPI.BatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", stationNo, skuStockList, ctx.GetUserName())
|
// _, err = getAPI("").BatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", stationNo, skuStockList, ctx.GetUserName())
|
||||||
// }
|
// }
|
||||||
// if err == nil {
|
// if err == nil {
|
||||||
// syncMask |= model.SyncFlagNewMask | model.SyncFlagDeletedMask
|
// syncMask |= model.SyncFlagNewMask | model.SyncFlagDeletedMask
|
||||||
@@ -109,9 +109,9 @@ package jd
|
|||||||
// }
|
// }
|
||||||
// if (err == nil || isContinueWhenError) && len(skuPriceInfoList) > 0 {
|
// if (err == nil || isContinueWhenError) && len(skuPriceInfoList) > 0 {
|
||||||
// if len(skuPriceInfoList) == 1 {
|
// if len(skuPriceInfoList) == 1 {
|
||||||
// _, err = api.JdAPI.UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(vendorSkuID4Price, 0), stationNo, skuPriceInfoList[0].Price)
|
// _, err = getAPI("").UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(vendorSkuID4Price, 0), stationNo, skuPriceInfoList[0].Price)
|
||||||
// } else {
|
// } else {
|
||||||
// _, err = api.JdAPI.UpdateVendorStationPrice(ctx.GetTrackInfo(), "", stationNo, skuPriceInfoList)
|
// _, err = getAPI("").UpdateVendorStationPrice(ctx.GetTrackInfo(), "", stationNo, skuPriceInfoList)
|
||||||
// }
|
// }
|
||||||
// if err == nil {
|
// if err == nil {
|
||||||
// syncMask |= model.SyncFlagPriceMask
|
// syncMask |= model.SyncFlagPriceMask
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) {
|
func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) {
|
||||||
@@ -39,9 +38,9 @@ func (p *PurchaseHandler) getStoreSkusBareInfoLimitSize(ctx *jxcontext.Context,
|
|||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
subTaskID := batchItemList[0].(int)
|
subTaskID := batchItemList[0].(int)
|
||||||
if subTaskID == 0 {
|
if subTaskID == 0 {
|
||||||
stockInfo, err = api.JdAPI.QueryOpenUseable(batchSkuInfoList)
|
stockInfo, err = getAPI("").QueryOpenUseable(batchSkuInfoList)
|
||||||
} else {
|
} else {
|
||||||
priceInfo, err = api.JdAPI.GetStationInfoList(vendorStoreID, batchSkuList)
|
priceInfo, err = getAPI("").GetStationInfoList(vendorStoreID, batchSkuList)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, []int{0, 1})
|
}, []int{0, 1})
|
||||||
@@ -119,7 +118,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
responseList, err2 := api.JdAPI.BatchUpdateVendibility(ctx.GetTrackInfo(), "", vendorStoreID, skuVendibilityList, ctx.GetUserName())
|
responseList, err2 := getAPI("").BatchUpdateVendibility(ctx.GetTrackInfo(), "", vendorStoreID, skuVendibilityList, ctx.GetUserName())
|
||||||
if err = err2; isErrPartialFailed(err) {
|
if err = err2; isErrPartialFailed(err) {
|
||||||
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
||||||
}
|
}
|
||||||
@@ -130,7 +129,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID
|
|||||||
func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
if len(storeSkuList) == 1 {
|
if len(storeSkuList) == 1 {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = api.JdAPI.UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), vendorStoreID, int(storeSkuList[0].VendorPrice))
|
_, err = getAPI("").UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), vendorStoreID, int(storeSkuList[0].VendorPrice))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
||||||
@@ -141,7 +140,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID i
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
responseList, err2 := api.JdAPI.UpdateVendorStationPrice(ctx.GetTrackInfo(), "", vendorStoreID, skuPriceInfoList)
|
responseList, err2 := getAPI("").UpdateVendorStationPrice(ctx.GetTrackInfo(), "", vendorStoreID, skuPriceInfoList)
|
||||||
if err = err2; isErrPartialFailed(err) {
|
if err = err2; isErrPartialFailed(err) {
|
||||||
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
||||||
}
|
}
|
||||||
@@ -153,7 +152,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID i
|
|||||||
func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
if len(storeSkuList) == 1 {
|
if len(storeSkuList) == 1 {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = api.JdAPI.UpdateCurrentQty(ctx.GetTrackInfo(), vendorStoreID, utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), storeSkuList[0].Stock)
|
err = getAPI("").UpdateCurrentQty(ctx.GetTrackInfo(), vendorStoreID, utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), storeSkuList[0].Stock)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var skuStockList []*jdapi.SkuStock
|
var skuStockList []*jdapi.SkuStock
|
||||||
@@ -164,7 +163,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID i
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
responseList, err2 := api.JdAPI.BatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", vendorStoreID, skuStockList, ctx.GetUserName())
|
responseList, err2 := getAPI("").BatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", vendorStoreID, skuStockList, ctx.GetUserName())
|
||||||
if err = err2; isErrPartialFailed(err) {
|
if err = err2; isErrPartialFailed(err) {
|
||||||
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
||||||
}
|
}
|
||||||
@@ -189,7 +188,7 @@ func (p *PurchaseHandler) SyncStoreProducts(ctx *jxcontext.Context, parentTask t
|
|||||||
storeSku := batchItemList[0].(*dao.StoreSkuSyncInfo)
|
storeSku := batchItemList[0].(*dao.StoreSkuSyncInfo)
|
||||||
if storeSku.VendorSkuID != "" && storeSku.StoreSkuStatus == model.SkuStatusNormal {
|
if storeSku.VendorSkuID != "" && storeSku.StoreSkuStatus == model.SkuStatusNormal {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
synchronized, err2 := api.JdAPI.SyncProduct(storeDetail.VendorStoreID, storeSku.VendorSkuID)
|
synchronized, err2 := getAPI("").SyncProduct(storeDetail.VendorStoreID, storeSku.VendorSkuID)
|
||||||
if err = err2; err == nil && synchronized {
|
if err = err2; err == nil && synchronized {
|
||||||
retVal = []int{1}
|
retVal = []int{1}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ func (c *PurchaseHandler) onWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (re
|
|||||||
order.Status = model.WaybillStatusNew
|
order.Status = model.WaybillStatusNew
|
||||||
case jdapi.DeliveryStatusAccepted:
|
case jdapi.DeliveryStatusAccepted:
|
||||||
// todo 性能问题,暂时取消调用
|
// todo 性能问题,暂时取消调用
|
||||||
// if result, err := api.JdAPI.QuerySingleOrder(msg.OrderID); err == nil {
|
// if result, err := getAPI("").QuerySingleOrder(msg.OrderID); err == nil {
|
||||||
// // 默认配送费=订单应付运费(orderReceivableFreight)
|
// // 默认配送费=订单应付运费(orderReceivableFreight)
|
||||||
// //订单应付运费为未优惠前应付运费(满免优惠,运费优惠券,VIP免基础运费,用户小费)ps:用户小费是用户给配送员的小费
|
// //订单应付运费为未优惠前应付运费(满免优惠,运费优惠券,VIP免基础运费,用户小费)ps:用户小费是用户给配送员的小费
|
||||||
// order.DesiredFee = utils.Interface2Int64WithDefault(result["orderReceivableFreight"], 0) +
|
// order.DesiredFee = utils.Interface2Int64WithDefault(result["orderReceivableFreight"], 0) +
|
||||||
|
|||||||
@@ -195,6 +195,9 @@ func (c *AuthController) MiniBindWeiXin() {
|
|||||||
func (c *AuthController) BindMiniProgram() {
|
func (c *AuthController) BindMiniProgram() {
|
||||||
c.callBindMiniProgram(func(params *tAuthBindMiniProgramParams) (retVal interface{}, errCode string, err error) {
|
c.callBindMiniProgram(func(params *tAuthBindMiniProgramParams) (retVal interface{}, errCode string, err error) {
|
||||||
err = weixin.AutherMini.BindMiniProgram(params.Ctx, GetComposedCode(&c.Controller, params.Code))
|
err = weixin.AutherMini.BindMiniProgram(params.Ctx, GetComposedCode(&c.Controller, params.Code))
|
||||||
|
if err == nil {
|
||||||
|
cms.TransferLegacyWeixins(params.Ctx.GetLoginID())
|
||||||
|
}
|
||||||
if err == auth.ErrUserNotExist {
|
if err == auth.ErrUserNotExist {
|
||||||
return retVal, model.ErrCodeUserNotExist, err
|
return retVal, model.ErrCodeUserNotExist, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,7 +265,8 @@ func (c *StoreSkuController) CopyStoreSkus() {
|
|||||||
// @Param storeIDs formData string true "门店ID列表"
|
// @Param storeIDs formData string true "门店ID列表"
|
||||||
// @Param payload formData string true "json数据,StoreSkuBindSkuInfo对象数组"
|
// @Param payload formData string true "json数据,StoreSkuBindSkuInfo对象数组"
|
||||||
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
// @Param autoSaleAt formData string false "自动可售时间"
|
// @Param autoSaleAt formData string false "临时不可售到期时间"
|
||||||
|
// @Param ignoreDontSale formData bool false "在临时不可售时,是否忽略当前是不可售的商品"
|
||||||
// @Param isAsync formData bool false "是否异步操作"
|
// @Param isAsync formData bool false "是否异步操作"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
@@ -281,7 +282,7 @@ func (c *StoreSkuController) UpdateStoresSkusSale() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
}
|
}
|
||||||
retVal, err = cms.UpdateStoresSkusSale(params.Ctx, storeIDs, skuBindSkuInfos, timeList[0], params.Ctx.GetUserName(), params.IsAsync, params.IsContinueWhenError)
|
retVal, err = cms.UpdateStoresSkusSale(params.Ctx, storeIDs, skuBindSkuInfos, timeList[0], params.IgnoreDontSale, params.Ctx.GetUserName(), params.IsAsync, params.IsContinueWhenError)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package controllers
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
@@ -54,3 +56,20 @@ func (c *TaskController) CancelTask() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 取消管理任务
|
||||||
|
// @Description 取消管理任务
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param taskIDs query string false "任务ID列表"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /UnmanageTasks [put]
|
||||||
|
func (c *TaskController) UnmanageTasks() {
|
||||||
|
c.callUnmanageTasks(func(params *tTaskUnmanageTasksParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
var taskIDs []string
|
||||||
|
if err = jxutils.Strings2Objs(params.TaskIDs, &taskIDs); err == nil {
|
||||||
|
tasksch.UnmanageTasks(taskIDs)
|
||||||
|
}
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ func (c *User2Controller) RegisterUser() {
|
|||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = jxutils.Strings2Objs(params.Payload, &user); err == nil {
|
if err = jxutils.Strings2Objs(params.Payload, &user); err == nil {
|
||||||
|
user.Type = 0
|
||||||
retVal, err = cms.RegisterUser(&user, params.MobileVerifyCode, inAuthInfo)
|
retVal, err = cms.RegisterUser(&user, params.MobileVerifyCode, inAuthInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -84,8 +85,8 @@ func (c *User2Controller) GetUsers() {
|
|||||||
// @router /GetMyStoreList [get]
|
// @router /GetMyStoreList [get]
|
||||||
func (c *User2Controller) GetMyStoreList() {
|
func (c *User2Controller) GetMyStoreList() {
|
||||||
c.callGetMyStoreList(func(params *tUser2GetMyStoreListParams) (retVal interface{}, errCode string, err error) {
|
c.callGetMyStoreList(func(params *tUser2GetMyStoreListParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = cms.GetMyStoreListNew(params.Ctx)
|
retVal, errCode, err = cms.GetMyStoreListNew(params.Ctx)
|
||||||
return retVal, "", err
|
return retVal, errCode, err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,18 +22,12 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/platformapi/zhongwuapi"
|
"git.rosy.net.cn/baseapi/platformapi/zhongwuapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/cache"
|
"git.rosy.net.cn/jx-callback/business/jxutils/cache"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/cache/redis"
|
"git.rosy.net.cn/jx-callback/business/jxutils/cache/redis"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
"github.com/qiniu/api.v7/auth/qbox"
|
"github.com/qiniu/api.v7/auth/qbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
type APIManager struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
curAPIManager *APIManager
|
|
||||||
|
|
||||||
JdAPI *jdapi.API
|
JdAPI *jdapi.API
|
||||||
JdPageAPI *jdapi.API
|
JdPageAPI *jdapi.API
|
||||||
ElmAPI *elmapi.API
|
ElmAPI *elmapi.API
|
||||||
@@ -65,22 +59,12 @@ var (
|
|||||||
Cacher cache.ICacher
|
Cacher cache.ICacher
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *APIManager) GetAPI(vendorID int, name string) (pfAPI interface{}) {
|
|
||||||
if vendorID == model.VendorIDJD {
|
|
||||||
pfAPI = JdAPI
|
|
||||||
}
|
|
||||||
return pfAPI
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Init() // 这里必须要调用
|
Init() // 这里必须要调用
|
||||||
}
|
}
|
||||||
|
|
||||||
// 这样写的原因是在测试时,可以重新读取配置文件
|
// 这样写的原因是在测试时,可以重新读取配置文件
|
||||||
func Init() {
|
func Init() {
|
||||||
curAPIManager = &APIManager{}
|
|
||||||
// partner.InitAPIManager(curAPIManager)
|
|
||||||
|
|
||||||
if !beego.AppConfig.DefaultBool("disableJd", false) {
|
if !beego.AppConfig.DefaultBool("disableJd", false) {
|
||||||
JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret"))
|
JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret"))
|
||||||
cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "")
|
cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "")
|
||||||
|
|||||||
33
globals/api/apimanager/apimanager.go
Normal file
33
globals/api/apimanager/apimanager.go
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package apimanager
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
)
|
||||||
|
|
||||||
|
type APIManager struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
curAPIManager *APIManager
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
globals.SugarLogger.Debug("init apimanager")
|
||||||
|
curAPIManager = &APIManager{}
|
||||||
|
partner.InitAPIManager(curAPIManager)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *APIManager) GetAPI(vendorID int, name string) (pfAPI interface{}) {
|
||||||
|
switch vendorID {
|
||||||
|
case model.VendorIDJD:
|
||||||
|
pfAPI = api.JdAPI
|
||||||
|
case model.VendorIDMTWM:
|
||||||
|
pfAPI = api.MtwmAPI
|
||||||
|
case model.VendorIDEBAI:
|
||||||
|
pfAPI = api.EbaiAPI
|
||||||
|
}
|
||||||
|
return pfAPI
|
||||||
|
}
|
||||||
14
main.go
14
main.go
@@ -3,11 +3,18 @@ package main
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
_ "net/http/pprof"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/astaxie/beego"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
|
||||||
|
_ "git.rosy.net.cn/jx-callback/globals/api/apimanager"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" // 导入缺省订单调度器
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" // 导入缺省订单调度器
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
@@ -18,7 +25,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api2"
|
"git.rosy.net.cn/jx-callback/globals/api2"
|
||||||
"git.rosy.net.cn/jx-callback/globals/beegodb"
|
"git.rosy.net.cn/jx-callback/globals/beegodb"
|
||||||
_ "git.rosy.net.cn/jx-callback/routers"
|
|
||||||
|
|
||||||
_ "git.rosy.net.cn/jx-callback/business/partner/printer/feie"
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/feie"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/partner/printer/xiaowm"
|
_ "git.rosy.net.cn/jx-callback/business/partner/printer/xiaowm"
|
||||||
@@ -31,11 +37,9 @@ import (
|
|||||||
_ "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/business/partner/purchase/weimob/wsc"
|
_ "git.rosy.net.cn/jx-callback/business/partner/purchase/weimob/wsc"
|
||||||
|
|
||||||
"net/http"
|
|
||||||
_ "net/http/pprof"
|
|
||||||
|
|
||||||
_ "git.rosy.net.cn/jx-callback/business/jxstore/act"
|
_ "git.rosy.net.cn/jx-callback/business/jxstore/act"
|
||||||
"github.com/astaxie/beego"
|
|
||||||
|
_ "git.rosy.net.cn/jx-callback/routers"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -1609,6 +1609,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TaskController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TaskController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "UnmanageTasks",
|
||||||
|
Router: `/UnmanageTasks`,
|
||||||
|
AllowHTTPMethods: []string{"put"},
|
||||||
|
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