From f0226fac55f50b362d145ce969e66d41606a8b06 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期五, 30 七月 2021 14:13:16 +0800
Subject: [PATCH] 今日开发  订单优惠   下订单的时候计算优惠                访问申请

---
 zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs |  281 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 239 insertions(+), 42 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs b/zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs
index e9c3bbd..ba62186 100644
--- a/zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs
@@ -18,10 +18,14 @@
 using CommonToolsCore;
 using Services;
 using System.Transactions;
+using System.IdentityModel.Tokens.Jwt;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json.Linq;
+using System.Net.Http.Headers;
 
 namespace zhengcaioa.Controllers.BusinessOrder
 {
-    [CheckLogin]
+   
     public class CooperOrderController : Controller
     {
         private readonly ILogger<CooperOrderController> _logger;
@@ -34,11 +38,17 @@
         private readonly IFiBookService _fiBookService;
         private readonly IFiServiceService _fiServiceService;
         private readonly IFiMemberService _fiMemberService;
+        private readonly IConfiguration _configuration;
+        private readonly IHttpClientFactory _clientFactory;
+        private readonly IAskService _askService; 
 
 
         public CooperOrderController(ILogger<CooperOrderController> logger, ILiaotianService liaotianService, IUserService userService, ICooperOrderService cooperOrderService
             , ICooperatecustomCustomerService cooperatecustomCustomerService, IProjectService projectService, IPltPageService pltPageService, IFiBookService fiBookService
-            , IFiServiceService fiServiceService, IFiMemberService fiMemberService)
+            , IFiServiceService fiServiceService, IFiMemberService fiMemberService
+            , IConfiguration configuration
+            , IHttpClientFactory clientFactory
+            , IAskService askService)
         {
             _logger = logger;
             _liaotianService = liaotianService;
@@ -50,9 +60,12 @@
             _fiBookService = fiBookService;
             _fiServiceService = fiServiceService;
             _fiMemberService = fiMemberService;
+            _configuration = configuration;
+            _clientFactory = clientFactory;
+            _askService = askService;
         }
 
-
+        [CheckLogin]
         public IActionResult Index()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -102,18 +115,18 @@
         }
 
 
-       
 
