using Edu.Common.API;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.User;
using Edu.Model.Public;
using Edu.Model.ViewModel.User;
using Edu.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
namespace Edu.Module.User
{
///
/// 公告处理类
///
public class NoticeModule
{
///
/// 公告处理类对象
///
private readonly RB_NoticeRepository noticeRepository = new RB_NoticeRepository();
///
/// 公告基础
///
private readonly RB_Notice_BaseRepository notice_BaseRepository = new RB_Notice_BaseRepository();
///
/// 公告阅读
///
private readonly RB_Notice_ReadRepository notice_ReadRepository = new RB_Notice_ReadRepository();
///
/// 公告部门
///
private readonly RB_Notice_DeptRepository notice_DeptRepository = new RB_Notice_DeptRepository();
///
/// 部门
///
private readonly RB_DepartmentRepository departmentRepository = new RB_DepartmentRepository();
///
/// 账号
///
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
///
/// 获取公告配置信息
///
///
///
public object GetNoticeBaseInfo(int group_Id)
{
var model = notice_BaseRepository.GetList(new RB_Notice_Base_ViewModel() { Group_Id = group_Id }).FirstOrDefault();
return new
{
model?.Id,
model?.Image,
model?.From,
model?.NumberRule,
NumberRuleName = model?.NumberRule.ToName(),
model?.CopyPeople
};
}
///
/// 新增修改 公告配置信息
///
///
///
public string SetNoticeBaseInfo(RB_Notice_Base_ViewModel dmodel) {
bool flag;
if (dmodel.Id > 0)
{
Dictionary keyValues = new Dictionary() {
{ nameof(RB_Notice_Base.Image),dmodel.Image},
{ nameof(RB_Notice_Base.CopyPeople),dmodel.CopyPeople},
{ nameof(RB_Notice_Base.From),dmodel.From},
{ nameof(RB_Notice_Base.NumberRule),dmodel.NumberRule},
{ nameof(RB_Notice_Base.UpdateBy),dmodel.UpdateBy},
{ nameof(RB_Notice_Base.UpdateTime),DateTime.Now},
};
List whereHelpers = new List() {
new WhereHelper(){
FiledName=nameof(RB_Notice_Base.Id),
FiledValue=dmodel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = notice_BaseRepository.Update(keyValues, whereHelpers);
}
else {
var model = notice_BaseRepository.GetList(new RB_Notice_Base_ViewModel() { Group_Id = dmodel.Group_Id }).FirstOrDefault();
if (model == null)
{
flag = notice_BaseRepository.Insert(dmodel) > 0;
}
else {
return "已存在配置,无法新增";
}
}
return flag ? "" : "出错了,请联系管理员";
}
///
/// 获取公告分页列表
///
///
///
///
///
///
public List GetNoticePageList(int pageIndex, int pageSize, out long rowsCount, RB_Notice_ViewModel dmodel)
{
var list = noticeRepository.GetPageList(pageIndex, pageSize, out rowsCount, dmodel);
if (list.Any()) {
//查询阅读人数
string NoticeIds = string.Join(",", list.Select(x => x.Id));
var readList = notice_ReadRepository.GetNoticeReadNumList(NoticeIds);
//var dList = notice_DeptRepository.GetList(new RB_Notice_Dept() { }, NoticeIds);
foreach (var item in list) {
item.ReadNum = readList.Where(x => x.NoticeId == item.Id).FirstOrDefault()?.ReadNum ?? 0;
//var idList = dList.Where(x => x.NoticeId == item.Id).ToList();
//if (idList.Any())
//{
// item.To = string.Join(",", idList.Select(x => x.DeptId));
//}
//else
//{
// item.To = "-1";
//}
}
}
return list;
}
///
/// 获取我的公告分页列表
///
///
///
///
///
///
public List GetMyNoticePageList(int pageIndex, int pageSize, out long rowsCount, RB_Notice_ViewModel dmodel)
{
#region 我的上级部门
var dlist = departmentRepository.GetAllSuperiorDepartmentListRepository(dmodel.DeptId);
if (dlist.Any()) {
dmodel.To = string.Join(",", dlist.Select(x => x.DeptId));
}
#endregion
var list = noticeRepository.GetMyPageList(pageIndex, pageSize, out rowsCount, dmodel);
if (list.Any())
{
//查询阅读人数
string NoticeIds = string.Join(",", list.Select(x => x.Id));
var readList = notice_ReadRepository.GetNoticeReadNumList(NoticeIds);
//var dList = notice_DeptRepository.GetList(new RB_Notice_Dept() { }, NoticeIds);
foreach (var item in list)
{
item.ReadNum = readList.Where(x => x.NoticeId == item.Id).FirstOrDefault()?.ReadNum ?? 0;
//var idList = dList.Where(x => x.NoticeId == item.Id).ToList();
//if (idList.Any())
//{
// item.To = string.Join(",", idList.Select(x => x.DeptId));
//}
//else {
// item.To = "-1";
//}
}
}
return list;
}
///
/// 获取公告信息
///
///
///
public ApiResult GetNoticeInfo(int noticeId)
{
var model = noticeRepository.GetEntity(noticeId);
if (model == null) { return ApiResult.ParamIsNull(); }
var dList = notice_DeptRepository.GetList(new RB_Notice_Dept() { NoticeId = noticeId }, "");
model.To = "-1";
if (dList.Any()) {
model.To = string.Join(",", dList.Select(x => x.DeptId));
}
List