From 557c2711a3e103ebc3d0492344eca9730d5e92b2 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期一, 17 二月 2025 10:47:47 +0800
Subject: [PATCH] 增加司机配送单超时处理任务,防止一直不停手机定位信息,
---
CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs | 291 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 260 insertions(+), 31 deletions(-)
diff --git a/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
index 0464b05..08ba982 100644
--- a/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
+++ b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
@@ -35,6 +35,8 @@
using CoreCms.Net.Model.Entities.baifenbingfa.Promote;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.ScanProductAddV2Request.Types.Product.Types;
using NPOI.SS.Formula.Functions;
+using CoreCms.Net.Model.FromBody;
+using Essensoft.Paylink.Alipay.Domain;
namespace CoreCms.Net.Services
@@ -48,17 +50,20 @@
private readonly IUnitOfWork _unitOfWork;
private readonly ICoreCmsPlanOrderItemRepository _itemDal;
private readonly ICoreCmsUserServices _coreCmsUserServices;
+ private readonly ICoreCmsUserServices _userServices;
public CoreCmsPlanOrderServices(IUnitOfWork unitOfWork, ICoreCmsPlanOrderRepository dal
, ICoreCmsPlanOrderItemRepository itemDal
- , ICoreCmsUserServices coreCmsUserServices)
+ , ICoreCmsUserServices coreCmsUserServices
+ , ICoreCmsUserServices userServices)
{
this._dal = dal;
base.BaseDal = dal;
_unitOfWork = unitOfWork;
_itemDal = itemDal;
_coreCmsUserServices = coreCmsUserServices;
- }
+ _userServices =userServices;
+ }
#region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
@@ -97,9 +102,72 @@
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
- public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+ public async Task<AdminUiCallBack> DeleteByIdAsync(object id,string userName)
{
- return await _dal.DeleteByIdAsync(id);
+ var jm = new AdminUiCallBack() ;
+ try
+ {
+ //寮�濮嬩簨鍔″鐞�
+ _unitOfWork.BeginTran();
+ var order = await _dal.QueryByIdAsync(id);
+
+ if (order.status == 2) //&& string.IsNullOrEmpty(houtai)
+ {
+ _unitOfWork.RollbackTran();
+ jm.code = 1;
+ jm.msg = "璁㈠崟宸茬粡閿佸崟涓嶈兘閲嶅閿佸崟";
+ return jm;
+ }
+
+ order.upDataBy = userName;
+ order.upDataTime = DateTime.Now;
+
+
+
+
+
+
+
+ //order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+
+
+
+ order.status = 2;
+
+ //if (order.keYongAmount > 0)
+ //{
+ // //淇敼鐢ㄦ埛浣欓
+
+ // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟" + order.orderId + "娆鹃」缁撲綑");
+ //}
+
+
+
+ //}
+
+
+ //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+ var jmss = await _dal.UpdateAsync(order);
+
+
+
+
+
+
+ _unitOfWork.CommitTran();
+
+ jm.code = 0;
+ jm.data = order;
+ jm.msg = "閿佸崟鎴愬姛";
+ }
+ catch (Exception e)
+ {
+ _unitOfWork.RollbackTran();
+ jm.code = 1;
+ jm.msg = e.ToString();
+ }
+ return jm;
+ //return await _dal.DeleteByIdAsync(id);
}
/// <summary>
@@ -107,9 +175,77 @@
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
- public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+ public async Task<AdminUiCallBack> DeleteByIdsAsync(string[] ids, string userName)
{
- return await _dal.DeleteByIdsAsync(ids);
+ var jm = new AdminUiCallBack();
+ try
+ {
+ //寮�濮嬩簨鍔″鐞�
+ _unitOfWork.BeginTran();
+ var orders = await _dal.QueryListByClauseAsync(p => ids.Contains(p.orderId), p => p.orderId, OrderByType.Asc, true);
+
+ foreach (var order in orders)
+ {
+ if (order.status != 2) //&& string.IsNullOrEmpty(houtai)
+ {
+ order.upDataBy = userName;
+ order.upDataTime = DateTime.Now;
+ order.status = 2;
+ //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+ var jmss = await _dal.UpdateAsync(order);
+ }
+
+
+
+
+
+
+
+
+ //order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+
+
+
+
+
+ //if (order.keYongAmount > 0)
+ //{
+ // //淇敼鐢ㄦ埛浣欓
+
+ // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟" + order.orderId + "娆鹃」缁撲綑");
+ //}
+
+
+
+ //}
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+ _unitOfWork.CommitTran();
+
+ jm.code = 0;
+ jm.data = orders;
+ jm.msg = "閿佸崟鎴愬姛";
+ }
+ catch (Exception e)
+ {
+ _unitOfWork.RollbackTran();
+ jm.code = 1;
+ jm.msg = e.ToString();
+ }
+ return jm;
+ //return await _dal.DeleteByIdsAsync(ids);
}
#endregion
@@ -139,10 +275,10 @@
/// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
/// <returns></returns>
public async Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(Expression<Func<CoreCmsPlanOrder, bool>> predicate,
- Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, OtherData otherData , int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false)
{
- return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+ return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, otherData, pageIndex, pageSize, blUseNoLock);
}
#endregion
@@ -151,7 +287,7 @@
/// 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
/// </summary>
/// <returns></returns>
- public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5)
+ public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5, int money = 0)
{
var jm = new WebApiCallBack { status = true };
@@ -163,7 +299,13 @@
}
if (userId > 0)
{
+ //var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.id == userId).FirstAsync();
+
where = where.And(p => p.userId == userId);
+ }
+ if (money > 0)
+ {
+ where = where.And(p => p.keYongAmount > p.huaFeiAmount);
}
var list = await _dal.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, page, limit);
@@ -173,7 +315,7 @@
{
//鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
order.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(order.status);
-
+ order.keYongAmount = order.keYongAmount - order.huaFeiAmount;
}
}
jm.data = new
@@ -201,8 +343,9 @@
/// <param name="status">璁″垝璁㈠崟鐘舵��</param>
/// <param name="itemIds">鏄庣粏id</param>
/// <param name="itemNums">鏄庣粏鏁伴噺</param>
+ /// <param name="houtai">鏄惁鍚庡彴缂栬緫</param>
/// <returns></returns>
- public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums)
+ public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums, string houtai = "")
{
var jm = new WebApiCallBack() { methodDescription = "淇敼璁″垝璁㈠崟" };
try
@@ -210,7 +353,15 @@
//寮�濮嬩簨鍔″鐞�
_unitOfWork.BeginTran();
var order = await _dal.QueryByIdAsync(orderId);
-
+
+ var oldorderAmount = order.orderAmount;
+ if (order.status == 2 && string.IsNullOrEmpty(houtai))
+ {
+ _unitOfWork.RollbackTran();
+ jm.status = false;
+ jm.otherData = "璁㈠崟宸茬粡閿佸崟涓嶈兘淇敼";
+ return jm;
+ }
order.upDataBy = userName;
order.upDataTime = DateTime.Now;
@@ -234,28 +385,36 @@
}
order.orderAmount = orderAmount;
- order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+ order.keYongAmount = order.oldOrderAmount - order.orderAmount ;
- if (order.keYongAmount < 0)
+ if (order.keYongAmount < order.huaFeiAmount)
{
_unitOfWork.RollbackTran();
jm.status = false;
- jm.otherData = "鍙敤浣欓涓嶈兘涓鸿礋";
+ jm.otherData = "鍙敤浣欓涓嶈冻";
+ return jm;
}
- if (status == 2)
- {
- order.status = 2;
+ //var keYongAmount = oldorderAmount - orderAmount;
+ //if (order.status == 1)
+ //{
+ // keYongAmount = order.oldOrderAmount - order.orderAmount;
+ //}
+ //if (status == 2)
+ //{
+ // order.status = 2;
- if (order.keYongAmount > 0)
- {
- //淇敼鐢ㄦ埛浣欓
+ // if (keYongAmount != 0)
+ // {
+ // //淇敼鐢ㄦ埛浣欓
- var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟娆鹃」缁撲綑");
- }
+ // var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟"+ order.orderId + "娆鹃」缁撲綑");
+ // }
+
- }
+
+ //}
//鏍¢獙鍚庡啀鍒涘缓璁㈠崟
@@ -305,17 +464,50 @@
order.status = 1;
order.shipMobile = jiHuaOrders[0].shipMobile;
order.shipAddress = jiHuaOrders[0].shipAddress;
- order.shipName = jiHuaOrders[0].shipName; ;
+ order.shipName = jiHuaOrders[0].shipName;
+ order.shouhuoAddress = jiHuaOrders[0].shouhuoAddress;
+ if (string.IsNullOrEmpty(order.shipMobile))
+ {
+ //鎵句笉鍒扮敤鎴峰氨娉ㄥ唽鐢ㄦ埛
+ jm.code = 1;
+ jm.msg = order.shipMobile + "鑱旂郴鐢佃瘽涓嶈兘涓虹┖";
+ return jm;
+ }
var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.mobile == order.shipMobile && x.isDelete == false && x.status == 1).FirstAsync();
if (user != null)
{
order.userId = user.id;
+ user.isplanorder = "鏄�";
+ var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync();
}
else
{
- jm.code = 1;
- jm.msg = order.shipMobile + "娌℃湁鎵惧埌鐢ㄦ埛";
- return jm;
+
+ var data = new FMWxAccountCreate
+ {
+ mobile = order.shipMobile,
+ invitecode = 0,
+ sessionAuthId = ""
+ };
+
+ var jms = await _userServices.SmsLogin(data);
+ user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.mobile == order.shipMobile && x.isDelete == false && x.status == 1).FirstAsync();
+ if (user != null)
+ {
+ order.userId = user.id;
+ user.isplanorder = "鏄�";
+ var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync();
+ }
+ else
+ {
+
+ //鎵句笉鍒扮敤鎴峰氨娉ㄥ唽鐢ㄦ埛
+ jm.code = 1;
+ jm.msg = order.shipMobile + "鑱旂郴鐢佃瘽涓嶆纭�";
+ return jm;
+
+ }
+
}
order.createBy = userName;
@@ -323,10 +515,29 @@
order.upDataBy = userName;
order.upDataTime = DateTime.Now;
order.isdelete = false;
-
+ var shi = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].shi).FirstAsync();
+ if(shi == null)
+ {
+ jm.code = 1;
+ jm.msg = order.shipMobile + "娌℃湁鎵惧埌甯�";
+ return jm;
+ }
+ var quxian = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].quxian && x.parentId == shi.id).FirstAsync();
+ if (shi == null)
+ {
+ jm.code = 1;
+ jm.msg = order.shipMobile + "娌℃湁鎵惧埌鍖哄幙";
+ return jm;
+ }
+ order.shengId = 510000;
+ order.shi = jiHuaOrders[0].shi;
+ order.shiId = shi.id;
+ order.quxianId = quxian.id;
+ order.quxian = jiHuaOrders[0].quxian;
+ order.pianqu = jiHuaOrders[0].pianqu;
decimal orderAmount = 0;
@@ -344,18 +555,36 @@
item.upDataBy = userName;
item.upDataTime = DateTime.Now;
item.isdelete = false;
+ item.isOld = true;
var jms = await _itemDal.InsertAsync(item);
orderAmount += item.amount;
+
+
+ item.isOld = false;
+ jms = await _itemDal.InsertAsync(item);
+ if (jms.code == 1)
+ {
+
+ return jms;
+ }
}
order.orderAmount = orderAmount;
order.oldOrderAmount = orderAmount;
order.keYongAmount = 0;
+ order.huaFeiAmount = 0;
//鏍¢獙鍚庡啀鍒涘缓璁㈠崟
- var jmss = await _dal.InsertAsync(order);
+ var sss = await _unitOfWork.GetDbClient().Insertable<CoreCmsPlanOrder>(order).ExecuteCommandAsync();
+ //var jmss = await _dal.InsertAsync(order);
+
+ //if (jmss.code == 1)
+ //{
+
+ // return jmss;
+ //}
@@ -374,7 +603,7 @@
catch (Exception e)
{
_unitOfWork.RollbackTran();
- jm.code = 0;
+ jm.code = 1;
jm.otherData = e.ToString();
}
return jm;
--
Gitblit v1.9.1