+        [CheckLogin]
         public IActionResult GetList(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
             ViewData["curentuser"] = curentuser;
-            search.Creater = curentuser.Id;
+            //search.Creater = curentuser.Id;
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
 
-
+        [CheckLogin]
         public IActionResult ShouliList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -141,7 +154,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListshouli(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -152,7 +165,7 @@
         }
 
 
-
+        [CheckLogin]
         public IActionResult ChedanList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -180,7 +193,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListchedan(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -190,7 +203,7 @@
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
 
-
+        [CheckLogin]
         public IActionResult WangongList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -218,7 +231,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListwangong(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -228,7 +241,7 @@
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
-
+        [CheckLogin]
         public IActionResult SonghuoList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -258,7 +271,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListsonghuo(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -268,7 +281,7 @@
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
-
+        [CheckLogin]
         public IActionResult HuifangList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -296,7 +309,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListHuifang(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -306,7 +319,7 @@
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
-
+        [CheckLogin]
         public IActionResult PingjiaList()
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -334,7 +347,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListPingjia(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -374,7 +387,7 @@
             return View();
 
         }
-
+        [CheckLogin]
         public IActionResult GetListYouhui(CooperOrderDTOSearch search)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -384,6 +397,7 @@
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
             return new JsonResult(_cooperOrderService.SearchByPaging(search));
         }
+        [CheckLogin]
         public IActionResult Edit(string id = null, string ShouliStatus = "1")
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -394,12 +408,14 @@
             {
                 dto = _cooperOrderService.Get(id);
                 ViewBag.ShouliStatus = ShouliStatus;
+                //ViewBag.YouHuiList = _askService.GetAskYouHuiList(dto.Khdw, dto.OrderType);
             }
             else
             {
                 dto.XdTime = DateTime.Now;
                 dto.OrderNum = 1;
                 ViewBag.ShouliStatus = "1";
+                //ViewBag.YouHuiList = new List<AdmAskYouHuiDTO>();
             }
 
 
@@ -443,12 +459,13 @@
         /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param>
         /// <returns></returns>
         /// 
+        [CheckLogin]
         [HttpPost]
-        public IActionResult Save(CooperOrderDTO data)
+        public async Task<IActionResult> SaveAsync(CooperOrderDTO data)
         {
             ResultEntity resultEntity = new ResultEntity();
-            using (TransactionScope scope = new TransactionScope())
-            {
+            //using (TransactionScope scope = new TransactionScope())
+            //{
                 var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
                 ViewData["curentuser"] = curentuser;
                 data.RecStatus = "A";
@@ -457,16 +474,114 @@
                     data.Creater = curentuser.Id;
                     data.Createtime = DateTime.Now;
                     data.XdTime = data.Createtime;
+                    if (data.OrderType == "03" || data.OrderType == "07" || (data.OrderType == "02" && (data.OrderType1 == "浠f嫙鎶曡瘔涔�" || data.OrderType1 == "浠f嫙璐ㄧ枒鍑�")))
+                    {
+                        var cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(data.Khdw);
+                        if (cooperatecustomCustomerDTO != null && !string.IsNullOrEmpty(cooperatecustomCustomerDTO.HuiyuanId))
+                        {
+                            string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
+                            string SetCaseOrder = _configuration.GetSection("SetCaseOrder").Value;
+
+                            Uri postUrl2 = new Uri(huiyuanurl + SetCaseOrder);
+
+                            JObject questions2 = new JObject();
+                            questions2.Add("UserID", cooperatecustomCustomerDTO.HuiyuanId);
+                            if (data.OrderType == "03")
+                            {
+                                questions2.Add("CaseType", 0);
+                            }
+                            else if (data.OrderType == "07")
+                            {
+                                questions2.Add("CaseType", 1);
+                            }
+                            else if (data.OrderType == "07")
+                            {
+                                questions2.Add("CaseType", 1);
+                            }
+                            else if (data.OrderType == "02" && (data.OrderType1 == "浠f嫙鎶曡瘔涔�" || data.OrderType1 == "浠f嫙璐ㄧ枒鍑�"))
+                            {
+                                questions2.Add("CaseType", 2);
+                            }
+
+                            questions2.Add("count", Decimal.ToInt32(data.OrderNum.Value)  );
+
+                            string requestJson2 = questions2.ToString();
+                            string result2 = string.Empty;
+
+                            using (HttpContent httpContent = new StringContent(requestJson2))
+                            {
+                                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                                var httpClient2 = _clientFactory.CreateClient();
+                                httpClient2.Timeout = new TimeSpan(0, 0, 10);
+                                var Result2 = await httpClient2.PostAsync(postUrl2, httpContent);
+                                result2 = Result2.Content.ReadAsStringAsync().Result;
+                            }
+
+                            _logger.LogInformation("result2:" + result2);
+                            JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
+
+                            if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
+                            {
+                                resultEntity.Result = true;
+                            }
+                            else
+                            {
+                                resultEntity.Result = false;
+                                resultEntity.Message = "鍐欏叆浼氬憳璁㈠崟澶辫触";
+                                return new JsonResult(resultEntity);
+                            }
+                        }
+                    }
+
+
+                
+
+                    
+                }
+
+            var youHuiDTOs = _askService.GetAskYouHuiList(data.Khdw, data.OrderType).FirstOrDefault();
+            if (youHuiDTOs != null)
+            {
+                data.Youhuier = youHuiDTOs.Id;
+                if(youHuiDTOs.Youhuistandard == "01")
+                {
+                    data.Youhui = youHuiDTOs.YouHui.Value;
+                    if(data.Money.Value < data.Youhui.Value)
+                    {
+                        data.Money = 0;
+                    }
+                    else
+                    {
+                        data.Money = data.Money.Value - data.Youhui.Value;
+                    }
                    
                 }
-                data.ShouliStatus = "1";
-                data.Modifier = curentuser.Id;
-                data.Modifytime = DateTime.Now;
-
-                resultEntity = _cooperOrderService.save(data);
-                scope.Complete();
+                else if (youHuiDTOs.Youhuistandard == "02")
+                {
+                    if (youHuiDTOs.YouHui.Value >= 100)
+                    {
+                        data.Youhui = data.Money.Value;
+                        data.Money = 0;
+                    }
+                    else
+                    {
+                        data.Youhui =Math.Round(data.Money.Value * youHuiDTOs.YouHui.Value * new decimal(0.01),2);
+                        data.Money = data.Money.Value - data.Youhui.Value;
+                    }
+                }
+                  
+                  
             }
-           
+            
+            data.ShouliStatus = "1";
+            data.Modifier = curentuser.Id;
+            data.Modifytime = DateTime.Now;
+
+            resultEntity = _cooperOrderService.save(data);
+            //    scope.Complete();
+            //}
+
 
             return new JsonResult(resultEntity);
         }
@@ -478,6 +593,7 @@
         /// <param name="info">瀹炰綋</param>
         /// <returns></returns>
         /// 
+        [CheckLogin]
         public IActionResult Nullify(string Id = "")
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -492,7 +608,7 @@
         /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param>
         /// <returns></returns>
         /// 
-        
+        [CheckLogin]
         public IActionResult Shouli(string id)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -524,7 +640,7 @@
         /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param>
         /// <returns></returns>
         /// 
-
+        [CheckLogin]
         public IActionResult Wangong(string id)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -540,8 +656,8 @@
             return new JsonResult(resultEntity);
         }
 
-       
 
+        [CheckLogin]
         public IActionResult Chedan(string id = null)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -552,7 +668,7 @@
 
             return View();
         }
-
+        [CheckLogin]
         public IActionResult chedantuihuan(decimal Price, string Chedanid)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -580,7 +696,7 @@
 
             return new JsonResult(resultEntity);
         }
-
+        [CheckLogin]
         public IActionResult Huifang(string id = null)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -592,7 +708,7 @@
 
             return View();
         }
