补充提交,好像之前修改了。。
This commit is contained in:
@@ -2,6 +2,8 @@ package cms
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -409,12 +411,12 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
|||||||
if status != model.SkuStatusDontSale {
|
if status != model.SkuStatusDontSale {
|
||||||
reason += DatAanalyse7
|
reason += DatAanalyse7
|
||||||
}
|
}
|
||||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice,vendorPrice, reason}
|
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, reason}
|
||||||
diffData.AppendData(vendorID, outPutData)
|
diffData.AppendData(vendorID, outPutData)
|
||||||
}
|
}
|
||||||
if !isSaleStatusDiff && !isNameDiff {
|
if !isSaleStatusDiff && !isNameDiff {
|
||||||
if status != model.SkuStatusDontSale {
|
if status != model.SkuStatusDontSale {
|
||||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice,vendorPrice, DatAanalyse7}
|
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, DatAanalyse7}
|
||||||
diffData.AppendData(vendorID, outPutData)
|
diffData.AppendData(vendorID, outPutData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -431,7 +433,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
|||||||
if status != model.SkuStatusDontSale {
|
if status != model.SkuStatusDontSale {
|
||||||
reason += DatAanalyse7
|
reason += DatAanalyse7
|
||||||
}
|
}
|
||||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", jxSkuPrice,"", reason}
|
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", jxSkuPrice, "", reason}
|
||||||
diffData.AppendData(vendorID, outPutData)
|
diffData.AppendData(vendorID, outPutData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -447,7 +449,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
|||||||
jxSkuInfo := filterJxSkuInfoMap[skuID]
|
jxSkuInfo := filterJxSkuInfoMap[skuID]
|
||||||
/*平台有,京西没有*/
|
/*平台有,京西没有*/
|
||||||
if jxSkuInfo == nil {
|
if jxSkuInfo == nil {
|
||||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", "", "", "", vendorSkuDetailName, "", vendorSkuSaleStatusName, "",vendorPrice, DatAanalyse1}
|
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", "", "", "", vendorSkuDetailName, "", vendorSkuSaleStatusName, "", vendorPrice, DatAanalyse1}
|
||||||
diffData.AppendData(vendorID, outPutData)
|
diffData.AppendData(vendorID, outPutData)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -498,10 +500,10 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool
|
|||||||
|
|
||||||
vendorSkuInfoMap := filterVendorSkuInfoMap[skuid]
|
vendorSkuInfoMap := filterVendorSkuInfoMap[skuid]
|
||||||
jxSkuSaleStatus := jxSkuInfo.Status
|
jxSkuSaleStatus := jxSkuInfo.Status
|
||||||
jxSkuSaleStatusName := GetSkuSaleStatusName(jxSkuSaleStatus+3)
|
jxSkuSaleStatusName := GetSkuSaleStatusName(jxSkuSaleStatus + 3)
|
||||||
skuIDStr := utils.Int2Str(skuid)
|
skuIDStr := utils.Int2Str(skuid)
|
||||||
if vendorSkuInfoMap != nil {
|
if vendorSkuInfoMap != nil {
|
||||||
vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfoMap.SkuList[0].Status+3)
|
vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfoMap.SkuList[0].Status + 3)
|
||||||
vendorSkuDetailName := vendorSkuInfoMap.SkuList[0].SkuName
|
vendorSkuDetailName := vendorSkuInfoMap.SkuList[0].SkuName
|
||||||
isSaleStatusDiff := jxSkuSaleStatusName != vendorSkuSaleStatusName
|
isSaleStatusDiff := jxSkuSaleStatusName != vendorSkuSaleStatusName
|
||||||
isNameDiff := strings.Compare(jxSkuDetailName, vendorSkuDetailName) != 0
|
isNameDiff := strings.Compare(jxSkuDetailName, vendorSkuDetailName) != 0
|
||||||
@@ -526,7 +528,7 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool
|
|||||||
if len(vendorSkuInfo.SkuList) > 0 {
|
if len(vendorSkuInfo.SkuList) > 0 {
|
||||||
skuIDStr := utils.Int2Str(skuID)
|
skuIDStr := utils.Int2Str(skuID)
|
||||||
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
|
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
|
||||||
vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status+3)
|
vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status + 3)
|
||||||
|
|
||||||
jxSkuInfo := filterJxSkuInfoMap2[skuID]
|
jxSkuInfo := filterJxSkuInfoMap2[skuID]
|
||||||
if jxSkuInfo == nil {
|
if jxSkuInfo == nil {
|
||||||
@@ -557,7 +559,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
}
|
}
|
||||||
/************************************************update**************************************************/
|
/************************************************update**************************************************/
|
||||||
//自己存值
|
//自己存值
|
||||||
|
a := func() {
|
||||||
for vendorID, _ := range vendorNameList {
|
for vendorID, _ := range vendorNameList {
|
||||||
//filter for vendorID
|
//filter for vendorID
|
||||||
if len(vendorMap) > 0 {
|
if len(vendorMap) > 0 {
|
||||||
@@ -617,16 +619,13 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*第二步 为了获取 filterJxDepotUnSaleSkuIds*/
|
}
|
||||||
depotDiffData.InitData2()
|
|
||||||
CompareJxAndMultiVenderDepot(ctx, vendorMap)
|
|
||||||
/*第二步*/
|
|
||||||
/************************************************update****************************************************/
|
|
||||||
|
|
||||||
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
/************************************************update****************************************************/
|
||||||
//1.获取京西本地所有门店信息 store、place、user表联查 jxStoreInfoList
|
//1.获取京西本地所有门店信息 store、place、user表联查 jxStoreInfoList
|
||||||
//2.过滤所有门店信息,只留下传进来的vendorMap,storeIDMap中对应的平台和门台信息 filterStoreList
|
//2.过滤所有门店信息,只留下传进来的vendorMap,storeIDMap中对应的平台和门台信息 filterStoreList
|
||||||
//3.判断是否多平台门店,两种情况两种处理
|
//3.判断是否多平台门店,两种情况两种处理
|
||||||
|
b := func() {
|
||||||
jxStoreInfoList, err := GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0)
|
jxStoreInfoList, err := GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
baseapi.SugarLogger.Errorf("CheckSkuDiffBetweenJxAndVendor GetStores error:%v", err)
|
baseapi.SugarLogger.Errorf("CheckSkuDiffBetweenJxAndVendor GetStores error:%v", err)
|
||||||
@@ -634,10 +633,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
//获取总共几个门店任务
|
//获取总共几个门店任务
|
||||||
filterStoreList := GetFilterStoreList(jxStoreInfoList.Stores, vendorMap, storeIDMap)
|
filterStoreList := GetFilterStoreList(jxStoreInfoList.Stores, vendorMap, storeIDMap)
|
||||||
diffData.InitData()
|
diffData.InitData()
|
||||||
//循环门店store
|
jxStoreInfoListValue := filterStoreList[0]
|
||||||
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
||||||
//func() (retVal interface{}, err error) {
|
|
||||||
jxStoreInfoListValue := batchItemList[0].(*StoreExt)
|
|
||||||
storeID := jxStoreInfoListValue.ID
|
storeID := jxStoreInfoListValue.ID
|
||||||
storeIDStr := utils.Int2Str(storeID)
|
storeIDStr := utils.Int2Str(storeID)
|
||||||
storeName := jxStoreInfoListValue.Name
|
storeName := jxStoreInfoListValue.Name
|
||||||
@@ -654,7 +650,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
if multiFlag == false {
|
if multiFlag == false {
|
||||||
jxSkuInfoDataMulti, _ = GetStoreSkus(ctx, storeID, filterJxDepotUnSaleSkuIds, true, "", true, false, map[string]interface{}{}, 0, -1)
|
jxSkuInfoDataMulti, _ = GetStoreSkus(ctx, storeID, filterJxDepotUnSaleSkuIds, true, "", true, false, map[string]interface{}{}, 0, -1)
|
||||||
/*重新计算价格*/
|
/*重新计算价格*/
|
||||||
SetJxPrice(jxSkuInfoDataMulti,storeID)
|
SetJxPrice(jxSkuInfoDataMulti, storeID)
|
||||||
filterJxSkuInfoMapMulti = GetFilterJxSkuInfoMap(jxSkuInfoDataMulti.SkuNames) //map[京西商品ID:StoreSkuNameExt]
|
filterJxSkuInfoMapMulti = GetFilterJxSkuInfoMap(jxSkuInfoDataMulti.SkuNames) //map[京西商品ID:StoreSkuNameExt]
|
||||||
multiFlag = true
|
multiFlag = true
|
||||||
}
|
}
|
||||||
@@ -672,7 +668,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
if partner.IsMultiStore(vendorID) {
|
if partner.IsMultiStore(vendorID) {
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
|
||||||
allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID, vendorListValue.VendorOrgCode)
|
allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID, vendorListValue.VendorOrgCode)
|
||||||
skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, vendorListValue.VendorOrgCode, task, storeID, vendorStoreID, allSkuInfoList)
|
skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, vendorListValue.VendorOrgCode, nil, storeID, vendorStoreID, allSkuInfoList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err)
|
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err)
|
||||||
} else if len(skuBareInfoList) > 0 {
|
} else if len(skuBareInfoList) > 0 {
|
||||||
@@ -682,7 +678,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||||
vendorSkuInfoList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, nil)
|
vendorSkuInfoList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, storeID, vendorStoreID, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusFullInfo error:%v", err)
|
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusFullInfo error:%v", err)
|
||||||
} else if len(vendorSkuInfoList) > 0 {
|
} else if len(vendorSkuInfoList) > 0 {
|
||||||
@@ -693,26 +689,114 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return retVal, err
|
|
||||||
}
|
|
||||||
taskParallel := tasksch.NewParallelTask("京西和平台商品差异对比-门店商品对比", tasksch.NewParallelConfig().SetParallelCount(parallelCount), ctx, taskFunc, filterStoreList)
|
|
||||||
tasksch.HandleTask(taskParallel, task, true).Run()
|
|
||||||
_, err = taskParallel.GetResult(0)
|
|
||||||
if err != nil {
|
|
||||||
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor taskParallel error:%v", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************第三步****************************/
|
/********************************第三步****************************/
|
||||||
WriteToExcel(task, diffData.diffDataMap, depotDiffData.diffDataMap)
|
c := func(data map[int][]DiffData, depotData map[int][]DepotDiffData) {
|
||||||
|
var sheetList []*excel.Obj2ExcelSheetConfig
|
||||||
|
for key, value := range data {
|
||||||
|
sheetName := vendorNameList[key]
|
||||||
|
if partner.IsMultiStore(key) {
|
||||||
|
excelConfDepot := &excel.Obj2ExcelSheetConfig{
|
||||||
|
Title: sheetName + "商品库与京西商品库对比",
|
||||||
|
Data: depotData[key],
|
||||||
|
CaptionList: deoptTitleList,
|
||||||
|
}
|
||||||
|
sheetList = append(sheetList, excelConfDepot)
|
||||||
|
}
|
||||||
|
excelConf := &excel.Obj2ExcelSheetConfig{
|
||||||
|
Title: sheetName,
|
||||||
|
Data: value,
|
||||||
|
CaptionList: titleList,
|
||||||
|
}
|
||||||
|
sheetList = append(sheetList, excelConf)
|
||||||
|
if needStatistic {
|
||||||
|
statisticSheet := AddStatisticSheet(sheetName, value)
|
||||||
|
sheetList = append(sheetList, statisticSheet)
|
||||||
|
}
|
||||||
|
baseapi.SugarLogger.Debugf("WriteToExcel:append:%s count:%d", sheetName, len(value))
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sheetList) > 0 {
|
||||||
|
excelBin := excel.Obj2Excel(sheetList)
|
||||||
|
sheetList = nil
|
||||||
|
timeStr := utils.Int64ToStr(time.Now().Unix())
|
||||||
|
diffFullFileName := diffFileName[IsJXCS()] + timeStr + fileExt
|
||||||
|
if canWriteTolocal {
|
||||||
|
jxutils.WriteFile(diffFullFileName, excelBin)
|
||||||
|
}
|
||||||
|
baseapi.SugarLogger.Debugf("WriteToExcel:save %s success", diffFullFileName)
|
||||||
|
//上传
|
||||||
|
downloadURL, err := jxutils.UploadExportContent(excelBin, diffFullFileName)
|
||||||
|
if err != nil {
|
||||||
|
baseapi.SugarLogger.Errorf("WriteToExcel:upload %s failed error:%v", diffFullFileName, err)
|
||||||
|
} else {
|
||||||
|
baseapi.SugarLogger.Debugf("WriteToExcel:upload %s success, downloadURL: %s", diffFullFileName, downloadURL)
|
||||||
|
/*************发送钉钉消息**************/
|
||||||
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "", "异步任务完成", "京西平台对比数据上传成功:Excel下载地址是 "+downloadURL)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
baseapi.SugarLogger.Debug("WriteToExcel:No diff data!!!")
|
||||||
|
}
|
||||||
|
//}
|
||||||
endProcessTime := time.Now().Unix()
|
endProcessTime := time.Now().Unix()
|
||||||
diff := endProcessTime - startProcessTime
|
diff := endProcessTime - startProcessTime
|
||||||
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor end time: %v", time.Now())
|
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor end time: %v", time.Now())
|
||||||
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor cost time: %d sec", diff)
|
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor cost time: %d sec", diff)
|
||||||
/********************************第三步****************************/
|
|
||||||
return result, err
|
|
||||||
}
|
}
|
||||||
taskSeq := tasksch.NewSeqTask("京西和平台商品差异对比-序列任务", ctx, taskSeqFunc, 4)
|
apiover := make(chan int, 1)
|
||||||
tasksch.HandleTask(taskSeq, nil, true).Run()
|
compover := make(chan int, 1)
|
||||||
|
over := false
|
||||||
|
/********************************第三步****************************/
|
||||||
|
/*异步任务*/
|
||||||
|
/************************************************************************************/
|
||||||
|
go func() {
|
||||||
|
defer func() {
|
||||||
|
if recover() != nil {
|
||||||
|
beego.Info("执行任务失败")
|
||||||
|
panic("API调用失败")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
a()
|
||||||
|
depotDiffData.InitData2()
|
||||||
|
CompareJxAndMultiVenderDepot(ctx, vendorMap)
|
||||||
|
apiover <- 0
|
||||||
|
}()
|
||||||
|
/*a等待a现成执行完*/
|
||||||
|
go func() {
|
||||||
|
for !over {
|
||||||
|
select {
|
||||||
|
case <-apiover:
|
||||||
|
/*第二步 为了获取 filterJxDepotUnSaleSkuIds*/
|
||||||
|
go func() {
|
||||||
|
defer func() {
|
||||||
|
if recover() != nil {
|
||||||
|
beego.Info("比较任务失败")
|
||||||
|
panic("比较任务失败")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
b()
|
||||||
|
compover <- 0 //比较任务完成
|
||||||
|
}()
|
||||||
|
/*第二步*/
|
||||||
|
case <-compover:
|
||||||
|
go func() {
|
||||||
|
defer func() {
|
||||||
|
if recover() != nil {
|
||||||
|
beego.Info("写入任务失败")
|
||||||
|
panic("写入任务失败")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
c(diffData.diffDataMap, depotDiffData.diffDataMap)
|
||||||
|
fmt.Println("任务执行完成")
|
||||||
|
over = true
|
||||||
|
}()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
/************************************************************************************/
|
||||||
}
|
}
|
||||||
|
|
||||||
//入口函数,校验本地商品京西和其他平台的差异
|
//入口函数,校验本地商品京西和其他平台的差异
|
||||||
@@ -932,3 +1016,20 @@ func WriteToExcel(task *tasksch.SeqTask, data map[int][]DiffData, depotData map[
|
|||||||
baseapi.SugarLogger.Debug("WriteToExcel:No diff data!!!")
|
baseapi.SugarLogger.Debug("WriteToExcel:No diff data!!!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetAAJxPrice(jxSkuInfoDataMulti *dao.StoreSkuNamesInfo, storeId int) (err error) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeId, model.VendorIDJX)
|
||||||
|
if err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
/*重新计算京西价格*/
|
||||||
|
for _, values := range jxSkuInfoDataMulti.SkuNames {
|
||||||
|
for _, value := range values.Skus {
|
||||||
|
value.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), value.JxPrice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*重新计算京西价格*/
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package cms
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestCheckSkuDiffBetweenJxAndVendor(t *testing.T) {
|
|
||||||
vendorIDList := []int{}
|
|
||||||
storeIDList := []int{}
|
|
||||||
CheckSkuDiffBetweenJxAndVendor(jxcontext.AdminCtx, vendorIDList, storeIDList)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user