username@email.com
2023-03-08 f7a2d28869cc31c7dbe057a1d80dd40536d97fed
zhengcaioa/zhengcaioa/Controllers/BusinessOrder/OrderBanciOrderController.cs
@@ -18,6 +18,10 @@
using CommonToolsCore;
using Services;
using System.Transactions;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json.Linq;
using System.Net.Http.Headers;
using System.IdentityModel.Tokens.Jwt;
namespace zhengcaioa.Controllers.BusinessOrder
{
@@ -29,10 +33,18 @@
        private readonly IOrderBanciDtlService _orderBanciDtlService;
        private readonly IOrderBanciOrderService _orderBanciOrderService;
        private readonly IFiOrderrecievemoneyService _fiOrderrecievemoneyService;
        private readonly ICooperOrderService _cooperOrderService;
        private readonly IConfiguration _configuration;
        private readonly IHttpClientFactory _clientFactory;
        private readonly IPltPageService _pltPageService;
        public OrderBanciOrderController(ILogger<OrderBanciOrderController> logger, ILiaotianService liaotianService, IOrderBanciService orderBanciService, IOrderBanciDtlService orderBanciDtlService
            ,IOrderBanciOrderService orderBanciOrderService
            , IFiOrderrecievemoneyService fiOrderrecievemoneyService)
            , IFiOrderrecievemoneyService fiOrderrecievemoneyService
            , ICooperOrderService cooperOrderService
            , IConfiguration configuration
              , IHttpClientFactory clientFactory
             , IPltPageService pltPageService)
        {
            _logger = logger;
            _liaotianService = liaotianService;
@@ -40,6 +52,10 @@
            _orderBanciDtlService = orderBanciDtlService;
            _fiOrderrecievemoneyService = fiOrderrecievemoneyService;
            _orderBanciOrderService = orderBanciOrderService;
            _cooperOrderService = cooperOrderService;
            _configuration = configuration;
            _clientFactory = clientFactory;
            _pltPageService = pltPageService;
        }
        [CheckLogin]
@@ -62,22 +78,34 @@
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            ActionEntity actionEntity3 = new ActionEntity();
            actionEntity3.OpenType = 0;
            actionEntity3.ActionUrl = "";
            actionEntity3.ActionFun = "Print";
            actionEntity3.PageIco = "fa fa-print";
            actionEntity3.ActionName = "打印";
            actionlist.Add(actionEntity3);
            //ActionEntity actionEntity3 = new ActionEntity();
            //actionEntity3.OpenType = 0;
            //actionEntity3.ActionUrl = "";
            //actionEntity3.ActionFun = "Print";
            //actionEntity3.PageIco = "fa fa-print";
            //actionEntity3.ActionName = "打印";
            //actionlist.Add(actionEntity3);
            ActionEntity actionEntity4 = new ActionEntity();
            actionEntity4.OpenType = 0;
            actionEntity4.ActionUrl = "";
            actionEntity4.ActionFun = "Duanxin";
            actionEntity4.PageIco = "";
            actionEntity4.ActionName = "发送短信";
            actionlist.Add(actionEntity4);
            //ActionEntity actionEntity4 = new ActionEntity();
            //actionEntity4.OpenType = 0;
            //actionEntity4.ActionUrl = "";
            //actionEntity4.ActionFun = "Duanxin";
            //actionEntity4.PageIco = "";
            //actionEntity4.ActionName = "发送短信";
            //actionlist.Add(actionEntity4);
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/OrderBanciOrder/Index/");
            var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
            foreach (var pageEntity in pageEntities1)
            {
                ActionEntity actionEntity1 = new ActionEntity();
                actionEntity1.OpenType = pageEntity.OpenType;
                actionEntity1.ActionUrl = "";
                actionEntity1.ActionFun = pageEntity.PageShortcut;
                actionEntity1.PageIco = pageEntity.PageIco;
                actionEntity1.ActionName = pageEntity.PageName;
                actionlist.Add(actionEntity1);
            }
            ViewData["ActionInfo"] = actionlist;
