This commit is contained in:
邹宗楠
2023-03-02 17:58:07 +08:00
parent 23d5cf212a
commit a9416695ba
5 changed files with 98 additions and 31 deletions

View File

@@ -2,6 +2,7 @@ package auto_delivery
import (
"crypto/rand"
"encoding/json"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -14,9 +15,62 @@ import (
"strings"
)
var riderListInfo = make(map[string][]map[string]string, 0)
func Init() {
db := dao.GetDB()
// 骑手列表
configRiderList, err := dao.QueryConfigs(db, "riderList", "AutoRiderList", "")
if err != nil {
globals.SugarLogger.Errorf("抖音自动刷单获取骑手列表错误:%v", err)
return
}
list := make(map[string][]map[string]string, 0)
if err := json.Unmarshal([]byte(configRiderList[0].Value), &list); err != nil {
globals.SugarLogger.Errorf("抖音自动刷单获取骑手列表错误:%v", err)
return
}
for _, v := range []string{"四川", "广东", "西安", "重庆"} {
if _, ok := list[v]; ok && len(list[v]) >= 200 {
continue
}
riderList, err := dao.GetAddressRiderInfo(db, v)
if err != nil {
globals.SugarLogger.Errorf("初始化各省份骑手信息错误:[%v]", err)
return
}
addressRiderList := make([]map[string]string, 0)
for i := 0; i < len(riderList); i++ {
if len(riderList[i].CourierMobile) == 11 {
riderMap := make(map[string]string, 1)
riderMap[riderList[i].CourierName] = riderList[i].CourierMobile
addressRiderList = append(addressRiderList, riderMap)
}
if len(addressRiderList) >= 200 {
list[v] = addressRiderList
break
}
}
}
listStr, err := json.Marshal(list)
if err != nil {
globals.SugarLogger.Errorf("Marshal 骑手信息错误:[%v]", err)
return
}
if err := dao.UpdateOperatorConfig(string(listStr), "AutoRiderList", "riderList"); err != nil {
globals.SugarLogger.Errorf("UpdateOperatorConfig 骑手配置信息错误:[%v]", err)
return
}
riderListInfo = list
}
// AutoSettingFakeDelivery 抖音自动设置骑手, 推送假订单
func AutoSettingFakeDelivery() {
db := dao.GetDB()
// 查询需要刷单的门店
configList, err := dao.QueryConfigs(db, "storeIdList", "AutoDelivery", "")
if err != nil {
@@ -34,16 +88,34 @@ func AutoSettingFakeDelivery() {
globals.SugarLogger.Errorf("获取门店刷单记录错误")
return
}
if len(orderList) == model.NO {
return
}
for _, v := range orderList {
jxutils.CallMsgHandler(func() {
// 1.根据订单客户地址获取骑手列表
randNumber, _ := rand.Int(rand.Reader, big.NewInt(200))
riderKey := strings.Split(v.ConsigneeAddress, "省")[0]
if len(riderListInfo[riderKey]) == model.NO {
// 骑手列表
configRiderList, err := dao.QueryConfigs(db, "riderList", "AutoRiderList", "")
if err != nil {
globals.SugarLogger.Errorf("抖音自动刷单获取骑手列表错误:%v", err)
return
}
if err := json.Unmarshal([]byte(configRiderList[0].Value), &riderListInfo); err != nil {
globals.SugarLogger.Errorf("抖音自动刷单获取骑手列表错误:%v", err)
return
}
}
randNumber, _ := rand.Int(rand.Reader, big.NewInt(int64(len(riderListInfo[riderKey]))))
randTime := randNumber.Int64()
riderInfo, err := dao.GetAddressRiderInfo(db, strings.Split(v.ConsigneeAddress, "市")[0], randTime)
if err != nil {
globals.SugarLogger.Errorf("自动获取骑手信息错误:[%v]", err)
return
if randTime < 0 {
randTime = 1
}
if randTime > int64(len(riderListInfo[riderKey])) {
randTime = int64(len(riderListInfo[riderKey])) - 1
}
// 自动拣货
@@ -54,11 +126,12 @@ func AutoSettingFakeDelivery() {
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
for riderName, riderPhone := range riderListInfo[riderKey][randTime] {
if err := defsch.FixedScheduler.SelfDeliveringAndUpdateStatus(jxcontext.AdminCtx, v.VendorOrderID, v.VendorID, jxcontext.AdminCtx.GetUserName(), riderName, riderPhone); err != nil {
globals.SugarLogger.Errorf("自动发货错误:[%v]", err)
return
}
}
}, jxutils.ComposeUniversalOrderID(v.VendorOrderID, model.VendorIDDD))
}
}