Commit 25f79c85 by 陶然

优化

parent a797eb70
......@@ -409,60 +409,73 @@ namespace Com.Bocom.OpenApi
var accountBalance = CurrencyUnit.CNY.GetBalanceAccount();
#region 生成扫码支付流水信息并认领
var paymentKvid = Guid.NewGuid();
var 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)
Payment payment = null;
var queryPayment = conn.From<Payment>();
queryPayment.Where(o => o.OffsetKvid == Guid.Empty && o.Type == PaymentType.Bank && o.RootKvid == o.Kvid && o.SerialNumber == receiveCode.response_time);
payment = conn.Single(queryPayment);
if (payment == null)
{
trans1.Rollback();
throw ex;
var paymentKvid = Guid.NewGuid();
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);
var trans2=conn.OpenTransaction();
try
{
conn.Insert(split);
payment.RecalculateAmountSplit(conn);
trans2.Commit();
}
catch (Exception ex)
Payment split = null;
var querySplit = conn.From<Payment>();
querySplit.Where(o => o.Type == PaymentType.Split && o.OffsetKvid == Guid.Empty && o.ParentKvid == payment.Kvid);
split = conn.Single(querySplit);
if (split == null)
{
trans2.Rollback();
throw ex;
}
split = payment.BizSplit(payment.Amount, "自动认领", KiviiContext.CurrentMember.OrganizationKvid, KiviiContext.CurrentMember.OrganizationName, conn, "市场业务收入", payment.OperatorKvid, payment.OperatorName);
var trans2 = conn.OpenTransaction();
try
{
conn.Insert(split);
payment.RecalculateAmountSplit(conn);
trans2.Commit();
}
catch (Exception ex)
{
trans2.Rollback();
throw ex;
}
}
#endregion
//var account = CurrencyUnit.CNY.GetBocomAccount();
var accountBiz = CurrencyUnit.CNY.GetBizAccount();
......@@ -479,7 +492,7 @@ namespace Com.Bocom.OpenApi
}
dynamicPayPayment.SerialNumber = split.GetSubSerialNumber(conn);
conn.Insert(dynamicPayPayment);//创建DynamicSplitPayment
accountDetail.Insert(conn);
accountDetailPayed.Insert(conn);
split.RecalculateAmountUsed(conn);//重新统计到账的使用情况
#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