| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using Abp;
- using Abp.Auditing;
- using Abp.Authorization;
- using Abp.Configuration;
- using Abp.Domain.Repositories;
- using Abp.Runtime.Caching;
- using Abp.Runtime.Session;
- using Abp.UI;
- using VberZero.AppService.Base;
- using VberZero.AppService.Settings.Dto;
- using VberZero.Auditing;
- using VberZero.Authorization.Users;
- using VberZero.BaseSystem;
- using VberZero.BaseSystem.Users;
- using VberZero.Session;
- // ReSharper disable All
- namespace VberZero.AppService.Settings;
- [AbpAuthorize, AuditLog("配置管理", "配置")]
- public class SettingAppServiceBase : VzAppServiceBase, ISettingAppServiceBase
- {
- private IRepository<SysSetting, long> _repository;
- private VzUserManager _userManager;
- public SettingAppServiceBase(ICacheManager cacheManager, IRepository<SysSetting, long> repository, ISettingManager settingManager, VzUserManager userManager)
- {
- CacheManager = cacheManager;
- _repository = repository;
- _userManager = userManager;
- SettingManager = settingManager;
- }
- /// <summary>
- /// 更改全局配置
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- /// <exception cref="UserFriendlyException"></exception>
- [AuditLog("修改配置")]
- public async Task ChangeGlobalSetting(ChangeSettingDto input)
- {
- var userType = AbpSession.GetUserType();
- var accountType = AbpSession.GetAccountType();
- if (userType != VzDefinition.UserType.Supper && accountType != VzDefinition.AccountType.System)
- {
- throw new UserFriendlyException("没有权限操作!");
- }
- var user = await _userManager.FindByIdAsync(AbpSession.GetUserId().ToString());
- if (user == null)
- {
- throw new UserFriendlyException("请重新登录到系统!");
- }
- if (await _userManager.CheckPasswordAsync(user, input.Password))
- {
- var value = await SettingManager.GetSettingValueForApplicationAsync(input.Name);
- if (input.Value != value)
- {
- await SettingManager.ChangeSettingForApplicationAsync(input.Name, input.Value);
- }
- }
- else
- {
- throw new UserFriendlyException("密码错误,请检查后再试!");
- }
- }
- /// <summary>
- /// 更改用户自己的配置
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [AuditLog("修改配置")]
- public async Task ChangeSetting(ChangeSettingDto input)
- {
- var user = await _userManager.FindByIdAsync(AbpSession.GetUserId().ToString());
- if (user == null)
- {
- throw new UserFriendlyException("请重新登录到系统!");
- }
- if (await _userManager.CheckPasswordAsync(user, input.Password))
- {
- var value = await SettingManager.GetSettingValueAsync(input.Name);
- if (input.Value != value)
- {
- await SettingManager.ChangeSettingForUserAsync(new UserIdentifier(user.TenantId, user.Id), input.Name, input.Value);
- }
- }
- else
- {
- throw new UserFriendlyException("密码错误,请检查后再试!");
- }
- }
- /// <summary>
- /// 查询配置
- /// </summary>
- /// <returns></returns>
- [DisableAuditing]
- public async Task<List<SettingDto>> GetSettings()
- {
- if (AbpSession.UserId == null)
- {
- return null;
- }
- var list = new List<SettingDto>();
- if (AbpSession.GetUserName() == User.AdminUserName || AbpSession.GetUserName() == User.SystemPassword)
- {
- var app_settings = (await SettingManager.GetAllSettingValuesForApplicationAsync()).Select(a => MapDto(a)).ToList();
- list.AddRange(app_settings);
- }
- else if (AbpSession.GetUserType() <= VzDefinition.UserType.System)
- {
- if (AbpSession.TenantId != null)
- {
- var tenant_setting = (await SettingManager.GetAllSettingValuesForTenantAsync((int)AbpSession.TenantId)).Select(a => MapDto(a)).ToList();
- list.AddRange(tenant_setting);
- }
- }
- else
- {
- var user_settings = (await SettingManager.GetAllSettingValuesForUserAsync(new UserIdentifier(AbpSession.TenantId, AbpSession.UserId.Value))).Select(a => MapDto(a)).ToList();
- list.AddRange(user_settings);
- }
- return list;
- }
- /// <summary>
- /// 修改配置
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public Task Update(SettingUpdateDto input)
- {
- return Task.CompletedTask;
- //if (!input.IsSelf)
- //{
- // if (AbpSession.GetUserName() == User.AdminUserName || AbpSession.GetUserName() == User.SystemPassword)
- // {
- // await SettingManager.ChangeSettingForApplicationAsync(input.Name, input.Value);
- // }
- // else if (AbpSession.GetUserType() <= VzDefinition.UserType.System)
- // {
- // await SettingManager.ChangeSettingForTenantAsync((int)AbpSession.TenantId, input.Name, input.Value);
- // }
- //}
- //else if (AbpSession.UserId.HasValue)
- //{
- // var value = await SettingManager.GetSettingValueAsync(input.Name);
- // if (input.Value != value)
- // {
- // await SettingManager.ChangeSettingForUserAsync(new UserIdentifier(AbpSession.TenantId, (long)AbpSession.UserId), input.Name, input.Value);
- // }
- //}
- }
- private SettingDto MapDto(ISettingValue setting)
- {
- return new SettingDto()
- {
- Name = setting.Name,
- Value = setting.Value,
- };
- }
- }
|