Files
AppointmentOA/api_v1/Appointment.Repository/BaseRepo.cs
2022-07-24 14:48:54 +08:00

189 lines
8.5 KiB
C#

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
{
/// <summary>
/// 解释用户信息
/// </summary>
/// <param name="encode"></param>
/// <returns></returns>
public static ApiResult<LoginUserRes> DECLoginInfo(string encode)
{
if (string.IsNullOrWhiteSpace(encode)) return ApiResult<LoginUserRes>.Failed("操作失败,未获取到当前用户账号!");
var jsonStr = CryptoHelper.DES_Decode(encode);
if (string.IsNullOrWhiteSpace(jsonStr)) return ApiResult<LoginUserRes>.Failed("操作失败,当前用户信息不正确!");
LoginUserRes loginUserRes = JsonConvert.DeserializeObject<LoginUserRes>(jsonStr);
if (loginUserRes == null) return ApiResult<LoginUserRes>.Failed("操作失败,未获取到当前用户账号!");
return ApiResult<LoginUserRes>.Success(string.Empty, loginUserRes);
}
/// <summary>
/// 格式转化
/// </summary>
/// <param name="_summarys"></param>
/// <returns></returns>
public List<ApptSummaryReq> FormatApptSummaryReq(List<ApptSummaryReq> _summarys)
{
if (_summarys == null || _summarys.Count == 0) return new List<ApptSummaryReq>();
var apptIds = _summarys.Select(t => t.Id).ToList();
var apptMeetingsCache = Db.Queryable<ApptMeeting>()
.In(t => t.ApptId, apptIds).ToList();
var apptRoomsCache = Db.Queryable<ApptRoom>()
.In(t => t.ApptId, apptIds).ToList();
var apptCateringsCache = Db.Queryable<ApptCatering>()
.In(t => t.ApptId, apptIds).ToList();
var apptSpringsCache = Db.Queryable<ApptSpring>()
.In(t => t.ApptId, apptIds).ToList();
var apptRemarksCache = Db.Queryable<ApptRemark>()
.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<ApptMeetingReq>();
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<int> _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<ApptRoomReq>();
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<ApptCateringReq>();
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<int> _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<ApptSpringReq>();
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<SysCode>()
.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<RemarkReq>();
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;
}
}
}