using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Ropin.Inspection.Api.Common; using Ropin.Inspection.Model; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Service; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Ropin.Inspection.Api.Controllers { [AllowAnonymous] public class TsysLicenseController : BaseController { public ILogger<TsysLicenseController> _logger { get; } private readonly ITsysLicenseService _TsysLicenseService; /// <summary> /// 构造函数 /// </summary> /// <param name="TsysLicenseService"></param> /// <param name="logger"></param> public TsysLicenseController(ITsysLicenseService TsysLicenseService, ILogger<TsysLicenseController> logger) { _TsysLicenseService = TsysLicenseService; _logger = logger; } /// <summary> /// 通过ID获取许可证信息 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("GetLicenseAsync/{id}")] public async Task<ApiResult> GetLicenseAsync(Guid id) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { var content = await _TsysLicenseService.GetByIdAsync(id); return new ApiResult<TsysLicenseViewModel>(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 获取所有许可证 /// </summary> /// <returns></returns> [HttpGet("GetLicensesAsync")] public async Task<ApiResult> GetLicensesAsync() { try { var contentList = await _TsysLicenseService.GetAllAsync(); return new ApiResult<IEnumerable<TsysLicenseViewModel>>(contentList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 根据登录用户组织架构类型获取许可证,管理公司获取所有,其他获取自己的许可证 /// </summary> /// <returns></returns> [HttpGet("GetAllByOrgTypeAsync")] public async Task<ApiResult> GetAllByOrgTypeAsync() { try { var contentList = await _TsysLicenseService.GetAllByOrgTypeAsync(); return new ApiResult<IEnumerable<TsysLicenseViewModel>>(contentList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 获取所有许可证类型 /// </summary> /// <returns></returns> [HttpGet("GetAllLicensesTypeAsync/{name=}")] public async Task<ApiResult> GetAllLicensesTypeAsync(string name) { try { var contentList = await _TsysLicenseService.GetALLLicenseType(); if (string.IsNullOrWhiteSpace(name)) return new ApiResult<IEnumerable<TsysLicenseTypeViewModel>>(contentList); else return new ApiResult<IEnumerable<TsysLicenseTypeViewModel>>(contentList.Where(x => x.C_Name.Contains(name))); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 通过许可证类型code获取对应的权限 /// </summary> /// <returns></returns> [HttpGet("GetLicensePrivByType/{typeCode}")] public async Task<ApiResult> GetLicensePrivByType(string typeCode) { if (string.IsNullOrEmpty(typeCode)) { return new ApiResult(ReturnCode.ArgsError); } try { var content = await _TsysLicenseService.GetLicensePrivByType(typeCode); return new ApiResult<TsysLicenseTypePrivViewModel>(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 创建许可证类型code对应的权限,更新也用此接口 /// </summary> /// <param name="typeCode"></param> /// <param name="privCodes"></param> /// <returns></returns> [HttpPost("CreateLicensePrivByType/{typeCode}")] public async Task<ApiResult> CreateLicensePrivByType(string typeCode,IEnumerable<string> privCodes) { if (string.IsNullOrEmpty(typeCode) || privCodes == null || !privCodes.Any()) { return new ApiResult(ReturnCode.ArgsError); } try { await _TsysLicenseService.CreateLicensePrivByType(typeCode, privCodes); return new ApiResult(ReturnCode.Success); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 获取选择的权限 /// </summary> /// <returns></returns> [HttpGet("GetLicensePrivBy")] public async Task<ApiResult> GetLicensePrivBy() { try { var content = await _TsysLicenseService.GetLicensePrivByType(null); return new ApiResult<TsysLicenseTypePrivViewModel>(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 通过License类型ID取相关权限,返回非树状数据结构 /// </summary> /// <param name="licenseTypeId"></param> /// <returns></returns> [HttpGet("GetLicensePrivsByTypeIdAsync")] public async Task<ApiResult> GetLicensePrivsByTypeIdAsync(string licenseTypeId) { if (string.IsNullOrEmpty(licenseTypeId)) { return new ApiResult(ReturnCode.ArgsError); } try { var content = await _TsysLicenseService.GetLicensePrivsByTypeIdAsync(licenseTypeId); return new ApiResult<IEnumerable<LicenseTypePrivViewModel>>(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 通过许可证名称条件查询 /// </summary> /// <param name="searchModel"></param> /// <returns></returns> [HttpPost("GetLicensesByAsync")] public async Task<ApiResult> GetLicensesByAsync(TsysLicenseSearchModel searchModel) { if (searchModel == null) { return new ApiResult(ReturnCode.ArgsError); } //searchModel.IsPagination = false; try { var contentList = await _TsysLicenseService.GetConditionAsync(searchModel); //return new ApiResult<IEnumerable<TsysLicenseViewModel>>(contentList); return new ApiResult<PagesModel<TsysLicenseViewModel>>(new PagesModel<TsysLicenseViewModel>(contentList?.ToList(), searchModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// <summary> /// 创建许可证 /// </summary> /// <param name="content"></param> /// <returns></returns> [HttpPost("CreateLicenseAsync")] public async Task<ApiResult> CreateLicenseAsync(TsysLicenseViewModel content) { if (content == null) { return new ApiResult(ReturnCode.ArgsError); } try { await _TsysLicenseService.CreateOneAsync(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 删除许可证 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpDelete("DeleteLicenseAsync/{id}")] public async Task<ApiResult> DeleteLicenseAsync(Guid id) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { await _TsysLicenseService.DeleteAsync(id); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 更新许可证 /// </summary> /// <param name="id"></param> /// <param name="updateModel"></param> /// <returns></returns> [HttpPut("UpdateLicenseAsync/{id}")] public async Task<ApiResult> UpdateLicenseAsync(Guid id, TsysLicenseUpdateModel updateModel) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { await _TsysLicenseService.UpdateAsync(id, updateModel); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 创建许可证类型 /// </summary> /// <param name="content"></param> /// <returns></returns> [HttpPost("CreateLicenseTypeAsync")] public async Task<ApiResult> CreateLicenseTypeAsync(TSYS_LicenseType content) { if (content == null) { return new ApiResult(ReturnCode.ArgsError); } try { await _TsysLicenseService.CreateLicenseTypeOneAsync(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } /// <summary> /// 更新许可证类型 /// </summary> /// <param name="id"></param> /// <param name="updateModel"></param> /// <returns></returns> [HttpPut("UpdateLicenseTypeAsync/{id}")] public async Task<ApiResult> UpdateLicenseTypeAsync(string id, TSYS_LicenseType updateModel) { if (string.IsNullOrEmpty(id)) { return new ApiResult(ReturnCode.GeneralError); } try { await _TsysLicenseService.UpdateLicenseTypeAsync(id, updateModel); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } return new ApiResult(ReturnCode.Success); } } }