username@email.com
2021-11-30 8878b4d2c65329d454688d306e9d692c760bffe5
zhengcaioa/zhengcaioa/Controllers/BusinessOrder/CooperOrderController.cs
@@ -40,13 +40,21 @@
        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
            , IConfiguration configuration
            , IHttpClientFactory clientFactory)
            , IHttpClientFactory clientFactory
            , IAskService askService
            , IAdmGoodsRecordService admGoodsRecordService
            , IAdmGoodsManageService admGoodsManageService
            )
        {
            _logger = logger;
            _liaotianService = liaotianService;
@@ -60,6 +68,9 @@
            _fiMemberService = fiMemberService;
            _configuration = configuration;
            _clientFactory = clientFactory;
            _askService = askService;
            _admGoodsRecordService = admGoodsRecordService;
            _admGoodsManageService = admGoodsManageService;
        }
        [CheckLogin]
@@ -405,14 +416,71 @@
            {
                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");//法律依据
@@ -534,14 +602,49 @@
                    
                }
                data.ShouliStatus = "1";
                data.Modifier = curentuser.Id;
                data.Modifytime = DateTime.Now;
                resultEntity = _cooperOrderService.save(data);
            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;
                    }
                }
                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);
        }
@@ -576,19 +679,82 @@
            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);
        }
@@ -636,24 +802,69 @@
            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]
@@ -847,7 +1058,7 @@
                result = JsonConvert.SerializeObject(shi);
            }
            if (OrderType == "08" || OrderType == "10")
            if (OrderType == "08" || OrderType == "10" || OrderType == "11")
            {
               
                result = "[]";
@@ -906,7 +1117,10 @@
               
            }
            if (result == "")
            {
                result = "[]";
            }
            return result;
        }