自动退单

This commit is contained in:
邹宗楠
2023-03-01 16:04:37 +08:00
parent 6081ec223b
commit 70521e362c
4 changed files with 80 additions and 33 deletions

View File

@@ -205,6 +205,11 @@ func Init() {
delivery.UpdateFakeWayBillToTiktok()
}, 10*time.Second, 5*time.Second)
// 抖音自动刷单
ScheduleTimerFuncByInterval(func() {
delivery.AutoSettingFakeDelivery()
}, 10*time.Second, 5*time.Second)
// 定时任务更新负责人信息
ScheduleTimerFunc("RefreshStoreOperator", func() {
cms.UpdateStoreOperatorConfig()

View File

@@ -1830,3 +1830,33 @@ func GetOrderListByStoreList(db *DaoDB, storeId []int64) (order []*model.GoodsOr
return order, nil
}
type CourierInfo struct {
CourierName string `json:"courier_name"`
CourierMobile string `json:"courier_mobile"`
}
// 获取同区域的骑手信息
func GetAddressRiderInfo(db *DaoDB, address string, randNumber int64) (*CourierInfo, error) {
sql := `
SELECT w.courier_name,w.courier_mobile FROM goods_order s
LEFT JOIN waybill w ON s.vendor_order_id = w.vendor_order_id AND w.courier_name <>"" AND w.courier_mobile <>""
WHERE s.order_created_at >= ? AND s.status = ? AND s.delivery_type = ? AND s.consignee_address LIKE ?
LIMIT ?,? `
param := []interface{}{time.Now().AddDate(0, -3, 0), model.OrderStatusFinished, model.OrderDeliveryTypePlatform, "%" + fmt.Sprintf("%s", address) + "%", randNumber, 1}
courier := &CourierInfo{}
if err := GetRow(db, courier, sql, param); err != nil {
return nil, err
}
if courier.CourierName == "" || courier.CourierMobile == "" {
info, err := GetAddressRiderInfo(db, address, randNumber+1)
if err != nil {
return nil, err
}
return info, err
}
return courier, nil
}

View File

@@ -83,7 +83,7 @@ func GetThingToTiktokMapList(db *DaoDB, vendorId int, thingId int64, vendorOrgCo
// DeleteThingToTiktokMapList 删除同步关联关系
func DeleteThingToTiktokMapList(vendorId int, vendorThingId string, skuId int) error {
sql := ` DELETE FROM thing_map t1 WHERE t1.vendor_thing_id = ? AND t1.vendor_id = ? AND t1.thing_id = ? `
sql := ` DELETE FROM thing_map WHERE vendor_thing_id = ? AND vendor_id = ? AND thing_id = ? `
param := []interface{}{vendorThingId, vendorId, skuId}
_, err := ExecuteSQL(GetDB(), sql, param...)
return err

View File

@@ -3,7 +3,11 @@ package delivery
import (
"crypto/rand"
"fmt"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"math/big"
"strings"
"time"
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
@@ -323,35 +327,43 @@ func UpdateFakeWayBillToTiktok() {
}
//
//// AutoSettingFakeDelivery 自动设置骑手, 推送假订单
//func AutoSettingFakeDelivery() {
// db := dao.GetDB()
// // 查询需要刷单的门店
// configList, err := dao.QueryConfigs(db, "storeIdList", "AutoDelivery", "")
// if err != nil {
// globals.SugarLogger.Errorf("抖音自动刷单获取刷单门店列表错误:%v", err)
// return
// }
// if len(configList) != model.YES {
// globals.SugarLogger.Errorf("newConfig 刷单门店设置异常")
// return
// }
//
// // 获取刷单门店订单
// orderList, err := dao.GetOrderListByStoreList(db, utils.StringSlice2Int64(strings.Split(configList[0].Value, ",")))
// if err != nil {
// globals.SugarLogger.Errorf("获取门店刷单记录错误")
// return
// }
//
// for _, v := range orderList {
// jxutils.CallMsgHandler(func() {
// // 获取骑手信息
//
// // 自动发单
// err = defsch.FixedScheduler.SelfDeliveringAndUpdateStatus(params.Ctx, params.VendorOrderID, params.VendorID, params.Ctx.GetUserName(), params.CourierName, params.CourierMobile)
// }, jxutils.ComposeUniversalOrderID(v.VendorOrderID, model.VendorIDDD))
// }
//
//}
// AutoSettingFakeDelivery 自动设置骑手, 推送假订单
func AutoSettingFakeDelivery() {
db := dao.GetDB()
// 查询需要刷单的门店
configList, err := dao.QueryConfigs(db, "storeIdList", "AutoDelivery", "")
if err != nil {
globals.SugarLogger.Errorf("抖音自动刷单获取刷单门店列表错误:%v", err)
return
}
if len(configList) != model.YES {
globals.SugarLogger.Errorf("newConfig 刷单门店设置异常")
return
}
// 获取刷单门店订单
orderList, err := dao.GetOrderListByStoreList(db, utils.StringSlice2Int64(strings.Split(configList[0].Value, ",")))
if err != nil {
globals.SugarLogger.Errorf("获取门店刷单记录错误")
return
}
for _, v := range orderList {
jxutils.CallMsgHandler(func() {
// 1.根据订单客户地址获取骑手列表
randNumber, _ := rand.Int(rand.Reader, big.NewInt(200))
randTime := randNumber.Int64()
riderInfo, err := dao.GetAddressRiderInfo(db, strings.Split(v.ConsigneeAddress, "市")[0], randTime)
if err != nil {
globals.SugarLogger.Errorf("自动获取骑手信息错误:[%v]", err)
return
}
// 自动发单
if err := defsch.FixedScheduler.SelfDeliveringAndUpdateStatus(jxcontext.AdminCtx, v.VendorOrderID, v.VendorID, jxcontext.AdminCtx.GetUserName(), riderInfo.CourierName, riderInfo.CourierMobile); err != nil {
globals.SugarLogger.Errorf("自动发货错误:[%v]", err)
return
}
}, jxutils.ComposeUniversalOrderID(v.VendorOrderID, model.VendorIDDD))
}
}