|
|
|
@ -166,58 +166,61 @@ where patient.id = patient_register.patient_id and |
|
|
|
{ |
|
|
|
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) |
|
|
|
{ |
|
|
|
var trans = conn.BeginTransaction(); |
|
|
|
try |
|
|
|
await conn.OpenAsync(); |
|
|
|
|
|
|
|
using (var trans = await conn.BeginTransactionAsync()) |
|
|
|
{ |
|
|
|
//加ConcurrencyStamp,以防止并发
|
|
|
|
string sql; |
|
|
|
sql = @" update charge_request set charge_request_flag =" + chargeRequestFlag + |
|
|
|
@" where id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
|
|
|
|
";
|
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestForPlugIns.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
|
|
|
|
foreach (var chargeRequestAsbitem in chargeRequestForPlugIns.Asbitems) |
|
|
|
try |
|
|
|
{ |
|
|
|
if (chargeRequestFlag == ChargeRequestFlag.AlreadyCharge) |
|
|
|
string sql; |
|
|
|
sql = @" update charge_request set charge_request_flag =" + chargeRequestFlag + |
|
|
|
@" where id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp
|
|
|
|
";
|
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestForPlugIns.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
|
|
|
|
foreach (var chargeRequestAsbitem in chargeRequestForPlugIns.Asbitems) |
|
|
|
{ |
|
|
|
sql = @" update register_check_asbitem set is_charge = 'Y'
|
|
|
|
if (chargeRequestFlag == ChargeRequestFlag.AlreadyCharge) |
|
|
|
{ |
|
|
|
sql = @" update register_check_asbitem set is_charge = 'Y'
|
|
|
|
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp |
|
|
|
";
|
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestAsbitem.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
} |
|
|
|
else if (chargeRequestFlag == ChargeRequestFlag.AlreadyRefund) |
|
|
|
{ |
|
|
|
sql = @" update register_check_asbitem set is_charge = 'N'
|
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestAsbitem.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
} |
|
|
|
else if (chargeRequestFlag == ChargeRequestFlag.AlreadyRefund) |
|
|
|
{ |
|
|
|
sql = @" update register_check_asbitem set is_charge = 'N'
|
|
|
|
where charge_request_id = @ChargeRequestId and concurrency_stamp = @ConcurrencyStamp |
|
|
|
";
|
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestAsbitem.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
await conn.ExecuteAsync(sql, |
|
|
|
new |
|
|
|
{ |
|
|
|
chargeRequestForPlugIns.ChargeRequestId, |
|
|
|
chargeRequestAsbitem.ConcurrencyStamp |
|
|
|
}, trans); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
trans.Commit(); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
trans.Rollback(); |
|
|
|
throw ex; |
|
|
|
await trans.CommitAsync(); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
await trans.RollbackAsync(); |
|
|
|
throw ex; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|