Commit 25f79c85 by 陶然

优化

parent a797eb70
...@@ -409,60 +409,73 @@ namespace Com.Bocom.OpenApi ...@@ -409,60 +409,73 @@ namespace Com.Bocom.OpenApi
var accountBalance = CurrencyUnit.CNY.GetBalanceAccount(); var accountBalance = CurrencyUnit.CNY.GetBalanceAccount();
#region 生成扫码支付流水信息并认领 #region 生成扫码支付流水信息并认领
var paymentKvid = Guid.NewGuid(); Payment payment = null;
var payment = new Payment(); var queryPayment = conn.From<Payment>();
payment.Kvid = paymentKvid; queryPayment.Where(o => o.OffsetKvid == Guid.Empty && o.Type == PaymentType.Bank && o.RootKvid == o.Kvid && o.SerialNumber == receiveCode.response_time);
payment.RootKvid = payment.Kvid; payment = conn.Single(queryPayment);
payment.SerialNumber = receiveCode.response_time; if (payment == null)
payment.PayerName = $"[扫码支付]{receiveCode.mer_memo}";
payment.PayerAccountKvid = accountBalance.Kvid;
payment.PayerAccountName = accountBalance.Name;
payment.PayerAccountOwnerName = accountBalance.OwnerName;
payment.PayerAccountSerialNumber = accountBalance.SerialNumber;
payment.PayeeName = KiviiContext.CurrentMember.OrganizationName;
payment.Type = PaymentType.Bank;
//payment.Category = "市场业务收入";
payment.OperateTime = DateTime.ParseExact(receiveCode.response_time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
payment.OperatorKvid = KiviiContext.CurrentMember.Kvid;
payment.OperatorName = KiviiContext.CurrentMember.FullName;
payment.Summary = receiveCode.tran_content;
payment.Amount = amountTotal;
payment.Currency = CurrencyUnit.CNY;
payment.BizId = receiveCode.response_time;
payment.BizType = typeof(ReceiveCode).FullName;
payment.BizKvid = receiveCode.Kvid;
var accountDetail = payment.Accept(out Pay pay);
var trans1 = conn.OpenTransaction();
try
{
conn.Insert(payment);
accountDetail.Insert(conn);
conn.Insert(pay);
trans1.Commit();
}
catch (Exception ex)
{ {
trans1.Rollback(); var paymentKvid = Guid.NewGuid();
throw ex; payment = new Payment();
payment.Kvid = paymentKvid;
payment.RootKvid = payment.Kvid;
payment.SerialNumber = receiveCode.response_time;
payment.PayerName = $"[扫码支付]{receiveCode.mer_memo}";
payment.PayerAccountKvid = accountBalance.Kvid;
payment.PayerAccountName = accountBalance.Name;
payment.PayerAccountOwnerName = accountBalance.OwnerName;
payment.PayerAccountSerialNumber = accountBalance.SerialNumber;
payment.PayeeName = KiviiContext.CurrentMember.OrganizationName;
payment.Type = PaymentType.Bank;
//payment.Category = "市场业务收入";
payment.OperateTime = DateTime.ParseExact(receiveCode.response_time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
payment.OperatorKvid = KiviiContext.CurrentMember.Kvid;
payment.OperatorName = KiviiContext.CurrentMember.FullName;
payment.Summary = receiveCode.tran_content;
payment.Amount = amountTotal;
payment.Currency = CurrencyUnit.CNY;
payment.BizId = receiveCode.response_time;
payment.BizType = typeof(ReceiveCode).FullName;
payment.BizKvid = receiveCode.Kvid;
var accountDetail = payment.Accept(out Pay pay);
var trans1 = conn.OpenTransaction();
try
{
conn.Insert(payment);
accountDetail.Insert(conn);
conn.Insert(pay);
trans1.Commit();
}
catch (Exception ex)
{
trans1.Rollback();
throw ex;
}
} }
var split = payment.BizSplit(payment.Amount, "自动认领", null, null, conn, "市场业务收入", payment.OperatorKvid, payment.OperatorName); Payment split = null;
var querySplit = conn.From<Payment>();
var trans2=conn.OpenTransaction(); querySplit.Where(o => o.Type == PaymentType.Split && o.OffsetKvid == Guid.Empty && o.ParentKvid == payment.Kvid);
try split = conn.Single(querySplit);
{ if (split == null)
conn.Insert(split);
payment.RecalculateAmountSplit(conn);
trans2.Commit();
}
catch (Exception ex)
{ {
trans2.Rollback(); split = payment.BizSplit(payment.Amount, "自动认领", KiviiContext.CurrentMember.OrganizationKvid, KiviiContext.CurrentMember.OrganizationName, conn, "市场业务收入", payment.OperatorKvid, payment.OperatorName);
throw ex;
}
var trans2 = conn.OpenTransaction();
try
{
conn.Insert(split);
payment.RecalculateAmountSplit(conn);
trans2.Commit();
}
catch (Exception ex)
{
trans2.Rollback();
throw ex;
}
}
#endregion #endregion
//var account = CurrencyUnit.CNY.GetBocomAccount(); //var account = CurrencyUnit.CNY.GetBocomAccount();
var accountBiz = CurrencyUnit.CNY.GetBizAccount(); var accountBiz = CurrencyUnit.CNY.GetBizAccount();
...@@ -479,7 +492,7 @@ namespace Com.Bocom.OpenApi ...@@ -479,7 +492,7 @@ namespace Com.Bocom.OpenApi
} }
dynamicPayPayment.SerialNumber = split.GetSubSerialNumber(conn); dynamicPayPayment.SerialNumber = split.GetSubSerialNumber(conn);
conn.Insert(dynamicPayPayment);//创建DynamicSplitPayment conn.Insert(dynamicPayPayment);//创建DynamicSplitPayment
accountDetail.Insert(conn); accountDetailPayed.Insert(conn);
split.RecalculateAmountUsed(conn);//重新统计到账的使用情况 split.RecalculateAmountUsed(conn);//重新统计到账的使用情况
#region 同步更新泛型Settlement表中数据 #region 同步更新泛型Settlement表中数据
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment