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

KGOrderController.cs 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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.Common.Helpers;
  10. using System.Data;
  11. using System.IRepositories;
  12. using System.Linq;
  13. using System.Model;
  14. using System.Repositories;
  15. using System.Security.Claims;
  16. using System.Threading.Tasks;
  17. using System.Utility.Http;
  18. using Microsoft.AspNetCore.Mvc;
  19. using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure;
  20. using Microsoft.Extensions.Configuration;
  21. using SqlSugar;
  22. using TVShoppingCallCenter_ZLJ.Models.Inputs;
  23. namespace TVShoppingCallCenter_ZLJ.Controllers.Order
  24. {
  25. [Route("api/[controller]")]
  26. public class KGOrderController : BaseController
  27. {
  28. private readonly IBus_OrderDetailRepository bus_OrderDetailRepository;
  29. private readonly IBus_OrderRepository bus_OrderRepository;
  30. private readonly ISys_MarketingRepository bus_MarketingRepository;
  31. private readonly IBus_ProductRepository bus_productRepository;
  32. private readonly ICus_VipInfoRepository cus_vip_infoRepository;
  33. private readonly IBus_StockLogRepository bus_StockLogRepository;
  34. private readonly ICus_ScoreSetRepository cus_score_setRepository;
  35. private readonly IConfiguration config;
  36. private readonly OrderFunctionController busOrderFunctionController;
  37. public KGOrderController(OrderFunctionController _OrderFunctionController, ICus_ScoreSetRepository _cus_score_setRepository, IBus_StockLogRepository _bus_StockLogRepository, IBus_OrderRepository _bus_OrderRepository, IBus_OrderDetailRepository _bus_OrderDetailRepository, ISys_MarketingRepository _bus_MarketingRepository, IBus_ProductRepository _productRepository, ICus_VipInfoRepository _cus_vip_infoRepository, IConfiguration _configuration)
  38. {
  39. bus_OrderDetailRepository = _bus_OrderDetailRepository;
  40. bus_OrderRepository = _bus_OrderRepository;
  41. bus_MarketingRepository = _bus_MarketingRepository;
  42. bus_productRepository = _productRepository;
  43. cus_vip_infoRepository = _cus_vip_infoRepository;
  44. bus_StockLogRepository = _bus_StockLogRepository;
  45. cus_score_setRepository = _cus_score_setRepository;
  46. config = _configuration;
  47. busOrderFunctionController = _OrderFunctionController;
  48. }
  49. #region 库管操作 退回 分拣 发货
  50. /// <summary>
  51. /// 获取订单分页列表
  52. /// </summary>
  53. /// <param name="input"></param>
  54. /// <returns></returns>
  55. [HttpPost("/api/order/getorderlistbykgpage")]
  56. public async Task<IActionResult> GetOrderListByKGPage(OrderInput input,int state=-1)
  57. {
  58. List<IConditionalModel> conModels = new List<IConditionalModel>();
  59. #region 条件筛选
  60. conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "-2" });
  61. if (input.F_State > -2)
  62. {
  63. conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
  64. }
  65. if (state == 0)
  66. {
  67. conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual , FieldValue = "3" });
  68. }
  69. conModels.Add(new ConditionalCollections()
  70. {
  71. ConditionalList = new List<KeyValuePair<WhereType, SqlSugar.ConditionalModel>>()
  72. {
  73. new KeyValuePair<WhereType, ConditionalModel>
  74. ( WhereType.And , new ConditionalModel() { FieldName = "F_StockUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId }),
  75. new KeyValuePair<WhereType, ConditionalModel>
  76. (WhereType.Or, new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = "3" })
  77. }
  78. });
  79. if (!string.IsNullOrEmpty(input.F_ADFrom))
  80. {
  81. conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
  82. }
  83. if (!string.IsNullOrEmpty(input.F_Type))
  84. {
  85. conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
  86. }
  87. if (!string.IsNullOrEmpty(input.F_Id))
  88. {
  89. conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id });
  90. }
  91. if (!string.IsNullOrEmpty(input.F_Customer))
  92. {
  93. conModels.Add(new ConditionalModel() { FieldName = "F_Customer", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Customer });
  94. }
  95. if (!string.IsNullOrEmpty(input.F_CustomerPhone))
  96. {
  97. conModels.Add(new ConditionalModel() { FieldName = "F_CustomerPhone", ConditionalType = ConditionalType.Equal, FieldValue = input.F_CustomerPhone });
  98. }
  99. if (!string.IsNullOrEmpty(input.F_TrackingNo))
  100. {
  101. conModels.Add(new ConditionalModel() { FieldName = "F_TrackingNo", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TrackingNo });
  102. }
  103. if (!string.IsNullOrEmpty(input.F_AddProvince))
  104. {
  105. conModels.Add(new ConditionalModel() { FieldName = "F_AddProvince", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddProvince });
  106. }
  107. if (!string.IsNullOrEmpty(input.F_AddCity))
  108. {
  109. conModels.Add(new ConditionalModel() { FieldName = "F_AddCity", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddCity });
  110. }
  111. if (!string.IsNullOrEmpty(input.F_AddArea))
  112. {
  113. conModels.Add(new ConditionalModel() { FieldName = "F_AddArea", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddArea });
  114. }
  115. if (!string.IsNullOrEmpty(input.F_AddTown))
  116. {
  117. conModels.Add(new ConditionalModel() { FieldName = "F_AddTown", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddTown });
  118. }
  119. if (!string.IsNullOrEmpty(input.F_Express))
  120. {
  121. conModels.Add(new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Express });
  122. }
  123. if (!string.IsNullOrEmpty(input.F_PayType))
  124. {
  125. conModels.Add(new ConditionalModel() { FieldName = "F_PayType", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayType });
  126. }
  127. if (!string.IsNullOrEmpty(input.F_Stock))
  128. {
  129. conModels.Add(new ConditionalModel() { FieldName = "F_Stock", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Stock });
  130. }
  131. if (input.F_PayState > -1)
  132. {
  133. conModels.Add(new ConditionalModel() { FieldName = "F_PayState", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayState.ToString() });
  134. }
  135. if (input.SearchEndTime != null)
  136. {
  137. conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
  138. }
  139. if (input.SearchStartTime != null)
  140. {
  141. conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
  142. }
  143. #endregion
  144. RefAsync<int> recordCount = 0;
  145. PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
  146. PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
  147. List<OrderInput> returnlist = new List<OrderInput>();
  148. foreach (T_Bus_Order t in list.Rows)
  149. {
  150. OrderInput m = new OrderInput();
  151. ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(m, t);
  152. List<OrderDetailInput> orderDetailInputs = new List<OrderDetailInput>();
  153. #region 遍历订单商品
  154. List<T_Bus_OrderDetail> orderDetails = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == t.F_Id);
  155. if (orderDetails != null)
  156. {
  157. foreach (T_Bus_OrderDetail t1 in orderDetails)
  158. {
  159. OrderDetailInput m1 = new OrderDetailInput();
  160. ModelConvertHelper<OrderDetailInput, T_Bus_OrderDetail>.ModeToModel(m1, t1);
  161. orderDetailInputs.Add(m1);
  162. }
  163. }
  164. #endregion
  165. m.OrderDetailList = orderDetailInputs;
  166. returnlist.Add(m);
  167. }
  168. returnobj.Rows = returnlist;
  169. return Success("成功", returnobj);
  170. }
  171. /// <summary>
  172. /// 订单二审 审完 走发货
  173. /// </summary>
  174. /// <param name="orderid">订单号</param>
  175. /// <param name="state">订单状态 -1无效 0暂存 1提交 2KF退回 3通过 4无货 5已分拣 6已发货</param>
  176. /// <param name="remark">客服备注</param>
  177. /// <returns></returns>
  178. [HttpPost("/api/order/checkorderbykg")]
  179. public async Task<IActionResult> CheckOrderKG(string orderid, int state, string remark)
  180. {
  181. //状态变化 积分变化 处理时间人变化 库存变化 备注
  182. T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
  183. #region 验证参数 必填项
  184. if (string.IsNullOrEmpty(orderid))
  185. return Error("请输入订单号");
  186. if (!(state == 4 || state == 5 || state == 6))
  187. return Error("操作类型不正确");
  188. #endregion
  189. T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == orderid && new[] { 3, 4, 5 }.Contains(q.F_State));
  190. if (modelOrder == null)
  191. {
  192. if (state ==5)
  193. return Error("订单已分拣");
  194. return Error("订单已审核");
  195. }
  196. if (state == 5&& modelOrder.F_State == 5)
  197. {
  198. return Error("订单已分拣");
  199. }
  200. if (modelOrder.F_State == 3 || modelOrder.F_State == 4)
  201. {
  202. modelOrder.F_StockTime = DateTime.Now;
  203. modelOrder.F_StockUser = UserLogin.UserId.ObjToInt();
  204. modelOrder.F_StockUserName = UserLogin.UserName;
  205. modelOrder.F_CheckRemark = modelOrder.F_CheckRemark + remark;
  206. }
  207. if (state == 6)
  208. {
  209. modelOrder.F_SendTime = DateTime.Now;
  210. modelOrder.F_SendUser = UserLogin.UserId.ObjToInt();
  211. modelOrder.F_SendUserName = UserLogin.UserName;
  212. }
  213. modelOrder.F_State = state;
  214. if (await bus_OrderRepository.Update(modelOrder))
  215. return Success("订单成功审核!");
  216. return Error("订单审核失败,请汇报技术支持!");
  217. }
  218. #endregion
  219. }
  220. }