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 _logger { get; } private readonly ITsysLicenseService _TsysLicenseService; /// /// 构造函数 /// /// /// public TsysLicenseController(ITsysLicenseService TsysLicenseService, ILogger logger) { _TsysLicenseService = TsysLicenseService; _logger = logger; } /// /// 通过ID获取许可证信息 /// /// /// [HttpGet("GetLicenseAsync/{id}")] public async Task GetLicenseAsync(Guid id) { if (Guid.Empty == id) { return new ApiResult(ReturnCode.GeneralError); } try { var content = await _TsysLicenseService.GetByIdAsync(id); return new ApiResult(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 获取所有许可证 /// /// [HttpGet("GetLicensesAsync")] public async Task GetLicensesAsync() { try { var contentList = await _TsysLicenseService.GetAllAsync(); return new ApiResult>(contentList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 根据登录用户组织架构类型获取许可证,管理公司获取所有,其他获取自己的许可证 /// /// [HttpGet("GetAllByOrgTypeAsync")] public async Task GetAllByOrgTypeAsync() { try { var contentList = await _TsysLicenseService.GetAllByOrgTypeAsync(); return new ApiResult>(contentList); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 获取所有许可证类型 /// /// [HttpGet("GetAllLicensesTypeAsync/{name=}")] public async Task GetAllLicensesTypeAsync(string name) { try { var contentList = await _TsysLicenseService.GetALLLicenseType(); if (string.IsNullOrWhiteSpace(name)) return new ApiResult>(contentList); else return new ApiResult>(contentList.Where(x => x.C_Name.Contains(name))); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 通过许可证类型code获取对应的权限 /// /// [HttpGet("GetLicensePrivByType/{typeCode}")] public async Task GetLicensePrivByType(string typeCode) { if (string.IsNullOrEmpty(typeCode)) { return new ApiResult(ReturnCode.ArgsError); } try { var content = await _TsysLicenseService.GetLicensePrivByType(typeCode); return new ApiResult(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 创建许可证类型code对应的权限,更新也用此接口 /// /// /// /// [HttpPost("CreateLicensePrivByType/{typeCode}")] public async Task CreateLicensePrivByType(string typeCode,IEnumerable 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); } } /// /// 获取选择的权限 /// /// [HttpGet("GetLicensePrivBy")] public async Task GetLicensePrivBy() { try { var content = await _TsysLicenseService.GetLicensePrivByType(null); return new ApiResult(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 通过License类型ID取相关权限,返回非树状数据结构 /// /// /// [HttpGet("GetLicensePrivsByTypeIdAsync")] public async Task GetLicensePrivsByTypeIdAsync(string licenseTypeId) { if (string.IsNullOrEmpty(licenseTypeId)) { return new ApiResult(ReturnCode.ArgsError); } try { var content = await _TsysLicenseService.GetLicensePrivsByTypeIdAsync(licenseTypeId); return new ApiResult>(content); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 通过许可证名称条件查询 /// /// /// [HttpPost("GetLicensesByAsync")] public async Task GetLicensesByAsync(TsysLicenseSearchModel searchModel) { if (searchModel == null) { return new ApiResult(ReturnCode.ArgsError); } //searchModel.IsPagination = false; try { var contentList = await _TsysLicenseService.GetConditionAsync(searchModel); //return new ApiResult>(contentList); return new ApiResult>(new PagesModel(contentList?.ToList(), searchModel)); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 创建许可证 /// /// /// [HttpPost("CreateLicenseAsync")] public async Task 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); } /// /// 删除许可证 /// /// /// [HttpDelete("DeleteLicenseAsync/{id}")] public async Task 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); } /// /// 更新许可证 /// /// /// /// [HttpPut("UpdateLicenseAsync/{id}")] public async Task 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); } /// /// 创建许可证类型 /// /// /// [HttpPost("CreateLicenseTypeAsync")] public async Task 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); } /// /// 更新许可证类型 /// /// /// /// [HttpPut("UpdateLicenseTypeAsync/{id}")] public async Task 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); } } }