using Furion.DependencyInjection;
using GDZZ.Core.Entity;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace GDZZ.Core.Service;
///
/// 通知公告用户
///
public class SysNoticeUserService : ISysNoticeUserService, ITransient
{
private readonly SqlSugarRepository _sysNoticeUserRep; // 通知公告用户表仓储
public SysNoticeUserService(SqlSugarRepository sysNoticeUserRep)
{
_sysNoticeUserRep = sysNoticeUserRep;
}
///
/// 增加
///
///
///
///
///
public async Task Add(long noticeId, List noticeUserIdList, NoticeUserStatus noticeUserStatus)
{
List list = new List();
noticeUserIdList.ForEach(u =>
{
list.Add(new SysNoticeUser
{
NoticeId = noticeId,
UserId = u,
ReadStatus = noticeUserStatus
});
});
await _sysNoticeUserRep.InsertAsync(list);
}
///
/// 更新
///
///
///
///
///
public async Task Update(long noticeId, List noticeUserIdList, NoticeUserStatus noticeUserStatus)
{
await _sysNoticeUserRep.DeleteAsync(u => u.NoticeId == noticeId);
await Add(noticeId, noticeUserIdList, noticeUserStatus);
}
///
/// 获取通知公告用户列表
///
///
///
public async Task> GetNoticeUserListByNoticeId(long noticeId)
{
return await _sysNoticeUserRep.Where(u => u.NoticeId == noticeId).ToListAsync();
}
///
/// 设置通知公告读取状态
///
///
///
///
///
public async Task Read(long noticeId, long userId, NoticeUserStatus status)
{
await _sysNoticeUserRep.UpdateAsync(m => m.NoticeId == noticeId && m.UserId == userId, m => new SysNoticeUser
{
ReadStatus = status,
ReadTime = DateTime.Now
});
}
}