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

OrderFunctionController.cs 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  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.Net.Http;
  15. using System.Repositories;
  16. using System.Security.Claims;
  17. using System.Text;
  18. using System.Threading.Tasks;
  19. using System.Utility.Http;
  20. using Microsoft.AspNetCore.Mvc;
  21. using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure;
  22. using Microsoft.Extensions.Configuration;
  23. using Microsoft.Extensions.Logging;
  24. using NPOI.SS.Formula.Atp;
  25. using SqlSugar;
  26. using TVShoppingCallCenter_ZLJ.Models.Inputs;
  27. using Utility;
  28. namespace TVShoppingCallCenter_ZLJ.Controllers.Order
  29. {
  30. [Route("api/[controller]")]
  31. public class OrderFunctionController : BaseController
  32. {
  33. private readonly IBus_OrderDetailRepository bus_OrderDetailRepository;
  34. private readonly IBus_OrderRepository bus_OrderRepository;
  35. private readonly ISys_MarketingRepository bus_MarketingRepository;
  36. private readonly IBus_ProductRepository bus_productRepository;
  37. private readonly ICus_VipInfoRepository cus_vip_infoRepository;
  38. private readonly IBus_StockLogRepository bus_StockLogRepository;
  39. private readonly ICus_ScoreSetRepository cus_score_setRepository;
  40. private readonly IConfiguration config;
  41. private readonly ISys_DictionaryValueRepository dictionaryValueRepository;
  42. private readonly ILogger<OrderFunctionController> _logger;
  43. public OrderFunctionController(ILogger<OrderFunctionController> logger,ISys_DictionaryValueRepository _dictionaryValueRepository,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)
  44. {
  45. _logger = logger;
  46. dictionaryValueRepository = _dictionaryValueRepository;
  47. bus_OrderDetailRepository = _bus_OrderDetailRepository;
  48. bus_OrderRepository = _bus_OrderRepository;
  49. bus_MarketingRepository = _bus_MarketingRepository;
  50. bus_productRepository = _productRepository;
  51. cus_vip_infoRepository = _cus_vip_infoRepository;
  52. bus_StockLogRepository = _bus_StockLogRepository;
  53. cus_score_setRepository = _cus_score_setRepository;
  54. config = _configuration;
  55. }
  56. /// <summary>
  57. /// state=1 提交锁库存 减库存减积分
  58. /// </summary>
  59. /// <param name="modelOrder"></param>
  60. /// <param name="state"></param>
  61. /// <param name="score"></param>
  62. /// <returns></returns>
  63. internal async Task<string> Allocation(string stock,int state, List<T_Bus_OrderDetail> modelDetailList)
  64. {
  65. bool blstock = false;
  66. string msg = "";
  67. string FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" +new Random().Next(9) + "R" + new Random().Next(9);
  68. List<StockChangeModel> stockChangeModels = new List<StockChangeModel>();
  69. List<T_Bus_StockLog> newstockLogList = new List<T_Bus_StockLog>();
  70. #region 退回库存
  71. if (modelDetailList.Count <= 0)
  72. return "提交商品详情不能为空";
  73. foreach (T_Bus_OrderDetail productstock in modelDetailList)
  74. {
  75. T_Bus_StockLog modelStock = new T_Bus_StockLog();
  76. modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
  77. modelStock.F_Action = 1;
  78. modelStock.F_AddTime = DateTime.Now;
  79. modelStock.F_FlowNum = FlowNum;
  80. modelStock.F_BatchNum = modelDetailList.Count;
  81. modelStock.F_OrderId = "";
  82. modelStock.F_State = 0;
  83. modelStock.F_Status = 0;
  84. modelStock.F_Stock = stock;
  85. if (state == 1)
  86. {
  87. modelStock.F_Num = +productstock.F_Count;
  88. }
  89. else
  90. {
  91. modelStock.F_Num = -productstock.F_Count;
  92. }
  93. modelStock.F_ProductId = productstock.F_ProductId;
  94. newstockLogList.Add(modelStock);
  95. StockChangeModel stockChangeModel = new StockChangeModel();
  96. stockChangeModel.sku = productstock.F_ProductId;
  97. stockChangeModel.qty = modelStock.F_Num;
  98. stockChangeModels.Add(stockChangeModel);
  99. }
  100. //添加库存记录
  101. if (await bus_StockLogRepository.AddMany (newstockLogList) )
  102. {
  103. //请求亿博士接口
  104. SetStockModel setStockModel = new SetStockModel();
  105. //modelset.store
  106. //modelset.dts
  107. //modelset.masterid
  108. //modelset.remark
  109. //modelset.ms
  110. if (state == 1)
  111. {
  112. setStockModel.store = "新乡仓";
  113. setStockModel.remark = "客服分仓锁库存";
  114. }
  115. else
  116. {
  117. setStockModel.store ="山西仓";
  118. setStockModel.remark = "客服撤回加库存";
  119. }
  120. setStockModel.dts = stockChangeModels;
  121. //long masterlong =long.Parse(modelOrder.F_FlowNum.Replace("U", "").Replace("R", "") + DateTime.Now.ToString("ddHHmmss"));
  122. setStockModel.masterid = FlowNum + state;
  123. //更新库存记录
  124. ResultMessage ModelResultMessage = await ChangeStock(setStockModel, newstockLogList);
  125. blstock = ModelResultMessage.Status;
  126. msg = ModelResultMessage.Msg;
  127. }
  128. if (!blstock)
  129. {
  130. return ("对接亿博士库存失败" + msg);
  131. }
  132. #endregion
  133. return "1";
  134. }
  135. /// <summary>
  136. /// state=1 提交锁库存 减库存减积分
  137. /// </summary>
  138. /// <param name="modelOrder"></param>
  139. /// <param name="state"></param>
  140. /// <param name="score"></param>
  141. /// <returns></returns>
  142. internal async Task<string> ChangeStockOne(T_Bus_Order modelOrder,int state,List< T_Bus_OrderDetail> modelDetailList)
  143. {
  144. bool blstock = false;
  145. // bool blScore = false;
  146. string msg = "";
  147. // T_Cus_VipInfo modelvip = null;
  148. #region 变更积分
  149. //if (modelOrder.F_UseScore > 0)
  150. //{
  151. // //退回积分 查询批次号核算积分是否已经退回
  152. // modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
  153. // if (state == 1)
  154. // {
  155. // modelvip.F_Score = modelvip.F_Score - modelOrder.F_UseScore;
  156. // }
  157. // else
  158. // {
  159. // modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
  160. // }
  161. // if (await cus_vip_infoRepository.Update(modelvip))
  162. // {
  163. // //log 或者冻结转作废
  164. // blScore = true;
  165. // }
  166. // else { return ("积分处理失败"); }
  167. //}
  168. string FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + modelOrder.F_Belong + "R" + new Random().Next(9);
  169. #endregion
  170. #region 退回库存
  171. List<StockChangeModel> stockChangeModels = new List<StockChangeModel>();
  172. List<T_Bus_StockLog> newstockLogList = new List<T_Bus_StockLog>();
  173. List<T_Bus_Product> products = new List<T_Bus_Product>();
  174. if (modelDetailList.Count <= 0)
  175. return "提交商品详情不能为空";
  176. foreach (T_Bus_OrderDetail productstock in modelDetailList)
  177. {
  178. T_Bus_StockLog modelStock = new T_Bus_StockLog();
  179. modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
  180. modelStock.F_Action = 1;
  181. modelStock.F_AddTime = DateTime.Now;
  182. modelStock.F_FlowNum = FlowNum;
  183. modelStock.F_BatchNum = modelDetailList.Count;
  184. modelStock.F_OrderId = modelOrder.F_Id;
  185. modelStock.F_State = 0;
  186. modelStock.F_UserId = modelOrder.F_AddUser;
  187. modelStock.F_UserName = modelOrder.F_AddUserName;
  188. modelStock.F_Stock = modelOrder.F_Stock;
  189. modelStock.F_Status = 0;
  190. if (state ==1)
  191. {
  192. modelStock.F_Num = -productstock.F_Count;
  193. }
  194. else
  195. {
  196. modelStock.F_Num = +productstock.F_Count;
  197. }
  198. T_Bus_Product model = await bus_productRepository.GetSingle(a => a.F_ProductId == productstock.F_ProductId );
  199. if (model!=null )
  200. {
  201. model.F_Stock1 += modelStock.F_Num;
  202. }
  203. if (model .F_Stock1<0)
  204. {
  205. return productstock.F_ProductName + "库存不足";
  206. }
  207. modelStock.F_ProductId = productstock.F_ProductId;
  208. products.Add(model);
  209. newstockLogList.Add(modelStock);
  210. // StockChangeModel stockChangeModel = new StockChangeModel();
  211. // stockChangeModel.sku = productstock.F_ProductId;
  212. // stockChangeModel.qty = modelStock.F_Num;
  213. // stockChangeModels.Add(stockChangeModel);
  214. }
  215. //添加库存记录
  216. if (await bus_StockLogRepository.AddMany(newstockLogList))
  217. {
  218. if (products.Count >0)
  219. {
  220. await bus_productRepository.UpdateList(products);
  221. }
  222. //请求亿博士接口
  223. //SetStockModel setStockModel = new SetStockModel();
  224. ////modelset.store
  225. ////modelset.dts
  226. ////modelset.masterid
  227. ////modelset.remark
  228. ////modelset.ms
  229. //setStockModel.store = modelOrder.F_Stock;
  230. //setStockModel.dts = stockChangeModels;
  231. ////long masterlong =long.Parse(modelOrder.F_FlowNum.Replace("U", "").Replace("R", "") + DateTime.Now.ToString("ddHHmmss"));
  232. //setStockModel.masterid = FlowNum + state;
  233. //if(state==1)
  234. //setStockModel.remark = "客服分仓锁库存";
  235. //else if (state == 0)
  236. // setStockModel.remark = "客服撤回加库存";
  237. //else if (state == 2)
  238. // setStockModel.remark = "审核不通过加库存";
  239. //更新库存记录
  240. // ResultMessage ModelResultMessage = await ChangeStock(setStockModel, newstockLogList);
  241. // blstock = ModelResultMessage.Status;
  242. // msg = ModelResultMessage.Msg;
  243. }
  244. #endregion
  245. return "1";
  246. }
  247. internal async Task<ResultMessage> ChangeStock(SetStockModel modelset1, List<T_Bus_StockLog> modelStockLogs)
  248. {
  249. //modelset.store
  250. //modelset.dts
  251. //modelset.masterid
  252. //modelset.remark
  253. //modelset.ms
  254. SetStockModel modelset = new SetStockModel();
  255. // modelset.store = modelset1.store.Contains("新乡")? config["eBoss:stock1"].ToString() : config["eBoss:stock"].ToString();
  256. modelset.store= config["eBoss:stock"].ToString();
  257. modelset.dts = modelset1.dts;
  258. modelset.masterid = modelset1.masterid;
  259. modelset.remark = modelset1.remark;
  260. modelset.appid = config["eBoss:appid"].ToString();
  261. modelset.appkey = config["eBoss:appkey"].ToString();
  262. modelset.billdate = DateTime.Now.ToString("yyyyMMdd");
  263. string url = config["eBoss:url"].ToString();
  264. HttpClient client = new HttpClient();
  265. var content = new StringContent(modelset.ToJson(), Encoding.UTF8, "application/json");
  266. var response = await client.PostAsync(url, content);
  267. var result = await response.Content.ReadAsByteArrayAsync();
  268. string ret = Encoding.Default.GetString(result);//"\"success\": true";
  269. //ret.ToJson();
  270. foreach (T_Bus_StockLog stocklog in modelStockLogs)
  271. {
  272. stocklog.F_Result = ret;
  273. if (ret.Contains("\"success\": true"))
  274. {
  275. LogDefault.Error("成功"+ret);
  276. stocklog.F_State = 1;
  277. }
  278. else
  279. {
  280. LogDefault.Error("失败" + ret);
  281. stocklog.F_State = 2;
  282. }
  283. }
  284. await bus_StockLogRepository.UpdateList(modelStockLogs);//不计较更新成功失败
  285. //string ret = await HttpHelper.HttpGetAsync(url + "{\"appid\":\""+ appid + "\",\"appkey\":\""+ appkey + "\",\"method\":\"eboss.drp.adj.add\",\"masterid\":\""+ masterid + "\",\"billdate\":\"" + billdate + "\",\"adjtype\":\"正常调整\",\"store\":\"WLZZ0001\",\"remark\":\"备注测试备注测试备注测试备注测试备注测试备注测试备注测试备注测试备注测试\",\"createid\":\"000\",\"dts\":[{\"sku\":\"010801001\",\"qty\":1},{\"sku\":\"010801002\",\"qty\":2}],\"ms\":[{\"sku\":\"010801001\",\"mastercode\":\"code1\",\"mastercode2\":\"code2\"},{\"sku\":\"010801002\",\"mastercode\":\"code3\",\"mastercode2\":\"code4\"}]}");
  286. return new ResultMessage() { Code = 0, Status = ret.Contains("\"success\": true"), Msg = ret };
  287. }
  288. #region 对接亿博士
  289. /// <summary>
  290. /// 获取相应商品库存
  291. /// </summary>
  292. /// <param name="sku">010801001 不传则为全部商品</param>
  293. /// <param name="stock">WLZZ0001 不传则为全部仓库</param>
  294. /// <returns></returns>
  295. [HttpPost("getStock")]
  296. public async Task<List<EBossStock>> GetStock(string sku, string stock, int pageindex = 1, int pagesize = 10)
  297. {
  298. try
  299. {
  300. stock = stock.Contains("新乡") ? config["eBoss:stock1"].ToString() : config["eBoss:stock"].ToString();
  301. string url = config["eBoss:url"].ToString();
  302. string appid = config["eBoss:appid"].ToString();
  303. string appkey = config["eBoss:appkey"].ToString();
  304. string ret = await HttpHelper.HttpGetAsync(url + "{\"appid\":\"" + appid + "\",\"appkey\":\"" + appkey + "\",\"method\":\"eboss.drp.stock.get\",\"pageno\":\"" + pageindex + "\",\"pagesize\":\"" + pagesize + "\",\"sku\":\"" + sku + "\",\"store\":\"" + stock + "\",\"modifybeg\":\"20000202\",\"modifyend\":\"20250505\"}");
  305. GetStock obj = ret.ToObject<GetStock>();
  306. return obj.stocks;
  307. }
  308. catch (Exception ex)
  309. {
  310. return null;
  311. }
  312. }
  313. /// <summary>
  314. /// 物理调整单
  315. /// </summary>
  316. /// <param name="modelset1"></param>
  317. /// <returns></returns>
  318. [HttpPost("setStock")]
  319. public async Task<IActionResult> SetStock([FromBody]SetStockModel modelset1)
  320. {
  321. //modelset.store
  322. //modelset.dts
  323. //modelset.masterid
  324. //modelset.remark
  325. //modelset.ms
  326. SetStockModel modelset = new SetStockModel();
  327. modelset.store = modelset1.store;
  328. modelset.dts = modelset1.dts;
  329. modelset.masterid = modelset1.masterid;
  330. modelset.remark = modelset1.remark;
  331. modelset.appid = config["eBoss:appid"].ToString();
  332. modelset.appkey = config["eBoss:appkey"].ToString();
  333. modelset.billdate = DateTime.Now.ToString("yyyyMMdd");
  334. string url = config["eBoss:url"].ToString();
  335. string ret = await HttpHelper.HttpGetAsync(url + modelset.ToJson());
  336. ret.ToJson();
  337. //string ret = await HttpHelper.HttpGetAsync(url + "{\"appid\":\""+ appid + "\",\"appkey\":\""+ appkey + "\",\"method\":\"eboss.drp.adj.add\",\"masterid\":\""+ masterid + "\",\"billdate\":\"" + billdate + "\",\"adjtype\":\"正常调整\",\"store\":\"WLZZ0001\",\"remark\":\"备注测试备注测试备注测试备注测试备注测试备注测试备注测试备注测试备注测试\",\"createid\":\"000\",\"dts\":[{\"sku\":\"010801001\",\"qty\":1},{\"sku\":\"010801002\",\"qty\":2}],\"ms\":[{\"sku\":\"010801001\",\"mastercode\":\"code1\",\"mastercode2\":\"code2\"},{\"sku\":\"010801002\",\"mastercode\":\"code3\",\"mastercode2\":\"code4\"}]}");
  338. return Success("", ret.Contains("\"success\": true"));
  339. }
  340. #endregion
  341. #region 日循环 创建生日订单
  342. /// <summary>
  343. /// 创建生日订单
  344. /// </summary>
  345. /// <param name="input"></param>
  346. /// <returns></returns>
  347. [NonAction]
  348. public async Task<string> AddBirthDayOrder()
  349. {
  350. int n1 = 0;
  351. int n2 = 0;
  352. try
  353. {
  354. OrderInput input = new OrderInput();
  355. List<T_Cus_VipInfo> modelvipList = await cus_vip_infoRepository.GetListALL(q => (q.F_GiftYear == (DateTime.Now.Year - 1).ToString() || q.F_GiftYear == (DateTime.Now.Year - 2).ToString()) && q.F_Birthday > DateTime.Now.AddDays(-15) && q.F_Birthday < DateTime.Now.AddDays(7));
  356. List<T_Sys_DictionaryValue> dicStockList = await dictionaryValueRepository.GetListALL(q => q.F_ParentCode.ToUpper() == "STOCK");
  357. //遍历需要发生日礼物的人 发一个更新一个 比较安全
  358. if (modelvipList != null && modelvipList.Count > 0 && dicStockList != null && dicStockList.Count > 0)
  359. {
  360. foreach (T_Cus_VipInfo modelvip in modelvipList)
  361. {
  362. n1++;
  363. //modelvipListUpdate.Add(modelvip)
  364. List<T_Bus_Order> OldOrderList = await bus_OrderRepository.GetListALL(q => q.F_State > 3 && (q.F_CustomerPhone == modelvip.F_Mobile || q.F_CustomerPhone == modelvip.F_Mobile1 || q.F_CustomerPhone == modelvip.F_Mobile || q.F_CustomerPhone == modelvip.F_Mobile), q => q.F_AddTime, SqlSugar.OrderByType.Desc);
  365. T_Bus_Order modelOrder = new T_Bus_Order();
  366. if (OldOrderList != null && OldOrderList.Count > 0)
  367. {
  368. modelOrder = OldOrderList[0];
  369. }
  370. else
  371. {
  372. modelOrder.F_Customer = modelvip.F_Name;
  373. modelOrder.F_CustomerPhone = modelvip.F_Mobile;
  374. modelOrder.F_Addressee = modelvip.F_Name;
  375. modelOrder.F_AddPhone = modelvip.F_Mobile;
  376. modelOrder.F_AddProvince = modelvip.F_Province;
  377. modelOrder.F_AddCity = modelvip.F_City;
  378. modelOrder.F_AddArea = modelvip.F_Area;
  379. modelOrder.F_AddTown = modelvip.F_Town;
  380. modelOrder.F_AddDes = "生日单";
  381. modelOrder.F_Address = modelvip.F_Address;
  382. modelOrder.F_PostalCode = modelvip.F_Postcode;
  383. modelOrder.F_Express = "中通快递";
  384. modelOrder.F_Belong = modelvip.F_Saleperson.ObjToInt();
  385. modelOrder.F_BelongName = "ID:" + modelvip.F_Saleperson;
  386. }
  387. #region 订单属性
  388. //必填
  389. modelOrder.F_ADFrom = "生日单";
  390. modelOrder.F_Type = "系统单";
  391. modelOrder.F_Id = "BJ" + modelvip.F_Saleperson + "T" + DateTimeConvert.ToTimetag(DateTime.Now);
  392. modelOrder.F_VipId = modelvip.F_ID;
  393. modelOrder.F_UseActivity = "生日单";
  394. //选填 快递属性
  395. modelOrder.F_TrackingNo = "";
  396. modelOrder.F_ExpressFee = 0;
  397. modelOrder.F_PayType = "系统免单";
  398. modelOrder.F_Remark = "生日单";
  399. modelOrder.F_RealPrice = 0.00M;
  400. modelOrder.F_UseScore = 0.00M;
  401. //选填 关联属性
  402. modelOrder.F_Status = 0;
  403. //必须属性 系统生成
  404. modelOrder.F_AddTime = DateTime.Now;
  405. modelOrder.F_AddUser = 0;
  406. modelOrder.F_AddUserName = "系统";
  407. #endregion
  408. #region
  409. //未删除的赠品
  410. List<T_Bus_Product> modelProductList = await bus_productRepository.GetListALL(b => b.F_ClassId == 3 && b.F_IsDelete == 1 && b.F_IsSale == 0);
  411. if (modelProductList == null || modelProductList.Count == 0)
  412. return "==error==没有设置生日赠品";
  413. int n = 1;
  414. List<T_Bus_OrderDetail> modelDetailList = new List<T_Bus_OrderDetail>();
  415. foreach (T_Bus_Product modelProduct in modelProductList)
  416. {
  417. T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
  418. modelDetail.F_ProductName = modelProduct.F_ProductName;
  419. modelDetail.F_ProductId = modelProduct.F_ProductId;
  420. modelDetail.F_Specifications = modelProduct.F_Specifications;
  421. modelDetail.F_ProductShortName = modelProduct.F_ProductShortName;
  422. modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
  423. modelDetail.F_OrderId = modelOrder.F_Id;
  424. modelDetail.F_Count = 1;
  425. modelDetail.F_Price = modelProduct.F_MemberPrice;
  426. modelDetail.F_DealPrice = 0.00M;
  427. modelDetail.F_Remark = "生日赠品-活动";
  428. if (modelProduct.F_ClassName == "袜子" && modelDetail.F_DealPrice == 0)
  429. {
  430. modelOrder.F_IsZeroCommodity = 1;
  431. }
  432. modelDetail.F_Sort = n;
  433. modelDetail.F_AddTime = DateTime.Now;
  434. modelDetail.F_AddUser = 0;
  435. modelDetail.F_AddUserName = "系统";
  436. modelDetailList.Add(modelDetail);
  437. n++;
  438. }
  439. modelOrder.F_TotlePrice = 0.00M;
  440. modelOrder.F_ActivityMoney = 0.00M;
  441. modelOrder.F_ShouldPrice = 0.00M;
  442. modelOrder.F_PayState = 1;
  443. modelOrder.F_Score = 0.00M;
  444. #endregion
  445. #region 直接提交 锁库存log 锁积分log
  446. modelOrder.F_SubmitTime = DateTime.Now;
  447. modelOrder.F_State = 1;
  448. modelOrder.F_Stock = dicStockList[0].F_Value;
  449. modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + modelOrder.F_AddUser + "R" + new Random().Next(9);
  450. string strStock = await ChangeStockOne(modelOrder, 1, modelDetailList);
  451. if (strStock != "1")
  452. {
  453. if (dicStockList.Count > 1)
  454. {
  455. modelOrder.F_Stock = dicStockList[1].F_Value;
  456. modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + modelOrder.F_AddUser + "R" + new Random().Next(9);
  457. strStock = await ChangeStockOne(modelOrder, 1, modelDetailList);
  458. if (strStock != "1")
  459. {
  460. modelOrder.F_State = 0;
  461. modelOrder.F_SubmitTime = null;
  462. }
  463. }
  464. }
  465. #endregion
  466. if (await bus_OrderRepository.AddReturnCount(modelOrder))
  467. {
  468. n2++;
  469. if (await bus_OrderDetailRepository.AddMany(modelDetailList))
  470. {
  471. continue;
  472. }
  473. else
  474. {
  475. _logger.LogError("TODO系统订单详情添加失败库存已减:" + modelOrder.F_Id);
  476. break;
  477. }
  478. }
  479. else
  480. {
  481. _logger.LogError("TODO系统订单添加失败库存已减" + modelDetailList.ToJson());
  482. break;
  483. }
  484. }
  485. }
  486. else
  487. { }
  488. }
  489. catch (Exception ex)
  490. {
  491. return "==error==" + ex.Message;
  492. }
  493. return $"==1==执行{n1}成功{n2}";
  494. }
  495. #endregion
  496. }
  497. }