using Infrastructure; using Microsoft.Extensions.Configuration; using NetTaste; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.BaseApp.SysGroupManager.Request; using OpenAuth.App.FormScheme.FormHelpers; using OpenAuth.App.Interface; using OpenAuth.App.Request; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using SqlSugar; using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OpenAuth.App.BaseApp.SysGroupManager { public class SysGroupApp : SqlSugarBaseApp { private readonly IConfiguration _configuration; private readonly ISqlSugarClient client; public SysGroupApp(ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ISqlSugarClient sqlSugarClient, IConfiguration configuration) : base(unitWork, repository, auth) { _configuration = configuration; this.client = sqlSugarClient; } /// /// 分页获取列表数据 /// /// /// /// /// public async Task>>> LoadGroupList(string keyword, int pageindex, int pagesize) { //定义且实例化分页数据 RefAsync totalCount = 0; //数据查询并返回 var info = await this.Repository.AsQueryable() .WhereIF(!string.IsNullOrEmpty(keyword), t => t.Name.Contains(keyword)) .OrderBy(t => t.Name) .ToPageListAsync(pageindex, pagesize, totalCount); return new Response>> { Result = new PageInfo> { Items = info, Total = totalCount } }; } /// /// 获取实体 /// /// Id /// public Task GetEntityById(string id) { return this.Repository.AsQueryable().FirstAsync(t => t.Id == id); } /// /// 保存(新增、修改) /// /// 主键值 /// 数据源实体 /// public async Task> SaveEntity(string id, SysGroup group) { var flag = false; //判断是更新还是添加 if (!string.IsNullOrEmpty(id)) { //判断是否名称重复 SysGroup entity = await this.Repository.GetFirstAsync(t =>t.Name==group.Name&& t.Id != group.Id); if (entity != null) { return new Response { Result = flag, Message = "分组名称已存在" }; } //更新数据 flag = await base.Repository.UpdateAsync(u => new SysGroup { Name = group.Name, GroupLeaderId = group.GroupLeaderId, GroupLeaderName = group.GroupLeaderName, Remark = group.Remark }, u => u.Id == group.Id); } else { //判断名称是否重复 SysGroup entity = await this.Repository.GetFirstAsync(t => t.Name == group.Name); if (entity != null) { return new Response { Result = flag, Message = "分组名称已存在" }; } //添加数据 group.Id = Guid.NewGuid().ToString(); group.CreateTime = DateTime.Now; flag = await this.Repository.InsertAsync(group); } return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } /// /// 删除数据源 /// /// 主键 public async Task> DeleteEntity(string id) { SysGroup entity = new SysGroup() { Id = id }; var flag = await this.Repository.DeleteAsync(entity); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } /// /// 为分组分配用户 /// /// /// public async Task> AssignGroupUser(GroupUserReq model) { using (var uwo = UnitWork.CreateContext()) { await uwo.SysGroupuser.DeleteAsync(a => a.GroupId == model.GroupId); await uwo.SysGroupuser.InsertRangeAsync(model.UserIds.Select(a => new SysGroupuser { GroupId = model.GroupId, UserId = a }).ToList()); var flag = uwo.Commit(); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } } }