From 7373f78fd7a639a3580b193a3de33109876b9ea9 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Thu, 29 Jun 2023 09:19:05 +0800 Subject: [PATCH] 1 --- business/jxstore/cms/store.go | 3 +- business/jxstore/cms/store_sku_check.go | 2 +- business/model/api_config.go | 4 +- business/partner/delivery/rider.go | 7 +- .../partner/purchase/tao_vegetable/order.go | 9 +- .../partner/purchase/tao_vegetable/store.go | 97 ++++++++++++++++++- .../purchase/tao_vegetable/store_sku2.go | 21 ++-- controllers/cms_store.go | 21 ++++ controllers/cms_store_sku.go | 3 +- routers/commentsRouter_controllers.go | 9 ++ 10 files changed, 150 insertions(+), 26 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 9333173f5..038b199d1 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -6401,10 +6401,9 @@ func SingleBindTaoVegetable(ctx *jxcontext.Context, bind []TaoBindInfo) (error, return nil, "" } -//操作 freight_template +// ReplaceInsertFreight 操作 freight_template func ReplaceInsertFreight(storeID, templateID, warehouseID, tradeLimitID int, vendorStoreID, fenceID string) error { return dao.ReplaceInsertFreight2(storeID, templateID, warehouseID, tradeLimitID, vendorStoreID, fenceID) - //return dao.InsertItemFreight2(storeID, templateID, warehouseID, tradeLimitID, vendorStoreID, fenceID) } //辅助函数 diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index bf0bb52f2..a36320297 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -386,7 +386,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin mtwmid := jxSkuInfo.Skus[0].MtwmID /*抖店编码*/ ddid := jxSkuInfo.Skus[0].DdID - /*淘先达编码*/ + /*淘鲜达编码*/ taoid := jxSkuInfo.Skus[0].TaoID //jxSkuPrice := strconv.Itoa(jxSkuInfo.Skus[0].JxPrice) /*商品类名*/ diff --git a/business/model/api_config.go b/business/model/api_config.go index 836f1c4b2..9f56f3469 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -23,7 +23,7 @@ const ( VendorIDTT = 13 // 抖音平台小程序 VendorIDDD = 14 // 抖店 VendorIDKS = 15 // 快手小程序 - VendorIDTaoVegetable = 16 // 淘先达(淘菜菜) + VendorIDTaoVegetable = 16 // 淘鲜达(淘菜菜) VendorIDPurchaseEnd = 20 VendorIDWXPay = 51 // 微信支付 @@ -140,7 +140,7 @@ var ( VendorIDJDShop: "京东商城", VendorIDWSC: "微盟微商城", VendorIDJX: "京西商城", - VendorIDTaoVegetable: "淘先达", + VendorIDTaoVegetable: "淘鲜达", VendorIDDada: "达达众包", VendorIDMTPS: "美团配送", diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index d63181194..83574f45f 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -3,11 +3,12 @@ package delivery import ( "crypto/rand" "fmt" + "math/big" + "time" + "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/globals/api" - "math/big" - "time" "git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" @@ -232,7 +233,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { } else { // 订单状态改变 [配送中/用户签收/用户拒收] param := utilsTao.OrderStatusChangeDelivery(&v.GoodsOrder, taoDeliveryStatus) if err := api.TaoVegetableApi.DeliveryFinish(param); err != nil { - globals.SugarLogger.Debugf("淘先达运单状态推送错误运单状态[%s],错误:%s", taoDeliveryStatus, err.Error()) + globals.SugarLogger.Debugf("淘鲜达运单状态推送错误运单状态[%s],错误:%s", taoDeliveryStatus, err.Error()) } } default: diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index c33167d42..813e75d79 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -3,6 +3,10 @@ package tao_vegetable import ( "errors" "fmt" + "regexp" + "strings" + "time" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" domain3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/domain" @@ -19,9 +23,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" - "regexp" - "strings" - "time" ) var ( @@ -501,7 +502,7 @@ func (c *PurchaseHandler) CanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan return true, nil } -// Swtich2SelfDeliver 转自送接口通知淘先达发货 +// Swtich2SelfDeliver 转自送接口通知淘鲜达发货 func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) { param, err := orderStatusChangeNotice(order, tao_vegetable.OrderStatusCallRider) if err != nil { diff --git a/business/partner/purchase/tao_vegetable/store.go b/business/partner/purchase/tao_vegetable/store.go index 5a15870a2..c502b3450 100644 --- a/business/partner/purchase/tao_vegetable/store.go +++ b/business/partner/purchase/tao_vegetable/store.go @@ -4,6 +4,16 @@ import ( "encoding/json" "errors" "fmt" + "math" + "regexp" + "strings" + + "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" + + "git.rosy.net.cn/baseapi/utils/errlist" + + "git.rosy.net.cn/jx-callback/globals/api" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/event" @@ -13,9 +23,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" - "math" - "regexp" - "strings" ) var ( @@ -45,6 +52,12 @@ var ( } ) +const ( + FlagStatus = 1 //1-营业状态 + FlagBusinessTime = 2 //2-营业时间 + FlagRange = 3 //3-营业范围 +) + type tEbaiStoreInfo struct { model.Store VendorStoreID string `orm:"column(vendor_store_id)"` @@ -57,6 +70,84 @@ type tEbaiStoreInfo struct { DistrictID int `orm:"column(district_id)"` } +type TxdStore struct { + Flag []int `json:"flag"` //更新字段标识 1-营业状态 2-营业时间 3-营业范围 + TxdStoreID string `json:"txdStoreID"` //淘鲜达平台id + Status int64 `json:"status"` //营业状态 + StartTime string `json:"startTime"` //营业开始时间(HH:mm) + EndTime string `json:"endTime"` //营业结束时间(HH:mm) + Points string `json:"points"` //营业范围坐标 +} + +type Point struct { + Lat string `json:"lat"` + Lng string `json:"lng"` +} + +// UpdateTxdStore 单独更新淘鲜达门店营业时间/状态 销售范围 +func UpdateTxdStore(store TxdStore) (err error) { + errList := errlist.New() + for _, v := range store.Flag { + switch v { + case FlagStatus: + if err = api.TaoVegetableApi.ShopUpdateStatus(store.TxdStoreID, store.Status); err != nil { + errList.AddErr(fmt.Errorf("营业状态:%v", err)) + } + case FlagBusinessTime: + if CheckBusinessTime(store.StartTime, store.EndTime) { + if err = api.TaoVegetableApi.ShopUpdateInfo(store.TxdStoreID, store.StartTime, store.EndTime); err != nil { + errList.AddErr(fmt.Errorf("营业时间:%v", err)) + } + } + case FlagRange: + point := GetPoints(store.Points) + if err = api.TaoVegetableApi.ShopUpdateRange(store.TxdStoreID, point); err != nil { + errList.AddErr(fmt.Errorf("营业范围:%v", err)) + } + default: + return nil + } + } + if errList.GetErrListAsOne() != nil { + return errList.GetErrListAsOne() + } + return nil +} + +// CheckBusinessTime 检验营业时间格式是否合法 +func CheckBusinessTime(start, end string) bool { + s1 := strings.Split(start, ":") + t1 := utils.Str2Int64(s1[0]) + t11 := utils.Str2Int64(s1[1]) + + s2 := strings.Split(end, ":") + t2 := utils.Str2Int64(s2[0]) + t22 := utils.Str2Int64(s2[1]) + + if (0 <= t1 && t1 <= 23) && (0 <= t11 && t11 <= 59) && (0 <= t2 && t2 <= 23) && (0 <= t22 && t22 <= 59) && t1 < t2 { + return true + } + return false +} + +// GetPoints 解析范围坐标 +func GetPoints(data string) []tao_vegetable.Points { + if len(data) == 0 { + return nil + } + temp := strings.Split(data, ";") + points := make([]tao_vegetable.Points, 0) + for _, v := range temp { + s := strings.Split(v, ",") + point := tao_vegetable.Points{ + Lng: s[0], + Lat: s[1], + } + points = append(points, point) + } + return points +} + func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorStoreName string) (retVal *dao.StoreDetail, err error) { //result, err := getAPIWithoutToken(vendorOrgCode).PoiGet(vendorStoreID) //if err == nil { diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index 4fbadf82c..598435863 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -2,6 +2,12 @@ package tao_vegetable import ( "fmt" + "io/ioutil" + "net/http" + "regexp" + "strings" + "time" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" request1475 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability1475/request" @@ -20,11 +26,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" - "io/ioutil" - "net/http" - "regexp" - "strings" - "time" ) const ( @@ -198,16 +199,16 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI api := getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID) if isCreate { failedList, err = createTaoVegetable(api, storeSkuList, vendorStoreID, storeID, syncType) - globals.SugarLogger.Debugf("创建淘先达商品异常:%s", err.Error()) + globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error()) } else { failedList, err = UpdateTaoVegetable(api, storeSkuList, vendorStoreID, storeID, syncType) - globals.SugarLogger.Debugf("更新淘先达商品异常:%s", err.Error()) + globals.SugarLogger.Debugf("更新淘鲜达商品异常:%s", err.Error()) } return failedList, err } -// UpdateTaoVegetable 修改淘先达商品 +// UpdateTaoVegetable 修改淘鲜达商品 func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) { param := &request585.AlibabaWdkSkuUpdateRequest{} updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0) @@ -342,7 +343,7 @@ func createTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync createPram.ParamList = ¶m result, err := api.AddStoreSku(createPram) if err != nil { - globals.SugarLogger.Debugf("创建淘先达商品异常:%s", err.Error()) + globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error()) //failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType) } // 记录失败的同步数据 @@ -542,7 +543,7 @@ func taoSkuStatus2Jx(taoSkuStatus int) (jxSkuStatus int) { return jxSkuStatus } -// GetStoreSkusFullInfo 获取淘先达平台商品,由于参数商品id必填作为参数,storeSkuList不能为空,且skuCode最大长度为20 +// GetStoreSkusFullInfo 获取淘鲜达平台商品,由于参数商品id必填作为参数,storeSkuList不能为空,且skuCode最大长度为20 func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) { if len(storeSkuList) == model.NO { return nil, fmt.Errorf("淘鲜达获取门店商品需要参数商品id") diff --git a/controllers/cms_store.go b/controllers/cms_store.go index 9b52e000f..5b64b8bef 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -5,6 +5,8 @@ import ( "encoding/json" "errors" + "git.rosy.net.cn/jx-callback/business/partner/purchase/tao_vegetable" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxstore/common" @@ -1677,6 +1679,25 @@ func (c *StoreController) SingleBindTaoVegetable() { }) } +// @Title 更新淘鲜达门店信息 +// @Description 更新淘鲜达门店信息 +// @Param token header string true "认证token" +// @Param txdStores formData string true "TxdStore" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /UpdateTxdStore [post] +func (c *StoreController) UpdateTxdStore() { + c.callUpdateTxdStore(func(params *tStoreUpdateTxdStoreParams) (retVal interface{}, errMsg string, err error) { + taoStore := tao_vegetable.TxdStore{} + b := bytes.NewBufferString(params.TxdStores) + decoder := json.NewDecoder(b) + if err = decoder.Decode(&taoStore); err == nil { + err = tao_vegetable.UpdateTxdStore(taoStore) + } + return nil, "", err + }) +} + // @Title 测试操作freight_template // @Description 测试操作freight_template // @Param token header string true "认证token" diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 527c19931..aa350b596 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -7,6 +7,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "errors" + "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -46,7 +47,7 @@ type StoreSkuController struct { // @Param jdSyncStatus query int false "京东同步标识" // @Param ebaiSyncStatus query int false "饿百同步标识" // @Param mtwmSyncStatus query int false "美团外卖同步标识" -// @Param taoSyncStatus query int false "淘先达同步标识" +// @Param taoSyncStatus query int false "淘鲜达同步标识" // @Param lockTime query string false "价格锁定时间" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 71ea103eb..2a54b4b8b 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -3118,6 +3118,15 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) + //更新淘鲜达门店信息 + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + web.ControllerComments{ + Method: "UpdateTxdStore", + Router: `/UpdateTxdStore`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) //测试用-ysq web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], web.ControllerComments{