public Pay_Refund GetRefund(Pay_Order order, decimal refundMoney, string refundDesc) { var sql = "select * from pay_refund where order_id=@orderid and status=1"; var refund = Session.QueryFirst <Pay_Refund>(sql, new { orderId = order.Id }); if (refund == null) { sql = "select isnull(sum(order_money),0) as refunded,count(*) as count " + "from pay_refund where order_id=@orderid and status=2"; var result = Session.QuerySingle <RefundedResult>(sql, new { orderId = order.Id }); if (result.Refunded + refundMoney > order.Order_Money) { throw new AceException($"退款金额大于支付金额!"); } refund = new Pay_Refund(); refund.InitializeId(); refund.DCreate = DateTime.Now; refund.Order_Id = order.Id; refund.Order_SN = $"{order.Order_SN}_{result.Count}"; refund.Order_Money = refundMoney; refund.Order_Desc = refundDesc; refund.State = RefundState.Refunding; Session.Insert(refund); } return(refund); }
public Pay_Refund Refunded(Pay_Refund refund, string refundId, decimal refundMoney, string refundTime) { refund.DUpdate = DateTime.Now; refund.Refund_Id = refundId; refund.Refund_Money = refundMoney; refund.Refund_Time = refundTime; Session.Update(refund); return(refund); }