| | |
| | | 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 |
| | | { |
| | |
| | | private readonly IFiBookService _fiBookService; |
| | | private readonly IFiServiceService _fiServiceService; |
| | | private readonly IFiMemberService _fiMemberService; |
| | | private readonly IConfiguration _configuration; |
| | | private readonly IHttpClientFactory _clientFactory; |
| | | private readonly IAskService _askService; |
| | | private readonly IAdmGoodsRecordService _admGoodsRecordService; |
| | | |
| | | private readonly IAdmGoodsManageService _admGoodsManageService; |
| | | |
| | | |
| | | 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 |
| | | , IAdmGoodsRecordService admGoodsRecordService |
| | | , IAdmGoodsManageService admGoodsManageService |
| | | ) |
| | | { |
| | | _logger = logger; |
| | | _liaotianService = liaotianService; |
| | |
| | | _fiBookService = fiBookService; |
| | | _fiServiceService = fiServiceService; |
| | | _fiMemberService = fiMemberService; |
| | | _configuration = configuration; |
| | | _clientFactory = clientFactory; |
| | | _askService = askService; |
| | | _admGoodsRecordService = admGoodsRecordService; |
| | | _admGoodsManageService = admGoodsManageService; |
| | | } |
| | | |
| | | [CheckLogin] |
| | |
| | | { |
| | | dto = _cooperOrderService.Get(id); |
| | | ViewBag.ShouliStatus = ShouliStatus; |
| | | //ViewBag.YouHuiList = _askService.GetAskYouHuiList(dto.Khdw, dto.OrderType); |
| | | //质疑函 |
| | | List<TChallengeletterDTO> challengeletterDTOs = _cooperOrderService.GetListChallengeletter(id); |
| | | TChallengeletterDTO challengeletterDTO = new TChallengeletterDTO(); |
| | | if (challengeletterDTOs!=null&& challengeletterDTOs.Count > 0) |
| | | { |
| | | challengeletterDTO = challengeletterDTOs[0]; |
| | | List<TChallengeItemDTO> challengeItemDTOs = _cooperOrderService.GetListChallengeItem(challengeletterDTO.Id); |
| | | if(challengeItemDTOs.Count>0) |
| | | challengeletterDTO.challengeItemDTOs = challengeItemDTOs; |
| | | else |
| | | challengeletterDTO.challengeItemDTOs = new List<TChallengeItemDTO>() { new TChallengeItemDTO() }; |
| | | } |
| | | else |
| | | { |
| | | challengeletterDTO.challengeItemDTOs = new List<TChallengeItemDTO>() { new TChallengeItemDTO() }; |
| | | } |
| | | ViewBag.challengeletterDTO = challengeletterDTO; |
| | | //投诉书 |
| | | List<TComplaintletterDTO> complaintletterDTOs = _cooperOrderService.GetListComplaintletter(id); |
| | | TComplaintletterDTO complaintletterDTO = new TComplaintletterDTO(); |
| | | if (complaintletterDTOs != null && complaintletterDTOs.Count > 0) |
| | | { |
| | | complaintletterDTO = complaintletterDTOs[0]; |
| | | List<TComplaintItemDTO> complaintItemDTOs = _cooperOrderService.GetListComplaintItem(complaintletterDTO.Id); |
| | | if (complaintItemDTOs.Count > 0) |
| | | complaintletterDTO.complaintItemDTOs = complaintItemDTOs; |
| | | else |
| | | complaintletterDTO.complaintItemDTOs = new List<TComplaintItemDTO>() { new TComplaintItemDTO() }; |
| | | |
| | | List<TComplaintRespondentDTO> complaintRespondentDTOs = _cooperOrderService.GetListComplaintRespondent(complaintletterDTO.Id); |
| | | if (complaintRespondentDTOs.Count > 0) |
| | | complaintletterDTO.complaintRespondentDTOs = complaintRespondentDTOs; |
| | | else |
| | | complaintletterDTO.complaintRespondentDTOs = new List<TComplaintRespondentDTO>() { new TComplaintRespondentDTO() }; |
| | | |
| | | } |
| | | else |
| | | { |
| | | complaintletterDTO.complaintItemDTOs = new List<TComplaintItemDTO>() { new TComplaintItemDTO() }; |
| | | complaintletterDTO.complaintRespondentDTOs = new List<TComplaintRespondentDTO>() { new TComplaintRespondentDTO() }; |
| | | } |
| | | ViewBag.complaintletterDTO = complaintletterDTO; |
| | | } |
| | | else |
| | | { |
| | | dto.XdTime = DateTime.Now; |
| | | dto.OrderNum = 1; |
| | | ViewBag.ShouliStatus = "1"; |
| | | } |
| | | dto.OrderNo = _cooperOrderService.GetOrderNo(); |
| | | //ViewBag.YouHuiList = new List<AdmAskYouHuiDTO>(); |
| | | //质疑函 |
| | | TChallengeletterDTO challengeletterDTO = new TChallengeletterDTO(); |
| | | challengeletterDTO.challengeItemDTOs = new List<TChallengeItemDTO>() { new TChallengeItemDTO() }; |
| | | ViewBag.challengeletterDTO = challengeletterDTO; |
| | | //投诉书 |
| | | TComplaintletterDTO complaintletterDTO = new TComplaintletterDTO(); |
| | | complaintletterDTO.complaintItemDTOs = new List<TComplaintItemDTO>() { new TComplaintItemDTO() }; |
| | | complaintletterDTO.complaintRespondentDTOs = new List<TComplaintRespondentDTO>() { new TComplaintRespondentDTO()}; |
| | | ViewBag.complaintletterDTO = complaintletterDTO; |
| | | |
| | | } |
| | | ViewBag.request_info = _liaotianService.GetSYScode("t_challengeletter", "request_info");//质疑请求 |
| | | ViewBag.question = _liaotianService.GetSYScode("t_challenge_items", "question"); // 质疑事项 |
| | | ViewBag.law = _liaotianService.GetSYScode("t_complaint_items", "law");//法律依据 |
| | | |
| | | |
| | | |
| | |
| | | /// |
| | | [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"; |
| | |
| | | data.Creater = curentuser.Id; |
| | | data.Createtime = DateTime.Now; |
| | | data.XdTime = data.Createtime; |
| | | if (data.OrderType == "03" || data.OrderType == "07" || (data.OrderType == "02" && (data.OrderType1 == "代拟投诉书" || data.OrderType1 == "代拟质疑函"))) |
| | | { |
| | | 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 == "代拟投诉书" || data.OrderType1 == "代拟质疑函")) |
| | | { |
| | | 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); |
| | | } |
| | |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | resultEntity.Result = false; |
| | | |
| | | CooperOrderDTO dto = _cooperOrderService.Get(id); |
| | | if(dto.ShouliStatus != "1") |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "只有已下单状态的订单才能受理"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | CooperOrderDTO dto = _cooperOrderService.Get(id); |
| | | if (dto.ShouliStatus != "1") |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "只有已下单状态的订单才能受理"; |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | |
| | | |
| | | if (dto.OrderType == "01") |
| | | { |
| | | var shi = _fiBookService.Get(dto.OrderType1); |
| | | if (string.IsNullOrEmpty(shi.Id)) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "未找到该商品"; |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | var admGoodsManageDTOs = _admGoodsManageService.GetList().Where(x => x.ISBN == shi.BookNo).FirstOrDefault(); |
| | | |
| | | if (admGoodsManageDTOs == null) |
| | | { |
| | | |
| | | |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "没有找到该商品"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | } |
| | | else if (!admGoodsManageDTOs.GoodsLeft.HasValue) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "该商品没有库存"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | } |
| | | else if (admGoodsManageDTOs.GoodsLeft.Value < dto.OrderNum) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "该商品库存不足"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | } |
| | | var left = admGoodsManageDTOs.GoodsLeft - dto.OrderNum; |
| | | admGoodsManageDTOs.GoodsLeft = left; |
| | | |
| | | resultEntity = _admGoodsManageService.save(admGoodsManageDTOs); |
| | | |
| | | AdmGoodsRecordDTO dto1 = new AdmGoodsRecordDTO(); |
| | | dto1.GoodsId = admGoodsManageDTOs.Id; |
| | | dto1.GoodsNum = dto.OrderNum; |
| | | dto1.GoodsLeft = admGoodsManageDTOs.GoodsLeft; |
| | | dto1.RecordTypeId = "02"; |
| | | dto1.RecStatus = "A"; |
| | | dto1.Creater = curentuser.Id; |
| | | dto1.Createtime = DateTime.Now; |
| | | dto1.Modifier = curentuser.Id; |
| | | dto1.Modifytime = DateTime.Now; |
| | | dto1.OperationalMatters = "订单:" + dto.OrderNo + " 购买书籍"; |
| | | resultEntity = _admGoodsRecordService.save(dto1); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | dto.Shoulier = curentuser.Id; |
| | | dto.Shoulitime = DateTime.Now; |
| | | dto.ShouliStatus = "2"; |
| | | |
| | | resultEntity = _cooperOrderService.shouli(dto); |
| | | |
| | | scope.Complete(); |
| | | } |
| | | |
| | | dto.Shoulier = curentuser.Id; |
| | | dto.Shoulitime = DateTime.Now; |
| | | dto.ShouliStatus = "2"; |
| | | |
| | | resultEntity = _cooperOrderService.shouli(dto); |
| | | |
| | | return new JsonResult(resultEntity); |
| | | } |
| | |
| | | |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | resultEntity.Result = false; |
| | | |
| | | CooperOrderDTO dto = _cooperOrderService.Get(Chedanid); |
| | | if (dto.ShouliStatus != "2") |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "只有受理状态的订单才能撤单"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | CooperOrderDTO dto = _cooperOrderService.Get(Chedanid); |
| | | if (dto.ShouliStatus != "2") |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "只有受理状态的订单才能撤单"; |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | |
| | | |
| | | if (dto.OrderType == "01") |
| | | { |
| | | var shi = _fiBookService.Get(dto.OrderType1); |
| | | if (string.IsNullOrEmpty(shi.Id)) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "未找到该商品"; |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | var admGoodsManageDTOs = _admGoodsManageService.GetList().Where(x => x.ISBN == shi.BookNo).FirstOrDefault(); |
| | | |
| | | if (admGoodsManageDTOs == null) |
| | | { |
| | | |
| | | |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "没有找到该商品"; |
| | | return new JsonResult(resultEntity); |
| | | |
| | | } |
| | | |
| | | var left = admGoodsManageDTOs.GoodsLeft + dto.OrderNum; |
| | | admGoodsManageDTOs.GoodsLeft = left; |
| | | |
| | | resultEntity = _admGoodsManageService.save(admGoodsManageDTOs); |
| | | |
| | | AdmGoodsRecordDTO dto1 = new AdmGoodsRecordDTO(); |
| | | dto1.GoodsId = admGoodsManageDTOs.Id; |
| | | dto1.GoodsNum = dto.OrderNum; |
| | | dto1.GoodsLeft = admGoodsManageDTOs.GoodsLeft; |
| | | dto1.RecordTypeId = "01"; |
| | | dto1.RecStatus = "A"; |
| | | dto1.Creater = curentuser.Id; |
| | | dto1.Createtime = DateTime.Now; |
| | | dto1.Modifier = curentuser.Id; |
| | | dto1.Modifytime = DateTime.Now; |
| | | dto1.OperationalMatters = "订单:" + dto.OrderNo + " 撤单"; |
| | | resultEntity = _admGoodsRecordService.save(dto1); |
| | | |
| | | } |
| | | |
| | | |
| | | dto.Chedaner = curentuser.Id; |
| | | dto.Chedantime = DateTime.Now; |
| | | dto.ChedanStatus = "A"; |
| | | dto.Chedan = Price; |
| | | dto.ShouliStatus = "0"; |
| | | |
| | | resultEntity = _cooperOrderService.chedan(dto); |
| | | scope.Complete(); |
| | | } |
| | | |
| | | |
| | | dto.Chedaner = curentuser.Id; |
| | | dto.Chedantime = DateTime.Now; |
| | | dto.ChedanStatus = "A"; |
| | | dto.Chedan = Price; |
| | | dto.ShouliStatus = "0"; |
| | | |
| | | resultEntity = _cooperOrderService.chedan(dto); |
| | | |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | [CheckLogin] |
| | |
| | | result = JsonConvert.SerializeObject(shi); |
| | | } |
| | | |
| | | if (OrderType == "08" || OrderType == "10") |
| | | if (OrderType == "08" || OrderType == "10" || OrderType == "11") |
| | | { |
| | | |
| | | result = "[]"; |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | if (result == "") |
| | | { |
| | | result = "[]"; |
| | | } |
| | | return result; |
| | | |
| | | } |