189 lines
8.5 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|