using iWare.Wms.Core; using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; using Microsoft.EntityFrameworkCore; namespace iWare.Wms.Application.Notice { /// /// 通知公告用户 /// public class SysNoticeUserService : ISysNoticeUserService, ITransient { private readonly IRepository _sysNoticeUserRep; // 通知公告用户表仓储 public SysNoticeUserService(IRepository sysNoticeUserRep) { _sysNoticeUserRep = sysNoticeUserRep; } /// /// 增加 /// /// /// /// /// public async Task Add(long noticeId, List noticeUserIdList, NoticeUserStatus noticeUserStatus) { var noticeUserList = noticeUserIdList.Select(u => new SysNoticeUser { NoticeId = noticeId, UserId = u, ReadStatus = noticeUserStatus }); await _sysNoticeUserRep.InsertAsync(noticeUserList); } /// /// 更新 /// /// /// /// /// public async Task Update(long noticeId, List noticeUserIdList, NoticeUserStatus noticeUserStatus) { var noticeUsers = await _sysNoticeUserRep.Where(u => u.NoticeId == noticeId).ToListAsync(); await _sysNoticeUserRep.DeleteAsync(noticeUsers); 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) { var noticeUser = await _sysNoticeUserRep.FirstOrDefaultAsync(u => u.NoticeId == noticeId && u.UserId == userId); if (noticeUser != null) { noticeUser.ReadStatus = status; noticeUser.ReadTime = DateTimeOffset.Now; await noticeUser.UpdateAsync(); } } } }