123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- using Hotline.Caching.Interfaces;
- using Hotline.Caching.Services;
- using Hotline.CallCenter.Manage;
- using Hotline.Permissions;
- using Hotline.Repository.SqlSugar.Extensions;
- using Hotline.Settings;
- using Hotline.Settings.TimeLimits;
- using Hotline.Share.Dtos;
- using Hotline.Share.Dtos.Order;
- using Hotline.Share.Requests;
- using MapsterMapper;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using MongoDB.Bson;
- using MongoDB.Driver;
- using XF.Domain.Exceptions;
- using XF.Domain.Repository;
- namespace Hotline.Api.Controllers
- {
- /// <summary>
- /// 系统参数相关接口
- /// </summary>
- public class SettingController : BaseController
- {
- private readonly IVoiceFileDomainService _voiceFileDomainService;
- private readonly IRepository<SystemSetting> _systemSettingsRepository;
- private readonly ISystemSettingCacheManager _systemSettingCacheManager;
- private readonly IDaySettingRepository _daysettingRepository;
- private readonly IMapper _mapper;
- public SettingController(IVoiceFileDomainService voiceFileDomainService, IRepository<SystemSetting> systemSettingsRepository, ISystemSettingCacheManager systemSettingCacheManager,IDaySettingRepository daySettingRepository, IMapper mapper)
- {
- _voiceFileDomainService = voiceFileDomainService;
- _systemSettingsRepository = systemSettingsRepository;
- _systemSettingCacheManager = systemSettingCacheManager;
- _daysettingRepository = daySettingRepository;
- _mapper = mapper;
- }
- /// <summary>
- /// 查询语音文件
- /// </summary>
- /// <returns></returns>
- [Permission(EPermission.VoiceQueryList)]
- [HttpGet("voicequerylist")]
- public async Task<List<string>> VoiceQueryList()
- {
- return await _voiceFileDomainService.VoiceQueryListAsync(HttpContext.RequestAborted);
- }
- /// <summary>
- /// 删除语音文件
- /// </summary>
- /// <param name="voiceFileName"></param>
- /// <returns></returns>
- [Permission(EPermission.RemoveVoiceFile)]
- [HttpPost("removevoicefile")]
- public async Task RemoveVoiceFile(string voiceFileName)
- {
- await _voiceFileDomainService.RemoveVoiceFileAsync(new RemoveVoiceFileRequest(voiceFileName), HttpContext.RequestAborted);
- }
- #region 系统参数
- /// <summary>
- /// 获取系统参数列表
- /// </summary>
- /// <returns></returns>
- [Permission(EPermission.GetSysSettingsAsync)]
- [HttpGet("getsyssettings")]
- public async Task<PagedDto<SystemSetting>> GetSysSettingsAsync([FromQuery]SettingsQueryDto dto)
- {
- //return await _systemSettingsRepository.QueryAsync(x => true);
- var (total,items) = await _systemSettingsRepository.Queryable()
- .Includes(d=>d.Creator)
- .WhereIF(!string.IsNullOrEmpty(dto.settingName), d => d.SettingName.Contains(dto.settingName))
- .WhereIF(!string.IsNullOrEmpty(dto.code),d=>d.Code.Contains(dto.code))
- .OrderBy(d => d.Sort)
- .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
- return new PagedDto<SystemSetting>(total, items);
- }
- /// <summary>
- /// 获取系统参数
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- [Permission(EPermission.GetSettingEntityAsync)]
- [HttpGet("getsetting-entity/{id}")]
- public async Task<SystemSetting?> GetSettingEntityAsync(string id)
- {
- return await _systemSettingsRepository.GetAsync(id, HttpContext.RequestAborted);
- }
- /// <summary>
- /// 通过code获取系统参数
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet("getsetting-code/{code}")]
- public async Task<SystemSetting?> GetSettingByCode(string code)
- {
- return _systemSettingCacheManager.GetSetting(code);
- }
- /// <summary>
- /// 新增系统参数
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [Permission(EPermission.AddSettingAsync)]
- [HttpPost("setting-add")]
- public async Task AddSettingAsync([FromBody]AddSettingDto dto)
- {
- var setting = _mapper.Map<SystemSetting>(dto);
- await _systemSettingsRepository.AddAsync(setting, HttpContext.RequestAborted);
- }
- /// <summary>
- /// 修改配置
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [Permission(EPermission.ModifySettings)]
- [HttpPost("modifysettings")]
- public async Task ModifySettingsAsync([FromBody]ModifySettingDto dto)
- {
- var model = await _systemSettingsRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
- if (model is null)
- throw UserFriendlyException.SameMessage("未知配置,请刷新界面");
- model = _mapper.Map<SystemSetting>(dto);
- _systemSettingCacheManager.DelSystemSetting(model.Code);
- await _systemSettingsRepository.UpdateAsync(model, HttpContext.RequestAborted);
- }
- #endregion
- #region 日期类型设置
- /// <summary>
- /// 获取月份的日期设置
- /// </summary>
- /// <param name="year"></param>
- /// <param name="month"></param>
- /// <returns></returns>
- [Permission(EPermission.DaySetings)]
- [HttpGet("getdaysettings-month/{year}/{month}")]
- public async Task<List<DaySetting>> GetDaySettingsByMonth(int year,int month)
- {
- return await _daysettingRepository.GetDaySettingsByMonth(year,month);
- }
- /// <summary>
- /// 设置日期
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>`
- [Permission(EPermission.SetDaySetting)]
- [HttpPost("setdaysettings")]
- public async Task SetDaySettings([FromBody]SetDaySettingsRequest request)
- {
- List<DaySetting> daysettings = new List<DaySetting>();
- foreach (var item in request.list)
- {
- daysettings.Add(new DaySetting() { Day = item, IsWorkDay = request.isWorkDay });
- }
- await _daysettingRepository.AddRangeAsync(daysettings);
- }
- #endregion
- }
- }
|