TransactionsController.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. using Fuel.Application.Authorization;
  2. using Fuel.Application.Service;
  3. using Fuel.Core.Nozzle.Dto;
  4. using Fuel.Core.Transactions.Dto;
  5. using FuelServer.Core.Entity;
  6. using Microsoft.AspNetCore.Authorization;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.AspNetCore.Mvc;
  9. namespace Fuel.PaymentServer.Controllers
  10. {
  11. [Route("api/[controller]")]
  12. [ApiController]
  13. //[Authorize]
  14. public class TransactionsController : ControllerBase
  15. {
  16. private readonly ITransactionsService _transactionsService;
  17. static NLog.Logger logger = NLog.LogManager.LoadConfiguration("nlog.xml").GetLogger("Main");
  18. public TransactionsController(ITransactionsService transactionsService)
  19. {
  20. _transactionsService = transactionsService;
  21. }
  22. /// <summary>
  23. /// 创建订单
  24. /// </summary>
  25. /// <param name="uploadTransactions"></param>
  26. /// <returns></returns>
  27. [Permission("Transactions:CreateTransactions:POST")]
  28. [Route("CreateTransactions")]
  29. [HttpPost]
  30. public async Task<IActionResult> CreateTransactionsAsync(UploadTransactions uploadTransactions)
  31. {
  32. var serviceResult = await _transactionsService.CreateTransactions(uploadTransactions);
  33. return Ok(serviceResult);
  34. }
  35. /// <summary>
  36. /// 查询订单
  37. /// </summary>
  38. /// <param name="input"></param>
  39. /// <returns></returns>
  40. [Permission("Transactions:GetTransactions:POST")]
  41. [Route("GetTransactions")]
  42. [HttpPost]
  43. public async Task<IActionResult> GetTransactionsAsync(RequestModel input)
  44. {
  45. var serviceResult = await _transactionsService.GetTransactionsAsync(input);
  46. return Ok(serviceResult);
  47. }
  48. /// <summary>
  49. /// 小程序用户查询未支付订单
  50. /// </summary>
  51. /// <param name="input"></param>
  52. /// <returns></returns>
  53. [Permission("Transactions:GetMiniProgramTransactionsUnpaidQuery:GET")]
  54. [Route("GetMiniProgramTransactionsUnpaidQuery")]
  55. [HttpGet]
  56. public async Task<IActionResult> GetMiniProgramTransactionsUnpaidAsync(TransactionsInput input)
  57. {
  58. var serviceResult = await _transactionsService.GetMiniProgramTransactionsUnpaidAsync(input);
  59. return Ok(serviceResult);
  60. }
  61. /// <summary>
  62. /// 小程序用户根据抢号查询未支付订单
  63. /// </summary>
  64. /// <param name="input"></param>
  65. /// <returns></returns>
  66. [Permission("Transactions:GetMiniProgramTransactionsUnpaidNozzle:GET")]
  67. [Route("GetMiniProgramTransactionsUnpaidNozzle")]
  68. [HttpGet]
  69. public async Task<IActionResult> GetMiniProgramTransactionsUnpaidNozzleAsync(long NozzleId)
  70. {
  71. var serviceResult = await _transactionsService.GetMiniProgramTransactionsUnpaidNozzleAsync(NozzleId);
  72. return Ok(serviceResult);
  73. }
  74. /// <summary>
  75. /// 小程序查询已支付订单
  76. /// </summary>
  77. /// <param name="input"></param>
  78. /// <returns></returns>
  79. [Permission("Transactions:GetMiniProgramTransactionsPaidQuery:GET")]
  80. [Route("GetMiniProgramTransactionsPaidQuery")]
  81. [HttpGet]
  82. public async Task<IActionResult> GetMiniProgramTransactionsPaidAsync(TransactionsInput input)
  83. {
  84. var serviceResult = await _transactionsService.GetMiniProgramTransactionsPaidAsync(input);
  85. return Ok(serviceResult);
  86. }
  87. /// <summary>
  88. /// 小程序查询历史订单
  89. /// </summary>
  90. /// <returns></returns>
  91. [Permission("Transactions:WXFindOrders:GET")]
  92. [Route("WXFindOrders")]
  93. [HttpGet]
  94. public async Task<IActionResult> WXFindOrders(DateTime? dateTime, int pageNum, int lineCount)
  95. {
  96. var serviceResult = await _transactionsService.WXFindOrders(dateTime, pageNum, lineCount);
  97. return Ok(serviceResult);
  98. }
  99. /// <summary>
  100. /// 提交支付
  101. /// </summary>
  102. /// <param name="trxId"></param>
  103. /// <param name="AuthCode"></param>
  104. /// <returns></returns>
  105. [Route("Payment")]
  106. [HttpPost]
  107. public async Task<IActionResult> CommitPayment(int trxId, string AuthCode)
  108. {
  109. var serviceResult = await _transactionsService.CommitPayment(trxId, AuthCode);
  110. return Ok(serviceResult);
  111. }
  112. /// <summary>
  113. /// 退款、退余额
  114. /// </summary>
  115. /// <param name="trxId">订单id</param>
  116. /// <param name="longitude">经度</param>
  117. /// <param name="latitude">纬度</param>
  118. /// <returns></returns>
  119. [Permission("Transactions:RefundTrx:POST")]
  120. [Route("RefundTrx")]
  121. [HttpPost]
  122. public async Task<IActionResult> RefundTrx(RefundTrxRequest refundTrx)
  123. {
  124. var serviceResult = await _transactionsService.RefundTrx(refundTrx.trxId, refundTrx.longitude, refundTrx.latitude);
  125. return Ok(serviceResult);
  126. }
  127. /// <summary>
  128. /// 核销
  129. /// </summary>
  130. /// <param name="trxId"></param>
  131. /// <param name="OriginalQty">实际加油升数</param>
  132. /// <returns></returns>
  133. [Route("Redeem")]
  134. [HttpPost]
  135. public async Task<IActionResult> Redeem(RedeemRequest redeemRequest)
  136. {
  137. var serviceResult = await _transactionsService.Redeem(redeemRequest.trxId, redeemRequest.OriginalQty);
  138. return Ok(serviceResult);
  139. }
  140. /// <summary>
  141. /// 统一下单
  142. /// </summary>
  143. /// <param name="trxid"></param>
  144. /// <returns></returns>
  145. [Permission("Transactions:UnifiedOrder:POST")]
  146. [Route("UnifiedOrder")]
  147. [HttpPost]
  148. public async Task<IActionResult> UnifiedOrder(int trxid)
  149. {
  150. try
  151. {
  152. var serviceResult = await _transactionsService.UnifiedOrder(trxid);
  153. logger.Debug("TransactionsController 成功" );
  154. return Ok(serviceResult);
  155. }
  156. catch (Exception ex)
  157. {
  158. logger.Debug("TransactionsController :" + ex.Message);
  159. return Ok(ex);
  160. }
  161. }
  162. /// <summary>
  163. /// 发送模板消息
  164. /// </summary>
  165. /// <param name="trxid"></param>
  166. /// <returns></returns>
  167. [Permission("Transactions:SendMessage:POST")]
  168. [Route("SendMessage")]
  169. [HttpPost]
  170. public async Task<IActionResult> SendMessage(WechatTemplateMessage wechatTemplateMessage)
  171. {
  172. await _transactionsService.SendMessage(wechatTemplateMessage.trxid, wechatTemplateMessage.orderType);
  173. return Ok();
  174. }
  175. }
  176. }