-
+        [CheckLogin]
         public IActionResult Huifangtuihuan(CooperOrderDTO dto)
         {
             ResultEntity resultEntity = new ResultEntity();
@@ -619,7 +735,7 @@
         /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param>
         /// <returns></returns>
         /// 
-
+        [CheckLogin]
         public IActionResult Songhuo(string id)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -639,7 +755,7 @@
             
         }
 
-
+        [CheckLogin]
         public IActionResult Songhuotuihuan(CooperOrderDTO dto)
         {
             ResultEntity resultEntity = new ResultEntity();
@@ -663,7 +779,7 @@
             return new JsonResult(resultEntity);
         }
 
-
+        [CheckLogin]
         public IActionResult Pingjia(string id = null)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -674,7 +790,7 @@
 
             return View();
         }
-
+        [CheckLogin]
         public IActionResult Pingjiatuihuan(string PingjiaStatus, string Pingjiaid)
         {
             ResultEntity resultEntity = new ResultEntity();
@@ -695,7 +811,7 @@
         }
 
 
-
+        [CheckLogin]
         public IActionResult Print(string id = null)
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -724,7 +840,7 @@
             return View();
         }
 
-
+        [CheckLogin]
         public IActionResult printList(CooperOrderDTOSearch search)
         {
             //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
@@ -771,7 +887,7 @@
                 result = JsonConvert.SerializeObject(shi);
             }
 
-            if (OrderType == "08" || OrderType == "10")
+            if (OrderType == "08" || OrderType == "10" || OrderType == "11")
             {
                
                 result = "[]";
@@ -854,6 +970,87 @@
             return result;
 
         }
