| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748 |
- /* =============================================
- -- Author: <Author,,zhangkun>
- -- Create date: <Create Date,,20200618>
- -- Description: <Description,,订单相关操作)>
- -- ============================================*/
- using System;
- using System.Collections.Generic;
- using System.Common;
- using System.Common.Helpers;
- using System.Data;
- using System.IRepositories;
- using System.Linq;
- using System.Model;
- using System.Repositories;
- using System.Security.Claims;
- using System.Threading.Tasks;
- using System.Utility.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure;
- using Microsoft.Extensions.Configuration;
- using SqlSugar;
- using TVShoppingCallCenter_ZLJ.Models.Inputs;
- namespace TVShoppingCallCenter_ZLJ.Controllers.Order
- {
- [Route("api/[controller]")]
- public class OrderController : BaseController
- {
- private readonly IBus_OrderDetailRepository bus_OrderDetailRepository;
- private readonly IBus_OrderRepository bus_OrderRepository;
- private readonly ISys_MarketingRepository bus_MarketingRepository;
- private readonly IBus_ProductRepository bus_productRepository;
- private readonly ICus_VipInfoRepository cus_vip_infoRepository;
- private readonly IBus_StockLogRepository bus_StockLogRepository;
- private readonly ICus_ScoreSetRepository cus_score_setRepository;
- private readonly IConfiguration config;
- public OrderController(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)
- {
- bus_OrderDetailRepository = _bus_OrderDetailRepository;
- bus_OrderRepository = _bus_OrderRepository;
- bus_MarketingRepository = _bus_MarketingRepository;
- bus_productRepository = _productRepository;
- cus_vip_infoRepository = _cus_vip_infoRepository;
- bus_StockLogRepository = _bus_StockLogRepository;
- cus_score_setRepository = _cus_score_setRepository;
- config = _configuration;
- }
- #region 销售
- /// <summary>
- /// 创建订单
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("addorder")]
- public async Task<IActionResult> AddOrder([FromBody]OrderInput input)
- {
- T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(input.F_ADFrom))
- return Error("请输入选择广告来源");
- if (string.IsNullOrEmpty(input.F_Type))
- return Error("请输入选择订单类型");
- if (string.IsNullOrEmpty(input.F_Id))
- return Error("请输入订单编号");
- if (string.IsNullOrEmpty(input.F_Customer))
- return Error("请输入客户姓名");
- if (string.IsNullOrEmpty(input.F_CustomerPhone))
- return Error("请输入客户电话");
- #endregion
- int exist = await bus_OrderRepository.GetCount(q => q.F_Id == input.F_Id);
- if (exist > 0)
- {
- return Error("此订单号已存在");
- }
- T_Bus_Order modelOrder = new T_Bus_Order();
- #region 订单属性
- //必填
- modelOrder.F_ADFrom = input.F_ADFrom;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_Id = input.F_Id;
- modelOrder.F_Customer = input.F_Customer;
- modelOrder.F_CustomerPhone = input.F_CustomerPhone;
- //选填 快递属性
- modelOrder.F_TrackingNo = input.F_TrackingNo;
- modelOrder.F_Addressee = input.F_Addressee;
- modelOrder.F_AddPhone = input.F_AddPhone;
- modelOrder.F_AddProvince = input.F_AddProvince;
- modelOrder.F_AddCity = input.F_AddCity;
- modelOrder.F_AddArea = input.F_AddArea;
- modelOrder.F_AddTown = input.F_AddTown;
- modelOrder.F_AddDes = input.F_AddDes;
- modelOrder.F_Address = input.F_Address;
- modelOrder.F_PostalCode = input.F_PostalCode;
- modelOrder.F_Express = input.F_Express;
- modelOrder.F_ExpressFee= input.F_ExpressFee;
- modelOrder.F_PayType = input.F_PayType;
- modelOrder.F_Stock = input.F_Stock;
- modelOrder.F_Remark = input.F_Remark;
- modelOrder.F_RealPrice = input.F_RealPrice;
- //选填 关联属性
- modelOrder.F_VipId = input.F_VipId;
- modelOrder.F_State = input.F_State;
- modelOrder.F_Status = 0;
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_AddUserName = UserLogin.UserName;
- modelOrder.F_Belong = 0;
- modelOrder.F_BelongName = "";
- #endregion
- //计算属性 商品计算
- decimal F_Score = 0.00M;
- decimal totle = 0.00M;
- decimal ActivityMoney = 0.00M;
- string UseActivity = "";
- string UseActivity4 = ",";
- string UseActivity2 = ",";
- List<T_Bus_OrderDetail> modelDetailList = new List<T_Bus_OrderDetail>();
- #region 订单详情列表核算
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- {
- int n = 1;
- int n2 = input.OrderDetailList.Count + 1;
- #region 活动核算
- if (input.UseActList != null && input.UseActList.Count > 0)
- {
- //遍历所有选中的活动
- foreach (UseActInput act in input.UseActList)
- {
- UseActivity += act.id + ",";
- //满赠
- if (act.type == 1)
- {
- string[] productidlist = act.gift.Split(',');
- foreach (string giftid in productidlist)
- {
- T_Bus_Product m = await bus_productRepository.GetSingle(b => ("," + giftid+ "," ).Contains(","+b.F_ProductId+",") && b.F_IsSale == 0);
- if (m != null)
- {
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- modelDetail.F_ProductName = m.F_ProductName;
- modelDetail.F_ProductId = m.F_ProductId;
- modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelDetail.F_OrderId = input.F_Id;
- modelDetail.F_Count = 1;
- modelDetail.F_Price = 0.00M;
- modelDetail.F_DealPrice = 0.00M;
- modelDetail.F_Sort = n2;
- modelDetail.F_Remark = "赠品-活动:" + act.id;
- modelDetail.F_AddUser = modelOrder.F_AddUser;
- modelDetail.F_AddUserName = modelOrder.F_AddUserName;
- modelDetail.F_TotlePrice = 0.00M;
- modelDetail.F_Activity = act.id;
- modelDetail.F_AddTime = DateTime.Now;
- modelDetailList.Add(modelDetail);
- n2++;
- }
- }
- }
- //生日赠
- else if (act.type == 2)
- {
- UseActivity2 += act.gift + ",";
- }
- //满减
- else if (act.type == 3)
- {
- ActivityMoney += act.money;
- }
- else if (act.type == 4)
- {
- UseActivity4 += act.gift + ",";
- }
- }
- UseActivity = UseActivity.Trim(',');
- }
- #endregion
- #region 商品核算
- foreach (OrderDetailInput m in input.OrderDetailList)
- {
- T_Bus_Product modelProduct = await bus_productRepository.GetSingle(b => b.F_ProductId == m.F_ProductId);
- if (modelProduct == null)
- return Error("商品不存在:"+ m.F_ProductId);
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- modelDetail.F_ProductName = modelProduct.F_ProductName;
- modelDetail.F_ProductId = modelProduct.F_ProductId;
- modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelDetail.F_OrderId = input.F_Id;
- modelDetail.F_Count = m.F_Count;
- modelDetail.F_Price = modelProduct.F_MemberPrice;
- //参加活动特价
- if (UseActivity4.Contains("," + modelProduct.F_ProductId + ","))
- modelDetail.F_DealPrice = modelProduct.F_SpecialPrice;
- else
- modelDetail.F_DealPrice = modelProduct.F_MemberPrice;
- //参加生日
- if (UseActivity2.Contains("," + modelProduct.F_ProductId + ","))
- {
- modelDetail.F_DealPrice = 0.00M;
- modelDetail.F_Remark = "生日赠品-活动:";
- }
- modelDetail.F_Sort = n;
- modelDetail.F_AddTime = DateTime.Now;
- modelDetail.F_AddUser = modelOrder.F_AddUser;
- modelDetail.F_AddUserName = modelOrder.F_AddUserName;
- modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
- modelDetail.F_Activity = 0;
- if (modelProduct.F_Tag.IndexOf(".") > -1)
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetSingle(b => ("," + b.F_Commodity + ",").Contains(("," + tag + ",")));
- //此商品参加活动
- if (modelactive != null)
- {
- modelDetail.F_Activity = modelactive.F_ID;
- }
- }
- totle += modelDetail.F_TotlePrice;
- modelDetailList.Add(modelDetail);
- n++;
- }
- #endregion
- modelOrder.F_TotlePrice = totle;
- modelOrder.F_ActivityMoney = ActivityMoney;
- modelOrder.F_UseActivity = UseActivity;
- }
- else
- {
- //不改变订单
- }
- #endregion
- //订单完成后也不计算积分
- modelOrder.F_Score = 0.00M;
- T_Cus_ScoreSet modelscore = await cus_score_setRepository.GetSingle(x => x.F_State == 1);
- if (modelscore == null)
- {
- modelscore = new T_Cus_ScoreSet();
- modelscore.F_Start = 0;
- modelscore.F_StartDebit = 0;
- modelscore.F_GetPercent = 1000;
- }
- if (modelOrder.F_VipId > 0 && input.F_UseScore > 0)
- {
- modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
- }
- #region 直接提交 锁库存log 锁积分log
- bool cutScore = false;
- if (input.F_State == 1)
- {
- modelOrder.F_FlowNum = Guid.NewGuid().ToString().Replace("-", "");
- #region 是否启用积分抵扣
- if (modelscore.F_StartDebit == 1)
- {
- if (input.F_Score > 0 && modelOrder.F_VipId > 0)
- {
- if (modelvip.F_Score < input.F_Score)
- {
- return Error("积分不足");
- }
- if (input.F_UseScore % modelscore.F_GetPercent != 0)
- {
- return Error(string.Format("积分必须整{0}", modelscore.F_GetPercent));
- }
- modelvip.F_Score = modelvip.F_Score - input.F_Score;
- if (await cus_vip_infoRepository.Update(modelvip))
- {
- modelOrder.F_UseScore = input.F_Score;
- cutScore = true;
- }
- }
- }
- #endregion
- #region 库存扣除
- if (string.IsNullOrEmpty(input.F_Stock))
- {
- return Error("请选择货仓");
- }
-
- List<StockChangeModel> stockChangeModels = new List<StockChangeModel>();
- List<T_Bus_StockLog> modeStocklogs = new List<T_Bus_StockLog>();
- foreach (T_Bus_OrderDetail productstock in modelDetailList)
- {
- T_Bus_StockLog modelStock = new T_Bus_StockLog();
- modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelStock.F_Action = 1;
- modelStock.F_AddTime = DateTime.Now;
- modelStock.F_FlowNum = modelOrder.F_FlowNum;
- modelStock.F_BatchNum = modelDetailList.Count;
- modelStock.F_OrderId = modelOrder.F_Id;
- modelStock.F_State = 0;
- modelStock.F_UserId = modelOrder.F_AddUser;
- modelStock.F_UserName = modelOrder.F_AddUserName;
- modelStock.F_Stock = input.F_Stock;
- modelStock.F_Status = 0;
- modelStock.F_Num = -productstock.F_Count;
- modelStock.F_ProductId = productstock.F_ProductId;
- modeStocklogs.Add(modelStock);
- StockChangeModel stockChangeModel = new StockChangeModel();
- stockChangeModel.sku = productstock.F_ProductId;
- stockChangeModel.qty = modelStock.F_Num;
- stockChangeModels.Add(stockChangeModel);
- }
- if (await bus_StockLogRepository.AddMany(modeStocklogs))
- {
- SetStockModel setStockModel = new SetStockModel();
- //modelset.store
- //modelset.dts
- //modelset.masterid
- //modelset.remark
- //modelset.ms
- setStockModel.store = modelOrder.F_Stock;
- setStockModel.dts = stockChangeModels;
- setStockModel.masterid = modelOrder.F_FlowNum + "-1"+new Random().Next(1,10);
- setStockModel.remark = "销售审核减库存";
- if (!await ChangeStock(setStockModel, modeStocklogs))
- {
- if (cutScore)
- {
- modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- { return Error("库存可能不足//积分回滚"); }
- }
- return Error("库存可能不足");//同步一下库存
- }
- }
- //计算获得积分
- if (modelscore.F_Start == 1)
- {
- //订单完成后计算积分
- modelOrder.F_Score = -0.01M;
- }
- #endregion
- modelOrder.F_SubmitTime = DateTime.Now;
- }
- #endregion
- //计算结果 积分有规则
- modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - ActivityMoney+ modelOrder.F_ExpressFee;
- #region 核算是否支付完成
- if ((modelOrder.F_RealPrice + modelOrder.F_UseScore / modelscore.F_GetPercent) >= modelOrder.F_ShouldPrice)
- {
- modelOrder.F_PayState = 1;
- }
- else
- {
- modelOrder.F_PayState = 0;
- }
- #endregion
- if (await bus_OrderRepository.AddReturnCount(modelOrder))
- {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- return Success("订单添加成功");
- else
- return Error("订单添加失败,请重试!");
- }
- else
- {
- return Error("订单添加失败,请重试!");
- }
- }
- /// <summary>
- /// 修改订单
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("editorder")]
- public async Task<IActionResult> EditOrder([FromBody]OrderInput input)
- {
- T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(input.F_ADFrom))
- return Error("请输入选择广告来源");
- if (string.IsNullOrEmpty(input.F_Type))
- return Error("请输入选择订单类型");
- if (string.IsNullOrEmpty(input.F_Id))
- return Error("请输入订单编号");
- if (string.IsNullOrEmpty(input.F_Customer))
- return Error("请输入客户姓名");
- if (string.IsNullOrEmpty(input.F_CustomerPhone))
- return Error("请输入客户电话");
- #endregion
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == input.F_Id);
- if (modelOrder == null)
- {
- return Error("此订单号不存在");
- }
- //保存 审退回 仓退回
- if (!(new int[] { 0, 2, 4 }.Contains(modelOrder.F_State)))
- {
- return Error("已提交订单不允许修改,先撤回订单");
- }
- #region 数据绑定
- //必填
- modelOrder.F_ADFrom = input.F_ADFrom;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_Id = input.F_Id;
- modelOrder.F_Customer = input.F_Customer;
- modelOrder.F_CustomerPhone = input.F_CustomerPhone;
- //选填 快递属性
- modelOrder.F_TrackingNo = input.F_TrackingNo;
- modelOrder.F_Addressee = input.F_Addressee;
- modelOrder.F_AddPhone = input.F_AddPhone;
- modelOrder.F_AddProvince = input.F_AddProvince;
- modelOrder.F_AddCity = input.F_AddCity;
- modelOrder.F_AddArea = input.F_AddArea;
- modelOrder.F_AddTown = input.F_AddTown;
- modelOrder.F_AddDes = input.F_AddDes;
- modelOrder.F_Address = input.F_Address;
- modelOrder.F_PostalCode = input.F_PostalCode;
- modelOrder.F_Express = input.F_Express;
- modelOrder.F_PayType = input.F_PayType;
- modelOrder.F_Stock = input.F_Stock;
- modelOrder.F_Remark = input.F_Remark;
- modelOrder.F_RealPrice = input.F_RealPrice;
- //选填 关联属性
- modelOrder.F_VipId = input.F_VipId;
- modelOrder.F_State = input.F_State;
- modelOrder.F_Belong = 0;
- modelOrder.F_BelongName = "";
- modelOrder.F_Status = 0;
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser =UserLogin.UserId.ObjToInt();
- modelOrder.F_AddUserName = UserLogin.UserName;
- #endregion
- //计算属性 商品计算
- decimal F_Score = 0.00M;
- decimal totle = 0.00M;
- decimal ActivityMoney = 0.00M;
- string UseActivity = "";
- string UseActivity4 = ",";
- string UseActivity2 = ",";
- List<T_Bus_OrderDetail> modelDetailList = new List<T_Bus_OrderDetail>();
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- {
- #region 核算活动
- int n2 = input.OrderDetailList.Count + 1;
- if (input.UseActList != null && input.UseActList.Count > 0)
- {
- //遍历所有选中的活动
- foreach (UseActInput act in input.UseActList)
- {
- UseActivity += act.id + ",";
- //满赠
- if (act.type == 1)
- {
- string[] productidlist = act.gift.Split(',');
- foreach (string giftid in productidlist)
- {
- T_Bus_Product m = await bus_productRepository.GetSingle(b => (","+ giftid + ",").Contains("," + b.F_ProductId + ",") && b.F_IsSale == 0);
- if (m != null)
- {
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- modelDetail.F_ProductName = m.F_ProductName;
- modelDetail.F_ProductId = m.F_ProductId;
- modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelDetail.F_OrderId = input.F_Id;
- modelDetail.F_Count = 1;
- modelDetail.F_Price = 0.00M;
- modelDetail.F_DealPrice = 0.00M;
- modelDetail.F_Sort = n2;
- modelDetail.F_Remark = "赠品-活动:" + act.id;
- modelDetail.F_AddUser = modelOrder.F_AddUser;
- modelDetail.F_AddUserName = modelOrder.F_AddUserName;
- modelDetail.F_TotlePrice = 0.00M;
- modelDetail.F_Activity = act.id;
- modelDetail.F_AddTime = DateTime.Now.AddSeconds(30);
- modelDetailList.Add(modelDetail);
- n2++;
- }
- }
- }
- //生日赠
- else if (act.type == 2)
- {
- UseActivity2 += act.gift + ",";
- }
- //满减
- else if (act.type == 3)
- {
- ActivityMoney += act.money;
- }
- else if (act.type == 4)
- {
- UseActivity4 += act.gift + ",";
- }
- }
- UseActivity = UseActivity.Trim(',');
- }
- #endregion
- #region 核算商品
- int n = 1;
- foreach (OrderDetailInput m in input.OrderDetailList)
- {
- T_Bus_Product modelProduct = await bus_productRepository.GetSingle(b => b.F_ProductId == m.F_ProductId);
- if (modelProduct == null) return Error("在售商品不存在");
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- modelDetail.F_ProductName = modelProduct.F_ProductName;
- modelDetail.F_ProductId = modelProduct.F_ProductId;
- modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelDetail.F_OrderId = input.F_Id;
- modelDetail.F_Count = m.F_Count;
- modelDetail.F_Price = modelProduct.F_MemberPrice;
- //参加活动特价
- if (UseActivity4.Contains("," + modelProduct.F_ProductId + ","))
- modelDetail.F_DealPrice = modelProduct.F_SpecialPrice;
- else
- modelDetail.F_DealPrice = modelProduct.F_MemberPrice;
- //参加生日
- if (UseActivity2.Contains("," + modelProduct.F_ProductId + ","))
- {
- modelDetail.F_DealPrice = 0.00M;
- modelDetail.F_Remark = "生日赠品-活动:";
- }
- modelDetail.F_Sort = n;
- modelDetail.F_AddTime = DateTime.Now;
- modelDetail.F_AddUser = modelOrder.F_AddUser;
- modelDetail.F_AddUserName = modelOrder.F_AddUserName;
- modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
- modelDetail.F_Activity = 0;
- if (modelProduct.F_Tag.IndexOf(".") > -1)
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetSingle(b => ("," + b.F_Commodity + ",").Contains(("," + tag + ",")));
- //此商品参加活动
- if (modelactive != null)
- {
- modelDetail.F_Activity = modelactive.F_ID;
- }
- }
- totle += modelDetail.F_TotlePrice;
- modelDetailList.Add(modelDetail);
- n++;
- }
- #endregion
- modelOrder.F_TotlePrice = totle;
- modelOrder.F_ActivityMoney = ActivityMoney;
- modelOrder.F_UseActivity = UseActivity;
- }
- else
- {
- //不传商品 表明不修改商品信息 不重新计算商品
- }
- //直接提交 锁库存
- bool cutScore = false;//积分操作是否成功
- bool cutStock = false;//
- T_Cus_ScoreSet modelscore = await cus_score_setRepository.GetSingle(x => x.F_State == 1);
- if (modelscore == null)
- {
- modelscore = new T_Cus_ScoreSet();
- modelscore.F_Start = 0;
- modelscore.F_StartDebit = 0;
- modelscore.F_GetPercent = 1000;
- }
- #region 提交 更改状态 库存 积分
- if (input.F_State == 1)
- {
- modelOrder.F_FlowNum = Guid.NewGuid().ToString().Replace("-", "");
- #region 核算积分
- //计算获得积分
- if (modelscore.F_Start == 1)
- {
- //订单完成后计算积分
- modelOrder.F_Score = -0.01M;
- }
- else
- { //订单完成后也不计算积分
- modelOrder.F_Score = 0.00M;
- }
- //是否启用积分抵扣
- if (modelscore.F_StartDebit == 1)
- {
- if (modelOrder.F_VipId > 0 && input.F_UseScore > 0)
- {
- if (input.F_UseScore % modelscore.F_DebitPercent != 0)
- {
- return Error(string.Format("积分必须{0}倍数", modelscore.F_GetPercent));
- }
- modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
- if (modelvip.F_Score < input.F_UseScore)
- {
- return Error("积分不够");
- }
- modelvip.F_Score = modelvip.F_Score - modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- {
- modelOrder.F_UseScore = input.F_Score;
- cutScore = true;
- }
- else
- return Error("积分操作失败");
- }
- }
- #endregion
- #region 核算库存
- //必须选货仓
- if (string.IsNullOrEmpty(input.F_Stock))
- {
- return Error("请选择货仓");
- }
- List<StockChangeModel> stockChangeModels = new List<StockChangeModel>();
- List<T_Bus_StockLog> modeStocklogs = new List<T_Bus_StockLog>();
- foreach (T_Bus_OrderDetail productstock in modelDetailList)
- {
- T_Bus_StockLog modelStock = new T_Bus_StockLog();
- modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelStock.F_Action = 1;
- modelStock.F_AddTime = DateTime.Now;
- modelStock.F_FlowNum = modelOrder.F_FlowNum;
- modelStock.F_BatchNum = modelDetailList.Count;
- modelStock.F_OrderId = modelOrder.F_Id;
- modelStock.F_State = 0;
- modelStock.F_UserId = modelOrder.F_AddUser;
- modelStock.F_UserName = modelOrder.F_AddUserName;
- modelStock.F_Stock = input.F_Stock;
- modelStock.F_Status = 0;
- modelStock.F_Num = -productstock.F_Count;
- modelStock.F_ProductId = productstock.F_ProductId;
- modeStocklogs.Add(modelStock);
- StockChangeModel stockChangeModel = new StockChangeModel();
- stockChangeModel.sku = productstock.F_ProductId;
- stockChangeModel.qty = modelStock.F_Num;
- stockChangeModels.Add(stockChangeModel);
- }
- if (await bus_StockLogRepository.AddMany(modeStocklogs))
- {
- SetStockModel setStockModel = new SetStockModel();
- //modelset.store
- //modelset.dts
- //modelset.masterid
- //modelset.remark
- //modelset.ms
- setStockModel.store = modelOrder.F_Stock;
- setStockModel.dts = stockChangeModels;
- setStockModel.masterid = modelOrder.F_FlowNum + "-1" + new Random().Next(1, 10);
- setStockModel.remark = "销售审核减库存";
- if (!await ChangeStock(setStockModel, modeStocklogs))
- {
- if (cutScore)
- {
- modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- { return Error("库存可能不足//积分回滚"); }
- }
- return Error("库存可能不足");//同步一下库存
- }
- }
- #endregion
- modelOrder.F_SubmitTime = DateTime.Now;
- }
- #endregion
- modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - modelOrder.F_ActivityMoney + modelOrder.F_ExpressFee;
- if ((modelOrder.F_RealPrice + modelOrder.F_UseScore / modelscore.F_GetPercent) >= modelOrder.F_ShouldPrice)
- {
- modelOrder.F_PayState = 1;
- }
- else
- {
- modelOrder.F_PayState = 0;
- }
- if (await bus_OrderRepository.Update(modelOrder))
- {
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- {
- //删除之前订单商品,重新添加
- if (await bus_OrderDetailRepository.Delete(q => q.F_OrderId == modelOrder.F_Id))
- {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- return Success("订单生成成功");
- else
- return Error("订单操作失败,请重试1!");
- }
- else { return Error("订单操作失败,请重试2!"); }
- }
- else { return Success("成功"); }
- }
- return Error("订单添加失败,请重试!");
- }
- /// <summary>
- /// 根据商品组合 获取符合的所有活动
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("getact")]
- public async Task<IActionResult> GetAct([FromBody]List<OrderDetailInput> input)
- {
- decimal def = 0.00M;
- if (input.Count < 1)
- return Error("请选择商品/数量");
- //统计活动金额是否符合条件 满减
- Dictionary<int, decimal> acttype3 = new Dictionary<int, decimal>();
- //内部计算
- Dictionary<int, decimal> innerCompute = new Dictionary<int, decimal>();
-
- //选择活动
- Dictionary<int, string> chooseact = new Dictionary<int, string>();
- List<UseActInput> actlist = new List<UseActInput>();
- foreach (OrderDetailInput m in input)
- {
- T_Bus_Product modelProduct = await bus_productRepository.GetSingle(b => b.F_ProductId == m.F_ProductId);
- if (modelProduct != null)
- {
- //是否有活动标签
- if (modelProduct.F_Tag.IndexOf(".") > -1)
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- //标签内有效期
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetSingle(b => (","+ b.F_Commodity + "," ).Contains(","+ tag + ",") && b.F_StartTime <= DateTime.Now && b.F_EndTime >= DateTime.Now);
- //此商品参加活动
- if (modelactive != null)
- {
- if (modelactive.F_Type == 1)
- {
- //满赠
- //判断此人是否有参与活动的资格 默认暂不筛选
- if (chooseact.ContainsKey(modelactive.F_ID))
- continue;
- if (innerCompute.ContainsKey(modelactive.F_ID))
- {
- innerCompute[modelactive.F_ID] = (decimal)modelProduct.F_MemberPrice * m.F_Count + innerCompute[modelactive.F_ID].ObjToDecimal();
- }
- else
- {
- innerCompute.Add(modelactive.F_ID, (decimal)modelProduct.F_MemberPrice * m.F_Count);
- }
- if (modelactive.F_Money.ObjToDecimal() <= (decimal)innerCompute[modelactive.F_ID])
- {
- chooseact.Add(modelactive.F_ID, "1_" + modelactive.F_Gift);
- actlist.Add(new UseActInput { id = modelactive.F_ID, type = 1, gift = modelactive.F_Gift, money = def, actname = modelactive.F_Name, actdes = modelactive.F_PromotionRules });
- }
- }
- else if (modelactive.F_Type == 2)
- {
- // 生日
- //TODO 判断此人是否有参与活动的资格 默认暂不筛选
- if (chooseact.ContainsKey(modelactive.F_ID))
- continue;
- chooseact.Add(modelactive.F_ID, "2_" + modelactive.F_Commodity);
- actlist.Add(new UseActInput { id = modelactive.F_ID, type = 2, gift = modelactive.F_Gift, money = def, actname = modelactive.F_Name, actdes = modelactive.F_PromotionRules });
- }
- else if (modelactive.F_Type == 3)
- {
- //满减
- //判断此人是否有参与活动的资格 默认暂不筛选
- if (innerCompute.ContainsKey(modelactive.F_ID))
- {
- innerCompute[modelactive.F_ID] = (decimal)modelProduct.F_MemberPrice * m.F_Count + innerCompute[modelactive.F_ID];
- }
- else
- {
- innerCompute.Add(modelactive.F_ID, (decimal)modelProduct.F_MemberPrice * m.F_Count);
- }
- string[] AmountRange = modelactive.F_AmountRange.Split(',');
- for (int i=0;i< AmountRange.Length;i++)
- {
- //符合满减某个条件
- if (innerCompute[modelactive.F_ID] >= AmountRange[i].ObjToDecimal())
- {
- if (acttype3.ContainsKey(modelactive.F_ID))
- {
- //当前减免金额大于之前发赋值,替换掉
- if (modelactive.F_Money.Split(',')[i].ObjToDecimal() > acttype3[modelactive.F_ID])
- {
- acttype3[modelactive.F_ID] = modelactive.F_Money.Split(',')[i].ObjToDecimal();
- actlist.ForEach(q => { if (q.id == modelactive.F_ID) { q.money = modelactive.F_Money.Split(',')[i].ObjToDecimal(); } });
- }
- }
- else
- {
- //满足条件,赋值满减金额 减的金额
- acttype3.Add(modelactive.F_ID, modelactive.F_Money.Split(',')[i].ObjToDecimal());
- actlist.Add(new UseActInput { id = modelactive.F_ID, type = 3, gift = "", money = modelactive.F_Money.Split(',')[i].ObjToDecimal(), actname = modelactive.F_Name, actdes = modelactive.F_PromotionRules });
- }
- }
- }
-
- }
- else if (modelactive.F_Type == 4)
- {
- //限时特惠
- //判断此人是否有参与活动的资格 默认暂不筛选
- if (chooseact.ContainsKey(modelactive.F_ID))
- {
- chooseact[modelactive.F_ID] = chooseact[modelactive.F_ID] + "," + m.F_ProductId.ToString();
- actlist.ForEach(q => { if (q.id == modelactive.F_ID){ q.gift = q.gift + m.F_ProductId.ToString(); } });
- }
- else
- {
- chooseact.Add(modelactive.F_ID, "4_" + m.F_ProductId.ToString());
- actlist.Add(new UseActInput { id = modelactive.F_ID, type = 4, gift = m.F_ProductId.ToString(), money = modelactive.F_Money.ObjToDecimal(), actname = modelactive.F_Name, actdes = modelactive.F_PromotionRules });
- }
- }
- }
- }
- }
- }
- return Success("参与活动", actlist);
- }
- /// <summary>
- /// 获取订单详情
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("getorderdetail")]
- public async Task<IActionResult> GetOrderDetail(string orderid)
- {
- if (string.IsNullOrEmpty(orderid))
- return Error("请输入订单号");
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == orderid);
- OrderInput modelreturn = new OrderInput();
- if (modelOrder != null)
- {
- modelreturn.F_ADFrom = modelOrder.F_ADFrom;
- modelreturn.F_Type = modelOrder.F_Type;
- modelreturn.F_Id = modelOrder.F_Id;
- modelreturn.F_Customer = modelOrder.F_Customer;
- modelreturn.F_CustomerPhone = modelOrder.F_CustomerPhone;
- //选填 快递属性
- modelreturn.F_TrackingNo = modelOrder.F_TrackingNo;
- modelreturn.F_Addressee = modelOrder.F_Addressee;
- modelreturn.F_AddPhone = modelOrder.F_AddPhone;
- modelreturn.F_AddProvince = modelOrder.F_AddProvince;
- modelreturn.F_AddCity = modelOrder.F_AddCity;
- modelreturn.F_AddArea = modelOrder.F_AddArea;
- modelreturn.F_AddTown = modelOrder.F_AddTown;
- modelreturn.F_AddDes = modelOrder.F_AddDes;
- modelreturn.F_Address = modelOrder.F_Address;
- modelreturn.F_PostalCode = modelOrder.F_PostalCode;
- modelreturn.F_Express = modelOrder.F_Express;
- modelreturn.F_PayType = modelOrder.F_PayType;
- modelreturn.F_PayState = modelOrder.F_PayState;
- modelreturn.F_Stock = modelOrder.F_Stock;
- modelreturn.F_Remark = modelOrder.F_Remark;
- modelreturn.F_RealPrice = modelOrder.F_RealPrice;
- //选填 关联属性
- modelreturn.F_VipId = modelOrder.F_VipId;
- modelreturn.F_UseScore = modelOrder.F_UseScore;
- modelreturn.F_Score = modelOrder.F_Score;
- modelreturn.F_State = modelOrder.F_State;
- modelreturn.F_Status = modelOrder.F_Status;
- //必须属性 系统生成
- modelreturn.F_AddTime = modelOrder.F_AddTime;
- modelreturn.F_AddUser = modelOrder.F_AddUser;
- modelreturn.F_AddUserName = modelOrder.F_AddUserName;
- modelreturn.F_TotlePrice = modelOrder.F_TotlePrice;
- modelreturn.F_ShouldPrice = modelOrder.F_ShouldPrice;
- modelreturn.F_ActivityMoney = modelOrder.F_ActivityMoney;
- modelreturn.F_UseActivity = modelOrder.F_UseActivity;
- List<OrderDetailInput> modeldetailreturn = new List<OrderDetailInput>();
- List<T_Bus_OrderDetail> detaillist = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id, o => o.F_Sort, OrderByType.Asc);
- if (detaillist != null)
- {
- foreach (T_Bus_OrderDetail m in detaillist)
- {
- OrderDetailInput model = new OrderDetailInput();
- model.F_ProductName = m.F_ProductName;
- model.F_ProductId = m.F_ProductId;
- model.F_Id = m.F_Id;
- model.F_OrderId = m.F_OrderId;
- model.F_Count = m.F_Count;
- model.F_Price = m.F_Price;
- model.F_DealPrice = m.F_DealPrice;
- model.F_Sort = m.F_Sort;
- model.F_AddTime = m.F_AddTime;
- model.F_Remark = m.F_Remark;
- model.F_AddUser = m.F_AddUser;
- model.F_AddUserName = m.F_ProductName;
- model.F_TotlePrice = m.F_TotlePrice;
- model.F_Activity = m.F_Activity;
- modeldetailreturn.Add(model);
- }
- }
- modelreturn.OrderDetailList = modeldetailreturn;
- List<UseActInput> actlist = new List<UseActInput>();
- List<T_Sys_Marketing> modelactiveList = await bus_MarketingRepository.GetListALL(b => ("," + modelOrder.F_UseActivity + ",").Contains(("," + b.F_ID.ToString() + ",")));
- if (modelactiveList != null && modelactiveList.Count > 0)
- {
- foreach (T_Sys_Marketing modelactive in modelactiveList)
- {
- actlist.Add(new UseActInput { id = modelactive.F_ID, type = modelactive.F_Type, gift = modelactive.F_Gift, money = modelactive.F_Money.ObjToDecimal(), actname = modelactive.F_Name, actdes = modelactive.F_PromotionRules });
- }
- }
- modelreturn.UseActList = actlist;
- }
- return Success("成功", modelreturn);
- }
- /// <summary>
- /// 获取订单分页列表
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("getorderlistbypage")]
- public async Task<IActionResult> GetXSOrderListByPage(OrderInput input)
- {
- List<IConditionalModel> conModels = new List<IConditionalModel>();
- #region 条件筛选
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "0" });
- //状态
- if (input.F_State > -1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
- }
- //根据角色展示列表
- if (UserLogin.RoleCode == "ZX")
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KF" && input.F_State != 1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CheckUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KG" && input.F_State != 3)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_StockUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- //OR conModels.Add(new ConditionalModel() { FieldName = "F_SendUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- if (!string.IsNullOrEmpty(input.F_ADFrom))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
- }
- if (!string.IsNullOrEmpty(input.F_Type))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
- }
- if (!string.IsNullOrEmpty(input.F_Id))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id });
- }
- if (!string.IsNullOrEmpty(input.F_Customer))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Customer", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Customer });
- }
- if (!string.IsNullOrEmpty(input.F_CustomerPhone))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CustomerPhone", ConditionalType = ConditionalType.Equal, FieldValue = input.F_CustomerPhone });
- }
- if (!string.IsNullOrEmpty(input.F_TrackingNo))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_TrackingNo", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TrackingNo });
- }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddProvince", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddProvince });
- }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddCity", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddCity });
- }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddArea", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddArea });
- }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTown", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddTown });
- }
- if (!string.IsNullOrEmpty(input.F_Express))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Express });
- }
- if (!string.IsNullOrEmpty(input.F_PayType))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayType", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayType });
- }
- if (!string.IsNullOrEmpty(input.F_Stock))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Stock", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Stock });
- }
- if (input.F_PayState > -1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayState", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayState.ToString() });
- }
- if (input.SearchEndTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
- }
- if (input.SearchStartTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
- }
- #endregion
- RefAsync<int> recordCount = 0;
- PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
- PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
- List<OrderInput> returnlist = new List<OrderInput>();
- foreach (T_Bus_Order t in list.Rows)
- {
- OrderInput m = new OrderInput();
- ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(m, t);
- List<OrderDetailInput> orderDetailInputs = new List<OrderDetailInput>();
- #region 遍历订单商品
- List<T_Bus_OrderDetail> orderDetails = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == t.F_Id);
- if (orderDetails != null)
- {
- foreach (T_Bus_OrderDetail t1 in orderDetails)
- {
- OrderDetailInput m1 = new OrderDetailInput();
- ModelConvertHelper<OrderDetailInput, T_Bus_OrderDetail>.ModeToModel(m1, t1);
- orderDetailInputs.Add(m1);
- }
- }
- #endregion
- m.OrderDetailList = orderDetailInputs;
- returnlist.Add(m);
- }
- returnobj.Rows = returnlist;
- return Success("成功", returnobj);
- }
- #endregion
- #region 客服操作
- /// <summary>
- /// 订单二审 审完 走发货
- /// </summary>
- /// <param name="orderid">订单号</param>
- /// <param name="state">订单状态 -1无效 0暂存 1提交 2KF退回 3通过 4KG退回 5已分拣 6已发货</param>
- /// <param name="remark">客服备注</param>
- /// <returns></returns>
- [HttpPost("checkorderbykf")]
- public async Task<IActionResult> CheckOrderKF(string orderid, int state, string remark)
- {
- try
- {
- //状态变化 积分变化 处理时间人变化 库存变化 备注
- T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(orderid))
- return Error("请输入订单号");
- if (state <= 0)
- return Error("请选择操作类型");
- #endregion
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == orderid && q.F_State == 1);
- if (modelOrder == null)
- {
- return Error("订单已审核");
- }
- modelOrder.F_CheckTime = DateTime.Now;
- modelOrder.F_CheckUser = int.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.PrimarySid).Value, 0);
- modelOrder.F_CheckUserName = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
- modelOrder.F_CheckRemark = remark;
- if (state == 2)
- {
- #region 判断积分
- bool blScore = false;
- if (modelOrder.F_UseScore > 0)
- {
- //退回积分 查询批次号核算积分是否已经退回
- modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
- modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- {
- //log 或者冻结转作废
- blScore = true;
- }
- }
- else
- {
- blScore = true;
- }
- if (!blScore)
- {
- return Error("积分处理失败");
- }
- #endregion
- #region 退回库存
- List<T_Bus_StockLog> newstockLogList = new List<T_Bus_StockLog>();
- List<T_Bus_StockLog> stockLogList = await bus_StockLogRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id && q.F_FlowNum == modelOrder.F_FlowNum);
- foreach (T_Bus_StockLog modelStock in stockLogList)
- {
- modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelStock.F_Action = 2;
- modelStock.F_AddTime = DateTime.Now;
- modelStock.F_Num = -modelStock.F_Num;
- modelStock.F_State = 1;//TODO
- modelStock.F_UserId = modelOrder.F_CheckUser;
- modelStock.F_UserName = modelOrder.F_CheckUserName;
- modelStock.F_Status = 0;//TODO
- newstockLogList.Add(modelStock);
- //拼装请求亿博士接口
- }
- if (await bus_StockLogRepository.AddMany(newstockLogList))
- {
- await bus_StockLogRepository.Update(m => new T_Bus_StockLog() { F_Status = 1 }, q => q.F_FlowNum == modelOrder.F_FlowNum);
- //请求亿博士接口
- }
- else
- {
- return Error("库存回滚处理失败");
- }
- #endregion
- modelOrder.F_State = 2;
- modelOrder.F_Score = 0.00M;
- }
- else if (state == 3)
- {
- #region 判断积分
- bool blScore = false;
- if (modelOrder.F_UseScore > 0)
- {
- //退回积分 查询批次号核算积分是否已经解冻
- modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
- modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- {
- //log 或者解冻积分
- blScore = true;
- }
- }
- else
- {
- blScore = true;
- }
- if (!blScore)
- {
- return Error("积分处理失败");
- }
- #endregion
- //库存不做处理
- modelOrder.F_State = 3;
- }
- if (await bus_OrderRepository.Update(modelOrder))
- return Success("订单成功审核!");
- return Error("订单审核失败,请汇报技术支持!");
- } catch (Exception ex)
- { return Error(ex.Message); }
- }
- /// <summary>
- /// 获取订单分页列表
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("getorderlistbykfpage")]
- public async Task<IActionResult> GetOrderListByKFPage(OrderInput input)
- {
- List<IConditionalModel> conModels = new List<IConditionalModel>();
- #region 条件筛选
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "0" });
- //状态
- if (input.F_State > -1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
- }
- //根据角色展示列表
- if (UserLogin.RoleCode == "ZX")
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KF" && input.F_State != 1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CheckUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KG" && input.F_State != 3)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_StockUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- //OR conModels.Add(new ConditionalModel() { FieldName = "F_SendUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- if (!string.IsNullOrEmpty(input.F_ADFrom))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
- }
- if (!string.IsNullOrEmpty(input.F_Type))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
- }
- if (!string.IsNullOrEmpty(input.F_Id))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id });
- }
- if (!string.IsNullOrEmpty(input.F_Customer))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Customer", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Customer });
- }
- if (!string.IsNullOrEmpty(input.F_CustomerPhone))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CustomerPhone", ConditionalType = ConditionalType.Equal, FieldValue = input.F_CustomerPhone });
- }
- if (!string.IsNullOrEmpty(input.F_TrackingNo))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_TrackingNo", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TrackingNo });
- }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddProvince", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddProvince });
- }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddCity", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddCity });
- }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddArea", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddArea });
- }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTown", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddTown });
- }
- if (!string.IsNullOrEmpty(input.F_Express))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Express });
- }
- if (!string.IsNullOrEmpty(input.F_PayType))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayType", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayType });
- }
- if (!string.IsNullOrEmpty(input.F_Stock))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Stock", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Stock });
- }
- if (input.F_PayState > -1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayState", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayState.ToString() });
- }
- if (input.SearchEndTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
- }
- if (input.SearchStartTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
- }
- #endregion
- RefAsync<int> recordCount = 0;
- PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
- PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
- List<OrderInput> returnlist = new List<OrderInput>();
- foreach (T_Bus_Order t in list.Rows)
- {
- OrderInput m = new OrderInput();
- ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(m, t);
- List<OrderDetailInput> orderDetailInputs = new List<OrderDetailInput>();
- #region 遍历订单商品
- List<T_Bus_OrderDetail> orderDetails = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == t.F_Id);
- if (orderDetails != null)
- {
- foreach (T_Bus_OrderDetail t1 in orderDetails)
- {
- OrderDetailInput m1 = new OrderDetailInput();
- ModelConvertHelper<OrderDetailInput, T_Bus_OrderDetail>.ModeToModel(m1, t1);
- orderDetailInputs.Add(m1);
- }
- }
- #endregion
- m.OrderDetailList = orderDetailInputs;
- returnlist.Add(m);
- }
- returnobj.Rows = returnlist;
- return Success("成功", returnobj);
- }
- #endregion
- #region 库管操作 退回 分拣 发货
- /// <summary>
- /// 获取订单分页列表
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("getorderlistbykgpage")]
- public async Task<IActionResult> GetOrderListByKGPage(OrderInput input)
- {
- List<IConditionalModel> conModels = new List<IConditionalModel>();
- #region 条件筛选
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = "3" });
- //根据角色展示列表
- if (UserLogin.RoleCode == "ZX")
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KF" && input.F_State != 1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CheckUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- else if (UserLogin.RoleCode == "KG" && input.F_State != 3)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_StockUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- //OR conModels.Add(new ConditionalModel() { FieldName = "F_SendUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId });
- }
- if (!string.IsNullOrEmpty(input.F_ADFrom))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_ADFrom", ConditionalType = ConditionalType.Equal, FieldValue = input.F_ADFrom });
- }
- if (!string.IsNullOrEmpty(input.F_Type))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Type", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Type });
- }
- if (!string.IsNullOrEmpty(input.F_Id))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Id", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Id });
- }
- if (!string.IsNullOrEmpty(input.F_Customer))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Customer", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Customer });
- }
- if (!string.IsNullOrEmpty(input.F_CustomerPhone))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_CustomerPhone", ConditionalType = ConditionalType.Equal, FieldValue = input.F_CustomerPhone });
- }
- if (!string.IsNullOrEmpty(input.F_TrackingNo))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_TrackingNo", ConditionalType = ConditionalType.Equal, FieldValue = input.F_TrackingNo });
- }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddProvince", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddProvince });
- }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddCity", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddCity });
- }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddArea", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddArea });
- }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTown", ConditionalType = ConditionalType.Equal, FieldValue = input.F_AddTown });
- }
- if (!string.IsNullOrEmpty(input.F_Express))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Express", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Express });
- }
- if (!string.IsNullOrEmpty(input.F_PayType))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayType", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayType });
- }
- if (!string.IsNullOrEmpty(input.F_Stock))
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_Stock", ConditionalType = ConditionalType.Equal, FieldValue = input.F_Stock });
- }
- if (input.F_PayState > -1)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_PayState", ConditionalType = ConditionalType.Equal, FieldValue = input.F_PayState.ToString() });
- }
- if (input.SearchEndTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.LessThan, FieldValue = input.SearchEndTime.GetValueOrDefault().ToString("yyyy-MM-dd 23:59:59") });
- }
- if (input.SearchStartTime != null)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_AddTime", ConditionalType = ConditionalType.GreaterThan, FieldValue = input.SearchStartTime.GetValueOrDefault().ToString("yyyy-MM-dd 00:00:01") });
- }
- #endregion
- RefAsync<int> recordCount = 0;
- PageData<T_Bus_Order> list = await bus_OrderRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = input.pageindex, PageSize = input.pagesize, PageCount = recordCount }, " F_AddTime DESC");
- PageData<OrderInput> returnobj = new PageData<OrderInput>() { Totals = list.Totals };
- List<OrderInput> returnlist = new List<OrderInput>();
- foreach (T_Bus_Order t in list.Rows)
- {
- OrderInput m = new OrderInput();
- ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(m, t);
- List<OrderDetailInput> orderDetailInputs = new List<OrderDetailInput>();
- #region 遍历订单商品
- List<T_Bus_OrderDetail> orderDetails = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == t.F_Id);
- if (orderDetails != null)
- {
- foreach (T_Bus_OrderDetail t1 in orderDetails)
- {
- OrderDetailInput m1 = new OrderDetailInput();
- ModelConvertHelper<OrderDetailInput, T_Bus_OrderDetail>.ModeToModel(m1, t1);
- orderDetailInputs.Add(m1);
- }
- }
- #endregion
- m.OrderDetailList = orderDetailInputs;
- returnlist.Add(m);
- }
- returnobj.Rows = returnlist;
- return Success("成功", returnobj);
- }
- /// <summary>
- /// 订单二审 审完 走发货
- /// </summary>
- /// <param name="orderid">订单号</param>
- /// <param name="state">订单状态 -1无效 0暂存 1提交 2KF退回 3通过 4无货 5已分拣 6已发货</param>
- /// <param name="remark">客服备注</param>
- /// <returns></returns>
- [HttpPost("checkorderbykg")]
- public async Task<IActionResult> CheckOrderKG(string orderid, int state, string remark)
- {
- //状态变化 积分变化 处理时间人变化 库存变化 备注
- T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(orderid))
- return Error("请输入订单号");
- if (state <= 0)
- return Error("请选择操作类型");
- #endregion
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == orderid && new[] { 3, 5 }.Contains(q.F_State));
- if (modelOrder == null)
- {
- return Error("订单已审核");
- }
- if (modelOrder.F_State == 3)
- {
- modelOrder.F_StockTime = DateTime.Now;
- modelOrder.F_StockUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_StockUserName = UserLogin.UserName;
- modelOrder.F_CheckRemark = modelOrder.F_CheckRemark + remark;
- }
- if (state == 6)
- {
- modelOrder.F_SendTime = DateTime.Now;
- modelOrder.F_SendUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_SendUserName = UserLogin.UserName;
- }
- modelOrder.F_State = state;
- #region 暂不启用 退回
- if (state == 4)
- {
- #region 判断积分
- bool blScore = false;
- if (modelOrder.F_UseScore > 0)
- {
- //退回积分 查询批次号核算积分是否已经退回
- modelvip = await cus_vip_infoRepository.GetSingle(q => q.F_ID == modelOrder.F_VipId);
- modelvip.F_Score = modelvip.F_Score + modelOrder.F_UseScore;
- if (await cus_vip_infoRepository.Update(modelvip))
- {
- //log 或者冻结转作废
- blScore = true;
- }
- }
- else
- {
- blScore = true;
- }
- if (!blScore)
- {
- return Error("积分处理失败");
- }
- #endregion
- #region 退回库存
- List<T_Bus_StockLog> newstockLogList = new List<T_Bus_StockLog>();
- List<T_Bus_StockLog> stockLogList = await bus_StockLogRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id && q.F_FlowNum == modelOrder.F_FlowNum);
- foreach (T_Bus_StockLog modelStock in stockLogList)
- {
- modelStock.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelStock.F_Action = 2;
- modelStock.F_AddTime = DateTime.Now;
- modelStock.F_Num = -modelStock.F_Num;
- modelStock.F_State = 1;//TODO
- modelStock.F_UserId = modelOrder.F_CheckUser;
- modelStock.F_UserName = modelOrder.F_CheckUserName;
- modelStock.F_Status = 0;//TODO
- newstockLogList.Add(modelStock);
- //拼装请求亿博士接口
- }
- if (await bus_StockLogRepository.AddMany(newstockLogList))
- {
- //请求亿博士接口
- await bus_StockLogRepository.Update(m => new T_Bus_StockLog() { F_Status = 3 }, q => q.F_FlowNum == modelOrder.F_FlowNum);
-
- }
- else
- {
- return Error("库存回滚处理失败");
- }
- #endregion
- modelOrder.F_State = 2;
- modelOrder.F_Score = 0.00M;
- }
- #endregion
- if (await bus_OrderRepository.Update(modelOrder))
- return Success("订单成功审核!");
- return Error("订单审核失败,请汇报技术支持!");
- }
- #endregion
- [HttpPost("setStock")]
- public async Task<IActionResult> SetStock([FromBody]SetStockModel modelset1)
- {
- //modelset.store
- //modelset.dts
- //modelset.masterid
- //modelset.remark
- //modelset.ms
- SetStockModel modelset = new SetStockModel();
- modelset.store = modelset1.store;
- modelset.dts = modelset1.dts;
- modelset.masterid = modelset1.masterid;
- modelset.remark = modelset1.remark;
- modelset.appid= config["eBoss:appid"].ToString();
- modelset.appkey = config["eBoss:appkey"].ToString();
- modelset.billdate = DateTime.Now.ToString("yyyyMMdd");
- string url = config["eBoss:url"].ToString();
- string ret = await HttpHelper.HttpGetAsync(url+modelset.ToJson());
- ret.ToJson();
- //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\"}]}");
- return Success("", ret.Contains("\"success\": true"));
- }
-
- public async Task<bool> ChangeStock(SetStockModel modelset1,List<T_Bus_StockLog> modelStockLogs)
- {
- //modelset.store
- //modelset.dts
- //modelset.masterid
- //modelset.remark
- //modelset.ms
- SetStockModel modelset = new SetStockModel();
- modelset.store = modelset1.store;
- modelset.dts = modelset1.dts;
- modelset.masterid = modelset1.masterid;
- modelset.remark = modelset1.remark;
- modelset.appid = config["eBoss:appid"].ToString();
- modelset.appkey = config["eBoss:appkey"].ToString();
- modelset.billdate = DateTime.Now.ToString("yyyyMMdd");
- string url = config["eBoss:url"].ToString();
- string ret = "\"success\": true";//await HttpHelper.HttpGetAsync(url + modelset.ToJson());
- //ret.ToJson();
- foreach (T_Bus_StockLog stocklog in modelStockLogs)
- {
- stocklog.F_Result= ret;
- if (ret.Contains("\"success\": true"))
- {
- stocklog.F_State = 1;
- }
- else
- {
- stocklog.F_State = 2;
- }
- }
- await bus_StockLogRepository.UpdateList(modelStockLogs);//不计较更新成功失败
- //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\"}]}");
- return ret.Contains("\"success\": true");
- }
- /// <summary>
- /// 获取相应商品库存
- /// </summary>
- /// <param name="sku">010801001 不传则为全部商品</param>
- /// <param name="stock">WLZZ0001 不传则为全部仓库</param>
- /// <returns></returns>
- [HttpPost("getStock")]
- public async Task<IActionResult> GetStock(string sku,string stock, int pageindex=1,int pagesize=10)
- {
- // if (string.IsNullOrEmpty(sku)|| string.IsNullOrEmpty(stock) )
- //{
- // return Error("商品条形码/仓库不能为空");
- // }
- string url = config["eBoss:url"].ToString();
- string appid = config["eBoss:appid"].ToString();
- string appkey = config["eBoss:appkey"].ToString();
- 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\"}");
- GetStock obj= ret.ToObject<GetStock>();
- return Success("参与活动", ret.ToJson());
- }
- }
- }
|