操作日志查询增加错误,关键字,同步错误返回显示平台名
This commit is contained in:
@@ -26,7 +26,7 @@ type SyncErrResult struct {
|
|||||||
SkuID int `json:"商品ID"`
|
SkuID int `json:"商品ID"`
|
||||||
CategoryName string `json:"分类名"`
|
CategoryName string `json:"分类名"`
|
||||||
StoreID int `json:"门店ID"`
|
StoreID int `json:"门店ID"`
|
||||||
VendorID int `json:"平台ID"`
|
VendorName string `json:"平台名"`
|
||||||
VendorSkuID string `json:"平台商品ID"`
|
VendorSkuID string `json:"平台商品ID"`
|
||||||
NameID int `json:"商品nameID"`
|
NameID int `json:"商品nameID"`
|
||||||
VendorPrice int64 `json:"平台价"`
|
VendorPrice int64 `json:"平台价"`
|
||||||
@@ -77,7 +77,7 @@ var (
|
|||||||
"商品ID",
|
"商品ID",
|
||||||
"分类名",
|
"分类名",
|
||||||
"门店ID",
|
"门店ID",
|
||||||
"平台ID",
|
"平台名",
|
||||||
"平台商品ID",
|
"平台商品ID",
|
||||||
"商品nameID",
|
"商品nameID",
|
||||||
"平台价",
|
"平台价",
|
||||||
@@ -243,7 +243,7 @@ func (v *VendorSync) SyncStore2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs
|
|||||||
_, err = dao.UpdateEntity(db2, storeMap, model.FieldSyncStatus)
|
_, err = dao.UpdateEntity(db2, storeMap, model.FieldSyncStatus)
|
||||||
resultList = append(resultList, 1)
|
resultList = append(resultList, 1)
|
||||||
} else {
|
} else {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, storeMap.VendorID, "同步门店")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "同步门店")
|
||||||
}
|
}
|
||||||
return resultList, err
|
return resultList, err
|
||||||
}, loopMapInfo.StoreMapList)
|
}, loopMapInfo.StoreMapList)
|
||||||
@@ -255,7 +255,7 @@ func (v *VendorSync) SyncStore2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs
|
|||||||
storeMap.SyncStatus = 0
|
storeMap.SyncStatus = 0
|
||||||
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
||||||
} else {
|
} else {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, storeMap.VendorID, "同步门店")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeMap.StoreID, model.VendorChineseNames[storeMap.VendorID], "同步门店")
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
resultList = []interface{}{1}
|
resultList = []interface{}{1}
|
||||||
@@ -646,6 +646,9 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, parentTask tasksch.I
|
|||||||
|
|
||||||
func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) {
|
func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) {
|
||||||
task.SetFinishHook(func(task tasksch.ITask) {
|
task.SetFinishHook(func(task tasksch.ITask) {
|
||||||
|
if len(task.GetFailedList()) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
var noticeMsg = "您此次的同步任务错误详情返回如下: \n"
|
var noticeMsg = "您此次的同步任务错误详情返回如下: \n"
|
||||||
if ctx.GetUserName() != "jxadmin" {
|
if ctx.GetUserName() != "jxadmin" {
|
||||||
if len(task.GetFailedList()) > 10 {
|
if len(task.GetFailedList()) > 10 {
|
||||||
@@ -660,11 +663,13 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) {
|
|||||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg)
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
downloadURL, _, _ := WirteToExcelBySyncFailed(task)
|
if time.Now().Hour() >= 20 && time.Now().Hour() < 7 {
|
||||||
user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913")
|
downloadURL, _, _ := WirteToExcelBySyncFailed(task)
|
||||||
noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL)
|
user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913")
|
||||||
if user != nil && err == nil {
|
noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL)
|
||||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg)
|
if user != nil && err == nil {
|
||||||
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -683,7 +688,7 @@ func buildErrMsgJson(task tasksch.ITask) (resultL []*SyncErrResult) {
|
|||||||
SkuID: 0,
|
SkuID: 0,
|
||||||
StoreID: vv.StoreID,
|
StoreID: vv.StoreID,
|
||||||
CategoryName: vv.CategoryName,
|
CategoryName: vv.CategoryName,
|
||||||
VendorID: vv.VendoreID,
|
VendorName: vv.VendoreName,
|
||||||
VendorSkuID: "",
|
VendorSkuID: "",
|
||||||
NameID: 0,
|
NameID: 0,
|
||||||
VendorPrice: 0,
|
VendorPrice: 0,
|
||||||
|
|||||||
@@ -152,18 +152,18 @@ func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int,
|
|||||||
model.IsSyncStatusNeedDelete(skuVendorInfo.SkuSyncStatus) {
|
model.IsSyncStatusNeedDelete(skuVendorInfo.SkuSyncStatus) {
|
||||||
err = multiStoresHandler.DeleteSku2(ctx, skuVendorInfo.VendorOrgCode, storeSkuSyncInfo2Bare(skuVendorInfo))
|
err = multiStoresHandler.DeleteSku2(ctx, skuVendorInfo.VendorOrgCode, storeSkuSyncInfo2Bare(skuVendorInfo))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, skuVendorInfo.VendorID, "删除商品")
|
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, model.VendorChineseNames[skuVendorInfo.VendorID], "删除商品")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusNew(skuVendorInfo.SkuSyncStatus) { // 新增
|
} else if model.IsSyncStatusNew(skuVendorInfo.SkuSyncStatus) { // 新增
|
||||||
err = multiStoresHandler.CreateSku2(ctx, skuVendorInfo)
|
err = multiStoresHandler.CreateSku2(ctx, skuVendorInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, skuVendorInfo.VendorID, "新增商品")
|
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, model.VendorChineseNames[skuVendorInfo.VendorID], "新增商品")
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusUpdate(skuVendorInfo.SkuSyncStatus) { // 修改
|
} else if model.IsSyncStatusUpdate(skuVendorInfo.SkuSyncStatus) { // 修改
|
||||||
err = multiStoresHandler.UpdateSku2(ctx, skuVendorInfo)
|
err = multiStoresHandler.UpdateSku2(ctx, skuVendorInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, skuVendorInfo.VendorID, "修改商品")
|
failedList = putils.GetErrMsg2FailedSingleList(skuVendorInfo, err, 0, model.VendorChineseNames[skuVendorInfo.VendorID], "修改商品")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
if err != nil && handler.IsErrCategoryNotExist(err) {
|
if err != nil && handler.IsErrCategoryNotExist(err) {
|
||||||
err = nil
|
err = nil
|
||||||
} else if err != nil && !handler.IsErrCategoryNotExist(err) {
|
} else if err != nil && !handler.IsErrCategoryNotExist(err) {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, vendorID, "删除分类")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "删除分类")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增
|
} else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增
|
||||||
@@ -98,7 +98,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
catInfo.VendorCatID = cat.VendorCatID
|
catInfo.VendorCatID = cat.VendorCatID
|
||||||
err = nil
|
err = nil
|
||||||
} else if err != nil && !handler.IsErrCategoryExist(err) {
|
} else if err != nil && !handler.IsErrCategoryExist(err) {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, vendorID, "新增分类")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "新增分类")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@@ -113,7 +113,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
updateFields = append(updateFields, idFieldName)
|
updateFields = append(updateFields, idFieldName)
|
||||||
} else {
|
} else {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, vendorID, "修改分类")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "修改分类")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(failedList) > 0 {
|
if len(failedList) > 0 {
|
||||||
@@ -421,7 +421,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
|||||||
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
|
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
|
||||||
// err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID)
|
// err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID)
|
||||||
err = utils.NewErrorCode(fmt.Sprintf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0)
|
err = utils.NewErrorCode(fmt.Sprintf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0)
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, vendorID, "异常同步错误")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "异常同步错误")
|
||||||
if parentTask == nil {
|
if parentTask == nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -533,7 +533,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
|||||||
err = nil
|
err = nil
|
||||||
failedList = nil // 因为batchSize为1,可以这样处理
|
failedList = nil // 因为batchSize为1,可以这样处理
|
||||||
} else if err2 != nil {
|
} else if err2 != nil {
|
||||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, vendorID, "查询是否有该商品")...)
|
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, model.VendorChineseNames[vendorID], "查询是否有该商品")...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品")
|
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品")
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ func SyncStoreSku4FakeJD(ctx *jxcontext.Context, parentTask tasksch.ITask, store
|
|||||||
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
|
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
|
||||||
// err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID)
|
// err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID)
|
||||||
err = utils.NewErrorCode(fmt.Sprintf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0)
|
err = utils.NewErrorCode(fmt.Sprintf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0)
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, vendorID, "异常同步错误")
|
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "异常同步错误")
|
||||||
if parentTask == nil {
|
if parentTask == nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ type CheckCookie struct {
|
|||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string) (err error) {
|
func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string, errCode, errMsg string, useTime int) (err error) {
|
||||||
var (
|
var (
|
||||||
apiFunction string
|
apiFunction string
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
@@ -54,6 +54,9 @@ func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string) (err e
|
|||||||
UserID: ctx.GetUserID(),
|
UserID: ctx.GetUserID(),
|
||||||
AccessUUID: accessUUID,
|
AccessUUID: accessUUID,
|
||||||
JsonData: jsonData,
|
JsonData: jsonData,
|
||||||
|
ErrCode: errCode,
|
||||||
|
ErrMsg: errMsg,
|
||||||
|
UseTime: useTime,
|
||||||
}
|
}
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -95,7 +98,7 @@ func DeleteOperateEventAndDetail(ctx *jxcontext.Context, deleteTime time.Time) (
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOperateEvents(ctx *jxcontext.Context, name string, apiFunctions []string, operateTypes, skuIDs, storeIDs []int, fromTime, toTime string, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
|
func GetOperateEvents(ctx *jxcontext.Context, name string, apiFunctions []string, operateTypes, skuIDs, storeIDs []int, fromTime, toTime, keyword string, errType, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
|
||||||
var (
|
var (
|
||||||
fromTimeP time.Time
|
fromTimeP time.Time
|
||||||
toTimeP time.Time
|
toTimeP time.Time
|
||||||
@@ -109,7 +112,7 @@ func GetOperateEvents(ctx *jxcontext.Context, name string, apiFunctions []string
|
|||||||
}
|
}
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
offset = jxutils.FormalizePageOffset(offset)
|
offset = jxutils.FormalizePageOffset(offset)
|
||||||
operateEventExt, totalCount, err := dao.GetOperateEvents(db, name, apiFunctions, operateTypes, skuIDs, storeIDs, fromTimeP, toTimeP, offset, pageSize)
|
operateEventExt, totalCount, err := dao.GetOperateEvents(db, name, apiFunctions, operateTypes, skuIDs, storeIDs, fromTimeP, toTimeP, keyword, errType, offset, pageSize)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return pageInfo, err
|
return pageInfo, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,6 +132,8 @@ var (
|
|||||||
"DeleteStoreCourierMap": "门店解绑三方配送平台",
|
"DeleteStoreCourierMap": "门店解绑三方配送平台",
|
||||||
"AddStoreCourierMap": "门店绑定三方配送平台",
|
"AddStoreCourierMap": "门店绑定三方配送平台",
|
||||||
"UpdateStoreCourierMap": "门店修改三方配送平台绑定信息",
|
"UpdateStoreCourierMap": "门店修改三方配送平台绑定信息",
|
||||||
|
"Login": "登录",
|
||||||
|
"RegisterUser": "注册",
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiStoresVendorMap = map[int]int{
|
MultiStoresVendorMap = map[int]int{
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dao
|
package dao
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -40,15 +41,25 @@ func DeleteOperateEvent(db *DaoDB, deleteTime time.Time) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOperateEvents(db *DaoDB, name string, apiFunctions []string, operateTypes, skuIDs, storeIDs []int, fromTime, toTime time.Time, offset, pageSize int) (operateEventExt []*OperateEventExt, totalCount int, err error) {
|
func GetOperateEvents(db *DaoDB, name string, apiFunctions []string, operateTypes, skuIDs, storeIDs []int, fromTime, toTime time.Time, keyword string, errType, offset, pageSize int) (operateEventExt []*OperateEventExt, totalCount int, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, c.name
|
SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, c.name
|
||||||
FROM operate_event a
|
FROM operate_event a
|
||||||
LEFT JOIN operate_event_detail b ON a.access_uuid = b.access_uuid
|
`
|
||||||
|
if len(operateTypes) > 0 || len(skuIDs) > 0 || len(storeIDs) > 0 || keyword != "" {
|
||||||
|
sql += " LEFT JOIN operate_event_detail b ON a.access_uuid = b.access_uuid"
|
||||||
|
}
|
||||||
|
sql += `
|
||||||
LEFT JOIN user c ON c.user_id = a.user_id
|
LEFT JOIN user c ON c.user_id = a.user_id
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
`
|
`
|
||||||
sqlParams := []interface{}{}
|
sqlParams := []interface{}{}
|
||||||
|
if errType == 1 {
|
||||||
|
sql += " AND a.err_msg = ''"
|
||||||
|
}
|
||||||
|
if errType == -1 {
|
||||||
|
sql += " AND a.err_msg <> ''"
|
||||||
|
}
|
||||||
if name != "" {
|
if name != "" {
|
||||||
sql += " AND c.name LIKE ?"
|
sql += " AND c.name LIKE ?"
|
||||||
sqlParams = append(sqlParams, "%"+name+"%")
|
sqlParams = append(sqlParams, "%"+name+"%")
|
||||||
@@ -77,6 +88,20 @@ func GetOperateEvents(db *DaoDB, name string, apiFunctions []string, operateType
|
|||||||
sql += " AND b.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
sql += " AND b.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, storeIDs)
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
}
|
}
|
||||||
|
if keyword != "" {
|
||||||
|
sql += " AND ("
|
||||||
|
var apiList []string
|
||||||
|
for k, v := range model.ApiFunctionName {
|
||||||
|
if strings.Contains(v, keyword) {
|
||||||
|
apiList = append(apiList, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(apiList) > 0 {
|
||||||
|
sql += "a.api_function IN (" + GenQuestionMarks(len(apiList)) + ") OR"
|
||||||
|
}
|
||||||
|
sql += " a.err_msg LIKE ? OR b.thing_id LIKE ? OR b.store_id LIKE ? OR c.name LIKE ?)"
|
||||||
|
sqlParams = append(sqlParams, "%"+keyword+"%")
|
||||||
|
}
|
||||||
sql += `
|
sql += `
|
||||||
ORDER BY a.created_at DESC
|
ORDER BY a.created_at DESC
|
||||||
LIMIT ? OFFSET ?
|
LIMIT ? OFFSET ?
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ type OperateEvent struct {
|
|||||||
UserID string `orm:"column(user_id)" json:"userID"`
|
UserID string `orm:"column(user_id)" json:"userID"`
|
||||||
APIFunction string `orm:"column(api_function)" json:"apiFunction"`
|
APIFunction string `orm:"column(api_function)" json:"apiFunction"`
|
||||||
JsonData string `orm:"size(3200)" json:"jsonData"`
|
JsonData string `orm:"size(3200)" json:"jsonData"`
|
||||||
|
ErrCode string `orm:"size(32)" json:"errCode"`
|
||||||
|
ErrMsg string `orm:"size(3200)" json:"errMsg"`
|
||||||
|
UseTime int `json:"useTime"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *OperateEvent) TableIndex() [][]string {
|
func (v *OperateEvent) TableIndex() [][]string {
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ type StoreSkuInfoWithErr struct {
|
|||||||
StoreSkuInfo *StoreSkuInfo
|
StoreSkuInfo *StoreSkuInfo
|
||||||
CategoryName string
|
CategoryName string
|
||||||
VendoreID int
|
VendoreID int
|
||||||
|
VendoreName string
|
||||||
StoreID int
|
StoreID int
|
||||||
SyncType string
|
SyncType string
|
||||||
ErrMsg string
|
ErrMsg string
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
|
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "更新商品基础信息")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
|
||||||
}
|
}
|
||||||
if isNeedMapCat {
|
if isNeedMapCat {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
@@ -153,7 +153,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
p.updateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false)
|
p.updateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "创建商品")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "创建商品")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
vendorSkuID = jxutils.GenFakeID()
|
vendorSkuID = jxutils.GenFakeID()
|
||||||
@@ -177,7 +177,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
opResult, err2 := api.EbaiAPI.SkuDelete(ctx.GetTrackInfo(), utils.Int2Str(storeID), partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList(), nil)
|
opResult, err2 := api.EbaiAPI.SkuDelete(ctx.GetTrackInfo(), utils.Int2Str(storeID), partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList(), nil)
|
||||||
if err = err2; err2 != nil && opResult != nil {
|
if err = err2; err2 != nil && opResult != nil {
|
||||||
// if len(storeSkuList) > len(opResult.FailedList) {
|
// if len(storeSkuList) > len(opResult.FailedList) {
|
||||||
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorIDEBAI, "删除商品")
|
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorChineseNames[model.VendorIDEBAI], "删除商品")
|
||||||
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
|||||||
} else if len(vendorSkuIDs) == 1 {
|
} else if len(vendorSkuIDs) == 1 {
|
||||||
err = api.EbaiAPI.SkuOnlineOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
err = api.EbaiAPI.SkuOnlineOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "更新商品状态")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品状态")
|
||||||
}
|
}
|
||||||
return failedList, err
|
return failedList, err
|
||||||
}
|
}
|
||||||
@@ -206,13 +206,13 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
|||||||
} else if len(vendorSkuIDs) == 1 {
|
} else if len(vendorSkuIDs) == 1 {
|
||||||
err = api.EbaiAPI.SkuOfflineOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
err = api.EbaiAPI.SkuOfflineOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "更新商品状态")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品状态")
|
||||||
}
|
}
|
||||||
return failedList, err
|
return failedList, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err != nil && opResult != nil {
|
if err != nil && opResult != nil {
|
||||||
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorIDEBAI, "更新商品状态")
|
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品状态")
|
||||||
// failedList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
// failedList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
@@ -238,12 +238,12 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
|||||||
if len(storeSkuList) > 1 {
|
if len(storeSkuList) > 1 {
|
||||||
opResult, err2 := api.EbaiAPI.SkuPriceUpdateBatch(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
opResult, err2 := api.EbaiAPI.SkuPriceUpdateBatch(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
||||||
if err = err2; err != nil && opResult != nil {
|
if err = err2; err != nil && opResult != nil {
|
||||||
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorIDEBAI, "更新商品价格")
|
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品价格")
|
||||||
}
|
}
|
||||||
} else if len(storeSkuList) == 1 {
|
} else if len(storeSkuList) == 1 {
|
||||||
_, err := api.EbaiAPI.SkuPriceUpdateOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
_, err := api.EbaiAPI.SkuPriceUpdateOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "更新商品价格")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品价格")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
@@ -256,13 +256,13 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
|||||||
if len(storeSkuList) > 1 {
|
if len(storeSkuList) > 1 {
|
||||||
opResult, err2 := api.EbaiAPI.SkuStockUpdateBatch(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
opResult, err2 := api.EbaiAPI.SkuStockUpdateBatch(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
||||||
if err = err2; err != nil && opResult != nil {
|
if err = err2; err != nil && opResult != nil {
|
||||||
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorIDEBAI, "更新商品库存")
|
failedList = SelectStoreSkuListByOpResult(storeSkuList, opResult, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品库存")
|
||||||
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
}
|
}
|
||||||
} else if len(storeSkuList) == 1 {
|
} else if len(storeSkuList) == 1 {
|
||||||
err = api.EbaiAPI.SkuStockUpdateOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
err = api.EbaiAPI.SkuStockUpdateOne(ctx.GetTrackInfo(), utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDEBAI, "更新商品库存")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品库存")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
@@ -446,7 +446,7 @@ func (p *PurchaseHandler) GetSensitiveWordRegexp() *regexp.Regexp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//饿百api返回
|
//饿百api返回
|
||||||
func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult *ebaiapi.BatchOpResult, storeID, vendorID int, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult *ebaiapi.BatchOpResult, storeID int, vendorName string, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
||||||
opResultMap := make(map[int64]string)
|
opResultMap := make(map[int64]string)
|
||||||
if len(opResult.FailedList) > 0 {
|
if len(opResult.FailedList) > 0 {
|
||||||
for _, v := range opResult.FailedList {
|
for _, v := range opResult.FailedList {
|
||||||
@@ -460,7 +460,7 @@ func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult
|
|||||||
StoreSkuInfo: v,
|
StoreSkuInfo: v,
|
||||||
ErrMsg: opResultMap[utils.Str2Int64(v.VendorSkuID)],
|
ErrMsg: opResultMap[utils.Str2Int64(v.VendorSkuID)],
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
selectedStoreSkuList = append(selectedStoreSkuList, opFailed)
|
selectedStoreSkuList = append(selectedStoreSkuList, opFailed)
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
|||||||
responseList, err2 = getAPI(vendorOrgCode).FakeBatchUpdateVendibility(ctx.GetTrackInfo(), "", vendorStoreID, skuVendibilityList, ctx.GetUserName())
|
responseList, err2 = getAPI(vendorOrgCode).FakeBatchUpdateVendibility(ctx.GetTrackInfo(), "", vendorStoreID, skuVendibilityList, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorIDJD, "更新商品状态")
|
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorChineseNames[model.VendorIDJD], "更新商品状态")
|
||||||
// successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
// successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
|||||||
if len(storeSkuList) == 1 && vendorOrgCode != apimanager.FakeJdOrgCode {
|
if len(storeSkuList) == 1 && vendorOrgCode != apimanager.FakeJdOrgCode {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
_, err = getAPI(vendorOrgCode).UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), vendorStoreID, int(storeSkuList[0].VendorPrice))
|
_, err = getAPI(vendorOrgCode).UpdateStationPrice(ctx.GetTrackInfo(), utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), vendorStoreID, int(storeSkuList[0].VendorPrice))
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDJD, "更新商品价格")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJD], "更新商品价格")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
||||||
@@ -162,7 +162,7 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
|||||||
responseList, err2 = getAPI(vendorOrgCode).FakeUpdateVendorStationPrice(ctx.GetTrackInfo(), "", vendorStoreID, skuPriceInfoList)
|
responseList, err2 = getAPI(vendorOrgCode).FakeUpdateVendorStationPrice(ctx.GetTrackInfo(), "", vendorStoreID, skuPriceInfoList)
|
||||||
}
|
}
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorIDJD, "更新商品价格")
|
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorChineseNames[model.VendorIDJD], "更新商品价格")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -174,7 +174,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
|||||||
if len(storeSkuList) == 1 && vendorOrgCode != apimanager.FakeJdOrgCode {
|
if len(storeSkuList) == 1 && vendorOrgCode != apimanager.FakeJdOrgCode {
|
||||||
if globals.EnableJdStoreWrite {
|
if globals.EnableJdStoreWrite {
|
||||||
err = getAPI(vendorOrgCode).UpdateCurrentQty(ctx.GetTrackInfo(), vendorStoreID, utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), storeSkuList[0].Stock)
|
err = getAPI(vendorOrgCode).UpdateCurrentQty(ctx.GetTrackInfo(), vendorStoreID, utils.Str2Int64WithDefault(storeSkuList[0].VendorSkuID, 0), storeSkuList[0].Stock)
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDJD, "更新商品库存")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJD], "更新商品库存")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var skuStockList []*jdapi.SkuStock
|
var skuStockList []*jdapi.SkuStock
|
||||||
@@ -193,7 +193,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
|||||||
responseList, err2 = getAPI(vendorOrgCode).FakeBatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", vendorStoreID, skuStockList, ctx.GetUserName())
|
responseList, err2 = getAPI(vendorOrgCode).FakeBatchUpdateCurrentQtys(ctx.GetTrackInfo(), "", vendorStoreID, skuStockList, ctx.GetUserName())
|
||||||
}
|
}
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorIDJD, "更新商品库存")
|
failedList = SelectStoreSkuListByResponseList(storeSkuList, responseList, storeID, model.VendorChineseNames[model.VendorIDJD], "更新商品库存")
|
||||||
// successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
// successList = putils.UnselectStoreSkuListBySkuIDs(storeSkuList, utils.StringSlice2Int(getStrOutSkuIDs(responseList, false)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -241,7 +241,7 @@ func (p *PurchaseHandler) SyncStoreProducts(ctx *jxcontext.Context, vendorOrgCod
|
|||||||
}
|
}
|
||||||
|
|
||||||
//京东api返回
|
//京东api返回
|
||||||
func SelectStoreSkuListByResponseList(storeSkuList []*partner.StoreSkuInfo, responseList []*jdapi.StoreSkuBatchUpdateResponse, storeID, vendorID int, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
func SelectStoreSkuListByResponseList(storeSkuList []*partner.StoreSkuInfo, responseList []*jdapi.StoreSkuBatchUpdateResponse, storeID int, vendorName, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
||||||
responseMap := make(map[string]string)
|
responseMap := make(map[string]string)
|
||||||
if len(responseList) > 0 {
|
if len(responseList) > 0 {
|
||||||
for _, v := range responseList {
|
for _, v := range responseList {
|
||||||
@@ -255,7 +255,7 @@ func SelectStoreSkuListByResponseList(storeSkuList []*partner.StoreSkuInfo, resp
|
|||||||
StoreSkuInfo: v,
|
StoreSkuInfo: v,
|
||||||
ErrMsg: responseMap[utils.Int2Str(v.SkuID)],
|
ErrMsg: responseMap[utils.Int2Str(v.SkuID)],
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
selectedStoreSkuList = append(selectedStoreSkuList, respFailed)
|
selectedStoreSkuList = append(selectedStoreSkuList, respFailed)
|
||||||
|
|||||||
@@ -306,18 +306,18 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
if len(foodDataList) == 1 {
|
if len(foodDataList) == 1 {
|
||||||
foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"]))
|
foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"]))
|
||||||
err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0])
|
err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0])
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDMTWM, syncType)
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDMTWM], syncType)
|
||||||
} else if len(foodDataList) > 0 {
|
} else if len(foodDataList) > 0 {
|
||||||
failedFoodList, err2 := api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList)
|
failedFoodList, err2 := api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil {
|
if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil {
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, syncType)
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], syncType)
|
||||||
// successList = putils.UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
// successList = putils.UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
||||||
}
|
}
|
||||||
} else if err2 != nil && len(failedFoodList) == 0 {
|
} else if err2 != nil && len(failedFoodList) == 0 {
|
||||||
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
||||||
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, syncType)
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], syncType)
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -343,7 +343,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
if len(storeSkuList) == 1 {
|
if len(storeSkuList) == 1 {
|
||||||
err = api.MtwmAPI.RetailDelete(ctx.GetTrackInfo(), vendorStoreID, storeSkuList[0].VendorSkuID)
|
err = api.MtwmAPI.RetailDelete(ctx.GetTrackInfo(), vendorStoreID, storeSkuList[0].VendorSkuID)
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorIDMTWM, "删除商品")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDMTWM], "删除商品")
|
||||||
} else {
|
} else {
|
||||||
// todo 部分失败
|
// todo 部分失败
|
||||||
err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList())
|
err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList())
|
||||||
@@ -351,7 +351,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
if errExt, ok := err.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err.(*utils.ErrorWithCode); ok {
|
||||||
myMap := make(map[string][]*mtwmapi.AppFoodResult)
|
myMap := make(map[string][]*mtwmapi.AppFoodResult)
|
||||||
json.Unmarshal([]byte(errExt.ErrMsg()), &myMap)
|
json.Unmarshal([]byte(errExt.ErrMsg()), &myMap)
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, myMap["retail_error_list"], storeID, model.VendorIDMTWM, "批量删除商品")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, myMap["retail_error_list"], storeID, model.VendorChineseNames[model.VendorIDMTWM], "批量删除商品")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
@@ -393,13 +393,13 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
|||||||
failedFoodList, err2 := api.MtwmAPI.RetailSellStatus(ctx.GetTrackInfo(), vendorStoreID, skuList, mtwmStatus)
|
failedFoodList, err2 := api.MtwmAPI.RetailSellStatus(ctx.GetTrackInfo(), vendorStoreID, skuList, mtwmStatus)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if len(failedFoodList) > 0 {
|
if len(failedFoodList) > 0 {
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品状态")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品状态")
|
||||||
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
||||||
}
|
}
|
||||||
} else if err2 != nil && len(failedFoodList) == 0 {
|
} else if err2 != nil && len(failedFoodList) == 0 {
|
||||||
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
||||||
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品状态")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品状态")
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -413,12 +413,12 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
|||||||
failedFoodList, err2 := api.MtwmAPI.RetailSkuPrice(ctx.GetTrackInfo(), vendorStoreID, priceList)
|
failedFoodList, err2 := api.MtwmAPI.RetailSkuPrice(ctx.GetTrackInfo(), vendorStoreID, priceList)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if len(failedFoodList) > 0 {
|
if len(failedFoodList) > 0 {
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品价格")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品价格")
|
||||||
}
|
}
|
||||||
} else if err2 != nil && len(failedFoodList) == 0 {
|
} else if err2 != nil && len(failedFoodList) == 0 {
|
||||||
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
||||||
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品价格")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品价格")
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -432,7 +432,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
|||||||
failedFoodList, err2 := api.MtwmAPI.RetailSkuStock(ctx.GetTrackInfo(), vendorStoreID, stockList)
|
failedFoodList, err2 := api.MtwmAPI.RetailSkuStock(ctx.GetTrackInfo(), vendorStoreID, stockList)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if len(failedFoodList) > 0 {
|
if len(failedFoodList) > 0 {
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品库存")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品库存")
|
||||||
}
|
}
|
||||||
//if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil {
|
//if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil {
|
||||||
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
// successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
|
||||||
@@ -440,7 +440,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
|
|||||||
} else if err2 != nil && len(failedFoodList) == 0 {
|
} else if err2 != nil && len(failedFoodList) == 0 {
|
||||||
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err2.(*utils.ErrorWithCode); ok {
|
||||||
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
err = utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList)
|
||||||
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorIDMTWM, "更新商品库存")
|
failedList = SelectStoreSkuListByFoodList(storeSkuList, failedFoodList, storeID, model.VendorChineseNames[model.VendorIDMTWM], "更新商品库存")
|
||||||
}
|
}
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -558,7 +558,7 @@ func (p *PurchaseHandler) GetSensitiveWordRegexp() *regexp.Regexp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//美团api返回
|
//美团api返回
|
||||||
func SelectStoreSkuListByFoodList(storeSkuList interface{}, foodList []*mtwmapi.AppFoodResult, storeID, vendorID int, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
func SelectStoreSkuListByFoodList(storeSkuList interface{}, foodList []*mtwmapi.AppFoodResult, storeID int, vendorName, syncType string) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
|
||||||
foodMap := make(map[string]string)
|
foodMap := make(map[string]string)
|
||||||
if len(foodList) > 0 {
|
if len(foodList) > 0 {
|
||||||
for _, v := range foodList {
|
for _, v := range foodList {
|
||||||
@@ -571,7 +571,7 @@ func SelectStoreSkuListByFoodList(storeSkuList interface{}, foodList []*mtwmapi.
|
|||||||
StoreSkuInfo: v,
|
StoreSkuInfo: v,
|
||||||
ErrMsg: foodMap[v.VendorSkuID],
|
ErrMsg: foodMap[v.VendorSkuID],
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
|
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
|
||||||
@@ -593,7 +593,7 @@ func SelectStoreSkuListByFoodList(storeSkuList interface{}, foodList []*mtwmapi.
|
|||||||
StoreSkuInfo: storeSkuInfo,
|
StoreSkuInfo: storeSkuInfo,
|
||||||
ErrMsg: foodMap[v.VendorSkuID],
|
ErrMsg: foodMap[v.VendorSkuID],
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
|
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ func UnselectStoreSkuListByVendorSkuIDs(storeSkuList []*partner.StoreSkuInfo, ve
|
|||||||
return selectedStoreSkuList
|
return selectedStoreSkuList
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, vendorID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr) {
|
func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID int, vendorName, syncType string) (failedList []*partner.StoreSkuInfoWithErr) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
var errMsg string
|
var errMsg string
|
||||||
if errExt, ok := err.(*utils.ErrorWithCode); ok {
|
if errExt, ok := err.(*utils.ErrorWithCode); ok {
|
||||||
@@ -254,7 +254,7 @@ func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, ve
|
|||||||
StoreSkuInfo: storeSkuLists[0],
|
StoreSkuInfo: storeSkuLists[0],
|
||||||
ErrMsg: errMsg,
|
ErrMsg: errMsg,
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
failedList = append(failedList, storeSkuInfoWithErr)
|
failedList = append(failedList, storeSkuInfoWithErr)
|
||||||
@@ -271,7 +271,7 @@ func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, ve
|
|||||||
StoreSkuInfo: storeSkuInfo,
|
StoreSkuInfo: storeSkuInfo,
|
||||||
ErrMsg: errMsg,
|
ErrMsg: errMsg,
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
failedList = append(failedList, storeSkuInfoWithErr)
|
failedList = append(failedList, storeSkuInfoWithErr)
|
||||||
@@ -288,16 +288,16 @@ func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, ve
|
|||||||
StoreSkuInfo: storeSkuInfo,
|
StoreSkuInfo: storeSkuInfo,
|
||||||
ErrMsg: errMsg,
|
ErrMsg: errMsg,
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
failedList = append(failedList, storeSkuInfoWithErr)
|
failedList = append(failedList, storeSkuInfoWithErr)
|
||||||
} else {
|
} else {
|
||||||
storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
|
storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
|
||||||
ErrMsg: errMsg,
|
ErrMsg: errMsg,
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
VendoreID: vendorID,
|
VendoreName: vendorName,
|
||||||
SyncType: syncType,
|
SyncType: syncType,
|
||||||
}
|
}
|
||||||
failedList = append(failedList, storeSkuInfoWithErr)
|
failedList = append(failedList, storeSkuInfoWithErr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ type EventController struct {
|
|||||||
// @Param storeIDs query string false "门店ID列表"
|
// @Param storeIDs query string false "门店ID列表"
|
||||||
// @Param fromTime query string false "开始日期(包含),格式(2006-01-02 00:00:00)"
|
// @Param fromTime query string false "开始日期(包含),格式(2006-01-02 00:00:00)"
|
||||||
// @Param toTime query string false "结束日期(包含),格式(2006-01-02 00:00:00)"
|
// @Param toTime query string false "结束日期(包含),格式(2006-01-02 00:00:00)"
|
||||||
|
// @Param keyword query string false "关键字"
|
||||||
|
// @Param errType query int false "查询错误日志,默认0都查,1不查错误日志,-1只查错误日志"
|
||||||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||||||
// @Param pageSize query int false "门店列表页大小(缺省为30)"
|
// @Param pageSize query int false "门店列表页大小(缺省为30)"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
@@ -31,7 +33,7 @@ func (c *EventController) GetOperateEvents() {
|
|||||||
var apiFunctionList []string
|
var apiFunctionList []string
|
||||||
c.callGetOperateEvents(func(params *tEventGetOperateEventsParams) (retVal interface{}, errCode string, err error) {
|
c.callGetOperateEvents(func(params *tEventGetOperateEventsParams) (retVal interface{}, errCode string, err error) {
|
||||||
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList, params.SkuIDs, &skuIDList, params.ApiFunctions, &apiFunctionList, params.OperateTypes, &operateTypeList); err == nil {
|
if jxutils.Strings2Objs(params.StoreIDs, &storeIDList, params.SkuIDs, &skuIDList, params.ApiFunctions, &apiFunctionList, params.OperateTypes, &operateTypeList); err == nil {
|
||||||
retVal, err = event.GetOperateEvents(params.Ctx, params.Name, apiFunctionList, operateTypeList, skuIDList, storeIDList, params.FromTime, params.ToTime, params.Offset, params.PageSize)
|
retVal, err = event.GetOperateEvents(params.Ctx, params.Name, apiFunctionList, operateTypeList, skuIDList, storeIDList, params.FromTime, params.ToTime, params.Keyword, params.ErrType, params.Offset, params.PageSize)
|
||||||
}
|
}
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user