@@ -116,32 +144,135 @@
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            ActionEntity actionEntity3 = new ActionEntity();
            actionEntity3.OpenType = 0;
            actionEntity3.ActionUrl = "";
            actionEntity3.ActionFun = "Print";
            actionEntity3.PageIco = "fa fa-print";
            actionEntity3.ActionName = "打印";
            actionlist.Add(actionEntity3);
            //ActionEntity actionEntity3 = new ActionEntity();
            //actionEntity3.OpenType = 0;
            //actionEntity3.ActionUrl = "";
            //actionEntity3.ActionFun = "Print";
            //actionEntity3.PageIco = "fa fa-print";
            //actionEntity3.ActionName = "打印";
            //actionlist.Add(actionEntity3);
            ActionEntity actionEntity4 = new ActionEntity();
            actionEntity4.OpenType = 0;
            actionEntity4.ActionUrl = "";
            actionEntity4.ActionFun = "Duanxin";
            actionEntity4.PageIco = "";
            actionEntity4.ActionName = "发送短信";
            actionlist.Add(actionEntity4);
            //ActionEntity actionEntity4 = new ActionEntity();
            //actionEntity4.OpenType = 0;
            //actionEntity4.ActionUrl = "";
            //actionEntity4.ActionFun = "Duanxin";
            //actionEntity4.PageIco = "";
            //actionEntity4.ActionName = "发送短信";
            //actionlist.Add(actionEntity4);
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/OrderBanciOrder/Indexzhuanjia/");
            var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
            foreach (var pageEntity in pageEntities1)
            {
                ActionEntity actionEntity1 = new ActionEntity();
                actionEntity1.OpenType = pageEntity.OpenType;
                actionEntity1.ActionUrl = "";
                actionEntity1.ActionFun = pageEntity.PageShortcut;
                actionEntity1.PageIco = pageEntity.PageIco;
                actionEntity1.ActionName = pageEntity.PageName;
                actionlist.Add(actionEntity1);
            }
            ViewData["ActionInfo"] = actionlist;
            ViewBag.kechengleixing = _liaotianService.GetSYScode("order_banci_order", "kechengleixing_id").Where(x => x.CodeSn != "3").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
            ViewData["ActionInfo2"] = pageEntities2;
            ViewBag.kechengleixing = _liaotianService.GetSYScode("order_banci_order", "kechengleixing_id").Where(x => x.CodeSn != "3" && x.CodeSn != "7").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.Baomingtimebegin = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd");
            ViewBag.Baomingtimeend = DateTime.Now.ToString("yyyy-MM-dd");
            return View();
        }
        [CheckLogin]
        public IActionResult IndexGuwen()
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            List<ActionEntity> actionlist = new List<ActionEntity>();
            ActionEntity actionEntity = new ActionEntity();
            actionEntity.OpenType = 0;
            actionEntity.ActionUrl = "";
            actionEntity.ActionFun = "Search";
            actionEntity.PageIco = "fa fa-search";
            actionEntity.ActionName = "查询";
            actionlist.Add(actionEntity);
            //ActionEntity actionEntity1 = new ActionEntity();
            //actionEntity1.OpenType = 0;
            //actionEntity1.ActionUrl = "";
            //actionEntity1.ActionFun = "Add";
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            //ActionEntity actionEntity3 = new ActionEntity();
            //actionEntity3.OpenType = 0;
            //actionEntity3.ActionUrl = "";
            //actionEntity3.ActionFun = "Print";
            //actionEntity3.PageIco = "fa fa-print";
            //actionEntity3.ActionName = "打印";
            //actionlist.Add(actionEntity3);
            //ActionEntity actionEntity4 = new ActionEntity();
            //actionEntity4.OpenType = 0;
            //actionEntity4.ActionUrl = "";
            //actionEntity4.ActionFun = "Duanxin";
            //actionEntity4.PageIco = "";
            //actionEntity4.ActionName = "发送短信";
            //actionlist.Add(actionEntity4);
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/OrderBanciOrder/IndexGuwen/");
            var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
            foreach (var pageEntity in pageEntities1)
            {
                ActionEntity actionEntity1 = new ActionEntity();
                actionEntity1.OpenType = pageEntity.OpenType;
                actionEntity1.ActionUrl = "";
                actionEntity1.ActionFun = pageEntity.PageShortcut;
                actionEntity1.PageIco = pageEntity.PageIco;
                actionEntity1.ActionName = pageEntity.PageName;
                actionlist.Add(actionEntity1);
            }
            ViewData["ActionInfo"] = actionlist;
            ViewBag.kechengleixing = _liaotianService.GetSYScode("order_banci_order", "kechengleixing_id").Where(x => x.CodeSn == "7").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.Baomingtimebegin = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd");
            ViewBag.Baomingtimeend = DateTime.Now.ToString("yyyy-MM-dd");
            return View();
        }
        [CheckLogin]
        public IActionResult Printhetong(string id = null)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            //投诉书
            var orderBanciOrderDTO = _orderBanciOrderService.Get(id);
            orderBanciOrderDTO.XuefeiName = MoneyToUpperHelper.MoneyToUpper(orderBanciOrderDTO.Xuefei.Value.ToString("0.##"));
            var frameworkUser  =  _cooperOrderService.GetFrameworkUsers(orderBanciOrderDTO.PersonId);
            if (frameworkUser != null)
            {
                orderBanciOrderDTO.Xingming = frameworkUser.Name;
                orderBanciOrderDTO.Lianxidianhua = frameworkUser.Itcode;
            }
                ViewData.Model = orderBanciOrderDTO;
            return View();
        }
        [CheckLogin]
