diff --git a/business/enterprise/vendor_sku_compare.go b/business/enterprise/vendor_sku_compare.go index a343f9c67..b5fb8c958 100644 --- a/business/enterprise/vendor_sku_compare.go +++ b/business/enterprise/vendor_sku_compare.go @@ -24,7 +24,7 @@ import ( // 该函数主要用于对比京西平台商品和各个平台门店商品的差异 // 对比上下架状态以及商品价格差异,相同的不做修改,不同的以京西系统商品为主 -func CompareJxVendorSku(jxStoreId int) error { +func CompareJxVendorSku(jxStoreId int, vendorIds []int) error { var ( db = dao.GetDB() errListToStr = new(strings.Builder) @@ -44,7 +44,7 @@ func CompareJxVendorSku(jxStoreId int) error { } // 有效的三方平台 - storeMap, err := dao.GetStoresMapList(db, nil, []int{jxStoreId}, []int{model.StoreStatusOpened, model.StoreStatusClosed, model.StoreStatusHaveRest}, model.StoreStatusDisabled, 1, "", "", "") + storeMap, err := dao.GetStoresMapList(db, vendorIds, []int{jxStoreId}, []int{model.StoreStatusOpened, model.StoreStatusClosed, model.StoreStatusHaveRest}, model.StoreStatusDisabled, 1, "", "", "") if err != nil { return err } @@ -63,6 +63,10 @@ func CompareJxVendorSku(jxStoreId int) error { } continue case model.VendorIDDD: + if errs := TiktokSyncSkuPriceAndStatus(db, sm, skuMap); errs != nil { + errListToStr.WriteString(errs.Error()) + } + continue case model.VendorIDTaoVegetable: if errs := TaoSyncSkuPriceAndStatus(db, sm, skuMap, skuIdList); errs != nil { errListToStr.WriteString(errs.Error()) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 6c047f0fd..b0eee5e92 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -675,6 +675,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i actStoreSkuMap = make(map[int][]*model.StoreSkuBind) err2 = "" vendorID int + actType int = 0 ) if len(vendorIDs) > 1 { return fmt.Errorf("只允许单平台创建!") @@ -684,7 +685,10 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i return fmt.Errorf("此接口只支持美团使用!") } if act.Type != model.ActSkuDirectDown { - return fmt.Errorf("此接口只支持创建直降!") + //return fmt.Errorf("此接口只支持创建直降!") + actType = mtwmapi.RetailActTypeSecKill + } else { + actType = mtwmapi.RetailActTypeDirectDown } setActDefault(act) //处理actStoreSku @@ -706,17 +710,17 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i } } //根据平台价排序 - for _, storeSkus := range actStoreSkuMap { - for i := 0; i < len(storeSkus)-1; i++ { - for j := 0; j < len(storeSkus)-i-1; j++ { - if storeSkus[j].JdsPrice < storeSkus[j+1].JdsPrice { - temp := storeSkus[j] - storeSkus[j] = storeSkus[j+1] - storeSkus[j+1] = temp - } - } - } - } + //for _, storeSkus := range actStoreSkuMap { + // for i := 0; i < len(storeSkus)-1; i++ { + // for j := 0; j < len(storeSkus)-i-1; j++ { + // if storeSkus[j].JdsPrice < storeSkus[j+1].JdsPrice { + // temp := storeSkus[j] + // storeSkus[j] = storeSkus[j+1] + // storeSkus[j+1] = temp + // } + // } + // } + //} txDB, _ := dao.Begin(db) defer func() { if r := recover(); r != nil { @@ -795,7 +799,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i }) } actIdResult := make(map[string]int64, 0) - actResult, faileInfoList, _ := api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, mtwmapi.RetailActTypeDirectDown, actData) + actResult, faileInfoList, _ := api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, actType, actData) for _, v := range actResult { var ( actStoreSkuMapUpdate *model.ActStoreSkuMap @@ -827,7 +831,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i actData2[i-1].Sequence = i actData2[i-1].OrderLimit = 1 } - api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, mtwmapi.RetailActTypeDirectDown, actData2) + api.MtwmAPI.RetailDiscountBatchSave2(storeDetail.VendorStoreID, actType, actData2) } for _, v := range faileInfoList { err2 += fmt.Sprintf("创建失败!门店ID:[%v],商品ID:[%v],原因:[%v]", storeID, v.AppFoodCode, v.ErrorMsg) diff --git a/business/model/store.go b/business/model/store.go index 3d15e97f0..8d3a8ab10 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -11,7 +11,7 @@ const ( StoreStatusAll = -9 StoreStatusDisabled = -2 // 禁用 StoreStatusClosed = -1 // 休息 - StoreStatusHaveRest = 0 // 零食休息 + StoreStatusHaveRest = 0 // 临时休息 StoreStatusOpened = 1 // 营业 StoreIsSyncAll = -1 diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index a271ebe35..9db6882c1 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -842,7 +842,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods if err = api.DeliveryFinish(param); err != nil { globals.SugarLogger.Debugf("PickupGoods 拣货失败可能是BizSubOrderId 没填写 : %s", err.Error()) - return fmt.Errorf("订单缺过失败,请拣货完成前取货.或者联系客户发起部分退款") + return fmt.Errorf("订单缺货失败,请拣货完成前取货.或者联系客户发起部分退款:%v", err) } c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp) return nil diff --git a/controllers/enterprise_callback.go b/controllers/enterprise_callback.go index 3736b0717..c3c18c32a 100644 --- a/controllers/enterprise_callback.go +++ b/controllers/enterprise_callback.go @@ -1,14 +1,13 @@ package controllers import ( - "git.rosy.net.cn/jx-callback/business/enterprise" - "git.rosy.net.cn/jx-callback/globals/api" - "net/http" - call "git.rosy.net.cn/baseapi/utils/weworkapi_golang-master" + "git.rosy.net.cn/jx-callback/business/enterprise" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" "io/ioutil" + "net/http" "strings" ) @@ -16,6 +15,7 @@ type EnterpriseController struct { web.Controller } + // EnterpriseCallback 在发生授权、通讯录变更、ticket变化等事件时,企业微信服务器会向应用的“指令回调URL”推送相应的事件消息。 // 消息结构体将使用创建应用时的EncodingAESKey进行加密(特别注意, 在第三方回调事件中使用加解密算法,receiveid的内容为suiteid) // ,请参考接收消息解析数据包。 diff --git a/controllers/enterprise_session.go b/controllers/enterprise_session.go index adc2b1b0c..8f81f62db 100644 --- a/controllers/enterprise_session.go +++ b/controllers/enterprise_session.go @@ -1,7 +1,9 @@ package controllers import ( + "git.rosy.net.cn/jx-callback/business/enterprise" "git.rosy.net.cn/jx-callback/business/enterprise_session" + "git.rosy.net.cn/jx-callback/business/jxutils" "github.com/astaxie/beego/server/web" ) @@ -39,3 +41,23 @@ func (c *SessionController) GetEnterpriseToken() { return map[string]string{"minToken": mintoken, "enterpriseToken": token}, "", nil }) } + +// @Title 校验平台商品和京西系统商品的差异 +// @Description 校验平台商品和京西系统商品的差异 +// @Param token header string true "认证token" +// @Param storeId formData int false "门店ID列表" +// @Param vendorIDs formData string true "厂商ID列表" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /CheckVendorSkuDiffer [post] +func (c *SessionController) CheckVendorSkuDiffer() { + c.callCheckVendorSkuDiffer(func(params *tSessionCheckVendorSkuDifferParams) (retVal interface{}, errCode string, err error) { + var vendorIDs []int + if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDs); err != nil { + return retVal, "", err + } + + err = enterprise.CompareJxVendorSku(params.StoreId, vendorIDs) + return nil, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 3a41b35c9..2c0362442 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -4476,6 +4476,16 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) + + // 校验个平台商品差异 + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"], + web.ControllerComments{ + Method: "CheckVendorSkuDiffer", + Router: `/CheckVendorSkuDiffer`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) // 授权回调 web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TiktokShopController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TiktokShopController"], web.ControllerComments{