添加淘鲜达

This commit is contained in:
邹宗楠
2023-06-28 10:04:08 +08:00
parent 64e4339aeb
commit c0a97b4fad
51 changed files with 2109 additions and 2007 deletions

View File

@@ -0,0 +1,199 @@
package tao_vegetable
import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
domain3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/domain"
request3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/request"
domain591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/domain"
request591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/request"
"git.rosy.net.cn/baseapi/utils"
"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"
"time"
)
// orderStatusChangeNotice 拣货和通知发货状态变化接口
func orderStatusChangeNotice(order *model.GoodsOrder, orderStatus string) (*request591.AlibabaAelophyOrderWorkCallbackRequest, error) {
param := &request591.AlibabaAelophyOrderWorkCallbackRequest{}
param.WorkCallbackRequest = &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
StoreId: utils.String2Pointer(order.VendorStoreID),
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
Status: utils.String2Pointer(orderStatus),
}
workCallbackSubOrderInfoList := make([]domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo, 0, 0)
skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), order.VendorOrderID, nil)
if err != nil {
return nil, err
}
if len(skuList) == model.NO {
return nil, fmt.Errorf("订单商品列表为零,请管理员检查")
}
for _, v := range skuList {
workCallbackSubOrderInfo := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{
BizSubOrderId: nil,
SkuCode: utils.String2Pointer(v.VendorSkuID),
PickSaleQuantity: utils.String2Pointer(utils.Int2Str(v.Count)),
PickStockQuantity: utils.String2Pointer(fmt.Sprintf("%.2f", float64(v.Weight)/float64(1000)*float64(v.Count))),
}
workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo)
}
// 出库
param.WorkCallbackRequest.WorkCallbackSubOrderInfoList = &workCallbackSubOrderInfoList
return param, nil
}
// OrderStatusChangeDelivery 订单开始配送和送达通知接口
func OrderStatusChangeDelivery(order *model.GoodsOrder, orderStatus string) *request591.AlibabaAelophyOrderWorkCallbackRequest {
param := &request591.AlibabaAelophyOrderWorkCallbackRequest{}
param.WorkCallbackRequest = &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
StoreId: utils.String2Pointer(order.VendorStoreID),
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
Status: utils.String2Pointer(orderStatus),
}
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
param.WorkCallbackRequest.DelivererName = utils.String2Pointer(bill.CourierName)
param.WorkCallbackRequest.DelivererPhone = utils.String2Pointer(bill.CourierMobile)
if param.WorkCallbackRequest.DelivererName == nil || param.WorkCallbackRequest.DelivererPhone == nil {
param.WorkCallbackRequest.DelivererName = utils.String2Pointer("暂无")
param.WorkCallbackRequest.DelivererPhone = utils.String2Pointer("暂无")
}
return param
}
// getOrderCancelList 获取订单可取消的订单列表
func getOrderCancelList(api *tao_vegetable.API, order *model.GoodsOrder) (*domain3156.AlibabaTclsAelophyRefundCsapplyrenderRefundCsApplyRenderResponseDto, error) {
param := &request3156.AlibabaTclsAelophyRefundCsapplyrenderRequest{
RefundCsApplyRenderDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyrenderRefundCsApplyRenderDto{
OutOrderId: utils.String2Pointer(order.VendorOrderID),
StoreId: utils.String2Pointer(order.VendorStoreID),
OutSubOrderIds: nil,
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
},
}
return api.PartialRefundReason(param)
}
func getTimeFromTimestamp(timeStamp int64) time.Time {
if timeStamp < 1538103149 { // 立即达订单给的是1而不是空01538103149不是特殊值只是一个任意之前的时间这样写可以处理
return utils.DefaultTimeValue
}
return utils.Timestamp2Time(timeStamp)
}
//
//func (p *PurchaseHandler) GetOrderConsigneeNumber(ctx *jxcontext.Context, storeID int, vendorStoreID string) (numberList []*partner.OrderPhoneNumberInfo, err error) {
// offset := 0
// for {
// store, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "")
// result, err2 := getAPI(store.VendorOrgCode, storeID, "").OrderBatchPullPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit)
// if err = err2; err == nil {
// for _, v := range result {
// v2 := &partner.OrderPhoneNumberInfo{
// VendorOrderID: utils.Int64ToStr(v.OrderID),
// PhoneNumber: v.RealPhoneNumber,
// }
// if v2.PhoneNumber == "" {
// v2.PhoneNumber = v.RealOrderPhoneNumber
// }
// numberList = append(numberList, v2)
// }
// if len(result) <= mtwmapi.MaxBatchPullPhoneNumberLimit {
// break
// }
// offset += mtwmapi.MaxBatchPullPhoneNumberLimit
// } else {
// break
// }
// }
// return numberList, err
//}
//
//func (p *PurchaseHandler) GetOrderCourierNumber(ctx *jxcontext.Context, storeID int, vendorStoreID string) (numberList []*partner.OrderPhoneNumberInfo, err error) {
// offset := 0
// for {
// store, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "")
// result, err2 := getAPI(store.VendorOrgCode, 0, "").OrderGetRiderInfoPhoneNumber(vendorStoreID, offset, mtwmapi.MaxBatchPullPhoneNumberLimit)
// if err = err2; err == nil {
// for _, v := range result {
// numberList = append(numberList, &partner.OrderPhoneNumberInfo{
// VendorOrderID: utils.Int64ToStr(v.OrderID),
// PhoneNumber: v.RiderRealPhoneNumber,
// })
// }
// if len(result) <= mtwmapi.MaxBatchPullPhoneNumberLimit {
// break
// }
// offset += mtwmapi.MaxBatchPullPhoneNumberLimit
// } else {
// break
// }
// }
// return numberList, err
//}
//
//func (p *PurchaseHandler) onNumberDowngrade(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) {
// userNumberMap := make(map[string]*partner.OrderPhoneNumberInfo)
// courierNumberMap := make(map[string]*partner.OrderPhoneNumberInfo)
// orderMap := make(map[string]int)
// ctx := jxcontext.AdminCtx
// task := tasksch.NewParallelTask("美团外卖平台处理隐私号降级通知", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// step := batchItemList[0].(int)
// switch step {
// case 0:
// userNumberList, err2 := p.GetOrderConsigneeNumber(ctx, 0, "")
// if err = err2; err == nil {
// for _, v := range userNumberList {
// userNumberMap[v.VendorOrderID] = v
// orderMap[v.VendorOrderID] = 1
// }
// }
// case 1:
// courierNumberList, err2 := p.GetOrderCourierNumber(ctx, 0, "")
// if err = err2; err == nil {
// for _, v := range courierNumberList {
// courierNumberMap[v.VendorOrderID] = v
// orderMap[v.VendorOrderID] = 1
// }
// }
// case 2:
// orderList := jxutils.StringMap2List(orderMap)
// if len(orderList) > 0 {
// updateTask := tasksch.NewParallelTask("美团外卖平台处理隐私号降级通知/处理订单", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// vendorOrderID := batchItemList[0].(string)
// db := dao.GetDB()
// if userNumberMap[vendorOrderID] != nil {
// _, err = dao.UpdateEntityByKV(db, &model.GoodsOrder{}, map[string]interface{}{
// "ConsigneeMobile": userNumberMap[vendorOrderID].PhoneNumber,
// "ConsigneeMobile2": userNumberMap[vendorOrderID].PhoneNumber,
// }, map[string]interface{}{
// model.FieldVendorOrderID: vendorOrderID,
// model.FieldVendorID: model.VendorIDMTWM,
// })
// }
// if courierNumberMap[vendorOrderID] != nil {
// _, err = dao.UpdateEntityByKV(db, &model.Waybill{}, map[string]interface{}{
// "CourierMobile": courierNumberMap[vendorOrderID].PhoneNumber,
// }, map[string]interface{}{
// "VendorWaybillID": vendorOrderID,
// "WaybillVendorID": model.VendorIDMTWM,
// })
// }
// return retVal, err
// }, orderList)
// tasksch.HandleTask(updateTask, task, true).Run()
// _, err = updateTask.GetResult(0)
// }
// }
// return retVal, err
// }, []int{0, 1, 2})
// tasksch.HandleTask(task, nil, true).Run()
// return response
//}