public async Task <IActionResult> CreateOrder([FromBody] GiftOrderInputModel model) { try { await _giftOrderService.CreateGiftOrderAsync(model); return(Ok(new { rlt = true, state = "success" })); } catch (Exception e) { if (!(e is ApplicationException)) { _logger.LogError(e, e.Message); } return(Ok(new { rlt = false, state = "fail", msg = e.Message })); } }
/// <summary> /// 创建订单 /// </summary> /// <param name="model"></param> public async Task CreateGiftOrderAsync(GiftOrderInputModel model) { var entity = _mapper.Map <GiftOrderInputModel, CHIS_Gift_Order>(model); entity.Create(); using (var transaction = _db.Database.BeginTransaction()) { try { var gift = _db.CHIS_Code_Gift.SingleOrDefault(x => x.GiftId == entity.GiftId); if (gift.Type > 0) { var customer = _db.CHIS_Code_Customer.SingleOrDefault(x => x.CustomerID == entity.CustomerId); if (entity.Count > 1) { //虚拟券类拆分订单 var list = new List <CHIS_Gift_Order>(); //var count = entity.Count; //entity.Count = 1; for (int i = 0; i < entity.Count; i++) { list.Add(new CHIS_Gift_Order { CreatedTime = entity.CreatedTime, Count = 1, CustomerId = entity.CustomerId, GiftId = entity.GiftId }); } foreach (var item in list) { CommitOrder(item); } transaction.Commit(); for (int i = 0; i < entity.Count; i++) {//投放卡券 await _weChatService.DeliveryCardAsync(customer.WXOpenId, gift.WeChatCardId); } } else { CommitOrder(entity); transaction.Commit(); await _weChatService.DeliveryCardAsync(customer.WXOpenId, gift.WeChatCardId); } } else { CommitOrder(entity); transaction.Commit(); } } catch (Exception) { transaction.Rollback(); throw; } } }