using Appointment.Entity; using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Appointment.Repository { public class BaseRepo : DbContext { /// /// 解释用户信息 /// /// /// public static ApiResult DECLoginInfo(string encode) { if (string.IsNullOrWhiteSpace(encode)) return ApiResult.Failed("操作失败,未获取到当前用户账号!"); var jsonStr = CryptoHelper.DES_Decode(encode); if (string.IsNullOrWhiteSpace(jsonStr)) return ApiResult.Failed("操作失败,当前用户信息不正确!"); LoginUserRes loginUserRes = JsonConvert.DeserializeObject(jsonStr); if (loginUserRes == null) return ApiResult.Failed("操作失败,未获取到当前用户账号!"); return ApiResult.Success(string.Empty, loginUserRes); } /// /// 格式转化 /// /// /// public List FormatApptSummaryReq(List _summarys) { if (_summarys == null || _summarys.Count == 0) return new List(); var apptIds = _summarys.Select(t => t.Id).ToList(); var apptMeetingsCache = Db.Queryable() .In(t => t.ApptId, apptIds).ToList(); var apptRoomsCache = Db.Queryable() .In(t => t.ApptId, apptIds).ToList(); var apptCateringsCache = Db.Queryable() .In(t => t.ApptId, apptIds).ToList(); var apptSpringsCache = Db.Queryable() .In(t => t.ApptId, apptIds).ToList(); var apptRemarksCache = Db.Queryable() .In(t => t.ApptId, apptIds).ToList(); foreach (var item in _summarys) { var apptMeetingList = apptMeetingsCache.Where(t => t.ApptId == item.Id).OrderBy(t => t.Id).ToList(); if (apptMeetingList.Count > 0) { item.ApptMeetingList = new List(); foreach (var _item in apptMeetingList) { var model = item.ApptMeetingList.Where(t => t.MeetingTime == _item.MeetingTime).FirstOrDefault(); if (model == null) { item.ApptMeetingList.Add(new ApptMeetingReq() { Id = _item.Id.Value, MeetingTime = _item.MeetingTime, //MeetingGroup = new int[] { _item.MeetingGroup }, MeetingRoom = _item.MeetingRoom, MeetingCode = _item.MeetingCode, MeetingRostrum = _item.MeetingRostrum, MeetingShape = _item.MeetingShape, MeetingNum = _item.MeetingNum, MeetingPrice = _item.MeetingPrice, MeetingTitle = _item.MeetingTitle, Remark = _item.Remark }); } else { List _arr = model.MeetingGroup.ToList(); //_arr.Add(_item.MeetingGroup); _arr.Sort(); model.MeetingGroup = _arr.ToArray(); } } } var apptRoomList = apptRoomsCache.Where(t => t.ApptId == item.Id).OrderBy(t => t.Id).ToList(); if (apptRoomList.Count > 0) { item.ApptRoomList = new List(); foreach (var _item in apptRoomList) { item.ApptRoomList.Add(new ApptRoomReq() { Id = _item.Id.Value, RoomIn = _item.RoomIn, RoomOut = _item.RoomOut, RoomGroup = _item.RoomGroup, RooomCode = _item.RoomCode, RoomNum = _item.RoomNum, RoomPrice = _item.RoomPrice, BreakfastNum = _item.BreakfastNum, LongDistance = _item.LongDistance, MinShop = _item.MinShop, RoomRemark = _item.RoomRemark }); } } var apptCateringList = apptCateringsCache.Where(t => t.ApptId == item.Id).OrderBy(t => t.Id).ToList(); if (apptCateringList.Count > 0) { item.ApptCateringList = new List(); foreach (var _item in apptCateringList) { var model = item.ApptCateringList.Where(t => t.CateringTime == _item.CateringTime).FirstOrDefault(); if (model == null) { item.ApptCateringList.Add(new ApptCateringReq() { Id = _item.Id.Value, CateringTime = _item.CateringTime, //CateringGroup = new int[] { _item.CateringGroup }, CateringRoom = _item.CateringRoom, CateringCode = _item.CateringCode, CateringType = _item.CateringType, CateringNum = _item.CateringNum, CateringPrice = _item.CateringPrice, CateringTable = _item.CateringTable, Wine = _item.Wine, Remark = _item.Remark }); } else { List _arr = model.CateringGroup.ToList(); //_arr.Add(_item.CateringGroup); _arr.Sort(); model.CateringGroup = _arr.ToArray(); } } } var apptSpringList = apptSpringsCache.Where(t => t.ApptId == item.Id).OrderBy(t => t.Id).ToList(); if (apptSpringList.Count > 0) { item.ApptSpringList = new List(); foreach (var _item in apptSpringList) { item.ApptSpringList.Add(new ApptSpringReq() { Id = _item.Id.Value, SpringTime = _item.SpringTime, PeopleNum = _item.PeopleNum, SpringMen = _item.SpringMen, SpringWomen = _item.SpringWomen, Consume = _item.Consume, SpringPrice = _item.SpringPrice, Remark = _item.Remark }); } } var ls = Db.Queryable() .Where(t => t.Class == EnumSysCodeClass.apptremark.ToString()) .OrderBy(t => t.Id, OrderByType.Asc) .Select(t => t.Descript1).ToList().Replace(); if (ls != null && ls.Count > 0) { item.Remarks = new List(); foreach (var _item in ls) { string info = string.Empty; var model = apptRemarksCache.Where(t => t.ApptId == item.Id && t.Title == _item).FirstOrDefault(); if (model != null) info = model.Info; item.Remarks.Add(new RemarkReq() { RemarkName = _item, RemarkContent = info, }); } } } return _summarys; } } }