diff --git a/OpenAuth.App/BaseApp/SysGroupManager/Request/GroupUserReq.cs b/OpenAuth.App/BaseApp/SysGroupManager/Request/GroupUserReq.cs new file mode 100644 index 0000000..a4ebec5 --- /dev/null +++ b/OpenAuth.App/BaseApp/SysGroupManager/Request/GroupUserReq.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.BaseApp.SysGroupManager.Request +{ + public class GroupUserReq + { + public string GroupId { get; set; } + public List UserIds { get; set; } + } +} diff --git a/OpenAuth.App/BaseApp/SysGroupManager/SysGroupApp.cs b/OpenAuth.App/BaseApp/SysGroupManager/SysGroupApp.cs new file mode 100644 index 0000000..e4bbac5 --- /dev/null +++ b/OpenAuth.App/BaseApp/SysGroupManager/SysGroupApp.cs @@ -0,0 +1,161 @@ +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" + }; + } + } + } +} diff --git a/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs b/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs index 33d5a60..b3a62f8 100644 --- a/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs +++ b/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs @@ -515,7 +515,7 @@ namespace OpenAuth.App { using (var uow = base.UnitWork.CreateContext()) { - foreach (var item in uow.Db.DbMaintenance.GetTableInfoList().Where(r => r.Name.ToLower().StartsWith("ins_"))) + foreach (var item in uow.Db.DbMaintenance.GetTableInfoList().Where(r => r.Name.ToLower().StartsWith("sys_group"))) { string entityName = item.Name.Substring(0, 1).ToUpper() + item.Name.Substring(1, 2).ToLower() + item.Name.Substring(4, 1).ToUpper() + item.Name.Substring(5).ToLower();/*实体名大写*/ //string entityName = "DroneCaseInfoSTHX"; @@ -525,7 +525,7 @@ namespace OpenAuth.App // db.MappingColumns.Add(col.DbColumnName.ToUpper() /*类的属性大写*/, col.DbColumnName, entityName); //} } - uow.Db.DbFirst.Where(r => r.ToLower().StartsWith("ins_")).IsCreateAttribute().CreateClassFile("E:\\数据中心系统\\codegit\\OpenAuth.Repository\\Domain", "OpenAuth.Repository.Domain"); + uow.Db.DbFirst.Where(r => r.ToLower().StartsWith("sys_group")).IsCreateAttribute().CreateClassFile("E:\\数据中心系统\\codegit\\OpenAuth.Repository\\Domain", "OpenAuth.Repository.Domain"); uow.Commit(); } return "更新实体成功"; diff --git a/OpenAuth.App/ServiceApp/InsTaskHallManager/InsTaskHallApp.cs b/OpenAuth.App/ServiceApp/InsTaskHallManager/InsTaskHallApp.cs index cbbf411..6d6eefb 100644 --- a/OpenAuth.App/ServiceApp/InsTaskHallManager/InsTaskHallApp.cs +++ b/OpenAuth.App/ServiceApp/InsTaskHallManager/InsTaskHallApp.cs @@ -76,7 +76,6 @@ namespace OpenAuth.App.ServiceApp.InsTaskHallManager return query; } - /// /// 最佳牛马排行 /// @@ -125,5 +124,34 @@ namespace OpenAuth.App.ServiceApp.InsTaskHallManager return query; } + /// + /// 在办任务 + /// + /// + public async Task> GetTaskingList(string flag) + { + DateTime begindate = DateTime.Now; + var query = await client.Queryable() + .Where(r => r.IsComplate == false) + .GroupBy(r => r.ReciveUserId) + .Select(r => new + { + count = SqlFunc.AggregateCount(r.Id), + userid = r.ReciveUserId + }) + .MergeTable() + .LeftJoin((r, u) => r.userid == u.Id.ToString()) + .OrderBy((r, u) => r.count) + .Select((r, u) => new + { + r.count, + r.userid, + u.Name, + u.HeadIcon + }) + .ToListAsync(); + + return query; + } } } diff --git a/OpenAuth.Repository/Domain/SysGroup.cs b/OpenAuth.Repository/Domain/SysGroup.cs new file mode 100644 index 0000000..3f433da --- /dev/null +++ b/OpenAuth.Repository/Domain/SysGroup.cs @@ -0,0 +1,62 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace OpenAuth.Repository.Domain +{ + /// + ///人员分组信息表 + /// + [SugarTable("sys_group")] + public partial class SysGroup + { + public SysGroup(){ + + + } + /// + /// Desc:主键 + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true)] + public string Id {get;set;} + + /// + /// Desc:分组名称 + /// Default: + /// Nullable:False + /// + public string Name {get;set;} + + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + public DateTime? CreateTime {get;set;} + + /// + /// Desc:组长id + /// Default: + /// Nullable:True + /// + public string GroupLeaderId {get;set;} + + /// + /// Desc:组长名称 + /// Default: + /// Nullable:True + /// + public string GroupLeaderName {get;set;} + + /// + /// Desc:备注 + /// Default: + /// Nullable:True + /// + public string Remark {get;set;} + + } +} diff --git a/OpenAuth.Repository/Domain/SysGroupuser.cs b/OpenAuth.Repository/Domain/SysGroupuser.cs new file mode 100644 index 0000000..349487a --- /dev/null +++ b/OpenAuth.Repository/Domain/SysGroupuser.cs @@ -0,0 +1,35 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace OpenAuth.Repository.Domain +{ + /// + /// + /// + [SugarTable("sys_groupuser")] + public partial class SysGroupuser + { + public SysGroupuser(){ + + + } + /// + /// Desc:分组id + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true)] + public string GroupId {get;set;} + + /// + /// Desc:用户id + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true)] + public string UserId {get;set;} + + } +} diff --git a/OpenAuth.Repository/SugarDbContext.cs b/OpenAuth.Repository/SugarDbContext.cs index 69b0741..7c0e6ef 100644 --- a/OpenAuth.Repository/SugarDbContext.cs +++ b/OpenAuth.Repository/SugarDbContext.cs @@ -31,6 +31,7 @@ namespace OpenAuth.Repository public SugarRepositiry SysCodeRuleSeed { get; set; } public SugarRepositiry DbCodeColumns { get; set; } public SugarRepositiry DataSource { get; set; } + public SugarRepositiry SysGroupuser { get; set; } public SugarRepositiry SysDataItemDetail { get; set; } diff --git a/OpenAuth.WebApi/Controllers/BaseControllers/SysGroupController.cs b/OpenAuth.WebApi/Controllers/BaseControllers/SysGroupController.cs new file mode 100644 index 0000000..bcf2b7d --- /dev/null +++ b/OpenAuth.WebApi/Controllers/BaseControllers/SysGroupController.cs @@ -0,0 +1,112 @@ +using Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using OpenAuth.App.BaseApp.SysGroupManager; +using OpenAuth.App.BaseApp.SysGroupManager.Request; +using OpenAuth.App.ServiceApp.InsTaskHallManager; +using OpenAuth.Repository.Domain; + +namespace OpenAuth.WebApi.Controllers.BaseControllers +{ + /// + /// 分组 + /// + [Route("api/[controller]/[action]")] + [ApiController] + public class SysGroupController : ControllerBase + { + private readonly SysGroupApp _app; + public SysGroupController(SysGroupApp app) + { + _app = app; + } + + + /// + /// 分页获取列表数据 + /// + /// 筛选条件 + /// 当前页 + /// 每页条数 + /// + [HttpGet] + public async Task>>> LoadGroupList(string keyword, int page = 1, int limit = 15) + { + return await _app.LoadGroupList(keyword, page, limit); + } + + /// + /// 获取单个分组信息 + /// + /// 主键 + /// + [HttpGet] + public async Task GetEntityById(string id) + { + return await _app.GetEntityById(id); + } + + /// + /// 新增分组 + /// + /// 主键值 + /// 数据源实体 + /// + [HttpPost] + public async Task> SaveEntity(string id, SysGroup group) + { + var result = new Response(); + try + { + result = await _app.SaveEntity(id, group); + + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + return result; + } + + /// + /// 删除分组 + /// + /// 主键 + [HttpPost] + public async Task> DeleteEntity(string id) + { + var result = new Response(); + try + { + result = await _app.DeleteEntity(id); + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + return result; + } + + /// + /// 给分组分配用户 + /// + /// 数据 + [HttpPost] + public async Task> AssignGroupUser(GroupUserReq model) + { + var result = new Response(); + try + { + result = await _app.AssignGroupUser(model); + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + return result; + } + } +}