在办任务接口编写

分组添加修改--将组长加到分组中间表中
FileMonitor
洁 任 2024-11-14 15:02:55 +08:00
parent c3f87fb1e7
commit b7efbe1072
4 changed files with 90 additions and 36 deletions

View File

@ -77,41 +77,63 @@ namespace OpenAuth.App.BaseApp.SysGroupManager
//判断是更新还是添加
if (!string.IsNullOrEmpty(id))
{
//判断是否名称重复
SysGroup entity = await this.Repository.GetFirstAsync(t =>t.Name==group.Name&& t.Id != group.Id);
if (entity != null)
using (var uwo = UnitWork.CreateContext())
{
return new Response<bool>
//判断是否名称重复
SysGroup entity = await this.Repository.GetFirstAsync(t => t.Name == group.Name && t.Id != group.Id);
if (entity != null)
{
Result = flag,
Message = "分组名称已存在"
};
return new Response<bool>
{
Result = flag,
Message = "分组名称已存在"
};
}
//更新数据
await uwo.SysGroup.UpdateAsync(group);
//将组长添加中间表
SysGroupuser gu = new SysGroupuser();
gu.GroupId = group.Id;
gu.UserId = group.GroupLeaderId;
var guser = client.Queryable<SysGroupuser>().Where(r => r.GroupId == gu.GroupId && r.UserId == gu.UserId).ToList();
if (guser.Count==0)
{
await uwo.SysGroupuser.InsertAsync(gu);
}
flag = uwo.Commit();
}
//更新数据
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)
using (var uwo = UnitWork.CreateContext())
{
return new Response<bool>
//判断名称是否重复
SysGroup entity = await this.Repository.GetFirstAsync(t => t.Name == group.Name);
if (entity != null)
{
Result = flag,
Message = "分组名称已存在"
};
return new Response<bool>
{
Result = flag,
Message = "分组名称已存在"
};
}
//添加数据
group.Id = Guid.NewGuid().ToString();
group.CreateTime = DateTime.Now;
await uwo.SysGroup.InsertAsync(group);
//将组长添加中间表
SysGroupuser gu = new SysGroupuser();
gu.GroupId = group.Id;
gu.UserId=group.GroupLeaderId;
var guser=client.Queryable<SysGroupuser>().Where(r=>r.GroupId==gu.GroupId&&r.UserId==gu.UserId).ToList();
if (guser.Count==0)
{
await uwo.SysGroupuser.InsertAsync(gu);
}
flag = uwo.Commit();
}
//添加数据
group.Id = Guid.NewGuid().ToString();
group.CreateTime = DateTime.Now;
flag = await this.Repository.InsertAsync(group);
}
return new Response<bool>
{

View File

@ -128,10 +128,17 @@ namespace OpenAuth.App.ServiceApp.InsTaskHallManager
/// 在办任务
/// </summary>
/// <returns></returns>
public async Task<List<dynamic>> GetTaskingList(string flag)
public async Task<List<dynamic>> GetTaskingList()
{
DateTime begindate = DateTime.Now;
var query = await client.Queryable<InsTaskgroup>()
//查询分组内的用户
List<string> userlist = new List<string>();
var groupuser = client.Queryable<SysGroupuser>().ToList();
if(groupuser.Count > 0)
{
userlist=groupuser.Select(r=>r.UserId).Distinct().ToList();
}
//根据在办任务数聚合
var query = client.Queryable<InsTaskgroup>()
.Where(r => r.IsComplate == false)
.GroupBy(r => r.ReciveUserId)
.Select(r => new
@ -139,19 +146,22 @@ namespace OpenAuth.App.ServiceApp.InsTaskHallManager
count = SqlFunc.AggregateCount(r.Id),
userid = r.ReciveUserId
})
.MergeTable()
.LeftJoin<SysUser>((r, u) => r.userid == u.Id.ToString())
.OrderBy((r, u) => r.count)
.Select<dynamic>((r, u) => new
.MergeTable();
//关联用户表查询数据
var list=await client.Queryable<SysUser>()
.Where(u=>userlist.Contains(u.Id.ToString()))
.LeftJoin(query ,(u,r) => r.userid == u.Id.ToString())
.OrderBy((u, r) => r.count)
.Select<dynamic>((u, r) => new
{
r.count,
r.userid,
count=r.count==null?0:r.count,
u.Id,
u.Name,
u.HeadIcon
})
.ToListAsync();
return query;
return list;
}
}
}

View File

@ -32,6 +32,7 @@ namespace OpenAuth.Repository
public SugarRepositiry<DbCodeColumns> DbCodeColumns { get; set; }
public SugarRepositiry<DataSource> DataSource { get; set; }
public SugarRepositiry<SysGroupuser> SysGroupuser { get; set; }
public SugarRepositiry<SysGroup> SysGroup { get; set; }
public SugarRepositiry<SysDataItemDetail> SysDataItemDetail { get; set; }

View File

@ -80,5 +80,26 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
}
return result;
}
/// <summary>
/// 在办任务
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Response<List<dynamic>>> GetTaskingList()
{
var result = new Response<List<dynamic>>();
try
{
result.Result = await _app.GetTaskingList();
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
}
}