-        
+
+
+
+        //鎻愰棶
+        public IActionResult GetHuiYuanOrder([FromBody]CooperOrderDTOSearch search)
+        {
+            ReturnMsg<List<UserOrders>> returnMsg = new ReturnMsg<List<UserOrders>>();
+            returnMsg.code = 2;
+            try
+            {
+                string userid = "";
+                var headers = Request.Headers;
+                if (headers != null)
+                {
+                    //string SecurityKey = _configuration.GetSection("SecurityKey").Value;
+                    var keyId = headers["Authorization"].FirstOrDefault();
+                    if (string.IsNullOrEmpty("keyId"))
+                    {
+                        returnMsg.code = 2;
+                        returnMsg.error = "娌℃湁鑾峰彇鍒皌oken";
+                        returnMsg.count = 0;
+
+                        return new JsonResult(returnMsg);
+                    }
+
+
+                    JwtSecurityToken jwt = null;
+                    var handler = new JwtSecurityTokenHandler();
+                    var key1 = keyId.Replace("Bearer", "").Trim();
+                    jwt = handler.ReadJwtToken(key1);
+                    System.Security.Claims.Claim sss = jwt.Claims.Where(x => x.Type == "id").FirstOrDefault();
+                    userid = sss.Value;
+
+                }
+                //LZhuanjiahuidumDTOSearch searchEntity = new LZhuanjiahuidumDTOSearch();
+                //searchEntity.Userid = userid;
+                ////searchEntity.HuidaStatus = "A";
+                //searchEntity.page = 1;
+                //searchEntity.rows = 1000;
+                search.HuiyuanId = userid;
+                ResultDataEntity<CooperOrderDTO> resultDataEntity = _cooperOrderService.SearchByPaging(search);
+                List<CooperOrderDTO> cooperOrderDTOs  = resultDataEntity.DataList;
+                List<UserOrders> userOrders = new List<UserOrders>();
+                //灏佽璁㈠崟
+                foreach (var cooperOrderDTO in cooperOrderDTOs)
+                {
+                    UserOrders userOrder = new UserOrders();
+                    userOrder.order_goods = new List<usercart_items>();
+                    usercart_items usercart_Item = new usercart_items();
+
+                    userOrder.order_type = "offline";
+                    userOrder.order_no = cooperOrderDTO.OrderNo;
+                    userOrder.accept_name = cooperOrderDTO.Shr;
+                    userOrder.mobile = cooperOrderDTO.ShrTel;
+                    userOrder.address = cooperOrderDTO.ShrAddress;
+                    userOrder.order_amount = cooperOrderDTO.Money.HasValue ? cooperOrderDTO.Money.Value: 0; 
+                    userOrder.statusChs = cooperOrderDTO.ShouliStatusName;
+                    userOrder.add_time = cooperOrderDTO.Createtime;
+
+                    usercart_Item.sell_price = cooperOrderDTO.Price.HasValue ? cooperOrderDTO.Price.Value : 0; 
+                    usercart_Item.quantity = cooperOrderDTO.OrderNum.HasValue ? decimal.ToInt32(cooperOrderDTO.OrderNum.Value) : 0;
+                    usercart_Item.name = cooperOrderDTO.OrderTypeName + "-" + cooperOrderDTO.OrderType1Name + (string.IsNullOrEmpty(cooperOrderDTO.OrderType2)?"": "-"+cooperOrderDTO.OrderType2);
+
+
+
+                    userOrder.order_goods.Add(usercart_Item);
+                    userOrders.Add(userOrder);
+                }
+                returnMsg.code = 1;
+                returnMsg.returnObj = userOrders;
+                returnMsg.count = resultDataEntity.DataList.Count;
+            }
+            catch (Exception ex)
+            {
+                returnMsg.code = 2;
+                returnMsg.error = "娌℃湁鑾峰彇鍒皌oken";
+                returnMsg.count = 0;
+
+            }
+            return new JsonResult(returnMsg);
+        }
+
     }
 }

--
Gitblit v1.9.1