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,13 +26,9 @@ 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 = "" }; ;
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 是否存在
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -116,6 +113,27 @@ namespace langguanApi.Service
 | 
			
		|||
            return Task.FromResult(dic);
 | 
			
		||||
        }
 | 
			
		||||
        /// <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)
 | 
			
		||||
        {
 | 
			
		||||
            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>
 | 
			
		||||
| 
						 | 
				
			
			@ -129,5 +147,5 @@ namespace langguanApi.Service
 | 
			
		|||
                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