| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478 |
- /* =============================================
- -- 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.IRepositories.Bus;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Model;
- using System.Model.Bus;
- 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 IBus_OrderMoneyRepository busOrderMoneyRepository;
- private readonly IConfiguration config;
- private readonly IBus_AfterSaleRepository busAfterSaleRepository;
- private readonly IBus_OrderlogsRepository busOrderlogsRepository;
- private readonly OrderFunctionController busOrderFunctionController;
- public OrderController(IBus_OrderMoneyRepository _busOrderMoneyRepository,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, IBus_AfterSaleRepository _busAfterSaleRepository, IBus_OrderlogsRepository _busOrderlogsRepository)
- {
- 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;
- busOrderFunctionController = _OrderFunctionController;
- busOrderMoneyRepository = _busOrderMoneyRepository;
- busAfterSaleRepository = _busAfterSaleRepository;
- busOrderlogsRepository = _busOrderlogsRepository;
- }
- #region
- /// <summary>
- /// 创建订单
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- // [HttpPost("addorder")]
- /**public async Task<IActionResult> AddOrder([FromBody]OrderInput input)
- {
- try {
- 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("请输入客户电话");
- if (input.F_Type=="售后订单")
- 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;
- if (input.F_RecommendId>0)
- {
- modelOrder.F_RecommendId = input.F_RecommendId;
- modelOrder.F_RecommendName = input.F_RecommendName;
- }
- if (input.F_CustomerType > 0)
- { modelOrder.F_CustomerType = input.F_CustomerType; }
- if (!string.IsNullOrEmpty(input.F_CustomerTel))
- { modelOrder.F_CustomerTel = input.F_CustomerTel; }
- //选填 快递属性
- modelOrder.F_TrackingNo = "";
- if (!string.IsNullOrEmpty(input.F_Addressee))
- { modelOrder.F_Addressee = input.F_Addressee; }
- if (!string.IsNullOrEmpty(input.F_AddPhone))
- { modelOrder.F_AddPhone = input.F_AddPhone; }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- { modelOrder.F_AddProvince = input.F_AddProvince; }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- { modelOrder.F_AddCity = input.F_AddCity; }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- { modelOrder.F_AddArea = input.F_AddArea; }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- { modelOrder.F_AddTown = input.F_AddTown; }
- if (!string.IsNullOrEmpty(input.F_AddDes))
- { modelOrder.F_AddDes = input.F_AddDes; }
- if (!string.IsNullOrEmpty(input.F_Address))
- { modelOrder.F_Address = input.F_Address; }
- if (!string.IsNullOrEmpty(input.F_PostalCode))
- { modelOrder.F_PostalCode = input.F_PostalCode; }
- if (!string.IsNullOrEmpty(input.F_Express))
- { modelOrder.F_Express = input.F_Express; }
- if (!string.IsNullOrEmpty(input.F_Remark))
- { modelOrder.F_Remark = input.F_Remark; }
- if (!string.IsNullOrEmpty(input.F_PayType))
- { modelOrder.F_PayType = input.F_PayType; }
- if
- (input.F_VipId > 0)
- { modelOrder.F_VipId = input.F_VipId; }
- else
- {
- var vip = await cus_vip_infoRepository.GetListALL(x => x.F_Phone == input.F_CustomerPhone
- && x.F_State == 1);
- if (vip != null && vip.Count > 0)
- modelOrder.F_VipId = vip.FirstOrDefault().F_ID;
- else
- modelOrder.F_VipId = 0;
- }
- if (input.F_Belong > 0)
- {
- modelOrder.F_Belong = input.F_Belong;
- modelOrder.F_BelongName = input.F_BelongName;
- }
- else
- {
- modelOrder.F_Belong = UserLogin.UserId.ObjToInt();
- modelOrder.F_BelongName = UserLogin.UserName;
- }
- modelOrder.F_ExpressFee = input.F_ExpressFee;
- modelOrder.F_Stock = input.F_Stock;
-
- modelOrder.F_RealPrice = input.F_RealPrice;
- modelOrder.F_UseScore = input.F_UseScore;
- //选填 关联属性
- 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;
- #endregion
- if (input.F_State == 1)
- {
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- { }
- else
- { return Error("请选择订购商品"); }
- if (string.IsNullOrEmpty(input.F_Stock))
- {
- return Error("请选择出库货仓");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Express))
- {
- return Error("快递不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddPhone))
- {
- return Error("收件人电话不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddTown))
- {
- return Error("收件人地址不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Address))
- {
- return Error("收件人详细地址不能为空");
- }
- }
- 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.IsNullOrEmpty(UseActivity))
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string[] actlist = UseActivity.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetFirst(b => actlist.Contains(b.F_ID.ToString())&& b.F_EndTime >= DateTime.Now && b.F_StartTime <= DateTime.Now && b.F_IsDelete == 0 && ("," + b.F_Commodity + ",").Contains(("," + tag + ",")));
- //此商品参加活动
- if (modelactive != null)
- {
- modelDetail.F_Activity = modelactive.F_ID;
- }
- }
- else { modelDetail.F_Activity = 0; }
- 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 = 1;
- modelscore.F_DebitPercent = 1000;
- }
- #region 直接提交 锁库存log 锁积分log
- if (input.F_State == 1)
- {
- if (modelscore.F_StartDebit == 0 || modelOrder.F_VipId == 0)
- {
- modelOrder.F_UseScore = 0;
- }
- modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss")+"U" + UserLogin.UserId +"R"+ new Random().Next(9);
- string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 1, modelDetailList);
- if (strStock != "1")
- { return Error(strStock); }
- if (modelscore.F_Start == 1)
- {
- //订单完成后计算积分
- modelOrder.F_Score = -0.01M;
- }
- modelOrder.F_SubmitTime = DateTime.Now;
- }
- #endregion
- //计算结果 积分有规则
- modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - ActivityMoney + modelOrder.F_ExpressFee- modelOrder.F_UseScore / modelscore.F_DebitPercent;
- modelOrder.F_PayState = 0;
-
- if (await bus_OrderRepository.AddReturnCount(modelOrder))
- {
- if (modelDetailList != null && modelDetailList.Count > 0)
- {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- return Success("订单添加成功2");
- else
- return Error("订单添加失败,请重试!1");
- }
- return Success("订单添加成功1");
- }
- else
- {
- return Error("订单添加失败,请重试!2");
- }
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }**/
- #endregion
- /// <summary>
- /// 创建订单
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("addorder")]
- public async Task<IActionResult> AddOrder([FromBody]OrderInput input)
- {
- try
- {
- 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("请输入客户电话");
- if (input.F_Type == "售后订单")
- 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;
- if (input.F_RecommendId > 0)
- {
- modelOrder.F_RecommendId = input.F_RecommendId;
- modelOrder.F_RecommendName = input.F_RecommendName;
- }
- if (input.F_CustomerType > 0)
- { modelOrder.F_CustomerType = input.F_CustomerType; }
- if (!string.IsNullOrEmpty(input.F_CustomerTel))
- { modelOrder.F_CustomerTel = input.F_CustomerTel; }
- //选填 快递属性
- modelOrder.F_TrackingNo = "";
- if (!string.IsNullOrEmpty(input.F_Addressee))
- { modelOrder.F_Addressee = input.F_Addressee; }
- if (!string.IsNullOrEmpty(input.F_AddPhone))
- { modelOrder.F_AddPhone = input.F_AddPhone; }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- { modelOrder.F_AddProvince = input.F_AddProvince; }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- { modelOrder.F_AddCity = input.F_AddCity; }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- { modelOrder.F_AddArea = input.F_AddArea; }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- { modelOrder.F_AddTown = input.F_AddTown; }
- if (!string.IsNullOrEmpty(input.F_AddDes))
- { modelOrder.F_AddDes = input.F_AddDes; }
- if (!string.IsNullOrEmpty(input.F_Address))
- { modelOrder.F_Address = input.F_Address; }
- if (!string.IsNullOrEmpty(input.F_PostalCode))
- { modelOrder.F_PostalCode = input.F_PostalCode; }
- // if (!string.IsNullOrEmpty(input.F_Express))
- // { modelOrder.F_Express = input.F_Express; }
-
- if (!string.IsNullOrEmpty(input.F_Remark))
- { modelOrder.F_Remark = input.F_Remark; }
- if (!string.IsNullOrEmpty(input.F_PayType))
- { modelOrder.F_PayType = input.F_PayType; }
- if
- (input.F_VipId > 0)
- { modelOrder.F_VipId = input.F_VipId; }
- else
- {
- var vip = await cus_vip_infoRepository.GetListALL(x => x.F_Phone == input.F_CustomerPhone
- && x.F_State == 1);
- if (vip != null && vip.Count > 0)
- modelOrder.F_VipId = vip.FirstOrDefault().F_ID;
- else
- modelOrder.F_VipId = 0;
- }
- if (input.F_Belong > 0)
- {
- modelOrder.F_Belong = input.F_Belong;
- modelOrder.F_BelongName = input.F_BelongName;
- }
- else
- {
- modelOrder.F_Belong = UserLogin.UserId.ObjToInt();
- modelOrder.F_BelongName = UserLogin.UserName;
- }
- modelOrder.F_ExpressFee = input.F_ExpressFee;
- // modelOrder.F_Stock = input.F_Stock;
- modelOrder.F_IsExpress = 0;
- modelOrder.F_RealPrice = input.F_RealPrice;
- modelOrder.F_MemberNotes = input.F_MemberNotes;//会员备注
- modelOrder.F_UseScore = input.F_UseScore;
- if (input.F_IsPayment > 0)
- {
- try
- {
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(input.F_Id))
- return Error("请输入订单号");
- if (string.IsNullOrEmpty(input.OrderMoney.F_PayUser))
- return Error("请输入打款人");
- if (string.IsNullOrEmpty(input.F_PayType))
- return Error("请选择付款方式");
- // if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkKF))
- // input.OrderMoney.F_RemarkKF = "";
- if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkXS))
- input.OrderMoney.F_RemarkXS = "";
- if (input.OrderMoney.F_PayTime == null)
- return Error("请选择打款时间");
- if (input.OrderMoney.F_Money <= 0)
- return Error("请输入金额");
- #endregion
- T_Bus_OrderMoney modelOrderMoeny = new T_Bus_OrderMoney();
- ModelConvertHelper<T_Bus_OrderMoney, OrderMoneyInput>.ModeToModelDefault(modelOrderMoeny, input.OrderMoney);
- modelOrderMoeny.F_AddUserId = UserLogin.UserId.ObjToInt();
- modelOrderMoeny.F_UserName = UserLogin.UserName;
- modelOrderMoeny.F_MoneyBak = modelOrderMoeny.F_Money;
- modelOrderMoeny.F_State = 0;
- modelOrderMoeny.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- if (!await busOrderMoneyRepository.AddReturnCount(modelOrderMoeny))
- return Error("付款失败");
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
-
- modelOrder.F_State = 0;
- //选填 关联属性
-
- modelOrder.F_Status = 0;
-
- modelOrder.F_IsPayment = input.F_IsPayment;
-
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_AddUserName = UserLogin.UserName;
- #endregion
-
- 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);
- if (modelProduct.F_OnSaleEnd<DateTime .Now &&UserLogin.RoleCode != "SH")
- {
- 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.IsNullOrEmpty(UseActivity))
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string[] actlist = UseActivity.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetFirst(b => actlist.Contains(b.F_ID.ToString()) && b.F_EndTime >= DateTime.Now && b.F_StartTime <= DateTime.Now && b.F_IsDelete == 0 && ("," + b.F_Commodity + ",").Contains(("," + tag + ",")));
- //此商品参加活动
- if (modelactive != null)
- {
- modelDetail.F_Activity = modelactive.F_ID;
- }
- }
- else { modelDetail.F_Activity = 0; }
- 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_TotlePrice += input.F_ExpressFee;//订单总额(包括快递费)
- modelOrder.F_RecommenderTel = input.F_RecommenderTel;
- modelOrder.F_PayState = 0;
- if (input .F_State ==1)
- {
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- { }
- else
- { return Error("请选择订购商品"); }
- if (string.IsNullOrEmpty(modelOrder.F_AddPhone))
- {
- return Error("收件人电话不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddTown))
- {
- return Error("收件人地址不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Address))
- {
- return Error("收件人详细地址不能为空");
- }
- List<T_Bus_Product> Productlist = new List<T_Bus_Product>();
- if (modelDetailList != null && modelDetailList.Count > 0)
- {
- foreach (var it in modelDetailList)
- {
- T_Bus_Product t_Bus_Product = await bus_productRepository.GetSingle(x => x.F_ProductId == it.F_ProductId);
- if (t_Bus_Product != null)
- {
- List<EBossStock> listStock = await busOrderFunctionController.GetStock(it.F_ProductId, "山西仓");
- List<EBossStock> listStock1 = await busOrderFunctionController.GetStock(it.F_ProductId, "新乡仓");
- t_Bus_Product.F_UseNumber += it.F_Count;
- if (t_Bus_Product.F_UseNumber > listStock[0].qty && t_Bus_Product.F_UseNumber > listStock1[0].qty)
- {
- return Error ( "提交失败,可配量不足.");
- }
- else
- {
- Productlist.Add(t_Bus_Product);
- }
- }
- else
- {
- return Error("提交失败,商品不存在");
- }
- }
- }
- modelOrder.F_SubmitTime = DateTime.Now;
- if (modelOrder.F_IsPayment > 0)
- modelOrder.F_State = 7;
- else
- modelOrder.F_State = 0;
- modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + UserLogin.UserId + "R" + new Random().Next(9);
- }
- string count = UserLogin.UserName + "创建订单";
- int t = await AddLog(modelOrder.F_Id, count, UserLogin.UserId, modelOrder.F_State);
- if (t >0)
- {
- if (await bus_OrderRepository.AddReturnCount(modelOrder))
- {
- if (modelDetailList != null && modelDetailList.Count > 0)
- {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- {
- return Success("订单添加成功2");
- }
- else
- return Error("订单添加失败,请重试!1");
- }
- return Success("订单添加成功1");
- }
- }
- return Error("订单添加失败,请重试!2");
-
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
- /// <summary>
- /// 获取总金额
- /// </summary>
- /// <param name="OrderDetailList"></param>
- /// <param name="UseActList"></param>
- /// <returns></returns>
- [HttpPost("getPrice")]
- public async Task<IActionResult> GetPrice(List<OrderDetailInput> OrderDetailList
- , List<UseActInput> UseActList, decimal F_ExpressFee =0)
- {
- decimal totle = 0.00M;
- decimal ActivityMoney = 0.00M;
- string UseActivity = "";
- string UseActivity4 = ",";
- string UseActivity2 = ",";
- if (OrderDetailList != null && OrderDetailList.Count > 0)
- {
- int n = 1;
- int n2 = OrderDetailList.Count + 1;
- #region 活动核算
- if (UseActList != null && UseActList.Count > 0)
- {
- //遍历所有选中的活动
- foreach (UseActInput act in UseActList)
- {
- UseActivity += act.id + ",";
-
- 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 OrderDetailList)
- {
- T_Bus_Product modelProduct = await bus_productRepository.GetSingle(b => b.F_ProductId == m.F_ProductId);
- if (modelProduct == null)
- return Error("商品不存在:" + m.F_ProductId);
- if (modelProduct.F_OnSaleEnd < DateTime.Now && UserLogin.RoleCode != "SH")
- {
- return Error("商品已下架:" + m.F_ProductId);
- }
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- //参加活动特价
- 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_Count = m.F_Count;
- modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
- totle += modelDetail.F_TotlePrice;
- n++;
- }
- #endregion
-
- }
- else
- {
- //不改变订单
- }
- totle += F_ExpressFee;
- return Success("获取成功", totle);
- }
- /// <summary>
- /// 提交订单 Audit payment
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("submit")]
- public async Task<IActionResult> Submit(string orderids)
- {
- string msg = "";
- if (string.IsNullOrEmpty(orderids))
- return Error("请选择订单号");
- string[] ids = orderids.Split(',');
- List<T_Bus_Orderlogs> logs = new List<T_Bus_Orderlogs>();
- List<T_Bus_Order> orderLIst = new List<T_Bus_Order>();
- foreach (var item in ids)
- {
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == item);
- T_Bus_Orderlogs t_Bus_Orderlogs = new T_Bus_Orderlogs();
- 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 && detaillist.Count > 0)
- { }
- else
- { msg += "订单" + modelOrder.F_Id + "请选择订购商品"; continue; }
- if (string.IsNullOrEmpty(modelOrder.F_AddPhone))
- {
- msg += "订单" + modelOrder.F_Id + "收件人电话不能为空";
- continue;
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddTown))
- {
- msg += "订单" + modelOrder.F_Id + "收件人地址不能为空";
- continue;
- }
- if (string.IsNullOrEmpty(modelOrder.F_Address))
- {
- msg += "订单" + modelOrder.F_Id + "收件人详细地址不能为空";
- continue;
- }
- List<T_Bus_Product> Productlist = new List<T_Bus_Product>();
- if (detaillist!=null && detaillist.Count >0)
- {
- foreach (var it in detaillist)
- {
- T_Bus_Product t_Bus_Product = await bus_productRepository.GetSingle(x => x.F_ProductId == it.F_ProductId);
- if (t_Bus_Product.F_OnSaleEnd < DateTime.Now && UserLogin.RoleCode != "SH")
- {
- return Error("商品已下架:" + t_Bus_Product.F_ProductId);
- }
- if (t_Bus_Product!=null )
- {
- List<EBossStock> listStock = await busOrderFunctionController.GetStock(it.F_ProductId, "山西仓");
- List<EBossStock> listStock1 = await busOrderFunctionController.GetStock(it.F_ProductId, "新乡仓");
-
- t_Bus_Product.F_UseNumber += it.F_Count;
- if (t_Bus_Product.F_UseNumber> listStock[0].qty&& t_Bus_Product.F_UseNumber > listStock1[0].qty)
- {
- msg += "订单" + modelOrder.F_Id + "提交失败,可配量不足.";
- continue;
- }
- else
- {
- Productlist.Add(t_Bus_Product);
- }
-
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + "提交失败,商品不存在.";
- continue;
- }
- }
- }
- if (msg=="")
- {
- if (Productlist!=null && Productlist.Count >0)
- {
- if (!await bus_productRepository.UpdateList(Productlist))
- msg += "订单" + modelOrder.F_Id + "提交失败";
- continue;
- }
- else
- msg += "订单" + modelOrder.F_Id + "提交失败,请选择商品";
- continue;
- }
- /**
- string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 1, detaillist);
- if (strStock == "1")
- {
- if (modelscore.F_Start == 1)
- {
- //订单完成后计算积分
- modelOrder.F_Score = -0.01M;
- }
-
- #endregion
- //计算结果 积分有规则
- modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - modelOrder.F_ActivityMoney + modelOrder.F_ExpressFee - modelOrder.F_UseScore / modelscore.F_DebitPercent;
-
- if (! await bus_OrderRepository.Update(modelOrder))
- {
- msg += "订单" + modelOrder.F_Id + "提交失败";
- }
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + strStock;
- }
- **/
- modelOrder.F_SubmitTime = DateTime.Now;
- if (modelOrder.F_IsPayment > 0)
- modelOrder.F_State = 7;
- else
- modelOrder.F_State = 1;
- modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + UserLogin.UserId + "R" + new Random().Next(9);
- orderLIst.Add(modelOrder);
- t_Bus_Orderlogs.F_WoID = modelOrder.F_Id;
- t_Bus_Orderlogs.F_OptContent = UserLogin.UserName + "提交订单";
- t_Bus_Orderlogs.F_CreateUser = UserLogin.UserCode;
- t_Bus_Orderlogs.F_CreateTime = DateTime.Now;
- t_Bus_Orderlogs.F_WoState = modelOrder.F_State;
- logs.Add(t_Bus_Orderlogs);
- }
- if (msg =="")
- {
- await busOrderlogsRepository.AddAndUpdateList(logs);
- if (await bus_OrderRepository.UpdateList(orderLIst))
- return Success("提交成功");
- else
- return Error("提交失败");
- }
-
- else
- return Error(msg);
-
- }
- /// <summary>
- /// 审核订单金额
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("checkordermoney")]
- public async Task<IActionResult> CheckOrderMoney(string orderids,int state)
- {
- try
- {
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(orderids))
- return Error("请选择订单号");
- string[] ids = orderids.Split(',');
- List<T_Bus_Order> _Orders = new List<T_Bus_Order>();
- List<T_Bus_OrderMoney> orderMoney = new List<T_Bus_OrderMoney>();
- List<T_Bus_Orderlogs> logs = new List<T_Bus_Orderlogs>();
- string msg = "";
- foreach (var it in ids)
- {
- #endregion
- T_Bus_Orderlogs t_Bus_Orderlogs = new T_Bus_Orderlogs();
- Expression<Func<T_Bus_OrderMoney, bool>> eq = a => a.F_OrderId == it;
- T_Bus_OrderMoney modelOrderMoeny = busOrderMoneyRepository.GetListALL(eq, o => o.F_AddTime, OrderByType.Asc).Result .FirstOrDefault ();
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == modelOrderMoeny.F_OrderId);
- modelOrderMoeny.F_State = state;
- if (modelOrderMoeny.F_State == 1)
- {
- if (modelOrder.F_PayState == 1 || modelOrder.F_PayState == 3)
- {
- msg += "订单" + it+ "此单已结算";
- continue;
- }
- modelOrder.F_RealPrice = modelOrder.F_RealPrice + modelOrderMoeny.F_Money;
- if (modelOrder.F_PayState == 0)
- {
- if (modelOrder.F_ShouldPrice <= modelOrder.F_RealPrice)
- {
- //0待回款1已支付 2待退款3已退款
- modelOrder.F_PayState = 1;
- }
- }
- else if (modelOrder.F_PayState == 2)
- {
- if (modelOrder.F_ShouldPrice <= modelOrder.F_RealPrice)
- {
- //0待回款1已支付 2待退款3已退款
- modelOrder.F_PayState = 3;
- }
- }
- modelOrder.F_State = 1;
- t_Bus_Orderlogs.F_OptContent = UserLogin.UserName + "审核付款金额,审核通过";
- _Orders.Add(modelOrder);
- }
- else
- {
- List<T_Bus_OrderDetail> detaillist = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id, o => o.F_Sort, OrderByType.Asc);
- List<T_Bus_Product> Productlist = new List<T_Bus_Product>();
- if (detaillist != null && detaillist.Count > 0)
- {
- foreach (var iv in detaillist)
- {
- T_Bus_Product t_Bus_Product = await bus_productRepository.GetSingle(x => x.F_ProductId == iv.F_ProductId);
- if (t_Bus_Product != null)
- {
- if (t_Bus_Product.F_OnSaleEnd < DateTime.Now && UserLogin.RoleCode != "SH")
- {
- return Error("商品已下架:" + t_Bus_Product.F_ProductId);
- }
- t_Bus_Product.F_UseNumber -= iv.F_Count;
- Productlist.Add(t_Bus_Product);
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + "提交失败,商品不存在.";
- continue;
- }
- }
- }
- if (msg == "")
- {
- if (Productlist != null && Productlist.Count > 0)
- {
- if (!await bus_productRepository.UpdateList(Productlist))
- {
- msg += "订单" + modelOrder.F_Id + "提交失败";
- continue;
- }
-
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + "提交失败,请选择商品";
- continue;
- }
- }
- t_Bus_Orderlogs.F_OptContent = UserLogin.UserName + "审核付款金额,审核不通过";
- modelOrder.F_State = 0;
- _Orders.Add(modelOrder);
- }
- orderMoney.Add(modelOrderMoeny);
-
- t_Bus_Orderlogs.F_WoID = modelOrder.F_Id;
-
- t_Bus_Orderlogs.F_CreateUser = UserLogin.UserCode;
- t_Bus_Orderlogs.F_CreateTime = DateTime.Now;
- t_Bus_Orderlogs.F_WoState = modelOrder.F_State;
- logs.Add(t_Bus_Orderlogs);
- }
- if (msg == "")
- {
- await busOrderlogsRepository.AddAndUpdateList(logs);
- if (await busOrderMoneyRepository.UpdateList(orderMoney))
- {
- if (await bus_OrderRepository.UpdateList(_Orders))
- return Success("成功");
- }
- }
- else
- return Error(msg);
- return Error("失败!");
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
- #region
- /// <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("请输入客户电话");
- if (input.F_Type == "售后订单")
- 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 }.Contains(modelOrder.F_State)))
- {
- return Error("已提交订单不允许修改,先撤回订单");
- }
- #region 数据绑定
- //必填
- modelOrder.F_ADFrom = input.F_ADFrom;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_Customer = input.F_Customer;
- modelOrder.F_CustomerPhone = input.F_CustomerPhone;
- if (input.F_RecommendId > 0)
- {
- modelOrder.F_RecommendId = input.F_RecommendId;
- modelOrder.F_RecommendName = input.F_RecommendName;
- }
- if (input.F_CustomerType > 0)
- { modelOrder.F_CustomerType = input.F_CustomerType; }
- if (!string.IsNullOrEmpty(input.F_CustomerTel))
- { modelOrder.F_CustomerTel = input.F_CustomerTel; }
- //选填 快递属性
- modelOrder.F_TrackingNo = "";
- if (!string.IsNullOrEmpty(input.F_Addressee))
- { modelOrder.F_Addressee = input.F_Addressee; }
- if (!string.IsNullOrEmpty(input.F_AddPhone))
- { modelOrder.F_AddPhone = input.F_AddPhone; }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- { modelOrder.F_AddProvince = input.F_AddProvince; }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- { modelOrder.F_AddCity = input.F_AddCity; }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- { modelOrder.F_AddArea = input.F_AddArea; }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- { modelOrder.F_AddTown = input.F_AddTown; }
- if (!string.IsNullOrEmpty(input.F_AddDes))
- { modelOrder.F_AddDes = input.F_AddDes; }
- if (!string.IsNullOrEmpty(input.F_Address))
- { modelOrder.F_Address = input.F_Address; }
- if (!string.IsNullOrEmpty(input.F_PostalCode))
- { modelOrder.F_PostalCode = input.F_PostalCode; }
- if (!string.IsNullOrEmpty(input.F_Express))
- { modelOrder.F_Express = input.F_Express; }
- if (!string.IsNullOrEmpty(input.F_Remark))
- { modelOrder.F_Remark = input.F_Remark; }
- if (!string.IsNullOrEmpty(input.F_PayType))
- { modelOrder.F_PayType = input.F_PayType; }
- if (input.F_Belong > 0)
- {
- modelOrder.F_Belong = input.F_Belong;
- modelOrder.F_BelongName = input.F_BelongName;
- }
- else
- {
- modelOrder.F_Belong = UserLogin.UserId.ObjToInt();
- modelOrder.F_BelongName = UserLogin.UserName;
- }
- modelOrder.F_ExpressFee = input.F_ExpressFee;
- modelOrder.F_Stock = input.F_Stock;
- modelOrder.F_RealPrice = input.F_RealPrice;
- modelOrder.F_UseScore = input.F_UseScore;
- //选填 关联属性
- if (input.F_VipId>0)
- modelOrder.F_VipId = input.F_VipId;
- else
- {
- var vip = await cus_vip_infoRepository.GetListALL(x => x.F_Phone == input.F_CustomerPhone
- && x.F_State == 1);
- if (vip != null && vip.Count > 0)
- modelOrder.F_VipId = vip.FirstOrDefault().F_ID;
- else
- modelOrder.F_VipId = 0;
- }
- modelOrder.F_State = input.F_State;
- modelOrder.F_Status = 0;
- modelOrder.F_IsPayment = input.F_IsPayment;
- if (input.F_IsPayment > 0 && input.F_PaymentMoney <= 0)
- return Error("付款金额不能小于0");
-
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_AddUserName = UserLogin.UserName;
- #endregion
- //计算属性 商品计算
- 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.IsNullOrEmpty(UseActivity))
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string[] actlist = UseActivity.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetFirst(b => actlist.Contains(b.F_ID.ToString()) && b.F_EndTime >= DateTime.Now && b.F_StartTime<=DateTime.Now && b.F_IsDelete==0&&("," + 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
- {
- //不传商品 表明不修改商品信息 不重新计算商品
- }
- //直接提交 锁库存
- 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 = 1;
- modelscore.F_DebitPercent = 1000;
- }
- #region 提交 更改状态 库存 积分
-
- if (input.F_State == 1)
- {
- if (string.IsNullOrEmpty(input.F_Stock))
- {
- return Error("请选择出库货仓");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Express))
- {
- return Error("快递不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddPhone))
- {
- return Error("收件人电话不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddTown))
- {
- return Error("收件人地址不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Address))
- {
- return Error("收件人详细地址不能为空");
- }
- modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + UserLogin.UserId + "R" + new Random().Next(9);
- if (modelscore.F_Start == 1)
- {
- //订单完成后计算积分
- modelOrder.F_Score = -0.01M;
- }
- else
- { //订单完成后也不计算积分
- modelOrder.F_Score = 0.00M;
- }
- if (modelscore.F_StartDebit == 0 || modelOrder.F_VipId == 0)
- {
- modelOrder.F_UseScore = 0;
- }
- string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 1, modelDetailList);
- if (strStock != "1")
- { return Error(strStock); }
- modelOrder.F_SubmitTime = DateTime.Now;
- }
- #endregion
- if (!modelOrder.F_Type.Contains("售后"))
- { modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - modelOrder.F_ActivityMoney + modelOrder.F_ExpressFee - modelOrder.F_UseScore / modelscore.F_DebitPercent;
- }
- DataTable dt=await busOrderMoneyRepository.GetTableSugar(string.Format("SELECT IFNULL(SUM(F_Money),0) FROM T_Bus_OrderMoney WHERE F_OrderId='{0}' AND F_State=1", modelOrder.F_Id));
- modelOrder.F_RealPrice = dt.Rows[0][0].ObjToDecimal() ;
- if (modelOrder.F_ShouldPrice > 0)
- {
- if (modelOrder.F_ShouldPrice <= modelOrder.F_RealPrice)
- modelOrder.F_PayState = 1;
- else
- modelOrder.F_PayState = 0;
- }
- else
- {
- if (modelOrder.F_ShouldPrice >= modelOrder.F_RealPrice)
- modelOrder.F_PayState = 3;
- else
- modelOrder.F_PayState = 2;
- }
- //待付款 客服审核付款情况后改为已付款
- 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 {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- return Success("订单生成成功2");
- else
- return Error("订单操作失败,请重试2!");
- }
- }
- else { return Success("成功"); }
- }
- return Error("订单添加失败,请重试!");
- }
- **/
- #endregion
- #region
- /// <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("请输入客户电话");
-
- if (input.F_Type == "售后订单")
- 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 }.Contains(modelOrder.F_State)))
- {
- return Error("已提交订单不允许修改,先撤回订单");
- }
- #region 数据绑定
- //必填
- modelOrder.F_ADFrom = input.F_ADFrom;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_Customer = input.F_Customer;
- modelOrder.F_CustomerPhone = input.F_CustomerPhone;
- if (input.F_RecommendId > 0)
- {
- modelOrder.F_RecommendId = input.F_RecommendId;
- modelOrder.F_RecommendName = input.F_RecommendName;
- }
- if (input.F_CustomerType > 0)
- { modelOrder.F_CustomerType = input.F_CustomerType; }
- if (!string.IsNullOrEmpty(input.F_CustomerTel))
- { modelOrder.F_CustomerTel = input.F_CustomerTel; }
- //选填 快递属性
- modelOrder.F_TrackingNo = "";
- if (!string.IsNullOrEmpty(input.F_Addressee))
- { modelOrder.F_Addressee = input.F_Addressee; }
- if (!string.IsNullOrEmpty(input.F_AddPhone))
- { modelOrder.F_AddPhone = input.F_AddPhone; }
- if (!string.IsNullOrEmpty(input.F_AddProvince))
- { modelOrder.F_AddProvince = input.F_AddProvince; }
- if (!string.IsNullOrEmpty(input.F_AddCity))
- { modelOrder.F_AddCity = input.F_AddCity; }
- if (!string.IsNullOrEmpty(input.F_AddArea))
- { modelOrder.F_AddArea = input.F_AddArea; }
- if (!string.IsNullOrEmpty(input.F_AddTown))
- { modelOrder.F_AddTown = input.F_AddTown; }
- if (!string.IsNullOrEmpty(input.F_AddDes))
- { modelOrder.F_AddDes = input.F_AddDes; }
- if (!string.IsNullOrEmpty(input.F_Address))
- { modelOrder.F_Address = input.F_Address; }
- // if (!string.IsNullOrEmpty(input.F_PostalCode))//快递
- // { modelOrder.F_PostalCode = input.F_PostalCode; }
- if (!string.IsNullOrEmpty(input.F_Express))
- { modelOrder.F_Express = input.F_Express; }
- if (!string.IsNullOrEmpty(input.F_Remark))
- { modelOrder.F_Remark = input.F_Remark; }
- if (!string.IsNullOrEmpty(input.F_PayType))
- { modelOrder.F_PayType = input.F_PayType; }
- if (input.F_Belong > 0)
- {
- modelOrder.F_Belong = input.F_Belong;
- modelOrder.F_BelongName = input.F_BelongName;
- }
- else
- {
- modelOrder.F_Belong = UserLogin.UserId.ObjToInt();
- modelOrder.F_BelongName = UserLogin.UserName;
- }
- modelOrder.F_ExpressFee = input.F_ExpressFee;
- // modelOrder.F_Stock = input.F_Stock;//仓库
- modelOrder.F_IsExpress = 0;
- modelOrder.F_MemberNotes = input.F_MemberNotes;//会员备注
- modelOrder.F_RealPrice = input.F_RealPrice;
- modelOrder.F_UseScore = input.F_UseScore;
- //选填 关联属性
- if (input.F_VipId>0)
- modelOrder.F_VipId = input.F_VipId;
- else
- {
- var vip = await cus_vip_infoRepository.GetListALL(x => x.F_Phone == input.F_CustomerPhone
- && x.F_State == 1);
- if (vip != null && vip.Count > 0)
- modelOrder.F_VipId = vip.FirstOrDefault().F_ID;
- else
- modelOrder.F_VipId = 0;
- }
- if (input .F_IsPayment >0)
- {
- try
- {
- if (string.IsNullOrEmpty(input.OrderMoney.F_PayUser))
- return Error("请输入打款人");
- if (string.IsNullOrEmpty(input.F_PayType))
- return Error("请输入打款方式");
- if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkKF))
- input.OrderMoney.F_RemarkKF = "";
- if (string.IsNullOrEmpty(input.OrderMoney.F_RemarkXS))
- input.OrderMoney.F_RemarkXS = "";
- if (input.OrderMoney.F_PayTime == null)
- return Error("请输入打款时间");
- if (input.OrderMoney.F_Money <= 0)
- return Error("请输入金额");
- #region 验证参数 必填项
- Expression<Func<T_Bus_OrderMoney, bool>> eq = a => a.F_OrderId == input .F_Id ;
- var modelOrderMoen = await busOrderMoneyRepository.GetListALL(eq, o => o.F_AddTime, OrderByType.Asc);
- T_Bus_OrderMoney modelOrderMoeny = new T_Bus_OrderMoney();
- if (modelOrderMoen != null && modelOrderMoen.Count >0)
- {
- modelOrderMoeny = modelOrderMoen.FirstOrDefault();
- }
- #endregion
- ModelConvertHelper<T_Bus_OrderMoney, OrderMoneyInput>.ModeToModelDefault(modelOrderMoeny, input.OrderMoney);
- modelOrderMoeny.F_AddUserId = UserLogin.UserId.ObjToInt();
- modelOrderMoeny.F_UserName = UserLogin.UserName;
- modelOrderMoeny.F_MoneyBak = modelOrderMoeny.F_Money;
- modelOrderMoeny.F_State = 0;
- modelOrderMoeny.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- if (!await busOrderMoneyRepository.AddReturnCount(modelOrderMoeny))
- return Error("付款失败");
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
-
- modelOrder.F_State = input.F_State;
- modelOrder.F_Status = 0;
- modelOrder.F_IsPayment = input.F_IsPayment;
-
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser = UserLogin.UserId.ObjToInt();
- modelOrder.F_AddUserName = UserLogin.UserName;
- #endregion
- //计算属性 商品计算
- 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.IsNullOrEmpty(UseActivity))
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string[] actlist = UseActivity.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- T_Sys_Marketing modelactive = await bus_MarketingRepository.GetFirst(b => actlist.Contains(b.F_ID.ToString()) && b.F_EndTime >= DateTime.Now && b.F_StartTime<=DateTime.Now && b.F_IsDelete==0&&("," + 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
- {
- //不传商品 表明不修改商品信息 不重新计算商品
- }
- modelOrder.F_TotlePrice +=input. F_ExpressFee;
- //直接提交 锁库存
- 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 = 1;
- modelscore.F_DebitPercent = 1000;
- }
- #region 提交 更改状态 库存 积分
-
- if (input.F_State == 1)
- {
- if (input.OrderDetailList != null && input.OrderDetailList.Count > 0)
- { }
- else
- { return Error("请选择订购商品"); }
- if (string.IsNullOrEmpty(modelOrder.F_AddPhone))
- {
- return Error("收件人电话不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_AddTown))
- {
- return Error("收件人地址不能为空");
- }
- if (string.IsNullOrEmpty(modelOrder.F_Address))
- {
- return Error("收件人详细地址不能为空");
- }
- List<T_Bus_Product> Productlist = new List<T_Bus_Product>();
- if (modelDetailList != null && modelDetailList.Count > 0)
- {
- foreach (var it in modelDetailList)
- {
- T_Bus_Product t_Bus_Product = await bus_productRepository.GetSingle(x => x.F_ProductId == it.F_ProductId);
- if (t_Bus_Product != null)
- {
- List<EBossStock> listStock = await busOrderFunctionController.GetStock(it.F_ProductId, "山西仓");
- List<EBossStock> listStock1 = await busOrderFunctionController.GetStock(it.F_ProductId, "新乡仓");
- t_Bus_Product.F_UseNumber += it.F_Count;
- if (t_Bus_Product.F_UseNumber > listStock[0].qty && t_Bus_Product.F_UseNumber > listStock1[0].qty)
- {
- return Error("提交失败,可配量不足.");
- }
- else
- {
- Productlist.Add(t_Bus_Product);
- }
- }
- else
- {
- return Error("提交失败,商品不存在");
- }
- }
- }
- modelOrder.F_SubmitTime = DateTime.Now;
- if (modelOrder.F_IsPayment > 0)
- modelOrder.F_State = 7;
- else
- modelOrder.F_State = 1;
- modelOrder.F_FlowNum = DateTime.Now.ToString("yyMMddHHmmss") + "U" + UserLogin.UserId + "R" + new Random().Next(9);
- }
- // if (modelscore.F_Start == 1)
- // {
- //订单完成后计算积分
- // modelOrder.F_Score = -0.01M;
- // }
- // else
- // { //订单完成后也不计算积分
- // modelOrder.F_Score = 0.00M;
- // }
- // if (modelscore.F_StartDebit == 0 || modelOrder.F_VipId == 0)
- // {
- // modelOrder.F_UseScore = 0;
- // }
- // string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 1, modelDetailList);
- // if (strStock != "1")
- // { return Error(strStock); }
- // modelOrder.F_SubmitTime = DateTime.Now;
- // }
- #endregion
- if (!modelOrder.F_Type.Contains("售后"))
- { modelOrder.F_ShouldPrice = modelOrder.F_TotlePrice - modelOrder.F_ActivityMoney + modelOrder.F_ExpressFee - modelOrder.F_UseScore / modelscore.F_DebitPercent;
- }
- DataTable dt=await busOrderMoneyRepository.GetTableSugar(string.Format("SELECT IFNULL(SUM(F_Money),0) FROM T_Bus_OrderMoney WHERE F_OrderId='{0}' AND F_State=1", modelOrder.F_Id));
- modelOrder.F_RealPrice = dt.Rows[0][0].ObjToDecimal() ;
- if (modelOrder.F_ShouldPrice > 0)
- {
- if (modelOrder.F_ShouldPrice <= modelOrder.F_RealPrice)
- modelOrder.F_PayState = 1;
- else
- modelOrder.F_PayState = 0;
- }
- else
- {
- if (modelOrder.F_ShouldPrice >= modelOrder.F_RealPrice)
- modelOrder.F_PayState = 3;
- else
- modelOrder.F_PayState = 2;
- }
- //待付款 客服审核付款情况后改为已付款
- string count = UserLogin.UserName + "修改订单";
- int t = await AddLog(modelOrder.F_Id, count, UserLogin.UserId, modelOrder.F_State);
- if (t >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
- {
- if (await bus_OrderDetailRepository.AddMany(modelDetailList))
- return Success("订单生成成功2");
- else
- return Error("订单操作失败,请重试2!");
- }
- }
- else { return Success("成功"); }
- }
- }
- return Error("订单添加失败,请重试!");
- }
-
- #endregion
- /// <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_OnSaleEnd < DateTime.Now && UserLogin.RoleCode != "SH")
- {
- return Error("商品已下架:" + modelProduct.F_ProductId);
- }
- //是否有活动标签
- if (modelProduct.F_Tag.IndexOf(".") > -1)
- {
- string[] tagarry = modelProduct.F_Tag.Split(',');
- string tag = tagarry.First(a => a.StartsWith(".")).ToString();
- //标签内有效期
- var Marketing = await bus_MarketingRepository.GetListALL(b => ("," + b.F_Commodity + ",").Contains("," + tag + ",") && b.F_StartTime <= DateTime.Now && b.F_EndTime >= DateTime.Now && b.F_IsDelete == 0);
- //此商品参加活动
- if (Marketing != null)
- {
- T_Sys_Marketing modelactive = Marketing.FirstOrDefault();
- 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)
- {
- ModelConvertHelper<OrderInput, T_Bus_Order>.ModeToModel(modelreturn, modelOrder);
- 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;
- }
- else
- return Error("订单不存在");
- Expression<Func<T_Bus_Orderlogs , bool>> eq = a => a.F_WoID == orderid;
- var ItemList = await busOrderlogsRepository.GetListALL(eq, o => o.F_CreateTime , OrderByType.Asc);
-
- var obj = new
- {
- modelreturn,
- ItemList
- };
- return Content(obj.ToJson());
- }
- /// <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 > -2)
- {
- conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = input.F_State.ToString() });
- }
- //根据角色展示列表
- if (UserLogin.RoleCode == "XS")
- {
- conModels.Add(new ConditionalCollections()
- {
- ConditionalList = new List<KeyValuePair<WhereType, ConditionalModel>>()
- {
- new KeyValuePair<WhereType, ConditionalModel>( WhereType.And , new ConditionalModel() { FieldName = "F_AddUser", ConditionalType = ConditionalType.Equal, FieldValue = UserLogin.UserId }),
- new KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Belong", 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;
- m.IsSale = busAfterSaleRepository.GetListALL(x => x.F_OrderId == t.F_Id).Result!=null
- ? busAfterSaleRepository.GetListALL(x => x.F_OrderId == t.F_Id).Result.Count :0;
-
- returnlist.Add(m);
- }
- returnobj.Rows = returnlist;
- return Success("成功", returnobj);
- }
- /// <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("cancelorder")]
- public async Task<IActionResult> CancelOrder(string orderids, int state = 0)
- {
- try
- {
- //状态变化 积分变化 处理时间人变化 库存变化 备注
- T_Cus_VipInfo modelvip = new T_Cus_VipInfo();
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(orderids))
- return Error("请选择订单号");
- if (state != 0)
- return Error("请选择操作类型");
- string[] orderid = orderids.Split(',');
- string msg = "";
- #endregion
- List<T_Bus_Orderlogs> logs = new List<T_Bus_Orderlogs>();
- List<T_Bus_Order> orders = new List<T_Bus_Order>();
- foreach (var it in orderid)
- {
- T_Bus_Orderlogs t_Bus_Orderlogs = new T_Bus_Orderlogs();
- T_Bus_Order modelOrder = await bus_OrderRepository.GetSingle(q => q.F_Id == it && new int[] { 3, 4, 7 }.Contains(q.F_State));
- if (modelOrder == null)
- {
- msg +="订单"+ modelOrder .F_Id + "已审核";
- continue;
- }
- else
- {
- if (modelOrder.F_State ==1)
- {
- List<T_Bus_OrderDetail> detaillist = await bus_OrderDetailRepository.GetListALL(q => q.F_OrderId == modelOrder.F_Id, o => o.F_Sort, OrderByType.Asc);
- List<T_Bus_Product> Productlist = new List<T_Bus_Product>();
- if (detaillist != null && detaillist.Count > 0)
- {
- foreach (var iv in detaillist)
- {
- T_Bus_Product t_Bus_Product = await bus_productRepository.GetSingle(x => x.F_ProductId == iv.F_ProductId);
- if (t_Bus_Product != null)
- {
- t_Bus_Product.F_UseNumber -= iv.F_Count;
- Productlist.Add(t_Bus_Product);
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + "退回失败,商品不存在.";
- continue;
- }
- }
- if (Productlist != null && Productlist.Count > 0)
- {
- if (!await bus_productRepository.UpdateList(Productlist))
- {
- msg += "订单" + modelOrder.F_Id + "退回失败";
- continue;
- }
- }
- else
- {
- msg += "订单" + modelOrder.F_Id + "退回失败,请选择商品";
- continue;
- }
- }
- }
- modelOrder.F_State = state;
- t_Bus_Orderlogs.F_WoID = modelOrder.F_Id;
- t_Bus_Orderlogs.F_CreateUser = UserLogin.UserCode;
- t_Bus_Orderlogs.F_CreateTime = DateTime.Now;
- t_Bus_Orderlogs.F_OptContent = UserLogin.UserName + "撤回订单";
- t_Bus_Orderlogs.F_WoState = modelOrder.F_State;
- logs.Add(t_Bus_Orderlogs);
- orders.Add(modelOrder);
- }
-
- }
- // string strStock = await busOrderFunctionController.ChangeStockOne(modelOrder, 0, null);
- // if (strStock != "1")
- // return Error(strStock);
- // modelOrder.F_State = 0;
- // modelOrder.F_Score = 0.00M;
- if (msg =="")
- {
- await busOrderlogsRepository.AddAndUpdateList(logs);
- if (await bus_OrderRepository.UpdateList(orders))
- return Success("订单成功审核!");
- }
- else
- return Error(msg);
- return Error("订单审核失败,请汇报技术支持!");
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
- [HttpPost("ordermoney")]
- public async Task<IActionResult> OrderMoney(OrderMoneyInput input)
- {
- try
- {
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(input.F_OrderId))
- return Error("请输入订单号");
- if (string.IsNullOrEmpty(input.F_PayUser))
- return Error("请输入打款人");
- if (string.IsNullOrEmpty(input.F_PayType))
- return Error("请输入打款方式");
- if (string.IsNullOrEmpty(input.F_RemarkKF))
- input.F_RemarkKF = "";
- if (string.IsNullOrEmpty(input.F_RemarkXS))
- input.F_RemarkXS = "";
- if (input.F_PayTime==null)
- return Error("请输入打款时间");
- if (input.F_Money <= 0)
- return Error("请输入金额");
- #endregion
- T_Bus_OrderMoney modelOrderMoeny = new T_Bus_OrderMoney();
- ModelConvertHelper<T_Bus_OrderMoney, OrderMoneyInput>.ModeToModelDefault(modelOrderMoeny, input);
- modelOrderMoeny.F_AddUserId =UserLogin.UserId.ObjToInt();
- modelOrderMoeny.F_UserName = UserLogin.UserName;
- modelOrderMoeny.F_MoneyBak= modelOrderMoeny.F_Money;
- modelOrderMoeny.F_State= 0;
- modelOrderMoeny.F_Id = Guid.NewGuid().ToString().Replace("-","");
- if (await busOrderMoneyRepository.AddReturnCount(modelOrderMoeny))
- return Success("成功!");
- return Error("失败!");
- }
- catch (Exception ex)
- { return Error(ex.Message); }
- }
- private async Task<int> AddLog(string WoID,string count,string user,int state)
- {
- T_Bus_Orderlogs logs = new T_Bus_Orderlogs();
- logs.F_WoID = WoID;
- logs.F_WoState = state;
- logs.F_OptContent = count;
- logs.F_CreateUser = user;
- logs.F_CreateTime = DateTime .Now ;
- var res =await busOrderlogsRepository.Add(logs);
- return res;
- }
- }
- }
|