master分支合并到本地分支解决错误
This commit is contained in:
commit
0541f5d08d
281
langguanApi.xml
281
langguanApi.xml
|
|
@ -125,6 +125,16 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.DeviceController.GetListByDeviceType(System.String,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
按设备类型取设备列表 //1 voc,2 cems,3,tsp,4 video
|
||||
</summary>
|
||||
<param name="key">key</param>
|
||||
<param name="pageSize"></param>
|
||||
<param name="current"></param>
|
||||
<param name="deviceType"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.HJ212Controller.Get(System.String)">
|
||||
<summary>
|
||||
获取指定设备的历史数据
|
||||
|
|
@ -195,6 +205,52 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:langguanApi.Controllers.RoleController">
|
||||
<summary>
|
||||
角色 权限
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.Get(System.String)">
|
||||
<summary>
|
||||
获取角色详情
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.Add(langguanApi.Model.Entity.AddRoleDto)">
|
||||
<summary>
|
||||
添加角色
|
||||
</summary>
|
||||
<param name="role"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.Update(langguanApi.Model.Entity.UpdateRoleDto)">
|
||||
<summary>
|
||||
update角色
|
||||
</summary>
|
||||
<param name="role"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.Remove(System.Collections.Generic.IEnumerable{System.String})">
|
||||
<summary>
|
||||
删除角色
|
||||
</summary>
|
||||
<param name="ids"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.List(langguanApi.Model.reqpage)">
|
||||
<summary>
|
||||
获取角色列表
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Controllers.RoleController.GetAllrole">
|
||||
<summary>
|
||||
获取所有角色
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:langguanApi.Controllers.TransportController">
|
||||
<summary>
|
||||
清洁运输
|
||||
|
|
@ -326,6 +382,21 @@
|
|||
</summary>
|
||||
<param name="services"></param>
|
||||
</member>
|
||||
<member name="T:langguanApi.Extensions.WhereIfExtension">
|
||||
<summary>
|
||||
linq extension
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:langguanApi.Extensions.WhereIfExtension.AndAlso``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.BinaryExpression})">
|
||||
<summary>
|
||||
合并表达式以及参数
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="expr1"></param>
|
||||
<param name="expr2"></param>
|
||||
<param name="func"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="F:langguanApi.Middleware.CustomerExceptionFilter._logger">
|
||||
<summary>
|
||||
日志
|
||||
|
|
@ -555,6 +626,11 @@
|
|||
设备类型,1 voc,2 cems,3,tsp,4 video
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Device.VideoUrl">
|
||||
<summary>
|
||||
视频流地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Dto.HJ212_2017">
|
||||
<summary>
|
||||
HJ212_2017
|
||||
|
|
@ -684,6 +760,91 @@
|
|||
国几排放量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.Menu">
|
||||
<summary>
|
||||
菜单实体类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Menu.Name">
|
||||
<summary>
|
||||
菜单名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Menu.Url">
|
||||
<summary>
|
||||
菜单URL
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Menu.Sort">
|
||||
<summary>
|
||||
排序
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Menu.ParentId">
|
||||
<summary>
|
||||
父菜单ID,一级菜单为null
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddMenuDto.Name">
|
||||
<summary>
|
||||
菜单名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddMenuDto.Url">
|
||||
<summary>
|
||||
菜单URL
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddMenuDto.Sort">
|
||||
<summary>
|
||||
排序
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddMenuDto.ParentId">
|
||||
<summary>
|
||||
父菜单ID,一级菜单为null
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Role.RoleName">
|
||||
<summary>
|
||||
角色名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.Role.RoleDescription">
|
||||
<summary>
|
||||
角色描述
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddRoleDto.RoleName">
|
||||
<summary>
|
||||
角色名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddRoleDto.RoleDescription">
|
||||
<summary>
|
||||
角色描述
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.UpdateRoleDto">
|
||||
<summary>
|
||||
更新角色DTO
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.UpdateRoleDto.RoleId">
|
||||
<summary>
|
||||
角色ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.AddRoleMenuDTO">
|
||||
<summary>
|
||||
DTO for adding role menu
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.UpdateRoleMenuDTO">
|
||||
<summary>
|
||||
DTO for updating role menu
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.UserEntity">
|
||||
<summary>
|
||||
用户实体
|
||||
|
|
@ -709,6 +870,46 @@
|
|||
邮箱
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.UserEntity.Phone">
|
||||
<summary>
|
||||
手机号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.AddDto">
|
||||
<summary>
|
||||
添加用户DTO
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddDto.Username">
|
||||
<summary>
|
||||
用户名
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddDto.Password">
|
||||
<summary>
|
||||
密码 md5加密
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddDto.roleId">
|
||||
<summary>
|
||||
角色id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.AddDto.Email">
|
||||
<summary>
|
||||
邮箱
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.Entity.UpdateDto">
|
||||
<summary>
|
||||
更新用户DTO
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:langguanApi.Model.Entity.UpdateDto.Id">
|
||||
<summary>
|
||||
用户id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:langguanApi.Model.FactorCode">
|
||||
<summary>
|
||||
污染物因子编码
|
||||
|
|
@ -1253,6 +1454,20 @@
|
|||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.BaseService`1.BatchRemoveAsync(System.Collections.Generic.IEnumerable{System.String})">
|
||||
<summary>
|
||||
批量删除
|
||||
</summary>
|
||||
<param name="ids"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.BaseService`1.BatchRemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
批量删除
|
||||
</summary>
|
||||
<param name="expression"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.BaseService`1.GetListWithExp(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
表达式取数据
|
||||
|
|
@ -1344,6 +1559,16 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.DeviceService.GetDeviceListByTypes(System.String,System.Int32,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
分页取设备
|
||||
</summary>
|
||||
<param name="key"></param>
|
||||
<param name="pageSize"></param>
|
||||
<param name="current"></param>
|
||||
<param name="deviceType"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.DeviceService.GetPage(langguanApi.Model.reqpage)">
|
||||
<summary>
|
||||
分页取数据
|
||||
|
|
@ -1574,6 +1799,62 @@
|
|||
<param name="ip"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleMenuServie.GetByRoleId(System.String)">
|
||||
<summary>
|
||||
根据角色ID获取角色菜单
|
||||
</summary>
|
||||
<param name="roleId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleMenuServie.AddRoleMenu(langguanApi.Model.Entity.AddRoleMenuDTO)">
|
||||
<summary>
|
||||
表中添加角色菜单
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleMenuServie.UpdateRoleMenu(langguanApi.Model.Entity.UpdateRoleMenuDTO)">
|
||||
<summary>
|
||||
更新角色菜单
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleService.Add(langguanApi.Model.Entity.AddRoleDto)">
|
||||
<summary>
|
||||
新增角色
|
||||
</summary>
|
||||
<param name="role"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleService.GetRoleAndMenu(System.String)">
|
||||
<summary>
|
||||
获取角色及菜单
|
||||
</summary>
|
||||
<param name="roleId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleService.Remove(System.Collections.Generic.IEnumerable{System.String})">
|
||||
<summary>
|
||||
删除角色
|
||||
</summary>
|
||||
<param name="ids"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleService.update(langguanApi.Model.Entity.UpdateRoleDto)">
|
||||
<summary>
|
||||
更新角色
|
||||
</summary>
|
||||
<param name="role"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.RoleService.GetPage(langguanApi.Model.reqpage)">
|
||||
<summary>
|
||||
分页取数据
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:langguanApi.Service.TransportService">
|
||||
<summary>
|
||||
TransportService 运输服务
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using langguanApi.Model;
|
||||
using Amazon.Runtime.Internal.Auth;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Dto;
|
||||
using langguanApi.Service;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
|
@ -80,8 +81,22 @@ namespace langguanApi.Controllers
|
|||
[HttpGet]
|
||||
public async Task<IActionResult> GetDeviceTypes()
|
||||
{
|
||||
var result=await _deviceService.GetDeviceTypes();
|
||||
var result = await _deviceService.GetDeviceTypes();
|
||||
return Ok(new ApiResult() { code = 0, data = result });
|
||||
}
|
||||
/// <summary>
|
||||
/// 按设备类型取设备列表 //1 voc,2 cems,3,tsp,4 video
|
||||
/// </summary>
|
||||
/// <param name="key">key</param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="current"></param>
|
||||
/// <param name="deviceType"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> GetListByDeviceType(string key="", int pageSize = 10, int current = 1, int deviceType = 1)
|
||||
{
|
||||
var result = await _deviceService.GetDeviceListByTypes(key, pageSize, current, deviceType);
|
||||
return Ok(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,96 @@
|
|||
using langguanApi.Model.Dto.SystemConfigurationDto;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Entity;
|
||||
using langguanApi.Model.Dto.SystemConfigurationDto;
|
||||
using langguanApi.Service;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace langguanApi.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色
|
||||
/// 角色 权限
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class RoleController : ControllerBase
|
||||
{
|
||||
private RoleService _roleService;
|
||||
public readonly RoleService _roleService;
|
||||
public RoleController(RoleService roleService)
|
||||
{
|
||||
_roleService = roleService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取角色详情
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("get")]
|
||||
public async Task<IActionResult> Get(string id)
|
||||
{
|
||||
var role = await _roleService.GetRoleAndMenu(id);
|
||||
return Ok(role);
|
||||
}
|
||||
/// <summary>
|
||||
/// 添加角色
|
||||
/// </summary>
|
||||
/// <param name="role"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("add")]
|
||||
public async Task<IActionResult> Add([FromBody] AddRoleDto role)
|
||||
{
|
||||
var result = await _roleService.Add(role);
|
||||
return Ok(result);
|
||||
}
|
||||
/// <summary>
|
||||
/// update角色
|
||||
/// </summary>
|
||||
/// <param name="role"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut("update")]
|
||||
public async Task<IActionResult> Update([FromBody] UpdateRoleDto role)
|
||||
{
|
||||
var result = await _roleService.update(role);
|
||||
return Ok(result);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除角色
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("remove")]
|
||||
public async Task<IActionResult> Remove(IEnumerable<string> ids)
|
||||
{
|
||||
var result = await _roleService.Remove(ids);
|
||||
return Ok(result);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取角色列表
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
public async Task<IActionResult> List([FromQuery] reqpage input)
|
||||
{
|
||||
var roles = await _roleService.GetPager(input);
|
||||
return Ok(roles);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取所有角色
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("all")]
|
||||
public async Task<IActionResult> GetAllrole()
|
||||
{
|
||||
var roles = await _roleService.GetAsync();
|
||||
return Ok(new ApiResult()
|
||||
{
|
||||
code = 0,
|
||||
data = roles.
|
||||
Select(s => new { s.Id, s.RoleName })
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
///新增角色
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
using System.Linq.Expressions;
|
||||
|
||||
namespace langguanApi.Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// linq extension
|
||||
/// </summary>
|
||||
public static class WhereIfExtension
|
||||
{
|
||||
public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, bool condition, Expression<Func<T, bool>> predicate)
|
||||
{
|
||||
return condition ? source.Where(predicate) : source;
|
||||
}
|
||||
public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, Expression<Func<T, int, bool>> predicate, bool condition)
|
||||
{
|
||||
return condition ? source.Where(predicate) : source;
|
||||
}
|
||||
public static IEnumerable<T> WhereIf<T>(this IEnumerable<T> source, bool condition, Func<T, bool> predicate)
|
||||
{
|
||||
return condition ? source.Where(predicate) : source;
|
||||
}
|
||||
public static Expression<Func<T, bool>> And<T>(
|
||||
this Expression<Func<T, bool>> first,
|
||||
Expression<Func<T, bool>> second)
|
||||
{
|
||||
return first.AndAlso<T>(second, Expression.AndAlso);
|
||||
}
|
||||
/// <summary>
|
||||
/// 合并表达式以及参数
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="expr1"></param>
|
||||
/// <param name="expr2"></param>
|
||||
/// <param name="func"></param>
|
||||
/// <returns></returns>
|
||||
private static Expression<Func<T, bool>> AndAlso<T>(
|
||||
this Expression<Func<T, bool>> expr1,
|
||||
Expression<Func<T, bool>> expr2,
|
||||
Func<Expression, Expression, BinaryExpression> func)
|
||||
{
|
||||
var parameter = Expression.Parameter(typeof(T));
|
||||
|
||||
var leftVisitor = new ReplaceExpressionVisitor(expr1.Parameters[0], parameter);
|
||||
var left = leftVisitor.Visit(expr1.Body);
|
||||
|
||||
var rightVisitor = new ReplaceExpressionVisitor(expr2.Parameters[0], parameter);
|
||||
var right = rightVisitor.Visit(expr2.Body);
|
||||
|
||||
return Expression.Lambda<Func<T, bool>>(
|
||||
func(left, right), parameter);
|
||||
|
||||
}
|
||||
private class ReplaceExpressionVisitor
|
||||
: ExpressionVisitor
|
||||
{
|
||||
private readonly Expression _oldValue;
|
||||
private readonly Expression _newValue;
|
||||
|
||||
public ReplaceExpressionVisitor(Expression oldValue, Expression newValue)
|
||||
{
|
||||
_oldValue = oldValue;
|
||||
_newValue = newValue;
|
||||
}
|
||||
public override Expression Visit(Expression node)
|
||||
{
|
||||
if (node == _oldValue)
|
||||
return _newValue;
|
||||
return base.Visit(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -21,15 +21,20 @@
|
|||
/// 设备类型,1 voc,2 cems,3,tsp,4 video
|
||||
/// </summary>
|
||||
public int DeviceType { get; set; }
|
||||
/// <summary>
|
||||
/// 视频流地址
|
||||
/// </summary>
|
||||
public string VideoUrl { get; set; }
|
||||
}
|
||||
public class DeviceAddDto
|
||||
{
|
||||
|
||||
public string deviceMN { get; set; }
|
||||
public string Ip { get; set; }
|
||||
public double lng { get; set; }
|
||||
public double lat { get; set; }
|
||||
public string NickName { get; set; }
|
||||
public int DeviceType { get; set; }
|
||||
public string VideoUrl { get; set; }
|
||||
}
|
||||
public class DeviceUpdateDto
|
||||
{
|
||||
|
|
@ -37,5 +42,6 @@
|
|||
public string NickName { get; set; }
|
||||
public string OrgId { get; set; }
|
||||
public int DeviceType { get; set; }
|
||||
public string VideoUrl { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,11 +18,12 @@
|
|||
/// <summary>
|
||||
/// 角色id
|
||||
/// </summary>
|
||||
public int roleId { get; set; }
|
||||
public string roleId { get; set; }
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
public string Phone { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 用户更新
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
namespace langguanApi.Model.Entity
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单实体类
|
||||
/// </summary>
|
||||
public class Menu : BaseModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单URL
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
/// <summary>
|
||||
/// 父菜单ID,一级菜单为null
|
||||
/// </summary>
|
||||
public string ParentId { get; set; }
|
||||
}
|
||||
public class AddMenuDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单URL
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
/// <summary>
|
||||
/// 父菜单ID,一级菜单为null
|
||||
/// </summary>
|
||||
public string ParentId { get; set; }
|
||||
}
|
||||
public class UpdateMenuDto : AddMenuDto
|
||||
{
|
||||
public string Id { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
namespace langguanApi.Model.Entity
|
||||
{
|
||||
public class Role : BaseModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string RoleName { get; set; }
|
||||
/// <summary>
|
||||
/// 角色描述
|
||||
/// </summary>
|
||||
public string RoleDescription { get; set; }
|
||||
}
|
||||
public class AddRoleDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string RoleName { get; set; }
|
||||
/// <summary>
|
||||
/// 角色描述
|
||||
/// </summary>
|
||||
public string RoleDescription { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新角色DTO
|
||||
/// </summary>
|
||||
public class UpdateRoleDto: AddRoleDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色ID
|
||||
/// </summary>
|
||||
public int RoleId { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
namespace langguanApi.Model.Entity
|
||||
{
|
||||
public class RoleMenu : BaseModel
|
||||
{
|
||||
public string RoleId { get; set; }
|
||||
public string MenuId { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// DTO for adding role menu
|
||||
/// </summary>
|
||||
public class AddRoleMenuDTO
|
||||
{
|
||||
public string RoleId { get; set; }
|
||||
public List<string> MenuIds { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// DTO for updating role menu
|
||||
/// </summary>
|
||||
public class UpdateRoleMenuDTO
|
||||
{
|
||||
public string RoleId { get; set; }
|
||||
public List<string> MenuIds { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -19,7 +19,32 @@ namespace langguanApi.Model.Entity
|
|||
/// <summary>
|
||||
/// 角色id
|
||||
/// </summary>
|
||||
[BsonRepresentation(BsonType.ObjectId)]
|
||||
public string roleId { get; set; }
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
public string Phone { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 添加用户DTO
|
||||
/// </summary>
|
||||
public class AddDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
public string Username { get; set; }
|
||||
/// <summary>
|
||||
/// 密码 md5加密
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
/// <summary>
|
||||
/// 角色id
|
||||
/// </summary>
|
||||
public string roleId { get; set; }
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
|
|
@ -66,4 +91,15 @@ namespace langguanApi.Model.Entity
|
|||
/// </summary>
|
||||
public byte IsEnable { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新用户DTO
|
||||
/// </summary>
|
||||
public class UpdateDto:AddDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户id
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,7 +136,25 @@ namespace langguanApi.Service
|
|||
{
|
||||
await _collection.DeleteOneAsync(T => T.Id == id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
public async Task BatchRemoveAsync(IEnumerable<string> ids)
|
||||
{
|
||||
var filter = Builders<T>.Filter.In(s => s.Id, ids);
|
||||
await _collection.DeleteManyAsync(filter);
|
||||
}
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="expression"></param>
|
||||
/// <returns></returns>
|
||||
public async Task BatchRemoveAsync(Expression<Func<T, bool>> expression)
|
||||
{
|
||||
await _collection.DeleteManyAsync(expression);
|
||||
}
|
||||
#endregion
|
||||
/// <summary>
|
||||
/// 表达式取数据
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Extensions;
|
||||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Dto;
|
||||
using Mapster;
|
||||
|
|
@ -25,12 +26,8 @@ namespace langguanApi.Service
|
|||
return new ApiResult { code = 1, msg = $"已经存在名称为:{input.NickName}" };
|
||||
}
|
||||
var entity = input.Adapt<Device>();
|
||||
if (entity != null)
|
||||
{
|
||||
await base.CreateAsync(entity);
|
||||
return new ApiResult { code = 0, msg = "" };
|
||||
}
|
||||
return new ApiResult { code = -1, msg = "" }; ;
|
||||
await base.CreateAsync(entity);
|
||||
return new ApiResult { code = 0, msg = "" };
|
||||
}
|
||||
/// <summary>
|
||||
/// 是否存在
|
||||
|
|
@ -103,7 +100,7 @@ namespace langguanApi.Service
|
|||
/// 获取设备类型
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public Task<Dictionary<int, string>> GetDeviceTypes()
|
||||
public Task<Dictionary<int, string>> GetDeviceTypes()
|
||||
{
|
||||
//1 voc,2 cems,3,tsp,4 video
|
||||
Dictionary<int, string> dic = new Dictionary<int, string>
|
||||
|
|
@ -115,19 +112,40 @@ namespace langguanApi.Service
|
|||
};
|
||||
return Task.FromResult(dic);
|
||||
}
|
||||
/// <summary>
|
||||
/// 分页取数据
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<object> GetPage(reqpage input)
|
||||
{
|
||||
Expression<Func<Device, bool>> exp = filter => filter.NickName.Contains(input.key) && filter.IsDelete == false;
|
||||
return await base.GetPager(new ReqPaing()
|
||||
/// <summary>
|
||||
/// 分页取设备
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="current"></param>
|
||||
/// <param name="deviceType"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> GetDeviceListByTypes(string key, int pageSize = 10, int current = 1, int deviceType = 1)
|
||||
{
|
||||
pageSize = input.pageSize,
|
||||
current = input.current
|
||||
}, exp);
|
||||
Expression<Func<Device, bool>> exp = filter => filter.IsDelete == false && filter.DeviceType == deviceType;
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
exp = exp.And(filter => filter.NickName.Contains(key));
|
||||
}
|
||||
return await base.GetPager(new ReqPaing()
|
||||
{
|
||||
pageSize = pageSize,
|
||||
current = current
|
||||
}, exp);
|
||||
}
|
||||
/// <summary>
|
||||
/// 分页取数据
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<object> GetPage(reqpage input)
|
||||
{
|
||||
Expression<Func<Device, bool>> exp = filter => filter.NickName.Contains(input.key) && filter.IsDelete == false;
|
||||
return await base.GetPager(new ReqPaing()
|
||||
{
|
||||
pageSize = input.pageSize,
|
||||
current = input.current
|
||||
}, exp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Entity;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Mvc.ApiExplorer;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace langguanApi.Service
|
||||
{
|
||||
[ServiceInjection(InjectionType.Transient)]
|
||||
public class MenuService : BaseService<Menu>
|
||||
{
|
||||
public MenuService(IConfiguration config) : base(config, nameof(Menu))
|
||||
{
|
||||
}
|
||||
public async Task<List<Menu>> GetMenusByParentId(string parentId)
|
||||
{
|
||||
Expression<Func<Menu, bool>> exp = filter => filter.IsDelete == false && filter.ParentId == parentId;
|
||||
return (await base.GetListWithExp(exp)).OrderBy(x => x.Sort).ToList();
|
||||
}
|
||||
public async Task<ApiResult> AddMenu(AddMenuDto menu)
|
||||
{
|
||||
var entity = menu.Adapt<Menu>();
|
||||
await base.CreateAsync(entity);
|
||||
return new ApiResult();
|
||||
}
|
||||
public async Task<ApiResult> UpdateMenu(UpdateMenuDto menu)
|
||||
{
|
||||
var entity = menu.Adapt<Menu>();
|
||||
await base.UpdateAsync(entity.Id, entity);
|
||||
return new ApiResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Entity;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace langguanApi.Service
|
||||
{
|
||||
[ServiceInjection(InjectionType.Transient)]
|
||||
public class RoleMenuServie : BaseService<RoleMenu>
|
||||
{
|
||||
public RoleMenuServie(IConfiguration config) : base(config, nameof(RoleMenu))
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据角色ID获取角色菜单
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<RoleMenu>> GetByRoleId(string roleId)
|
||||
{
|
||||
Expression<Func<RoleMenu, bool>> exp = filter => filter.IsDelete == false && filter.RoleId == roleId;
|
||||
return (await base.GetListWithExp(exp)).ToList();
|
||||
}
|
||||
/// <summary>
|
||||
/// 表中添加角色菜单
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> AddRoleMenu(AddRoleMenuDTO input)
|
||||
{
|
||||
foreach (var item in input.MenuIds)
|
||||
{
|
||||
await base.CreateAsync(new RoleMenu()
|
||||
{
|
||||
RoleId = input.RoleId,
|
||||
MenuId = item
|
||||
});
|
||||
}
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
public async Task<ApiResult> DeleteRoleMenu(string roleId)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新角色菜单
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> UpdateRoleMenu(UpdateRoleMenuDTO input)
|
||||
{
|
||||
await base.BatchRemoveAsync(filter => filter.RoleId == input.RoleId);
|
||||
foreach (var item in input.MenuIds)
|
||||
{
|
||||
await base.CreateAsync(new RoleMenu()
|
||||
{
|
||||
RoleId = input.RoleId,
|
||||
MenuId = item
|
||||
});
|
||||
}
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +1,103 @@
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Extensions;
|
||||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model.Dto.SystemConfigurationDto;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Entity;
|
||||
using langguanApi.Model.SystemConfigurationEntity;
|
||||
using StackExchange.Redis;
|
||||
using Mapster;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace langguanApi.Service
|
||||
{
|
||||
[ServiceInjection(InjectionType.Transient)]
|
||||
public class RoleService : BaseService<Model.SystemConfigurationEntity.UserRole>
|
||||
public class RoleService : BaseService<Role>
|
||||
{
|
||||
public RoleService(IConfiguration config) : base(config, nameof(Role))
|
||||
private readonly RoleMenuServie _roleMenuServie;
|
||||
public RoleService(IConfiguration config, RoleMenuServie roleMenuServie) : base(config, nameof(Role))
|
||||
{
|
||||
_roleMenuServie = roleMenuServie;
|
||||
}
|
||||
/// <summary>
|
||||
/// 新增角色
|
||||
/// </summary>
|
||||
/// <param name="role"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> Add(AddRoleDto role)
|
||||
{
|
||||
if (await base.Exist(filter => filter.RoleName == role.RoleName))
|
||||
{
|
||||
return new ApiResult() { code = 1, msg = "角色名称已存在" };
|
||||
}
|
||||
var entity = role.Adapt<Role>();
|
||||
await base.CreateAsync(entity);
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取角色及菜单
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> GetRoleAndMenu(string roleId)
|
||||
{
|
||||
var role = await base.GetAsync(roleId);
|
||||
if (role != null)
|
||||
{
|
||||
var menus = await _roleMenuServie.GetByRoleId(roleId);
|
||||
return new ApiResult() { code = 0, data = new { role, menus } };
|
||||
}
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除角色
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> Remove(IEnumerable<string> ids)
|
||||
{
|
||||
if (ids.Any())
|
||||
{
|
||||
foreach (var item in ids)
|
||||
{
|
||||
await base.RemoveAsync(item);
|
||||
}
|
||||
}
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新角色
|
||||
/// </summary>
|
||||
/// <param name="role"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult> update(UpdateRoleDto role)
|
||||
{
|
||||
var entity = role.Adapt<Role>();
|
||||
await base.UpdateAsync(entity.Id, entity);
|
||||
return new ApiResult() { code = 0 };
|
||||
}
|
||||
/// <summary>
|
||||
/// 分页取数据
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<object> GetPage(reqpage input)
|
||||
{
|
||||
Expression<Func<Role, bool>> exp = filter => filter.IsDelete == false;
|
||||
if (!string.IsNullOrEmpty(input.key))
|
||||
{
|
||||
exp = exp.And(filter => filter.RoleName.Contains(input.key));
|
||||
}
|
||||
return await base.GetPager(new ReqPaing()
|
||||
{
|
||||
pageSize = input.pageSize,
|
||||
current = input.current
|
||||
}, exp);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户是否存在
|
||||
/// </summary>
|
||||
|
|
@ -26,7 +109,6 @@ namespace langguanApi.Service
|
|||
Expression<Func<UserRole, bool>> exp = filter => filter.RoleName == entity.RoleName;
|
||||
return await base.Exist(exp);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 新加角色
|
||||
/// </summary>
|
||||
|
|
@ -57,7 +139,5 @@ namespace langguanApi.Service
|
|||
var list = (await base.GetListWithExp(exp)).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
Loading…
Reference in New Issue