@@ -304,6 +435,196 @@
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        ///
        [HttpPost]
        public  IActionResult JifenSave([FromBody] OrderBanciOrderDTO data)
        {
            //var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            //ViewData["curentuser"] = curentuser;
            ReturnMsg<OrderBanciOrderDTO> returnMsg = new ReturnMsg<OrderBanciOrderDTO>();
            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 = "没有获取到token";
                        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;
                }
                else
                {
                    returnMsg.code = 2;
                    returnMsg.error = "没有获取到token";
                    returnMsg.count = 0;
                    return new JsonResult(returnMsg);
                }
                using (TransactionScope scope = new TransactionScope())
                {
                    data.RecStatus = "A";
                    if (String.IsNullOrEmpty(data.Id))
                    {
                        data.Creater = "1";
                        data.Createtime = DateTime.Now;
                    }
                    data.Modifier = "1";
                    data.Modifytime = DateTime.Now;
                    data.PersonId = userid;
                    //OrderBanciOrderDTOSearch search = new OrderBanciOrderDTOSearch();
                    //search.page = 1;
                    //search.rows = 1000;
                    //search.BanciId = data.BanciId;
                    //ResultDataEntity<OrderBanciOrderDTO> resultDataEntity = _orderBanciOrderService.SearchByPaging(search);
                    if (data.Baomingrenshu.HasValue)
                    {
                        //if (resultDataEntity.DataList.Count > 0)
                        //{
                        //  var orderBanciOrderDTO =   resultDataEntity.DataList.OrderByDescending(x => x.Baomingrenshu).FirstOrDefault();
                        //    data.Baomingrenshu += orderBanciOrderDTO.Baomingrenshu;
                        //}
                    }
                    else
                    {
                        //if (resultDataEntity.DataList.Count > 0)
                        //{
                        //    var orderBanciOrderDTO = resultDataEntity.DataList.OrderByDescending(x => x.Baomingrenshu).FirstOrDefault();
                        //    data.Baomingrenshu = orderBanciOrderDTO.Baomingrenshu+1;
                        //}
                        //else
                        //{
                        data.Baomingrenshu = 1;
                        //}
                    }
                    //data.Jine = resultDataEntity.DataList.Sum(x => x.Xuefei);
                    //data.Jine += data.Xuefei;
                    ResultEntity resultEntity = _orderBanciOrderService.save(data);
                    if (resultEntity.Result)
                    {
                        returnMsg.code = 1;
                        returnMsg.count = 1;
                        returnMsg.returnObj = data;
                    }
                    else
                    {
                        returnMsg.error = resultEntity.Message;
                    }
                    int OnePorints = 0;
                   var orderBanciDTO = _orderBanciService.Get(data.BanciId);
                   var  orderBanciDtlDTO = _orderBanciDtlService.GetList(data.BanciId).Where(x=>x.Shangxiawu == data.KechengleixingId).FirstOrDefault();
                    if(orderBanciDtlDTO!=null&& orderBanciDtlDTO.Jifen.HasValue)
                    {
                        OnePorints = decimal.ToInt32(orderBanciDtlDTO.Jifen.Value); ;
                    }
                    else
                    {
                        returnMsg.code = 2;
                        returnMsg.error = "该班次不能积分兑换";
                        returnMsg.count = 0;
                        return new JsonResult(returnMsg);
                    }
                    string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
                    string GetYGYaoQingYonghu = _configuration.GetSection("PassPoints").Value;
                    Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu);
                    JObject questions2 = new JObject();
                    questions2.Add("UserID", data.PersonId);
                    questions2.Add("GoodsName", data.Peixunbanci);
                    questions2.Add("Content", data.Peixunbanci);
                    questions2.Add("ToatlPorints", data.Baomingrenshu.Value* OnePorints);//计算
                    questions2.Add("OnePorints", OnePorints);//计算
                    questions2.Add("Count", data.Baomingrenshu);
                    questions2.Add("OderID", data.Id);
                    questions2.Add("describe", data.Peixunbanci +"积分报名");
                    string requestJson2 = questions2.ToString();
                    string result2 = string.Empty;
                    result2 = HttpClientRequest.HttpClientPost(postUrl2.ToString(), "POST", requestJson2);
                    //using (HttpContent httpContent = new StringContent(requestJson2))
                    //{
                    //    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    //    var httpClient2 = _clientFactory.CreateClient();
                    //    httpClient2.Timeout = new TimeSpan(0, 0, 60);
                    //    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")
                    {
                        string OaWriteTrainClassOder = _configuration.GetSection("OaWriteTrainClassOder").Value;
                        Uri postUrl = new Uri(huiyuanurl + OaWriteTrainClassOder);
                        JObject questions = new JObject();
                        questions.Add("UserID", data.PersonId);
                        questions.Add("TrainClass", data.Peixunbanci);
                        questions.Add("TrainClassType", int.Parse(data.KechengleixingId));
                        questions.Add("Name", data.Xingming);//计算
                        questions.Add("IdentificationNumber", data.Shenfenzheng);//计算
                        questions.Add("PhoneNo", data.Lianxidianhua);
                        questions.Add("StartTime", orderBanciDTO.Shijian.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                        questions.Add("BanciId", data.BanciId);
                        questions.Add("BanciAddr", orderBanciDTO.Didian);
                        questions.Add("PersonCount", data.Baomingrenshu);
                        questions.Add("Ptions", data.Baomingrenshu.Value * OnePorints);
                        string requestJson = questions.ToString();
                        string result = string.Empty;
                        result = HttpClientRequest.HttpClientPost(postUrl.ToString(), "POST", requestJson);
                        _logger.LogInformation("result:" + result);
                        scope.Complete();
                    }
                    else
                    {
                        returnMsg.code = 2;
                        returnMsg.error = jobjectresult["msg"].ToString();
                        returnMsg.count = 0;
                        return new JsonResult(returnMsg);
                    }
                }
            }
            catch (Exception ex)
            {
                returnMsg.code = 2;
                returnMsg.error = "没有获取到token";
                returnMsg.count = 0;
            }
            return new JsonResult(returnMsg);
        }
        //获取当前的报名的人数
        public IActionResult GetBaoMingRenShu([FromBody] OrderBanciOrderDTOSearch search)
@@ -388,5 +709,47 @@
            return new JsonResult(returnMsg);
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        ///
        public IActionResult Delete(string OrderId)
        {
            //var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            //ViewData["curentuser"] = curentuser;
            ReturnMsg<OrderBanciOrderDTO> returnMsg = new ReturnMsg<OrderBanciOrderDTO>();
            returnMsg.code = 2;
            try
            {
                ResultEntity resultEntity = _orderBanciOrderService.DeleteStatus(OrderId);
                if (resultEntity.Result)
                {
                    returnMsg.code = 1;
                    returnMsg.count = 1;
                    returnMsg.returnObj = null;
                }
                else
                {
                    returnMsg.error = resultEntity.Message;
                }
            }
            catch (Exception ex)
            {
                returnMsg.code = 2;
                returnMsg.error = "没有获取到token";
                returnMsg.count = 0;
            }
            return new JsonResult(returnMsg);
        }
    }
}