From dec577d5fb3e85e26b7f6226f24e08100cee8a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 11 Feb 2020 14:38:59 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=97=A8=E5=BA=97=E5=95=86=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 +- business/model/dao/store_sku.go | 6 +++++- business/model/store.go | 4 ++++ business/partner/purchase/ebai/store_sku2.go | 4 +--- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 6e500557a..926f6a20b 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -420,7 +420,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } } else { if sku.MergedStatus == model.SkuStatusNormal { - if dao.IsVendorThingIDEmpty(sku.VendorCatID) { + if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) { globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID) } else { createList = append(createList, sku) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index a92cb0fca..03a674d7c 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -66,6 +66,7 @@ type StoreSkuSyncInfo struct { ExdSkuID string `orm:"column(exd_sku_id)"` ExdSkuName string ExdUpc int + StoreName string // sku_name Prefix string @@ -388,7 +389,8 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, t13.%s desc_img, - t4.%s_category_id vendor_vendor_cat_id` + t4.%s_category_id vendor_vendor_cat_id, + ts.name store_name` fmtParams := []interface{}{ skuVendorIDField, fieldPrefix, fieldPrefix, fieldPrefix, GetDataResFieldName(vendorID), GetDataResFieldName(vendorID), @@ -413,6 +415,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo sql += ` FROM store_sku_bind t1 JOIN store_map t14 ON t14.store_id = t1.store_id AND t14.vendor_id = ? AND t14.deleted_at = ? + LEFT JOIN store ts ON ts.id = t1.store_id AND ts.delete_at = ? LEFT JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ?/* AND t2.status = ?*/ LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?/* AND t3.status = ?*/ LEFT JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ? @@ -425,6 +428,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo utils.DefaultTimeValue, // model.SkuStatusNormal, utils.DefaultTimeValue, // model.SkuStatusNormal, utils.DefaultTimeValue, + utils.DefaultTimeValue, } if globals.IsStoreSkuAct { sql += ` diff --git a/business/model/store.go b/business/model/store.go index 474222ce4..0a21c92d2 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -55,6 +55,10 @@ const ( AutoReplyDisabled = 2 // 禁止自动回复 ) +const ( + ExdStoreName = "饿鲜达" +) + var ( StoreStatusName = map[int]string{ StoreStatusDisabled: "禁用", diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index cc8be4b3f..ffe7f271d 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -20,7 +20,6 @@ import ( const ( defVendorCatID = 201222934 // 其他蔬菜 - exdStoreName = "饿鲜达" ) var ( @@ -148,8 +147,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v isExd bool = false customSkuID int64 ) - store, _ := dao.GetStoreDetail(dao.GetDB(), storeSku.StoreID, model.VendorIDEBAI) - if strings.Contains(store.Name, exdStoreName) { + if strings.Contains(storeSku.StoreName, model.ExdStoreName) { isExd = true customSkuID = utils.Str2Int64(storeSku.ExdSkuID) } else { From 7069cac02bb9a10a30c59fcc3a5bf86cac3b2b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 11 Feb 2020 14:42:49 +0800 Subject: [PATCH 02/12] =?UTF-8?q?sql=E9=94=99=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 03a674d7c..7cfc3a296 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -415,7 +415,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo sql += ` FROM store_sku_bind t1 JOIN store_map t14 ON t14.store_id = t1.store_id AND t14.vendor_id = ? AND t14.deleted_at = ? - LEFT JOIN store ts ON ts.id = t1.store_id AND ts.delete_at = ? + LEFT JOIN store ts ON ts.id = t1.store_id AND ts.deleted_at = ? LEFT JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ?/* AND t2.status = ?*/ LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?/* AND t3.status = ?*/ LEFT JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ? From 41e8bf6fff4c512271e52352088ee8da397e2357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 11 Feb 2020 17:18:23 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=96=B0=E5=BB=BA=E5=88=86=E7=B1=BB=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 9 +++++---- business/partner/purchase/ebai/store_sku2.go | 8 +++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 7cfc3a296..342e612b5 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -63,10 +63,11 @@ type StoreSkuSyncInfo struct { BindDeletedAt time.Time `orm:"type(datetime)" json:"bindDeletedAt"` model.Sku - ExdSkuID string `orm:"column(exd_sku_id)"` - ExdSkuName string - ExdUpc int - StoreName string + ExdSkuID string `orm:"column(exd_sku_id)"` + ExdSkuName string + ExdUpc int + ExdCategoryThirdID int `orm:"column(exd_category_third_id)"` + StoreName string // sku_name Prefix string diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index ffe7f271d..c826a89de 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -300,16 +300,18 @@ func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate, isE "left_num": model.MaxStoreSkuStockQty, // "category_id": utils.Str2Int64(storeSku.VendorCatID), "predict_cat": 0, // 不使用推荐类目 - "cat3_id": getEbaiCat(storeSku.VendorVendorCatID), - "weight": storeSku.Weight, - "photos": photos, + // "cat3_id": getEbaiCat(storeSku.VendorVendorCatID), + "weight": storeSku.Weight, + "photos": photos, } if !isExd { params["category_id"] = utils.Str2Int64(storeSku.VendorCatID) params["name"] = utils.LimitMixedStringLen(storeSku.SkuName, ebaiapi.MaxSkuNameByteCount) + params["cat3_id"] = getEbaiCat(storeSku.VendorVendorCatID) } else { params["upc"] = storeSku.ExdUpc params["name"] = storeSku.ExdSkuName + params["cat3_id"] = storeSku.ExdCategoryThirdID } if storeSku.DescImg != "" { params["rtf"] = storeSku.DescImg From 222b928e41769ae05c7f8c74fa1ad2b82eb276f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 11 Feb 2020 17:30:24 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=95=86=E5=93=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/ebai/store_sku2.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index c826a89de..9685a7679 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -119,7 +119,11 @@ func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) { func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isNeedMapCat bool) (failedList []*partner.StoreSkuInfoWithErr, err error) { storeSku := storeSkuList[0] strStoreID := utils.Int2Str(storeID) - params := genSkuParamsFromStoreSkuInfo2(storeSku, false, false) + isExd := false + if strings.Contains(storeSku.StoreName, model.ExdStoreName) { + isExd = true + } + params := genSkuParamsFromStoreSkuInfo2(storeSku, false, isExd) if globals.EnableEbaiStoreWrite { _, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params) if err != nil { From 129ce499b7020e48193a5598000068fe0074502e Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 11 Feb 2020 17:28:53 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E4=BA=AC=E8=A5=BF=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=9A=8F=E6=84=8F=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1e9b1457c..e68a63367 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -551,11 +551,11 @@ func SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) } func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { - if order.Status < model.OrderStatusDelivering { + if true { //order.Status < model.OrderStatusDelivering { + errList := errlist.New() db := dao.GetDB() payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID)) if err = err2; err == nil { - errList := errlist.New() for _, orderPay := range payList { if orderPay.Status == model.PayStatusYes { // refundID := utils.Int64ToStr(GenRefundID(order)) @@ -573,11 +573,15 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) errList.AddErr(err2) } } - if errList.GetErrListAsOne() == nil { - errList.AddErr(changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason)) - } - err = errList.GetErrListAsOne() + } else if dao.IsNoRowsError(err) { + err = nil + } else { + errList.AddErr(err) } + if errList.GetErrListAsOne() == nil { + errList.AddErr(changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason)) + } + err = errList.GetErrListAsOne() } else { err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status]) } From 4d9c9331677b7f09c48791f9dced1ebe831a8136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 11 Feb 2020 18:25:58 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E5=90=88?= =?UTF-8?q?=E5=B9=B6=EF=BC=8C=E6=8C=89=E7=BE=8E=E5=9B=A2=E8=B0=83=E4=BB=B7?= =?UTF-8?q?=E5=8C=85=E5=88=B7=E6=96=B0=E4=BA=AC=E8=A5=BF=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 9 ++ business/jxstore/cms/store_sku.go | 156 ++++++++++++------- business/partner/purchase/ebai/store_sku2.go | 4 +- conf/app.conf | 3 +- controllers/cms_sku.go | 13 ++ controllers/cms_store_sku.go | 3 +- globals/api/api.go | 4 +- routers/commentsRouter_controllers.go | 9 ++ 8 files changed, 140 insertions(+), 61 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 4e8bce85e..1938a4a90 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1443,3 +1443,12 @@ func DeleteSkuNameExPrefixOverdue(db *dao.DaoDB) (err error) { _, err = dao.DeleteSkuNameExPrefixOverdue(db) return err } + +func SumExianDaDepot() (err error) { + // result, err := api.EbaiAPI.GetExianDaSkuDepot() + // for _, v := range result { + // v.ElemeGoodsID + // v.ImageURL + // } + return err +} diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 660540f9a..879648ceb 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3543,7 +3543,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i return hint, err } -func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, isAsync, isContinueWhenError bool) (hint string, err error) { +func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) { var ( db = dao.GetDB() jdMap = make(map[int][]*JdStoreSkus) @@ -3553,67 +3553,111 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: - for _, v := range jdStoreSkus { - var ( - pricePercentagePack []*model.PricePercentageItem - cats []*model.ThingMap - skus []*model.SkuAndName - ) - sql := ` - SELECT t1.* - FROM thing_map t1 - WHERE t1.deleted_at = ? AND t1.thing_type = ? - AND t1.vendor_thing_id = ? - ` - sqlParams := []interface{}{ - utils.DefaultTimeValue, - model.ThingTypeSku, - v.JdSkuID, - } - err = dao.GetRows(db, &cats, sql, sqlParams...) - if len(cats) > 0 { - skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil) - if err != nil || len(skus) == 0 { - return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID) + if vendorID == model.VendorIDJD { + for _, v := range jdStoreSkus { + var ( + pricePercentagePack []*model.PricePercentageItem + cats []*model.ThingMap + skus []*model.SkuAndName + ) + sql := ` + SELECT t1.* + FROM thing_map t1 + WHERE t1.deleted_at = ? AND t1.thing_type = ? + AND t1.vendor_thing_id = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + model.ThingTypeSku, + v.JdSkuID, } - } else { - return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID) - } - store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), model.VendorIDJD) - if err != nil || store == nil { - return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID) - } - err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) - jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price) - jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ - JdSkuID: skus[0].NameID, - Price: jxPrice, - }) - } - for k, v := range jdMap { - var skuNameMap = make(map[int]int) - for _, vv := range v { - if skuNameMap[vv.JdSkuID] != 0 { - if skuNameMap[vv.JdSkuID] > vv.Price { - skuNameMap[vv.JdSkuID] = vv.Price + err = dao.GetRows(db, &cats, sql, sqlParams...) + if len(cats) > 0 { + skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil) + if err != nil || len(skus) == 0 { + return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID) } } else { - skuNameMap[vv.JdSkuID] = vv.Price + return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID) + } + store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), vendorID) + if err != nil || store == nil { + return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID) + } + err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) + jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price) + jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ + JdSkuID: skus[0].NameID, + Price: jxPrice, + }) + } + for k, v := range jdMap { + var skuNameMap = make(map[int]int) + for _, vv := range v { + if skuNameMap[vv.JdSkuID] != 0 { + if skuNameMap[vv.JdSkuID] > vv.Price { + skuNameMap[vv.JdSkuID] = vv.Price + } + } else { + skuNameMap[vv.JdSkuID] = vv.Price + } + } + jxMap[k] = skuNameMap + } + for k, v := range jxMap { + for kk, vv := range v { + result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) + if len(result) > 0 && err == nil { + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) + } + } } } - jxMap[k] = skuNameMap - } - for k, v := range jxMap { - for kk, vv := range v { - result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) - if len(result) > 0 && err == nil { - if result[0].UnitPrice > vv { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: k, - NameID: kk, - UnitPrice: vv, + } else if vendorID == model.VendorIDMTWM { + for _, v := range jdStoreSkus { + var ( + pricePercentagePack []*model.PricePercentageItem + ) + skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil) + store, _ := dao.GetStoreDetail(db, v.JdStoreID, vendorID) + err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) + jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price) + jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{ + JdSkuID: skus[0].NameID, + Price: jxPrice, + }) + } + for k, v := range jdMap { + var skuNameMap = make(map[int]int) + for _, vv := range v { + if skuNameMap[vv.JdSkuID] != 0 { + if skuNameMap[vv.JdSkuID] > vv.Price { + skuNameMap[vv.JdSkuID] = vv.Price + } + } else { + skuNameMap[vv.JdSkuID] = vv.Price + } + } + jxMap[k] = skuNameMap + } + for k, v := range jxMap { + for kk, vv := range v { + result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) + if len(result) > 0 && err == nil { + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) } - param = append(param, storeSkuBindInfo) } } } diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 9685a7679..84d93c9d6 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -129,7 +129,7 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息") } - if isNeedMapCat { + if isNeedMapCat && !isExd { utils.CallFuncAsync(func() { api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) }) @@ -161,7 +161,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v params := genSkuParamsFromStoreSkuInfo2(storeSku, true, isExd) if globals.EnableEbaiStoreWrite { strStoreID := utils.Int2Str(storeID) - if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil { + if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil && !isExd { utils.AfterFuncWithRecover(5*time.Second, func() { api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) // 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下 diff --git a/conf/app.conf b/conf/app.conf index c8214c064..8292692a1 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -66,6 +66,7 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq" ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" +ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d4188f026ac01fc93656266683e8dfb3127c2fdf894259e9034125ff3bdd2a997a385802ee3ef1802ba93a04acea34fde2d2b6e802c5dcd4ec6e3f4ad909a1d806e3ceeb349ed726b03d60ed1fe7010d4140aa338d9c5f05e3fec172c78d3d7f0ca579d61b7015af1bf99aa46b04d2b8a64aa50646dc09afe94b6b60e0ba9a933635db5e8b2a035e9b6d693b289acf1b256d5b9a3f8478c87b0b009115bfd1394f20bb5a0dc2c07b8d013a25f286ec6bf7f2d86010d65507e31358834b7a6b58fbd88cb3f1a12cf71c997b91c1527f6f3c10693f7c2bd6073da8633a98cd2dc1114dfa5be5ee0e60b02cf7e4a94d0fb563a8c01717e7c050f02249117219c07a2eb211577c208ba77f4d536fa25139bc249be93b38d6fc495ef67a32aa206835d177db402bc534de1d29caf4f6b4fbcd912c13f167d00d1732222744c336a5189728f72fb5e153c4b1164171cfb0c811f34f4c2fedd43f721b8706b43f8d631251c" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" @@ -280,7 +281,7 @@ weixinSecret = "ba32b269a068a5b72486a0beafd171e8" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" [alpha] -httpport = 8088 +httpport = 8080 # xiaan jdOrgCode = "82029" diff --git a/controllers/cms_sku.go b/controllers/cms_sku.go index 421308aa4..f28836c62 100644 --- a/controllers/cms_sku.go +++ b/controllers/cms_sku.go @@ -415,3 +415,16 @@ func (c *SkuController) UpdateSkuNamesExPrefix() { return retVal, "", err }) } + +// @Title 合并饿鲜达商品库 +// @Description 合并饿鲜达商品库 +// @Param token header string true "认证token" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /SumExianDaDepot [put] +func (c *SkuController) SumExianDaDepot() { + c.callSumExianDaDepot(func(params *tSkuSumExianDaDepotParams) (retVal interface{}, errCode string, err error) { + err = cms.SumExianDaDepot() + return retVal, "", err + }) +} diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 7e879b6f4..72632ae0c 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -673,6 +673,7 @@ func (c *StoreSkuController) SendSeckillSkusCountMsg() { // @Description 根据平台价反算京西价 // @Param token header string true "认证token" // @Param payload formData string true "json数据,JdStoreSkus对象" +// @Param vendorID formData int true "厂商ID" // @Param isAsync formData bool true "是否异步,缺省是同步" // @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false" // @Success 200 {object} controllers.CallResult @@ -684,7 +685,7 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() { if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err != nil { return retVal, "", err } - retVal,err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.IsAsync, params.IsContinueWhenError) + retVal, err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.VendorID, params.IsAsync, params.IsContinueWhenError) return retVal, "", err }) } diff --git a/globals/api/api.go b/globals/api/api.go index e797f0471..cf7608f49 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -124,9 +124,11 @@ func Init() { EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") - if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { + ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") + if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" { EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) + EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) } } else { EbaiAPI = nil diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index b059096c5..b2a20cdfc 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1359,6 +1359,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], + beego.ControllerComments{ + Method: "SumExianDaDepot", + Router: `/SumExianDaDepot`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], beego.ControllerComments{ Method: "SyncCategory", From aec442b5e2ebb536ca49d2f541f57afd3706e22a Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 12 Feb 2020 08:40:18 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Store.OperatorPhone3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 51 ++++++++------ business/jxstore/cms/store.go | 55 +++++++-------- business/jxstore/cms/store_sku.go | 46 ++++++------- business/model/dao/dao_user.go | 67 +++++++++---------- business/model/dao/report.go | 9 ++- business/model/dao/store.go | 9 ++- business/model/store.go | 12 ++-- 7 files changed, 128 insertions(+), 121 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 3afe62132..1554e5e2c 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1389,13 +1389,8 @@ func isOrderCanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan bool) { //订单预计利润若低于0,则向门店运营负责人发送钉钉消息 func OrderProfitWarning(order *model.GoodsOrder) { - var ( - operatorName string - operatorPhone string - noticeMsg string - profit float64 - storeID int - ) + var profit float64 + db := dao.GetDB() if order == nil { return @@ -1404,7 +1399,7 @@ func OrderProfitWarning(order *model.GoodsOrder) { globals.SugarLogger.Debugf("OrderProfitWarning TotalShopMoney=0 orderID:%s", order.VendorOrderID) return } - storeID = jxutils.GetShowStoreIDFromOrder(order) + storeID := jxutils.GetShowStoreIDFromOrder(order) storeDetail, err := dao.GetStoreDetail(db, storeID, order.VendorID) if storeDetail != nil && err == nil { payPercentage := storeDetail.PayPercentage @@ -1414,17 +1409,13 @@ func OrderProfitWarning(order *model.GoodsOrder) { profit = utils.Str2Float64(utils.Int64ToStr(order.TotalShopMoney*int64(payPercentage)/200)) / 100 } if profit < 0 { - if storeDetail.OperatorPhone != "" { - operatorName = storeDetail.OperatorName - operatorPhone = storeDetail.OperatorPhone - } else if storeDetail.OperatorPhone2 != "" { - operatorName = storeDetail.OperatorName2 - operatorPhone = storeDetail.OperatorPhone2 - } - noticeMsg = fmt.Sprintf("利润 :[%v],运营负责人:[%v],门店ID:[%v],平台门店ID[%v],门店名:[%v],订单号(点击进入详情):%v", profit, operatorName, order.StoreID, order.VendorStoreID, order.StoreName, globals.BackstageHost+"/#/ordermanager/"+order.VendorOrderID) - user, err := dao.GetUserByID(db, "mobile", operatorPhone) - if user != nil && err == nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "警告!此订单利润低于0", noticeMsg) + operatorPhone, operatorName := getOrderOperatorInfo(order, storeDetail) + if operatorPhone != "" { + noticeMsg := fmt.Sprintf("利润 :[%v],运营负责人:[%v],门店ID:[%v],平台门店ID[%v],门店名:[%v],订单号(点击进入详情):%v", profit, operatorName, order.StoreID, order.VendorStoreID, order.StoreName, globals.BackstageHost+"/#/ordermanager/"+order.VendorOrderID) + user, err := dao.GetUserByID(db, "mobile", operatorPhone) + if user != nil && err == nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "警告!此订单利润低于0", noticeMsg) + } } } } @@ -1436,8 +1427,11 @@ func (s *DefScheduler) notifyOrderStakeHolder(order *model.GoodsOrder, msgTitle, } db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) - if err == nil && storeDetail.OperatorPhone != "" { - userMobiles = append(userMobiles, storeDetail.OperatorPhone) + if err == nil { + operatorPhone, _ := getOrderOperatorInfo(order, storeDetail) + if operatorPhone != "" { + userMobiles = append(userMobiles, operatorPhone) + } } if len(userMobiles) > 0 { if msgTitle == "" { @@ -1454,3 +1448,18 @@ func (s *DefScheduler) notifyOrderStakeHolder(order *model.GoodsOrder, msgTitle, } return err } + +func getOrderOperatorInfo(order *model.GoodsOrder, storeDetail *dao.StoreDetail) (operatorPhone, operatorName string) { + switch order.VendorID { + case model.VendorIDJD: + operatorPhone = storeDetail.OperatorPhone + operatorName = storeDetail.OperatorName + case model.VendorIDEBAI: + operatorPhone = storeDetail.OperatorPhone2 + operatorName = storeDetail.OperatorName2 + case model.VendorIDMTWM: + operatorPhone = storeDetail.OperatorPhone3 + operatorName = storeDetail.OperatorName3 + } + return operatorPhone, operatorName +} diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 0c461872d..44b3252f1 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -53,8 +53,9 @@ type StoreExt struct { model.Store MarketManName string `orm:"size(8)" json:"marketManName"` // 市场负责人姓名 - OperatorName string `orm:"size(8)" json:"operatorName"` // 运营人姓名 - OperatorName2 string `orm:"size(8)" json:"operatorName2"` // 非京东运营人姓名 + OperatorName string `orm:"size(8)" json:"operatorName"` // 京东运营人姓名 + OperatorName2 string `orm:"size(8)" json:"operatorName2"` // 美团运营人姓名 + OperatorName3 string `orm:"size(8)" json:"operatorName3"` // 饿百运营人姓名 FloatLng float64 `json:"lng"` FloatLat float64 `json:"lat"` @@ -150,6 +151,7 @@ type VendorStoreExcel struct { MarketManName string `json:"市场负责人"` OperatorName string `json:"运营负责人"` OperatorName2 string `json:"运营负责人2"` + OperatorName3 string `json:"运营负责人3"` } type JdStoreLevelExt struct { @@ -243,6 +245,7 @@ func getStoresSql(ctx *jxcontext.Context, keyword string, params map[string]inte LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = t1.market_man_phone AND mm.deleted_at = ? LEFT JOIN user om ON om.mobile <> '' AND om.mobile = t1.operator_phone AND om.deleted_at = ? LEFT JOIN user om2 ON om2.mobile <> '' AND om2.mobile = t1.operator_phone2 AND om2.deleted_at = ? + LEFT JOIN user om3 ON om3.mobile <> '' AND om3.mobile = t1.operator_phone3 AND om3.deleted_at = ? ` sqlFromParams = []interface{}{ utils.DefaultTimeValue, @@ -252,6 +255,7 @@ func getStoresSql(ctx *jxcontext.Context, keyword string, params map[string]inte utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, + utils.DefaultTimeValue, } sqlWhere := ` WHERE t1.deleted_at = ? @@ -311,9 +315,9 @@ func getStoresSql(ctx *jxcontext.Context, keyword string, params map[string]inte } if keyword != "" { keywordLike := "%" + keyword + "%" - sqlWhere += ` AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.operator_phone LIKE ? OR t1.operator_phone2 LIKE ? OR t1.market_man_phone LIKE ? + sqlWhere += ` AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.operator_phone LIKE ? OR t1.operator_phone2 LIKE ? OR t1.operator_phone3 LIKE ? OR t1.market_man_phone LIKE ? OR t1.last_operator LIKE ? OR city.name LIKE ? OR t1.address LIKE ? OR t1.printer_sn LIKE ? OR t1.licence_code LIKE ? OR t1.id_code LIKE ?` - sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, + sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil { @@ -322,10 +326,10 @@ func getStoresSql(ctx *jxcontext.Context, keyword string, params map[string]inte SELECT COUNT(*) FROM casbin_rule t11 JOIN user t12 ON t12.user_id = t11.v0 AND t12.mobile LIKE ? - WHERE t11.v1 <> '' AND (t11.v1 = CONCAT(?, t1.id) OR t11.v1 = CONCAT(?, t1.market_man_role) OR t11.v1 = CONCAT(?, t1.operator_role) OR t11.v1 = CONCAT(?, t1.operator_role2)) + WHERE t11.v1 <> '' AND (t11.v1 = CONCAT(?, t1.id) OR t11.v1 = CONCAT(?, t1.market_man_role) OR t11.v1 = CONCAT(?, t1.operator_role) OR t11.v1 = CONCAT(?, t1.operator_role2) OR t11.v1 = CONCAT(?, t1.operator_role3)) ) > 0` prefix := autils.NewRole("", 0).GetFullName() - sqlWhereParams = append(sqlWhereParams, keyword+"%", autils.NewStoreBossRole(-1).GetFullName(), prefix, prefix, prefix) // 必须要前缀,不然不能用过些会很慢 + sqlWhereParams = append(sqlWhereParams, keyword+"%", autils.NewStoreBossRole(-1).GetFullName(), prefix, prefix, prefix, prefix) // 必须要前缀,不然不能用过些会很慢 } sqlWhere += " OR t1.id = ? OR t1.city_code = ? OR t1.district_code = ? OR t1.link_store_id = ?" sqlWhereParams = append(sqlWhereParams, keywordInt64, keywordInt64, keywordInt64, keywordInt64) @@ -451,6 +455,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa bank.value payee_bank_name, IF(om.name <> '', om.name, om.user_id2) operator_name, IF(om2.name <> '', om2.name, om2.user_id2) operator_name2, + IF(om3.name <> '', om3.name, om3.user_id2) operator_name3, province.code province_code, province.name province_name, city.name city_name, @@ -923,8 +928,10 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } else { dao.Commit(db) } - notifyStoreOperatorChanged(store, valid["operatorPhone"]) - notifyStoreMarketChanged(store, valid["marketManPhone"]) + notifyStoreOperatorChanged(store.ID, "京东运营", store.OperatorPhone, valid["operatorPhone"]) + notifyStoreOperatorChanged(store.ID, "美团运营", store.OperatorPhone2, valid["operatorPhone2"]) + notifyStoreOperatorChanged(store.ID, "饿百运营", store.OperatorPhone3, valid["operatorPhone3"]) + notifyStoreOperatorChanged(store.ID, "市场", store.MarketManPhone, valid["marketManPhone"]) if err == nil { if valid["openTime1"] != 0 || valid["closeTime1"] != 0 || valid["openTime2"] != 0 || valid["closeTime2"] != 0 { err = CurVendorSync.ChangeStoreSkuSaleStatus(ctx, storeID, true, true) @@ -937,32 +944,17 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa return num, err } -func notifyStoreOperatorChanged(store *model.Store, newOperator2 interface{}) { - if store.OperatorPhone != "" && newOperator2 != nil { +func notifyStoreOperatorChanged(storeID int, operatorRoleName, phone string, newPhone interface{}) { + if phone != "" && newPhone != nil { db := dao.GetDB() - if user, err := dao.GetUserByID(db, "mobile", store.OperatorPhone); err == nil { + if user, err := dao.GetUserByID(db, "mobile", phone); err == nil { curUserName := "" - if newOperator := utils.Interface2String(newOperator2); newOperator != "" { + if newOperator := utils.Interface2String(newPhone); newOperator != "" { if curUser, err := dao.GetUserByID(db, "mobile", newOperator); err == nil { curUserName = curUser.GetName() } } - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.GetID(), "门店运营变更", fmt.Sprintf("门店:%d-%s,原运营:%s,变更为:%s", store.ID, store.Name, user.GetName(), curUserName)) - } - } -} - -func notifyStoreMarketChanged(store *model.Store, newMarketManPhone2 interface{}) { - if store.MarketManPhone != "" && newMarketManPhone2 != nil { - db := dao.GetDB() - if user, err := dao.GetUserByID(db, "mobile", store.MarketManPhone); err == nil { - curUserName := "" - if newOperator := utils.Interface2String(newMarketManPhone2); newOperator != "" { - if curUser, err := dao.GetUserByID(db, "mobile", newOperator); err == nil { - curUserName = curUser.GetName() - } - } - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.GetID(), "门店市场变更", fmt.Sprintf("门店:%d-%s,原市场:%s,变更为:%s", store.ID, store.Name, user.GetName(), curUserName)) + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.GetID(), fmt.Sprintf("门店%s变更", operatorRoleName), fmt.Sprintf("门店:%d,原%s:%s,变更为:%s", storeID, operatorRoleName, user.GetName(), curUserName)) } } } @@ -1042,7 +1034,7 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i } db := dao.GetDB() if globals.EnableWXAuth2 { - if err = dao.ValidateRoles(db, store.MarketManRole, store.OperatorRole, store.OperatorRole2); err != nil { + if err = dao.ValidateRoles(db, store.MarketManRole, store.OperatorRole, store.OperatorRole2, store.OperatorRole3); err != nil { return 0, err } } @@ -1955,7 +1947,7 @@ func getAllUsers4Store(ctx *jxcontext.Context, db *dao.DaoDB, store *model.Store } // 全局相关角色(市场或运营) - for _, v := range []string{store.MarketManRole, store.OperatorRole, store.OperatorRole2} { + for _, v := range []string{store.MarketManRole, store.OperatorRole, store.OperatorRole2, store.OperatorRole3} { if v != "" { if roleUserIDList, err := GetRoleUserList(ctx, autils.NewRole(v, 0)); err == nil && len(roleUserIDList) > 0 { userIDs = append(userIDs, roleUserIDList...) @@ -1971,7 +1963,7 @@ func getAllUsers4Store(ctx *jxcontext.Context, db *dao.DaoDB, store *model.Store } // 直接电话信息相关人员 - for _, mobile := range []string{store.Tel1, store.Tel2, store.MarketManPhone, store.OperatorPhone, store.OperatorPhone2} { + for _, mobile := range []string{store.Tel1, store.Tel2, store.MarketManPhone, store.OperatorPhone, store.OperatorPhone2, store.OperatorPhone3} { if mobile != "" { if user, err2 := dao.GetUserByID(db, "mobile", mobile); err2 == nil { if userMap[user.GetID()] == 0 { @@ -2587,6 +2579,7 @@ func GetVendorStoreInfo(ctx *jxcontext.Context, vendorIDList []int, isAsync, isC MarketManName: storeDetail2.MarketManName, OperatorName: storeDetail2.OperatorName, OperatorName2: storeDetail2.OperatorName2, + OperatorName3: storeDetail2.OperatorName3, } retVal = []VendorStoreExcel{storeExcel} } diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 879648ceb..bd03742de 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -169,13 +169,13 @@ type tUpdateStoresSkus struct { } type tStoreSkusSecKill struct { - StoreID int `orm:"column(store_id)"` - VendorID int `orm:"column(vendor_id)"` - SecKillCount int - SecKillCount2 int - OperatorPhone string - MarketManPhone string - NoticeMsg string + StoreID int `orm:"column(store_id)"` + VendorID int `orm:"column(vendor_id)"` + SecKillCount int + SecKillCount2 int + OperatorPhoneList []string + MarketManPhone string + NoticeMsg string } type JdStoreSkus struct { @@ -3460,19 +3460,13 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i if type1 < type1Count || type2 < type2Count { storeDetail, _ := dao.GetStoreDetail(db, store.StoreID, store.VendorID) var ( - operatorName string - operatorPhone string - type1Str = "爆品数量低于8个!" - type2Str = "爆品价格小于1元的爆品数量低于5个!" - typeResult = "" + type1Str = "爆品数量低于8个!" + type2Str = "爆品价格小于1元的爆品数量低于5个!" + typeResult = "" ) - if storeDetail.OperatorPhone != "" { - operatorName = storeDetail.OperatorName - operatorPhone = storeDetail.OperatorPhone - } else if storeDetail.OperatorPhone2 != "" { - operatorName = storeDetail.OperatorName2 - operatorPhone = storeDetail.OperatorPhone2 - } + operatorNameList := jxutils.BatchString2Slice(storeDetail.OperatorName, storeDetail.OperatorName2, storeDetail.OperatorName3) + operatorPhoneList := jxutils.BatchString2Slice(storeDetail.OperatorPhone, storeDetail.OperatorPhone2, storeDetail.OperatorPhone3) + if type1 < type1Count { typeResult += type1Str } @@ -3480,8 +3474,8 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i typeResult += type2Str } var result = &tStoreSkusSecKill{} - noticeMsg := fmt.Sprintf("运营负责人:[%v],市场负责人:[%v],门店ID:[%v],平台门店ID[%v],门店名:[%v],平台:[%v],警告类型:[%v]\n", operatorName, storeDetail.MarketManName, store.StoreID, storeDetail.VendorStoreID, store.StoreName, model.VendorChineseNames[store.VendorID], typeResult) - result.OperatorPhone = operatorPhone + noticeMsg := fmt.Sprintf("运营负责人:[%v],市场负责人:[%v],门店ID:[%v],平台门店ID[%v],门店名:[%v],平台:[%v],警告类型:[%v]\n", strings.Join(operatorNameList, ","), storeDetail.MarketManName, store.StoreID, storeDetail.VendorStoreID, store.StoreName, model.VendorChineseNames[store.VendorID], typeResult) + result.OperatorPhoneList = operatorPhoneList result.MarketManPhone = storeDetail.MarketManPhone result.NoticeMsg = noticeMsg retVal = []*tStoreSkusSecKill{result} @@ -3498,10 +3492,12 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i ) for _, v := range ddMsgresult { ddm := v.(*tStoreSkusSecKill) - if operaterMap[ddm.OperatorPhone] != "" { - operaterMap[ddm.OperatorPhone] += ddm.NoticeMsg - } else { - operaterMap[ddm.OperatorPhone] = ddm.NoticeMsg + for _, phone := range ddm.OperatorPhoneList { + if operaterMap[phone] != "" { + operaterMap[phone] += ddm.NoticeMsg + } else { + operaterMap[phone] = ddm.NoticeMsg + } } if marketMap[ddm.MarketManPhone] != "" { marketMap[ddm.MarketManPhone] += ddm.NoticeMsg diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index f8cc6cc44..dd4102622 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -100,37 +100,34 @@ func DeleteUsers(db *DaoDB, userIDs []string) (num int64, err error) { return num, err } -func GetStoreListByMobile(db *DaoDB, mobile string) (storeList []*StoreWithCityName, err error) { - if mobile != "" { - sql := ` - SELECT - DISTINCT t1.*, t2.name city_name - FROM ( - SELECT * - FROM store t1 - WHERE (t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ?) - UNION DISTINCT - SELECT t1.* - FROM store t1 - JOIN weixins t2 ON t2.jxstoreid = t1.id AND t2.parentid = -1 - LEFT JOIN weixins t3 ON t3.parentid = t2.id - WHERE (t2.tel = ? OR t3.tel = ?) - ) t1 - LEFT JOIN place t2 ON t2.code = t1.city_code - WHERE t1.deleted_at = ? - ORDER BY t1.name` - sqlParams := []interface{}{ - mobile, - mobile, - mobile, - mobile, - mobile, - utils.DefaultTimeValue, - } - err = GetRows(db, &storeList, sql, sqlParams...) - } - return storeList, err -} +// func GetStoreListByMobile(db *DaoDB, mobile string) (storeList []*StoreWithCityName, err error) { +// if mobile != "" { +// sql := ` +// SELECT +// DISTINCT t1.*, t2.name city_name +// FROM ( +// SELECT * +// FROM store t1 +// WHERE (t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ? OR t1.operator_phone3 = ?) +// UNION DISTINCT +// SELECT t1.* +// FROM store t1 +// JOIN weixins t2 ON t2.jxstoreid = t1.id AND t2.parentid = -1 +// LEFT JOIN weixins t3 ON t3.parentid = t2.id +// WHERE (t2.tel = ? OR t3.tel = ?) +// ) t1 +// LEFT JOIN place t2 ON t2.code = t1.city_code +// WHERE t1.deleted_at = ? +// ORDER BY t1.name` +// sqlParams := []interface{}{ +// mobile, mobile, mobile, mobile, +// mobile, mobile, +// utils.DefaultTimeValue, +// } +// err = GetRows(db, &storeList, sql, sqlParams...) +// } +// return storeList, err +// } func GetStoreListByMobileOrStoreIDs(db *DaoDB, mobile string, shortRoleNameList []string, storeIDs []int) (storeList []*StoreWithCityName, err error) { sql := ` @@ -142,13 +139,13 @@ func GetStoreListByMobileOrStoreIDs(db *DaoDB, mobile string, shortRoleNameList utils.DefaultTimeValue, } if mobile != "" { - sql += " OR t1.tel1 = ? OR t1.tel2 = ? OR t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ?" - sqlParams = append(sqlParams, mobile, mobile, mobile, mobile, mobile) + sql += " OR t1.tel1 = ? OR t1.tel2 = ? OR t1.market_man_phone = ? OR t1.operator_phone = ? OR t1.operator_phone2 = ? OR t1.operator_phone3 = ?" + sqlParams = append(sqlParams, mobile, mobile, mobile, mobile, mobile, mobile) } if len(shortRoleNameList) > 0 { questionMarks := GenQuestionMarks(len(shortRoleNameList)) - sql += " OR t1.market_man_role IN (" + questionMarks + ") OR t1.operator_role IN (" + questionMarks + ") OR t1.operator_role2 IN (" + questionMarks + ")" - sqlParams = append(sqlParams, shortRoleNameList, shortRoleNameList, shortRoleNameList) + sql += " OR t1.market_man_role IN (" + questionMarks + ") OR t1.operator_role IN (" + questionMarks + ") OR t1.operator_role2 IN (" + questionMarks + ") OR t1.operator_role3 IN (" + questionMarks + ")" + sqlParams = append(sqlParams, shortRoleNameList, shortRoleNameList, shortRoleNameList, shortRoleNameList) } if len(storeIDs) > 0 { sql += " OR t1.id IN (" + GenQuestionMarks(len(storeIDs)) + ")" diff --git a/business/model/dao/report.go b/business/model/dao/report.go index 598ed1437..5ef8d3c20 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -32,6 +32,7 @@ type StatisticsReportForOrdersList struct { MarketManName string `json:"marketManName"` //市场负责人 OperatorName string `json:"operatorName"` //运营负责人 OperatorName2 string `json:"operatorName2"` + OperatorName3 string `json:"operatorName3"` CityName string `json:"cityName"` Status int `json:"status"` @@ -71,12 +72,14 @@ func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time, IF(mm.name <> '', mm.name, mm.user_id2) market_man_name, IF(om.name <> '', om.name, om.user_id2) operator_name, IF(om2.name <> '', om2.name, om2.user_id2) operator_name2, + IF(om3.name <> '', om3.name, om3.user_id2) operator_name3, p.name city_name FROM store c LEFT JOIN place p ON p.code = c.city_code LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = c.market_man_phone LEFT JOIN user om ON om.mobile <> '' AND om.mobile = c.operator_phone LEFT JOIN user om2 ON om2.mobile <> '' AND om2.mobile = c.operator_phone2 + LEFT JOIN user om3 ON om3.mobile <> '' AND om3.mobile = c.operator_phone3 LEFT JOIN ( SELECT @@ -147,12 +150,14 @@ func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time IF(mm.name <> '', mm.name, mm.user_id2) market_man_name, IF(om.name <> '', om.name, om.user_id2) operator_name, IF(om2.name <> '', om2.name, om2.user_id2) operator_name2, + IF(om3.name <> '', om3.name, om3.user_id2) operator_name3, p.name city_name FROM store c LEFT JOIN place p ON p.code = c.city_code - LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = c.market_man_phone - LEFT JOIN user om ON om.mobile <> '' AND om.mobile = c.operator_phone + LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = c.market_man_phone + LEFT JOIN user om ON om.mobile <> '' AND om.mobile = c.operator_phone LEFT JOIN user om2 ON om2.mobile <> '' AND om2.mobile = c.operator_phone2 + LEFT JOIN user om3 ON om3.mobile <> '' AND om3.mobile = c.operator_phone3 LEFT JOIN ( SELECT diff --git a/business/model/dao/store.go b/business/model/dao/store.go index f77411a96..08ea0505d 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -41,6 +41,7 @@ type StoreDetail struct { MarketManName string `json:"marketManName"` //市场负责人 OperatorName string `json:"operatorName"` //运营负责人 OperatorName2 string `json:"operatorName2"` + OperatorName3 string `json:"operatorName3"` JdStoreLevel string `json:"jdStoreLevel"` //京东门店等级 } @@ -93,7 +94,8 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto city.name city_name, IF(mm.name <> '', mm.name, mm.user_id2) market_man_name, IF(om.name <> '', om.name, om.user_id2) operator_name, - IF(om2.name <> '', om2.name, om2.user_id2) operator_name2 + IF(om2.name <> '', om2.name, om2.user_id2) operator_name2, + IF(om3.name <> '', om3.name, om3.user_id2) operator_name3 FROM store t1 LEFT JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ? LEFT JOIN place city ON city.code = t1.city_code @@ -103,6 +105,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto LEFT JOIN user mm ON mm.mobile <> '' AND mm.mobile = t1.market_man_phone LEFT JOIN user om ON om.mobile <> '' AND om.mobile = t1.operator_phone LEFT JOIN user om2 ON om2.mobile <> '' AND om2.mobile = t1.operator_phone2 + LEFT JOIN user om3 ON om3.mobile <> '' AND om3.mobile = t1.operator_phone3 WHERE t1.deleted_at = ? ` sqlParams := []interface{}{ @@ -492,8 +495,8 @@ func GetStoreList(db *DaoDB, idList, cityCodes, statuss []int, mobileList []stri sqlParams = append(sqlParams, mobileList, mobileList) } if shortRoleName != "" { - sql += " AND (t1.market_man_role = ? OR t1.operator_role = ? OR t1.operator_role2 = ?)" - sqlParams = append(sqlParams, shortRoleName, shortRoleName, shortRoleName) + sql += " AND (t1.market_man_role = ? OR t1.operator_role = ? OR t1.operator_role2 = ? OR t1.operator_role3 = ?)" + sqlParams = append(sqlParams, shortRoleName, shortRoleName, shortRoleName, shortRoleName) } err = GetRows(db, &storeList, sql, sqlParams...) return storeList, err diff --git a/business/model/store.go b/business/model/store.go index 0a21c92d2..b0c82a868 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -326,12 +326,16 @@ type Store struct { PayPercentage int `json:"payPercentage"` // OperatorName string `orm:"size(8)" json:"operatorName"` // 运营人姓名 - OperatorPhone string `orm:"size(16)" json:"operatorPhone"` // 运营人电话 + OperatorPhone string `orm:"size(16)" json:"operatorPhone"` // 京东运营人电话 OperatorRole string `orm:"size(32)" json:"operatorRole"` // 京东运营人组(角色) - OperatorPhone2 string `orm:"size(16)" json:"operatorPhone2"` // 非京东运营人电话 - OperatorRole2 string `orm:"size(32)" json:"operatorRole2"` // 非京东运营人组(角色) - PromoteInfo string `orm:"size(255)" json:"promoteInfo"` //门店公告(所有平台统一的公告) + OperatorPhone2 string `orm:"size(16)" json:"operatorPhone2"` // 美团运营人电话 + OperatorRole2 string `orm:"size(32)" json:"operatorRole2"` // 美团运营人组(角色) + + OperatorPhone3 string `orm:"size(16)" json:"operatorPhone3"` // 饿百运营人电话 + OperatorRole3 string `orm:"size(32)" json:"operatorRole3"` // 饿百运营人组(角色) + + PromoteInfo string `orm:"size(255)" json:"promoteInfo"` //门店公告(所有平台统一的公告) } func (*Store) TableUnique() [][]string { From e186ca37fac13465c43db0a2628a25a743f0e35d Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 12 Feb 2020 15:28:21 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E9=A5=BF=E7=99=BE=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=97=A8=E5=BA=97=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/ebai/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 8f88b77a7..1a8093329 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -391,7 +391,7 @@ func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} { if store.VendorStoreID != "" { params["baidu_shop_id"] = store.VendorStoreID } - if store.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 { + if false { //store.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 { if store.VendorStoreName != "" { params["name"] = store.VendorStoreName } else { From 6eb145f6b4191dd01a6437d097b29fcb2bf0cd01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 12 Feb 2020 15:39:39 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=BA=93=E5=90=88=E5=B9=B6=E6=B5=8B=E8=AF=95=EF=BC=8C?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=86=E8=B4=A6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 61 +++++++++++++++++-- business/jxstore/cms/user2.go | 12 ++++ business/jxstore/report/report.go | 20 +++--- business/model/sku.go | 5 ++ business/partner/purchase/jx/localjx/order.go | 26 ++++---- 5 files changed, 97 insertions(+), 27 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 1938a4a90..ad3456a50 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1444,11 +1444,60 @@ func DeleteSkuNameExPrefixOverdue(db *dao.DaoDB) (err error) { return err } -func SumExianDaDepot() (err error) { - // result, err := api.EbaiAPI.GetExianDaSkuDepot() - // for _, v := range result { - // v.ElemeGoodsID - // v.ImageURL - // } +func SumExianDaDepot(ctx *jxcontext.Context) (err error) { + db := dao.GetDB() + result, err := api.EbaiAPI.GetExianDaSkuDepot() + for _, v := range result { + skus, err := api.EbaiAPI.GetExianDaSku(utils.Str2Int64(v.ElemeGoodsID)) + if err != nil { + return err + } + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + prefix, name, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName) + skuName := &model.SkuName{ + Prefix: prefix, + Name: name, + CategoryID: skus.CategoryIDThird, + IsGlobal: 1, + Unit: unit, + SpecQuality: specQuality, + SpecUnit: specUnit, + Price: 100, + Img: v.ImageURL, + Upc: &v.UpcID, + Status: model.SkuStatusNormal, + } + dao.WrapAddIDCULDEntity(skuName, ctx.GetUserName()) + err = dao.CreateEntity(db, &skuName) + if err != nil { + dao.Rollback(db) + return err + } + sku := &model.Sku{ + NameID: skuName.ID, + SpecQuality: specQuality, + SpecUnit: specUnit, + Weight: int(utils.Str2Int64(skus.Weight)), + Status: model.SkuStatusNormal, + ExdSkuID: v.ElemeGoodsID, + ExdSkuName: v.GoodsName, + ExdUpc: int(utils.Str2Int64(v.UpcID)), + ExdCategoryThirdID: skus.CategoryIDThird, + } + dao.WrapAddIDCULDEntity(sku, ctx.GetUserName()) + err = dao.CreateEntity(db, &sku) + if err != nil { + dao.Rollback(db) + return err + } + dao.Commit(db) + break + } return err } diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index bb7842202..dd990d7e2 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -201,6 +201,17 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri user.Avatar = inAuthInfo.GetAvatar() } } + //注册时默认商城用户就加入分账接收方 + if strings.Contains(ctx.GetRequest().Referer(), "wx4b5930c13f8b1170") { + param := &wxpayapi.ProfitSharingReceiverParam{ + Receiver: wxpayapi.CData(`{ + "type":"` + wxpayapi.AccountTypeOpen + `", + "account":"` + inAuthInfo.GetAuthID() + `", + "relation_type":" ` + wxpayapi.Relation + `" + }`), + } + _, err = api.WxpayAPI.AddProfitSharingReceiver(param) + } if err = CreateUser(user, utils.LimitUTF8StringLen(createName, 32)); err == nil { userProvider.UpdateLastLogin(user.GetID(), authType, ctx.GetRealRemoteIP()) TryAddStoreBossRole4User(ctx, user) @@ -380,6 +391,7 @@ func CreateUser(user *model.User, creatorName string) (err error) { dao.WrapAddIDCULDEntity(user, creatorName) user.UserID = utils.GetUUID() user.Status = model.UserStatusNormal + user.DividePercentage = 5 return dao.CreateEntity(nil, user) } diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 073a47914..fd429939f 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -260,26 +260,26 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn case 3: priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, nil, snapshotAt) taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() v := batchItemList[0].(*model.PriceReferSnapshot) for _, appOrg := range apimanager.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD) { directPrice, _ := jd.GetAPI(appOrg).GetJdSkuDirectPrice(v.SkuID) + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() if directPrice == 0 { continue } else { v.JdDirectPrice = int(directPrice) dao.UpdateEntity(db, v, "JdDirectPrice") } + dao.Commit(db) } - dao.Commit(db) return retVal, err } taskParallel := tasksch.NewParallelTask("获取并更新京东指导价格", tasksch.NewParallelConfig(), ctx, taskFunc, priceReferSnapshotList) diff --git a/business/model/sku.go b/business/model/sku.go index cd540411c..750a7e630 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -223,6 +223,11 @@ type Sku struct { Weight int `json:"weight"` // 重量/质量,单位为克,当相应的SkuName的SpecUnit为g或kg时,必须等于SpecQuality Status int `json:"status"` Seq int `json:"seq"` + + ExdSkuID string `orm:"column(exd_sku_id)" json:"exdSkuID"` + ExdSkuName string `json:"exdSkuName"` + ExdUpc int `json:"exdUpc"` + ExdCategoryThirdID int `orm:"column(exd_category_third_id)" json:"exdCategoryThirdID"` // JdID int64 `orm:"column(jd_id);null;index" json:"jdID"` // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e68a63367..a64c1b27c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -660,7 +660,6 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context, isAsync, isContinueWhenError b toDateStr = time.Now().AddDate(0, 0, -1).Format("2006-1-2") + " 23:59:59" ) result, err := dao.GetOrdersForJxPay(db, utils.Str2Time(fromDateStr), utils.Str2Time(toDateStr)) - fmt.Println(result) task := tasksch.NewParallelTask("AutoPayForPopluarMan", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { goods := batchItemList[0].(*dao.GoodsOrderPay) @@ -670,6 +669,9 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context, isAsync, isContinueWhenError b TransactionID: goods.TransactionID, OutOrderNo: goods.VendorOrderID, } + payPrice1 int + payPrice2 int + receivers string = "[" ) user, err := dao.GetUserByID(db, "user_id", goods.UserID) if user.ParentMobile == "" { @@ -683,11 +685,9 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context, isAsync, isContinueWhenError b if len(auth) == 0 { errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user2.UserID) } else { - param.Receivers = wxpayapi.CData(`[{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(int(goods.ActualPayPrice)*user2.DividePercentage/100) + `,"description":"每日订单打款分到个人"}]`) - _, err := api.WxpayAPI.MultiProfitSharing(param) - if err != nil { - return retVal, err - } + payPrice1 = int(goods.ActualPayPrice) * user2.DividePercentage / 100 + receivers += `{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(payPrice1) + `,"description":"每日订单打款分到个人"}` + // _, err := api.WxpayAPI.MultiProfitSharing(param) } if user2.ParentMobile != "" { user3, err := dao.GetUserByID(db, "mobile", user2.ParentMobile) @@ -698,13 +698,17 @@ func AutoPayForPopluarMan(ctx *jxcontext.Context, isAsync, isContinueWhenError b if len(auth) == 0 { errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user3.UserID) } else { - param.Receivers = wxpayapi.CData(`[{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(int(goods.ActualPayPrice)*user3.DividePercentage/100) + `,"description":"每日订单打款分到个人"}]`) - _, err := api.WxpayAPI.MultiProfitSharing(param) - if err != nil { - return retVal, err - } + payPrice2 = (int(goods.ActualPayPrice) - payPrice1) * user3.DividePercentage / 100 + receivers += `,{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(payPrice2) + `,"description":"每日订单打款分到个人"}` + // _, err := api.WxpayAPI.MultiProfitSharing(param) } } + receivers += "]" + param.Receivers = wxpayapi.CData(receivers) + _, err = api.WxpayAPI.MultiProfitSharing(param) + if err != nil { + return retVal, err + } return retVal, errors.New(errMsg) }, result) tasksch.HandleTask(task, nil, true).Run() From 3273d4c7ab8483086f3bd6a334ba8e95df82d18e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 12 Feb 2020 15:44:06 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E5=A4=84=E7=90=86buildfail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/cms_sku.go b/controllers/cms_sku.go index f28836c62..8a451cfbf 100644 --- a/controllers/cms_sku.go +++ b/controllers/cms_sku.go @@ -424,7 +424,7 @@ func (c *SkuController) UpdateSkuNamesExPrefix() { // @router /SumExianDaDepot [put] func (c *SkuController) SumExianDaDepot() { c.callSumExianDaDepot(func(params *tSkuSumExianDaDepotParams) (retVal interface{}, errCode string, err error) { - err = cms.SumExianDaDepot() + err = cms.SumExianDaDepot(params.Ctx) return retVal, "", err }) } From 7c3a2ae059df760537e3f0c54436f7e6685e6287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 12 Feb 2020 15:54:00 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BEtoken=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 8292692a1..14e70d806 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -66,7 +66,7 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq" ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" -ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d4188f026ac01fc93656266683e8dfb3127c2fdf894259e9034125ff3bdd2a997a385802ee3ef1802ba93a04acea34fde2d2b6e802c5dcd4ec6e3f4ad909a1d806e3ceeb349ed726b03d60ed1fe7010d4140aa338d9c5f05e3fec172c78d3d7f0ca579d61b7015af1bf99aa46b04d2b8a64aa50646dc09afe94b6b60e0ba9a933635db5e8b2a035e9b6d693b289acf1b256d5b9a3f8478c87b0b009115bfd1394f20bb5a0dc2c07b8d013a25f286ec6bf7f2d86010d65507e31358834b7a6b58fbd88cb3f1a12cf71c997b91c1527f6f3c10693f7c2bd6073da8633a98cd2dc1114dfa5be5ee0e60b02cf7e4a94d0fb563a8c01717e7c050f02249117219c07a2eb211577c208ba77f4d536fa25139bc249be93b38d6fc495ef67a32aa206835d177db402bc534de1d29caf4f6b4fbcd912c13f167d00d1732222744c336a5189728f72fb5e153c4b1164171cfb0c811f34f4c2fedd43f721b8706b43f8d631251c" +ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d4143e704e21c87c0ff2bbe1a76d55bae600bdd1c938af9261cbb4c124b22a7d124ef514bd5ef1f30742c7e17dfe4e3f38c0d79fe36a33c89ca2d204ffca7dd293cdfc7bc81bef55ca9fb6be3719c3400b8e6ba0dab4c5515213e879009c90bbff47d0b9eac924b6dddd5b1508a427efd39ed3e903aa47d5beaf4285baf4ffe7a3c39dd64bebfc3ada6935ff3283e7c1979eea5aa2d2fd5d49c2ae51e09dc8405baa37caafe3fc84a4ef3d5fbb73bd2836b2ead4127a9216c426354648be3b08894a59d400b94bf09b84afa7f1e03fb4e4337c507f1e3875474e49a8bb98aa31e297d43f59804dc067836bfd3c432098038f930981f7a0ee8fb6d7461e5c8d24873dcd32b902297600563003d772483d9f1aace7bc08d67fbc76452f086df4bc06ce1b92788858cb5caf033b5a5f9533413b3843f05ea18265733f12746177063619f91d405a8b45d6e17f249087d333754d598d86103e1fb30eb73b5f7c371e929" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" From 4ea62cb945bb3a2d0d4fa79d253945c32638e69d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 12 Feb 2020 17:24:57 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=89=93=E6=AC=BE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/user2.go | 113 ++++++++--------- business/model/user.go | 4 +- business/partner/purchase/ebai/store_sku2.go | 6 +- business/partner/purchase/jx/localjx/order.go | 120 +++++++++--------- controllers/jx_order2.go | 16 +-- 5 files changed, 122 insertions(+), 137 deletions(-) diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index dd990d7e2..d71983974 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -8,8 +8,6 @@ import ( "sync" "time" - "git.rosy.net.cn/baseapi/platformapi/wxpayapi" - "git.rosy.net.cn/jx-callback/business/partner/purchase/jd" "git.rosy.net.cn/jx-callback/globals/api/apimanager" @@ -201,17 +199,6 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri user.Avatar = inAuthInfo.GetAvatar() } } - //注册时默认商城用户就加入分账接收方 - if strings.Contains(ctx.GetRequest().Referer(), "wx4b5930c13f8b1170") { - param := &wxpayapi.ProfitSharingReceiverParam{ - Receiver: wxpayapi.CData(`{ - "type":"` + wxpayapi.AccountTypeOpen + `", - "account":"` + inAuthInfo.GetAuthID() + `", - "relation_type":" ` + wxpayapi.Relation + `" - }`), - } - _, err = api.WxpayAPI.AddProfitSharingReceiver(param) - } if err = CreateUser(user, utils.LimitUTF8StringLen(createName, 32)); err == nil { userProvider.UpdateLastLogin(user.GetID(), authType, ctx.GetRealRemoteIP()) TryAddStoreBossRole4User(ctx, user) @@ -1005,61 +992,61 @@ func UpdateUserWxNoAndPercent(user *model.User, isReceiver bool) (num int64, err dao.Rollback(db) } if isReceiver { - param := &wxpayapi.ProfitSharingReceiverParam{ - Receiver: wxpayapi.CData(`{ - "type":"` + wxpayapi.AccountTypeOpen + `", - "account":"` + auth[0].AuthID + `", - "relation_type":" ` + wxpayapi.Relation + `" - }`), - } - _, err := api.WxpayAPI.AddProfitSharingReceiver(param) - if err != nil { - return 0, err - } else { - user2.IsReceiver = 1 - num3, err := dao.UpdateEntity(db, user2, "IsReceiver") - num += num3 - if err != nil { - dao.Rollback(db) - } - } + // param := &wxpayapi.ProfitSharingReceiverParam{ + // Receiver: wxpayapi.CData(`{ + // "type":"` + wxpayapi.AccountTypeOpen + `", + // "account":"` + auth[0].AuthID + `", + // "relation_type":" ` + wxpayapi.Relation + `" + // }`), + // } + // _, err := api.WxpayAPI.AddProfitSharingReceiver(param) + // if err != nil { + // return 0, err + // } else { + // user2.IsReceiver = 1 + // num3, err := dao.UpdateEntity(db, user2, "IsReceiver") + // num += num3 + // if err != nil { + // dao.Rollback(db) + // } + // } } dao.Commit(db) return num, err } func DeleteProfitSharingReceiver(ctx *jxcontext.Context, userID string) (err error) { - db := dao.GetDB() - auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") - if len(auth) == 0 { - return fmt.Errorf("未找到此用户的微信验证方式!用户ID:[%v]\n", userID) - } - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() - param := &wxpayapi.ProfitSharingReceiverParam{ - Receiver: wxpayapi.CData(`{ - "type":"` + wxpayapi.AccountTypeOpen + `", - "account":"` + auth[0].AuthID + `" - }`), - } - _, err = api.WxpayAPI.DeleteProfitSharingReceiver(param) - if err != nil { - return err - } else { - user2, err := dao.GetUserByID(db, "user_id", userID) - user2.IsReceiver = 0 - _, err = dao.UpdateEntity(db, user2, "IsReceiver") - if err != nil { - dao.Rollback(db) - } - } - dao.Commit(db) + // db := dao.GetDB() + // auth, err := dao.GetUserBindAuthInfo(db, userID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") + // if len(auth) == 0 { + // return fmt.Errorf("未找到此用户的微信验证方式!用户ID:[%v]\n", userID) + // } + // dao.Begin(db) + // defer func() { + // if r := recover(); r != nil || err != nil { + // dao.Rollback(db) + // if r != nil { + // panic(r) + // } + // } + // }() + // param := &wxpayapi.ProfitSharingReceiverParam{ + // Receiver: wxpayapi.CData(`{ + // "type":"` + wxpayapi.AccountTypeOpen + `", + // "account":"` + auth[0].AuthID + `" + // }`), + // } + // _, err = api.WxpayAPI.DeleteProfitSharingReceiver(param) + // if err != nil { + // return err + // } else { + // user2, err := dao.GetUserByID(db, "user_id", userID) + // user2.IsReceiver = 0 + // _, err = dao.UpdateEntity(db, user2, "IsReceiver") + // if err != nil { + // dao.Rollback(db) + // } + // } + // dao.Commit(db) return err } diff --git a/business/model/user.go b/business/model/user.go index 275d11713..f1ad3627b 100644 --- a/business/model/user.go +++ b/business/model/user.go @@ -52,7 +52,9 @@ type User struct { ParentMobile string `orm:"size(32)" json:"parentMobile"` DividePercentage int `json:"dividePercentage"` - IsReceiver int `json:"isReceiver"` + Profit int `json:"profit"` + ProfitSum int `json:"profitSum"` + Arrears int `json:"arrears"` } func (*User) TableUnique() [][]string { diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 84d93c9d6..db58c90a2 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -153,7 +153,11 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v ) if strings.Contains(storeSku.StoreName, model.ExdStoreName) { isExd = true - customSkuID = utils.Str2Int64(storeSku.ExdSkuID) + if storeSku.ExdSkuID == "" { + customSkuID = 0 + } else { + customSkuID = utils.Str2Int64(storeSku.ExdSkuID) + } } else { isExd = false customSkuID = int64(storeSku.SkuID) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index a64c1b27c..53dbc2894 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -2,7 +2,6 @@ package localjx import ( "crypto/md5" - "errors" "fmt" "math" "sort" @@ -13,7 +12,6 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" - "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/utils" @@ -629,7 +627,7 @@ func GetOrderPay(ctx *jxcontext.Context, vendorOrderID string) (payList []*model return payList, err } -func PayForPopluarMan(ctx *jxcontext.Context, transactionID, vendorOrderID, userID string) (err error) { +func PayForPopluarMan(ctx *jxcontext.Context, vendorOrderID, userID string, price int) (err error) { db := dao.GetDB() user, err := dao.GetUserByID(db, "user_id", userID) if user == nil { @@ -643,85 +641,81 @@ func PayForPopluarMan(ctx *jxcontext.Context, transactionID, vendorOrderID, user if len(goods) == 0 { return fmt.Errorf("未找到此订单!订单ID:[%v]\n", vendorOrderID) } - param := &wxpayapi.MultiProfitSharingParam{ - TransactionID: transactionID, - OutOrderNo: vendorOrderID, + param := &wxpayapi.TransfersParam{ + CheckName: wxpayapi.CheckName, + PartnerTradeNo: vendorOrderID, + Desc: "每日推广人订单分成分到个人", + SpbillCreateIP: ctx.GetRealRemoteIP(), + OpenID: auth[0].AuthID, + Amount: price, } - param.Receivers = wxpayapi.CData(`[{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(int(goods[0].ActualPayPrice)*user.DividePercentage/100) + `,"description":"每日订单打款分到个人"}]`) - _, err = api.WxpayAPI.MultiProfitSharing(param) + _, err = api.WxpayAPI.Transfers(param) return err } //自动打款给市场推广人 -func AutoPayForPopluarMan(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { +func AutoPayForPopluarMan(ctx *jxcontext.Context) (err error) { var ( db = dao.GetDB() fromDateStr = time.Now().AddDate(0, 0, -1).Format("2006-1-2") + " 00:00:00" toDateStr = time.Now().AddDate(0, 0, -1).Format("2006-1-2") + " 23:59:59" ) result, err := dao.GetOrdersForJxPay(db, utils.Str2Time(fromDateStr), utils.Str2Time(toDateStr)) - task := tasksch.NewParallelTask("AutoPayForPopluarMan", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - goods := batchItemList[0].(*dao.GoodsOrderPay) - var ( - errMsg string - param = &wxpayapi.MultiProfitSharingParam{ - TransactionID: goods.TransactionID, - OutOrderNo: goods.VendorOrderID, - } - payPrice1 int - payPrice2 int - receivers string = "[" - ) - user, err := dao.GetUserByID(db, "user_id", goods.UserID) - if user.ParentMobile == "" { - return retVal, err + for _, goods := range result { + var ( + errMsg string + param = &wxpayapi.TransfersParam{ + CheckName: wxpayapi.CheckName, + PartnerTradeNo: goods.VendorOrderID, + Desc: "每日推广人订单分成分到个人", + SpbillCreateIP: ctx.GetRealRemoteIP(), } - user2, err := dao.GetUserByID(db, "mobile", user.ParentMobile) - auth, err := dao.GetUserBindAuthInfo(db, user2.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") + payPrice1 int + payPrice2 int + ) + user, err := dao.GetUserByID(db, "user_id", goods.UserID) + if user.ParentMobile == "" { + return err + } + user2, err := dao.GetUserByID(db, "mobile", user.ParentMobile) + auth, err := dao.GetUserBindAuthInfo(db, user2.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") + if err != nil { + return err + } + if len(auth) == 0 { + errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user2.UserID) + } else { + payPrice1 = int(goods.ActualPayPrice) * user2.DividePercentage / 100 + param.OpenID = auth[0].AuthID + param.Amount = payPrice1 + _, err := api.WxpayAPI.Transfers(param) if err != nil { - return retVal, err + return err + } + } + if user2.ParentMobile != "" { + user3, err := dao.GetUserByID(db, "mobile", user2.ParentMobile) + auth, err := dao.GetUserBindAuthInfo(db, user3.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") + if err != nil { + return err } if len(auth) == 0 { - errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user2.UserID) + errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user3.UserID) } else { - payPrice1 = int(goods.ActualPayPrice) * user2.DividePercentage / 100 - receivers += `{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(payPrice1) + `,"description":"每日订单打款分到个人"}` - // _, err := api.WxpayAPI.MultiProfitSharing(param) - } - if user2.ParentMobile != "" { - user3, err := dao.GetUserByID(db, "mobile", user2.ParentMobile) - auth, err := dao.GetUserBindAuthInfo(db, user3.UserID, model.AuthBindTypeAuth, []string{"weixinmini"}, "", "") + payPrice2 = (int(goods.ActualPayPrice) - payPrice1) * user3.DividePercentage / 100 + param.OpenID = auth[0].AuthID + param.Amount = payPrice2 + _, err := api.WxpayAPI.Transfers(param) if err != nil { - return retVal, err - } - if len(auth) == 0 { - errMsg += fmt.Sprintf("打款失败!未找到此用户的微信验证方式!订单号:[%v],用户ID:[%v]\n", goods.VendorOrderID, user3.UserID) - } else { - payPrice2 = (int(goods.ActualPayPrice) - payPrice1) * user3.DividePercentage / 100 - receivers += `,{"type":"` + wxpayapi.AccountTypeOpen + `","account":"` + auth[0].AuthID + `","amount":` + utils.Int2Str(payPrice2) + `,"description":"每日订单打款分到个人"}` - // _, err := api.WxpayAPI.MultiProfitSharing(param) + return err } } - receivers += "]" - param.Receivers = wxpayapi.CData(receivers) - _, err = api.WxpayAPI.MultiProfitSharing(param) - if err != nil { - return retVal, err - } - return retVal, errors.New(errMsg) - }, result) - tasksch.HandleTask(task, nil, true).Run() - if isAsync { - hint = task.GetID() - } else { - _, err = task.GetResult(0) - user, _ := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") - noticeMsg := err.Error() - if user != nil && err != nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "每日打款错误", noticeMsg) } - hint = "1" } - return hint, err + user, _ := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") + noticeMsg := err.Error() + if user != nil && err != nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "每日打款错误", noticeMsg) + } + return err } diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 730a00514..6eab161ca 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -131,33 +131,31 @@ func (c *JxOrderController) GetMyOrderCountInfo() { }) } -// @Title 每日订单分账 -// @Description 每日订单分账 +// @Title 每日订单打款 +// @Description 每日订单打款 // @Param token header string true "认证token" -// @Param isAsync formData bool false "是否异步操作" -// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /AutoPayForPopluarMan [post] func (c *JxOrderController) AutoPayForPopluarMan() { c.callAutoPayForPopluarMan(func(params *tJxorderAutoPayForPopluarManParams) (retVal interface{}, errCode string, err error) { - retVal, err = localjx.AutoPayForPopluarMan(params.Ctx, params.IsAsync, params.IsContinueWhenError) + err = localjx.AutoPayForPopluarMan(params.Ctx) return retVal, "", err }) } -// @Title 订单分账 -// @Description 订单分账 +// @Title 订单打款 +// @Description 订单打款 // @Param token header string true "认证token" -// @Param transactionID formData string true "微信订单ID" // @Param vendorOrderID formData string true "订单ID" // @Param userID formData string true "userID" +// @Param price formData int true "钱" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /PayForPopluarMan [post] func (c *JxOrderController) PayForPopluarMan() { c.callPayForPopluarMan(func(params *tJxorderPayForPopluarManParams) (retVal interface{}, errCode string, err error) { - err = localjx.PayForPopluarMan(params.Ctx, params.TransactionID, params.VendorOrderID, params.UserID) + err = localjx.PayForPopluarMan(params.Ctx, params.VendorOrderID, params.UserID, params.Price) return retVal, "", err }) }