From 18a4451e5b7bf8f7f6a260796acb24adb3b2ccda Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期一, 14 十月 2024 15:34:28 +0800
Subject: [PATCH] 修正提现逻辑,实现重新建单支付 API
---
cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs | 25 ++
cylsg/EzJob/WeChatJob.cs | 7
cylsg/cylsg.Application/Transfer/UserTransfer.cs | 585 ++++++++++++++++++++++++++++++++++++++++++++++++++++
cylsg/EzInitQ/PayServiceMessageQ.cs | 24 +
4 files changed, 627 insertions(+), 14 deletions(-)
diff --git a/cylsg/EzInitQ/PayServiceMessageQ.cs b/cylsg/EzInitQ/PayServiceMessageQ.cs
index a9194b3..d4e47d4 100644
--- a/cylsg/EzInitQ/PayServiceMessageQ.cs
+++ b/cylsg/EzInitQ/PayServiceMessageQ.cs
@@ -175,7 +175,9 @@
retdata.BatchStatus= ret.BatchStatus;
retdata.UpDataBy = "寰俊浠樻璇锋眰涔嬪悗";
retdata.UpDataTime= DateTime.Now;
- await WeChatTransferOrderwork.UpdateAsync(retdata);
+ retdata.ErrorMsg = ret.ErrorMessage;
+ retdata.ErrorCode = ret.ErrorCode;
+ await WeChatTransferOrderwork.UpdateAsync(retdata);
}
else
throw Oops.Oh($"寰俊璇锋眰浠樻澶辫触+++++++++++++{ret.ToString()}+++++++++++msg{msg}");
@@ -228,6 +230,9 @@
retdata.BatchStatus = ret.BatchStatus;
retdata.UpDataBy = "寰俊浠樻璇锋眰涔嬪悗";
retdata.UpDataTime = DateTime.Now;
+ retdata.ErrorMsg = ret.ErrorMessage;
+ retdata.ErrorCode = ret.ErrorCode;
+
await WeChatTransferOrderwork.UpdateAsync(retdata);
}
else
@@ -253,7 +258,7 @@
_ezCoreNetRedisService = App.GetService<IEzCoreNetRedisService>();
_wecharPayServicecs = App.GetService<IWecharPayServicecs>();
_mapper = App.GetService<IMapper>();
-
+
var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
var TransferOrder = await WeChatTransferOrderwork.AsQueryable().Includes(x => x.TransferDetailList).Includes(x=>x.user).Where(x => x.Id == msg.toInt()).FirstAsync();
@@ -263,11 +268,7 @@
return;
}
- if (!string.IsNullOrEmpty(TransferOrder.BatchStatus))
- {
-
- return;
- }
+
var UserWork = new BaseRepository<UserWorker>();
var userWk = await UserWork.GetFirstAsync(x => x.UserId == TransferOrder.UserID);
if (userWk == null)
@@ -286,6 +287,8 @@
requit.BatchRemark = $"{TransferOrder.user.ItCode}{userWk.name?.Substring(0,2)}{userWk.IdCode}";
var ret = await _wecharPayServicecs.Transfer(requit);
+
+
if (ret.IsSuccessful())
{
var retdata = await WeChatTransferOrderwork.GetByIdAsync(TransferOrder.Id);
@@ -293,8 +296,8 @@
retdata.BatchStatus = ret.BatchStatus;
retdata.UpDataBy = "鍐嶆寰俊浠樻璇锋眰";
retdata.UpDataTime = DateTime.Now;
- retdata.ErrorMsg = null;
- retdata.ErrorCode = null;
+ retdata.ErrorMsg = ret.ErrorMessage;
+ retdata.ErrorCode = ret.ErrorCode;
await WeChatTransferOrderwork.UpdateAsync(retdata);
}
else
@@ -307,6 +310,9 @@
retdata.UpDataTime = DateTime.Now;
await WeChatTransferOrderwork.UpdateAsync(retdata);
Log.Error($"WxTransfer寰俊鏀粯澶勭悊 澶辫触锛屼紶閫扞d涓簕msg} 閿欒鍘熷洜:{retdata.ErrorMsg}");
+
+
+
return;
}
diff --git a/cylsg/EzJob/WeChatJob.cs b/cylsg/EzJob/WeChatJob.cs
index 122144e..3f45ef9 100644
--- a/cylsg/EzJob/WeChatJob.cs
+++ b/cylsg/EzJob/WeChatJob.cs
@@ -33,7 +33,10 @@
}
var WeChatTransferOrderRs = new BaseRepository<WeChatTransferOrder>();
- var OderList = await WeChatTransferOrderRs.AsQueryable().Includes(x=>x.TransferDetailList).Where(x => (x.BatchId != null && x.BatchId != "")&&(x.BatchStatus==null|| x.BatchStatus == "ACCEPTED" || x.BatchStatus == "PROCESSING")).ToListAsync();
+ var OderList = await WeChatTransferOrderRs.AsQueryable().Includes(x=>x.TransferDetailList).Where(x => (x.BatchId != null && x.BatchId != "")&&(
+ (x.BatchStatus==null&&x.ErrorCode!= "INVALID_REQUEST") //浠h〃鏀粯鏃剁珛鍗虫姤閿欙紝涓嶄簣鏌ヨ
+ || x.BatchStatus == "ACCEPTED" || x.BatchStatus == "PROCESSING")
+ && x.IsSetOK==false).ToListAsync();
foreach( var o in OderList )
{
@@ -60,6 +63,8 @@
o.FailNum = ret.TransferBatch.FailNumber;
o.SuccessNum = ret.TransferBatch.SuccessNumber;
o.SuccessAmount= ret.TransferBatch.SuccessAmount;
+ o.ErrorCode = ret.ErrorCode;
+ o.ErrorMsg = ret.ErrorCode;
foreach (var item in o.TransferDetailList)
{
var del =ret.TransferDetailList.Where(x=>x.OutDetailNumber==item.OutDetailNumber).FirstOrDefault();
diff --git a/cylsg/cylsg.Application/Transfer/UserTransfer.cs b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
index cf480f6..137496d 100644
--- a/cylsg/cylsg.Application/Transfer/UserTransfer.cs
+++ b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
@@ -81,7 +81,7 @@
}
if (string.IsNullOrEmpty(user.WxOpenId))
{
- throw Oops.Oh($"鐢ㄦ埛寰俊OpenID纭疄");
+ throw Oops.Oh($"鐢ㄦ埛寰俊纭澶辫触");
}
var uw = await rs.GetFirstAsync(x => x.UserId == userid);
if (uw == null)
@@ -256,7 +256,7 @@
/// </summary>
[AllowAnonymous]
[HttpPost]
- //[ApiExplorerSettings(IgnoreApi = true)]
+ [ApiExplorerSettings(IgnoreApi = true)]
public async Task<TransferOderOut> GetTransferOder(SearchTransferOder param)
{
@@ -280,15 +280,19 @@
SearchList= SearchList.And(x => x.BatchStatus != lis);
}
}
+ if(param.IsSetOK!=null)
+ {
+ SearchList = SearchList.And(x =>x.IsSetOK==param.IsSetOK);
+ }
if (param.HasSendOk == false)
SearchList= SearchList.And(x => x.FailNum >0||x.BatchStatus!= "FINISHED");
else
//鏈変竴绗斿ぇ浣�0 鐨勮涓哄け璐�
- SearchList= SearchList.And(x => x.FailNum ==0&&x.BatchStatus== "FINISHED");
+ SearchList= SearchList.And(x => x.FailNum ==0&&x.BatchStatus=="FINISHED");
var data=await WeChatTransferOrderwork.AsQueryable().Where(SearchList).Select(x=>new WeChatTransferOrder
{
BatchRemark= SqlFunc.Subqueryable<UserWorker>().Where(uw=>uw.UserId==x.UserID).Select(uw => uw.name+ uw.IdCode)
- }).ToPageListAsync(pageModel.PageIndex, pageModel.PageSize,pageModel.TotalCount);
+ },true).ToPageListAsync(pageModel.PageIndex, pageModel.PageSize,pageModel.TotalCount);
//var data = await WeChatTransferOrderwork.GetPageListAsync(SearchList, pageModel);
return new TransferOderOut
@@ -328,6 +332,538 @@
}
+ /// <summary>
+ /// 閲嶆柊寤哄崟 鏀粯
+ /// </summary>
+ /// <param name="id"> 璁㈠崟ID</param>
+ /// <returns></returns>
+ [AllowAnonymous]
+ [HttpGet]
+ [ApiExplorerSettings(IgnoreApi = true)]
+ public async Task ReSendCreadTransferMoney([FromQuery] string id)
+ {
+
+
+ var itmsRes = new BaseRepository<WeChatTransferOrder>();
+ if (string.IsNullOrEmpty(id))
+ throw Oops.Oh("鍙傛暟閿欒");
+
+
+ var TOrder = await itmsRes.GetByIdAsync(id.toInt());
+ if (TOrder == null)
+ {
+ throw Oops.Oh("娌℃湁璁㈠崟闇�瑕佸鐞�");
+ }
+ if(TOrder.IsSetOK ==true)
+ {
+ throw Oops.Oh("宸茬粡澶勭悊涓嶅啀澶勭悊");
+ }
+ if(!(TOrder.ErrorCode== "INVALID_REQUEST"&&TOrder.ErrorMsg== "瀵瑰簲鍗曞彿宸茶秴鍑洪噸璇曟湡,璇锋煡鍗曠‘璁ゅ悗鍐冲畾鏄惁鎹㈠崟璇锋眰"))
+ {
+ //涓嶆弧瓒冲啿娲楁敮浠樿姹�
+ throw Oops.Oh("涓嶆弧瓒抽噸鏂版敮浠樿姹�");
+ }
+
+ var rs = new BaseRepository<UserWorker>();
+ var userid = TOrder.UserID;
+ var Money = (TOrder.FailAmount??0)/100m;
+ if(Money<0.03m)
+ {
+ throw Oops.Oh("澶辫触閲戦涓嶈冻0.3鍏冧笉鑳藉啀娆″彂璧锋敮浠�");
+ }
+
+ if (await _redisService.TryLock(StaticStringDef.TransferMoneyLockKey + userid.ToString(), 300))
+ {
+
+ try
+ {
+ var UserRs = new BaseRepository<User>();
+ var user = await UserRs.GetByIdAsync(userid);
+ if (user == null)
+ {
+ throw Oops.Oh($"娌℃湁鎵惧埌鐢ㄦ埛");
+ }
+ if (string.IsNullOrEmpty(user.WxOpenId))
+ {
+ throw Oops.Oh($"鐢ㄦ埛寰俊OpenID纭");
+ }
+ var uw = await rs.GetFirstAsync(x => x.UserId == userid);
+ if (uw == null)
+ {
+ throw Oops.Oh("璇ョ敤鎴锋病鏈夋敹鍏�");
+ }
+
+
+
+ var totle = _redisService.Get<decimal>(StaticStringDef.TransferMoneyManKey + userid.ToString());
+ if (totle + Money > 2000)
+ {
+ throw Oops.Oh("鎻愮幇閲戦涓嶅彲瓒呭嚭2000");
+ }
+
+
+
+
+ var UserTiXianDetailwork = new BaseRepository<UserTiXianDetail>();
+ var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
+ if ((uw != null) && (((uw.TiXianZonge ?? 0) - (uw.YiTiXianJine ?? 0)) >= Money))
+ {
+ //婊¤冻鏉′欢锛屽彂璧锋敮浠�
+ var TransferOrder = new WeChatTransferOrder
+ {
+
+ CreateBy = uw.UserId.ToString(),
+ CreateTime = DateTime.Now,
+ // BatchId = _redisService.Get32sn(),
+ OutBatchNumber = _redisService.Get32sn(),
+ Remake = "宸濆嵃宸ヨ祫鏀粯",
+ TransferDetailList = new List<WeChatTransferItem>(),
+ UserID = uw.UserId,
+ RemakeDes = "琛ュ厖鍙戣捣鏀粯" ,
+ WeChatTransferOrderPrId = TOrder.Id
+
+
+ };
+ try
+ {
+
+ await UserTiXianDetailwork.AsTenant().BeginTranAsync();
+
+
+
+
+ var moneylist = Money;
+
+ var maxPayItem = Convert.ToDecimal(App.Configuration["WechartPay:PayMoneyMax"].toInt()); ;
+ while ((moneylist > maxPayItem))
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = uw.UserId.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)maxPayItem * 100,
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯"
+
+
+
+ });;
+
+ moneylist -= maxPayItem;
+ }
+ if (moneylist <= 0.3m)
+ {
+ //濡傛灉杩欓噷浣庝簬0.3姣涳紝灏嗙ぞ鍖洪妫�锛岀暀涓嬫澶勭悊
+ Money -= moneylist;
+ }
+ else
+
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = uw.UserId.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)(moneylist * 100),
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+ });
+ }
+
+ TransferOrder.TotalAmount = (int)(Money * 100);
+ TransferOrder.TotalNum = TransferOrder.TransferDetailList.Count();
+
+ TransferOrder = await WeChatTransferOrderwork.AsSugarClient().InsertNav(TransferOrder).Include(x => x.TransferDetailList).ExecuteReturnEntityAsync();
+
+ TOrder.IsSetOK = true;
+ TOrder.RemakeDes = "宸茬粡閲嶆柊寤虹珛鏀粯璁㈠崟 id="+TransferOrder.Id.ToString();
+ TOrder.UpDataBy = "閲嶆柊绠�鍗曟敮浠楢PI";
+ TOrder.UpDataTime= DateTime.Now;
+ await WeChatTransferOrderwork.UpdateAsync(TOrder);
+
+
+
+ await UserTiXianDetailwork.AsTenant().CommitTranAsync();
+
+ totle += Money;
+ //璁剧疆姣忔棩鎻愮幇闄愰
+ _redisService.Add(StaticStringDef.TransferMoneyManKey + userid.ToString(), totle, 60 * 60 * 24);
+ //鍙戣捣鏀粯
+ await InitQMessages.SendMessageAsync(InitQMessages.WxTransfer, TransferOrder.Id.ToString());
+ }
+ catch (Exception)
+ {
+ await UserTiXianDetailwork.AsTenant().RollbackTranAsync();
+ throw;
+ }
+ // 鍙戣捣鏀粯
+
+
+
+ }
+ else
+ {
+ throw Oops.Oh("绯荤粺閿欒");
+ }
+
+ }
+ catch (Exception)
+ {
+
+ throw;
+ }
+ finally
+ {
+ await _redisService.TryUnLock(StaticStringDef.TransferMoneyLockKey + userid.ToString());
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ else
+ throw Oops.Oh("璇蜂笉瑕侀绻侀噸澶嶇敵璇�");
+
+
+
+
+
+ }
+
+ /// <summary>
+ /// 閲嶆柊鍒涘缓鏂扮殑鏀粯鍗�
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ [AllowAnonymous]
+ [HttpPost]
+ [ApiExplorerSettings(IgnoreApi = true)]
+ public async Task<WeChatTransferOrder> CreateTransferOder(CreatTransferOderIN Param)
+ {
+ if(Param.Key!= DateTime.Now.ToString("yyyy-MM-dd:HH")+"CreatTransfer")
+ {
+ //key 閿欒
+ throw Oops.Oh("key閿欒");
+ }
+
+
+ var userbs= new BaseRepository<User>();
+ //鍒ゆ柇鏄惁鏄敤鎴�
+ var user= await userbs.GetByIdAsync(Param.UserID);
+ if (user == null)
+ throw Oops.Oh("娌℃湁鐢ㄦ埛");
+ if(Param.Money<=0.3m)
+ {
+ throw Oops.Oh("杞处閲戦蹇呴』澶т綑0.3鍏�");
+ }
+ if (Param.Money >2000)
+ {
+ throw Oops.Oh("涓�澶╄浆璐﹂噾棰濆繀椤诲皬浜�2000");
+ }
+ if (Param.Money > 2000)
+ {
+ throw Oops.Oh("涓�澶╄浆璐﹂噾棰濆繀椤诲皬浜�2000");
+ }
+
+ var totle = _redisService.Get<decimal>(StaticStringDef.TransferMoneyManKey + Param.UserID.ToString());
+ if (totle + Param.Money > 2000)
+ {
+ throw Oops.Oh("涓�澶╄浆璐﹂噾棰濆繀椤诲皬浜�2000");
+ }
+
+ decimal Money = Param.Money;
+
+ //婊¤冻鏉′欢锛屽彂璧锋敮浠�
+ var TransferOrder = new WeChatTransferOrder
+ {
+
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = DateTime.Now,
+ // BatchId = _redisService.Get32sn(),
+ OutBatchNumber = _redisService.Get32sn(),
+ Remake = "宸濆嵃宸ヨ祫鏀粯",
+ TransferDetailList = new List<WeChatTransferItem>(),
+ UserID = Param.UserID,
+ RemakeDes = Param.Remake,
+
+
+
+
+
+ };
+
+
+
+ //鏄惁鍏宠仈鏀跺叆閽卞寘琛�
+ if (Param.HasAboutReCome)
+ {
+ var UserTiXianDetailwork = new BaseRepository<UserTiXianDetail>();
+ var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
+ var rs = new BaseRepository<UserWorker>();
+ var uw = await rs.GetFirstAsync(x => x.UserId == Param.UserID);
+ if(uw==null)
+ {
+ throw Oops.Oh("璇ョ敤鎴锋病鏈夊叧鑱旈挶鍖�");
+ }
+ //閿佸畾閽卞寘
+ if (await _redisService.TryLock(StaticStringDef.TransferMoneyLockKey + Param.UserID.ToString(), 300))
+ {
+ try
+ {
+ await UserTiXianDetailwork.AsTenant().BeginTranAsync();
+
+
+
+
+ var moneylist = Money;
+
+ var maxPayItem = Convert.ToDecimal(App.Configuration["WechartPay:PayMoneyMax"].toInt()); ;
+ while ((moneylist > maxPayItem))
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)maxPayItem * 100,
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+ });
+
+ moneylist -= maxPayItem;
+ }
+ if (moneylist <= 0.3m)
+ {
+ //濡傛灉杩欓噷浣庝簬0.3姣涳紝灏嗙ぞ鍖洪妫�锛岀暀涓嬫澶勭悊
+ Money -= moneylist;
+ }
+ else
+
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)(moneylist * 100),
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+ });
+ }
+
+ TransferOrder.TotalAmount = (int)(Money * 100);
+ TransferOrder.TotalNum = TransferOrder.TransferDetailList.Count();
+
+ TransferOrder = await WeChatTransferOrderwork.AsSugarClient().InsertNav(TransferOrder).Include(x => x.TransferDetailList).ExecuteReturnEntityAsync();
+ await UserTiXianDetailwork.InsertAsync(new UserTiXianDetail
+ {
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = DateTime.Now,
+ UserId = user.Id,
+ ZhiChuShouRu = 0,
+ YiTiXianJine = Money,
+ WeChatTransferOrderID = TransferOrder.Id,
+ Remark = "鐢ㄦ埛鎻愮幇"
+
+ });
+ //閽卞寘浣欓璋冩暣
+ uw.YiTiXianJine = (uw.YiTiXianJine ?? 0) + Money;
+ uw.UpDataBy = uw.UserId.ToString();
+ uw.UpDataTime = DateTime.Now;
+ await rs.UpdateAsync(uw);
+
+
+ await UserTiXianDetailwork.AsTenant().CommitTranAsync();
+
+ totle += Money;
+ //璁剧疆姣忔棩鎻愮幇闄愰
+ _redisService.Add(StaticStringDef.TransferMoneyManKey + Param.UserID.ToString(), totle, 60 * 60 * 24);
+ //鍙戣捣鏀粯
+ await InitQMessages.SendMessageAsync(InitQMessages.WxTransfer, TransferOrder.Id.ToString());
+ }
+ catch (Exception)
+ {
+
+ throw;
+ }
+ finally
+ {
+ //閲婃斁
+ await _redisService.TryUnLock(StaticStringDef.TransferMoneyLockKey + Param.UserID.ToString());
+ }
+
+
+ }
+ else
+ {
+ throw Oops.Oh("绯荤粺绻佸繖锛岀◢鍚庨噸璇�");
+ }
+
+ }
+ else
+ {
+ //鐩存帴杞处锛屼笉璁″叆閽卞寘璁板綍锛屼富瑕佺敤浜庡鐞嗚秴鏃跺悗鏃犳硶閲嶆柊鏀粯鐨勫崟瀛�
+
+ var UserTiXianDetailwork = new BaseRepository<UserTiXianDetail>();
+ var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
+
+
+ //閿佸畾閽卞寘
+ if (await _redisService.TryLock(StaticStringDef.TransferMoneyLockKey + Param.UserID.ToString(), 300))
+ {
+ try
+ {
+ await UserTiXianDetailwork.AsTenant().BeginTranAsync();
+
+
+
+
+ var moneylist = Money;
+
+ var maxPayItem = Convert.ToDecimal(App.Configuration["WechartPay:PayMoneyMax"].toInt()); ;
+ while ((moneylist > maxPayItem))
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)maxPayItem * 100,
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+ });
+
+ moneylist -= maxPayItem;
+ }
+ if (moneylist <= 0.3m)
+ {
+ //濡傛灉杩欓噷浣庝簬0.3姣涳紝灏嗙ぞ鍖洪妫�锛岀暀涓嬫澶勭悊
+ Money -= moneylist;
+ }
+ else
+
+ {
+ TransferOrder.TransferDetailList.Add(new WeChatTransferItem
+ {
+ CreateBy = Param.UserID.ToString(),
+ CreateTime = TransferOrder.CreateTime,
+ IsEn = true,
+ OpenId = user.WxOpenId,
+ OutDetailNumber = _redisService.Get32sn(),
+
+ TransferAmount = (int)(moneylist * 100),
+ TransferRemark = "宸濆嵃宸ヨ祫鏀粯",
+
+ });
+ }
+
+ TransferOrder.TotalAmount = (int)(Money * 100);
+ TransferOrder.TotalNum = TransferOrder.TransferDetailList.Count();
+
+ TransferOrder = await WeChatTransferOrderwork.AsSugarClient().InsertNav(TransferOrder).Include(x => x.TransferDetailList).ExecuteReturnEntityAsync();
+
+ await UserTiXianDetailwork.AsTenant().CommitTranAsync();
+
+ totle += Money;
+ //璁剧疆姣忔棩鎻愮幇闄愰
+ _redisService.Add(StaticStringDef.TransferMoneyManKey + Param.UserID.ToString(), totle, 60 * 60 * 24);
+ //鍙戣捣鏀粯
+ await InitQMessages.SendMessageAsync(InitQMessages.WxTransfer, TransferOrder.Id.ToString());
+ }
+ catch (Exception)
+ {
+
+ throw;
+ }
+ finally
+ {
+ //閲婃斁
+ await _redisService.TryUnLock(StaticStringDef.TransferMoneyLockKey + Param.UserID.ToString());
+ }
+
+
+ }
+ else
+ {
+ throw Oops.Oh("绯荤粺绻佸繖锛岀◢鍚庨噸璇�");
+ }
+
+ }
+
+
+ return TransferOrder;
+
+
+
+
+ }
+ /// <summary>
+ /// 璁剧疆涓哄鐞嗙姸鎬�
+ /// </summary>
+ /// <param name="remak"></param>
+ /// <returns></returns>
+ [AllowAnonymous]
+ [HttpGet]
+ [ApiExplorerSettings(IgnoreApi = true)]
+ public async Task<bool > SetOk([FromQuery] string remark,[FromQuery] string id)
+ {
+ if(string.IsNullOrEmpty(remark))
+ {
+ throw Oops.Oh("蹇呴』瑕佹湁澶囨敞淇℃伅");
+
+ }
+ if (string.IsNullOrEmpty(id))
+ {
+ throw Oops.Oh("蹇呴』鏈塈D淇℃伅");
+
+ }
+ var WeChatTransferOrderwork = new BaseRepository<WeChatTransferOrder>();
+ var oder= await WeChatTransferOrderwork.GetByIdAsync(id.toInt());
+ if(oder == null)
+ {
+ throw Oops.Oh("娌℃湁鎵惧埌璁㈠崟");
+ }
+
+ if(oder.IsSetOK== true)
+ {
+ throw Oops.Oh("宸茬粡澶勭悊浜�");
+ }
+ oder.IsSetOK = true;
+ oder.RemakeDes = remark;
+ oder.UpDataBy = "API";
+ oder.UpDataTime= DateTime.Now;
+ await WeChatTransferOrderwork.UpdateAsync(oder);
+
+ return true;
+
+
+
+ }
+
}
/// <summary>
@@ -357,6 +893,11 @@
/// </summary>
public int PageSize { get; set; }
+ /// <summary>
+ /// 鏄惁鐗规畩澶勭悊姣斿鏀粯澶辫触鍚庡凡缁忓鐞嗕负鍏朵粬鎯呭喌
+ /// </summary>
+ public bool? IsSetOK { get; set; }
+
}
public class TransferOderOut
@@ -364,6 +905,42 @@
public List<WeChatTransferOrder> listdata { get; set; }
public int TotalCount { get; set; }
}
+ /// <summary>
+ ///
+ /// </summary>
+ public class CreatTransferOderIN
+ {
+ /// <summary>
+ /// 鎻愮幇閲戦
+ /// </summary>
+ [Required]
+ public decimal Money { get; set; }
+ /// <summary>
+ /// 鎻愮幇鐢ㄦ埛
+ /// </summary>
+ [Required]
+ public int UserID { get; set; }
+ /// <summary>
+ ///
+ /// </summary>
+ [Required]
+ public string Remake{ get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔key
+ /// </summary>
+ [Required]
+ public string Key { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍏宠仈鏀剁泭
+ /// </summary>
+ [Required]
+ public Boolean HasAboutReCome { get; set; }
+
+
+
+ }
}
diff --git a/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs
index 79e78d8..bec1437 100644
--- a/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs
+++ b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs
@@ -155,6 +155,31 @@
/// </summary>
[Navigate(NavigateType.OneToMany,nameof(WeChatTransferItem.WeChatTransferOrderID))]
public List<WeChatTransferItem> TransferDetailList { get; set; }
+
+ /// <summary>
+ /// 鍐嶆鍙戣捣鏃� 鐨勬弿杩�
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鍏朵粬鎻忚堪", IsNullable = true)]
+ public string? RemakeDes { get; set; }
+ /// <summary>
+ /// 鏄惁閲嶆柊鍙戣捣鏀粯锛屽綋鏀粯澶辫触鍚庯紝瓒呭嚭閲嶆柊鐨勬敮浠樺崟澶辫触鍚庯紝闇�瑕侀噸鏂版洿鎹㈠崟鍙烽噸鏂板彂璧锋柊鐨勬敮浠樿姹傦紝閲嶆柊鍙戣捣鏀粯璇锋眰鍗�
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鏄噸鏂板彂璧风殑鏀粯璁㈠崟", IsNullable = true)]
+ public int? WeChatTransferOrderPrId { get; set; }
+
+
+ /// <summary>
+ /// 閲嶆柊鏀粯璁㈠崟鍒楄〃
+ /// </summary>
+ [Navigate(NavigateType.OneToMany, nameof(WeChatTransferOrderPrId))]
+ public List<WeChatTransferOrder>? AgWeChatTransferOrders { get; set; }
+
+ /// <summary>
+ /// 鏄惁宸茬粡瀹屾垚澶勭悊 榛樿鏈鐞�
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鏄惁宸茬粡瀹屾垚澶勭悊", DefaultValue ="0")]
+ public bool IsSetOK { get; set; }= false;
+
}
--
Gitblit v1.9.1