using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using zhengcaioa.Models; namespace Services { public class OrderBanciOrderService: IOrderBanciOrderService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public OrderBanciOrderService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(OrderBanciOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); dto.Id = entity.Id; if (string.IsNullOrWhiteSpace(dto.OrderId)) { entity.OrderId = dto.Id; } _context.OrderBanciOrders.Add(entity); if (!string.IsNullOrEmpty(dto.SeatID)) { var seatids = dto.SeatID.Trim(',').Split(','); foreach (var seatid in seatids) { var orderBanciZuowei = _context.OrderBanciZuoweis.Where(x => x.RecStatus == "A" && x.BanciId == dto.BanciId && x.ZuoweiId == seatid).FirstOrDefault(); if (orderBanciZuowei != null) { orderBanciZuowei.Status = "1"; orderBanciZuowei.Modifier = dto.Creater; orderBanciZuowei.Modifytime = dto.Createtime; } } } } else { var updateproject = _context.OrderBanciOrders.Find(entity.Id); updateproject.Baomingtime = entity.Baomingtime; updateproject.BanciId = entity.BanciId; updateproject.Peixunbanci = entity.Peixunbanci; updateproject.KechengleixingId = entity.KechengleixingId; updateproject.Kechengleixing = entity.Kechengleixing; updateproject.PersonId = entity.PersonId; updateproject.Xingming = entity.Xingming; updateproject.Lianxidianhua = entity.Lianxidianhua; updateproject.Xuefei = entity.Xuefei; updateproject.Baomingrenshu = entity.Baomingrenshu; updateproject.RecStatus = entity.RecStatus; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; updateproject.Shenfenzheng = entity.Shenfenzheng; updateproject.Jifen = entity.Jifen; updateproject.OrderId = entity.OrderId; updateproject.SeatID = entity.SeatID; updateproject.SeatName = entity.SeatName; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public OrderBanciOrderDTO Get(string id) { var entity = _context.OrderBanciOrders.Find(id); if (entity.RecStatus != "A") { entity = new OrderBanciOrder(); } var result = _mapper.Map(entity); return result; } public ResultDataEntity SearchByPaging(OrderBanciOrderDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); //var listCode = (from a in _context.SysCodeDtls // join b in _context.SysCodes // on a.CodeId equals b.Id // where a.RecStatus == "A" // && b.RecStatus == "A" // select new CodeDataEntity() // { // CodeId = b.Id, // CodeTable = b.CodeTable, // CodeField = b.CodeField, // CodeSn = a.CodeSn, // Comments = a.Comments, // Contents = a.Contents, // RecStatus = a.RecStatus, // Sort = a.Sort // } //); ///OrderBanciOrders /// DateTime Baomingtimestart = DateTime.Now; DateTime Baomingtimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.Baomingtime)) { string[] Baomingtimes = searchEntity.Baomingtime.Split("|"); DateTime.TryParse(Baomingtimes[0], out Baomingtimestart); DateTime.TryParse(Baomingtimes[1], out Baomingtimeend); Baomingtimeend = Baomingtimeend.AddDays(1); } var query = (from a in _context.OrderBanciOrders where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Baomingtime) || (a.Baomingtime >= Baomingtimestart && a.Baomingtime <= Baomingtimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Peixunbanci) || a.Peixunbanci.Contains(searchEntity.Peixunbanci.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Kechengleixing) || a.KechengleixingId == searchEntity.Kechengleixing.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Xingming) || a.Xingming.Contains(searchEntity.Xingming.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Lianxidianhua) || a.Lianxidianhua.Contains(searchEntity.Lianxidianhua.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.BanciId) || a.BanciId == searchEntity.BanciId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Quyu) || a.Shenfenzheng.Contains(searchEntity.Quyu.Trim())) && ((searchEntity.Kechengleixings==null|| searchEntity.Kechengleixings.Length == 0) || searchEntity.Kechengleixings.Split(new char[] { ',' }).Contains(a.KechengleixingId)) select new OrderBanciOrderDTO { Id = a.Id, Baomingtime = a.Baomingtime, BaomingtimeName = a.Baomingtime.ToString("yyyy-MM-dd HH:mm"), BanciId = a.BanciId, Peixunbanci = a.Peixunbanci, KechengleixingId = a.KechengleixingId, Kechengleixing = a.Kechengleixing, PersonId = a.PersonId, Xingming = a.Xingming, Lianxidianhua = a.Lianxidianhua, Xuefei = a.Xuefei??0, Baomingrenshu = a.Baomingrenshu??0, Jine = a.Jine??0, Jifen = a.Jifen ?? 0, SeatID = a.SeatID, SeatName = a.SeatName, Creater = a.Creater, Createtime = a.Createtime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, Shenfenzheng = a.Shenfenzheng, } ).OrderByDescending(x => x.Baomingtime).ThenByDescending(x=>x.Modifytime).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); data.Heji1 = Math.Round(query.Sum(x => x.Xuefei) ?? 0, 2); data.Heji2 = Math.Round(new decimal(query.Sum(x => x.Baomingrenshu) ?? 0), 2); var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); data.DangyeHeji1 = Math.Round(lianlist.Sum(x => x.Xuefei) ?? 0, 2); data.DangyeHeji2 = Math.Round(new decimal(lianlist.Sum(x => x.Baomingrenshu) ?? 0), 2); data.LoadData(searchEntity, lianlist); return data; } /// /// 修改主表状态 /// /// 主id /// 用户 /// public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.OrderBanciOrders.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } /// /// 获取所有有效角色 /// /// public List GetList(string[] id) { List result = new List(); if (id != null) { var listRole = _context.OrderBanciOrders.Where(r => r.RecStatus == "A" && id.Contains(r.Id)).ToList(); result = _mapper.Map>(listRole); } return result; } /// /// 修改主表状态 /// /// 主id /// 用户 /// public ResultEntity DeleteStatus(string OrderId) { ResultEntity result = new ResultEntity(); result.Result = true; if (string.IsNullOrEmpty(OrderId)) { result.Result = false; result.Message = "必须填写订单id"; } var model = _context.OrderBanciOrders.Where(x=>x.OrderId == OrderId).FirstOrDefault(); if (model != null) { model.RecStatus = "D"; model.Modifier = "1"; model.Modifytime = DateTime.Now; if (!string.IsNullOrEmpty(model.SeatID)) { var orderBanciZuowei = _context.OrderBanciZuoweis.Where(x => x.RecStatus == "A" && x.BanciId == model.BanciId && x.ZuoweiId == model.SeatID).FirstOrDefault(); if (orderBanciZuowei != null) { orderBanciZuowei.Status = "0"; orderBanciZuowei.Modifier = model.Modifier; orderBanciZuowei.Modifytime = model.Modifytime; } } _context.SaveChanges(); } return result; } } }