足力健后端,使用.netcore版本,合并1个项目使用

OrderController.cs 6.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /* =============================================
  2. -- Author: <Author,,zhangkun>
  3. -- Create date: <Create Date,,20200618>
  4. -- Description: <Description,,订单相关操作)>
  5. -- ============================================*/
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Common;
  9. using System.IRepositories;
  10. using System.Linq;
  11. using System.Model;
  12. using System.Security.Claims;
  13. using System.Threading.Tasks;
  14. using Microsoft.AspNetCore.Mvc;
  15. using TVShoppingCallCenter_ZLJ.Models.Inputs;
  16. namespace TVShoppingCallCenter_ZLJ.Controllers.Order
  17. {
  18. [Route("api/[controller]")]
  19. public class OrderController : BaseController
  20. {
  21. IBus_OrderDetailRepository bus_OrderDetailRepository;
  22. IBus_OrderRepository bus_OrderRepository;
  23. ISys_MarketingRepository bus_MarketingRepository;
  24. public OrderController(IBus_OrderRepository _bus_OrderRepository, IBus_OrderDetailRepository _bus_OrderDetailRepository, ISys_MarketingRepository _bus_MarketingRepository)
  25. {
  26. bus_OrderDetailRepository = _bus_OrderDetailRepository;
  27. bus_OrderRepository = _bus_OrderRepository;
  28. bus_MarketingRepository = _bus_MarketingRepository;
  29. }
  30. [HttpPost("addorder")]
  31. public async Task<IActionResult> AddOrder(OrderInput input)
  32. {
  33. #region 验证参数 必填项
  34. if (string.IsNullOrEmpty(input.F_ADFrom))
  35. return Error("请输入选择广告来源");
  36. if (string.IsNullOrEmpty(input.F_Type))
  37. return Error("请输入选择订单类型");
  38. if (string.IsNullOrEmpty(input.F_Id))
  39. return Error("请输入订单编号");
  40. if (string.IsNullOrEmpty(input.F_Customer))
  41. return Error("请输入客户姓名");
  42. if (string.IsNullOrEmpty(input.F_CustomerPhone))
  43. return Error("请输入客户电话");
  44. #endregion
  45. T_Bus_Order modelOrder = new T_Bus_Order();
  46. //必填
  47. modelOrder.F_ADFrom = input.F_ADFrom;
  48. modelOrder.F_Type = input.F_Type;
  49. modelOrder.F_Id = input.F_Id;
  50. modelOrder.F_Customer = input.F_Customer;
  51. modelOrder.F_CustomerPhone = input.F_CustomerPhone;
  52. //选填 快递属性
  53. modelOrder.F_TrackingNo = input.F_TrackingNo;
  54. modelOrder.F_Addressee = input.F_Addressee;
  55. modelOrder.F_AddPhone = input.F_AddPhone;
  56. modelOrder.F_AddProvince = input.F_AddProvince;
  57. modelOrder.F_AddCity = input.F_AddCity;
  58. modelOrder.F_AddArea = input.F_AddArea;
  59. modelOrder.F_AddTown = input.F_AddTown;
  60. modelOrder.F_AddDes = input.F_AddDes;
  61. modelOrder.F_Address = input.F_Address;
  62. modelOrder.F_PostalCode = input.F_PostalCode;
  63. modelOrder.F_Express = input.F_Express;
  64. modelOrder.F_PayType = input.F_PayType;
  65. modelOrder.F_Stock = input.F_Stock;
  66. modelOrder.F_Remark = input.F_Remark;
  67. //选填 关联属性
  68. modelOrder.F_VipId = input.F_VipId;
  69. modelOrder.F_Type = input.F_Type;
  70. modelOrder.F_State = input.F_State;
  71. modelOrder.F_Status = input.F_Status;
  72. modelOrder.F_UseActivity = input.F_UseActivity;
  73. //必须属性 系统生成
  74. modelOrder.F_AddTime = DateTime.Now;
  75. modelOrder.F_AddUser = int.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.PrimarySid).Value, 0);
  76. modelOrder.F_AddUserName = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  77. //计算属性 商品计算
  78. decimal F_Score = 0;
  79. decimal totle = 0.00M;
  80. decimal F_ShouldPrice = 0.00M; ;
  81. decimal F_RealPrice = 0.00M;
  82. List<T_Bus_OrderDetail> modelDetailList = new List<T_Bus_OrderDetail>();
  83. if (input.OrderDetail != null && input.OrderDetail.Count > 0)
  84. {
  85. int n = 1;
  86. foreach (OrderDetailInput m in input.OrderDetail)
  87. {
  88. T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
  89. modelDetail.F_ProductName = m.F_ProductName;
  90. modelDetail.F_ProductId = m.F_ProductId;
  91. modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
  92. modelDetail.F_OrderId = input.F_Id;
  93. modelDetail.F_Count = m.F_Count;
  94. modelDetail.F_Price = m.F_Price;
  95. modelDetail.F_DealPrice = m.F_DealPrice;
  96. modelDetail.F_Sort = n;
  97. modelDetail.F_Remark = m.F_Remark;
  98. modelDetail.F_AddUser = modelOrder.F_AddUser;
  99. modelDetail.F_AddUserName = modelOrder.F_AddUserName;
  100. modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
  101. totle += modelDetail.F_TotlePrice;
  102. n++;
  103. }
  104. }
  105. F_ShouldPrice = totle;
  106. //计算活动 单独写个方法
  107. if (modelOrder.F_UseActivity > 0)
  108. {
  109. //详细活动规则
  110. }
  111. //计算结果
  112. modelOrder.F_Score = F_Score;
  113. modelOrder.F_TotlePrice = totle;
  114. modelOrder.F_ShouldPrice = F_ShouldPrice;
  115. modelOrder.F_RealPrice = F_RealPrice;
  116. //Expression<Func<T_Bus_Product, bool>> eq = a => a.F_ProductName == input.ProductName;
  117. //eq = eq.Or(b => b.F_PinyinShort == input.PinyinShort);
  118. //eq = eq.Or(b => b.F_ProductId == input.ProductId);
  119. //eq = eq.Or(b => b.F_ProductShortName == input.ProductShortName);
  120. //if (await _productRepository.GetCount(eq) > 0)
  121. //{
  122. // return Error("名称/条形码/简称 有重复");
  123. //}
  124. //List<ProductInput> inputlist = new List<ProductInput>();
  125. //inputlist.Add(input);
  126. if (await bus_OrderRepository.Add(modelOrder) > 0)
  127. {
  128. return Success("订单保存成功");
  129. }
  130. else
  131. {
  132. return Error("订单保存失败,请重试!");
  133. }
  134. }
  135. private async void UserActivity(int VipId,int ActivityId,decimal TotlePrice)
  136. {
  137. T_Sys_Marketing modelAct= await bus_MarketingRepository.GetSingle(q=>q.F_ID== ActivityId);
  138. // 查看活动具体细则, 把所有活动细则实现 此活动是针对订单的活动
  139. //活动如果针对商品的话 1.一个订单只能选一个活动还是针对商品选择活动 这种需要循环订单详情判断
  140. TotlePrice = 0;
  141. }
  142. }
  143. }