using AutoMapper;
|
using Model.ModelDto.SysDto;
|
using System;
|
using System.Collections.Generic;
|
using System.Security.Cryptography;
|
using System.Text;
|
using System.Text.RegularExpressions;
|
using System.Threading.Tasks;
|
using SqlSugar;
|
using WMS.DAL;
|
using WMS.Entity.Context;
|
using WMS.Entity.SysEntity;
|
using WMS.IBLL.ISysServer;
|
using WMS.IDAL.ISysInterface;
|
using Utility;
|
using Microsoft.AspNetCore.Identity;
|
|
namespace WMS.BLL.SysServer
|
{
|
public class FunSettingServer : DbHelper<SysFunSetting>, IFunSettingServer
|
{
|
private static readonly SqlSugarScope Db = DataContext.Db;
|
|
/// <summary>
|
/// 依赖注入
|
/// </summary>
|
private readonly IFunSettingRepository _setting;
|
private readonly IMapper _mapper;
|
private readonly UserManager _userManager;
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="setting">功能设定</param>
|
/// <param name="mapper">automapper</param>
|
public FunSettingServer(IFunSettingRepository setting, IMapper mapper, UserManager userManager) : base(Db)
|
{
|
_setting = setting;//功能设定
|
_mapper = mapper;//automapper
|
_userManager = userManager;
|
}
|
|
|
/// <summary>
|
/// 获取功能设定信息列表
|
/// </summary>
|
/// <param name="FunSetName">功能名称</param>
|
/// <param name="IsEnable">开启状态</param>
|
/// <param name="GroupNo">组号</param>
|
/// <returns></returns>
|
public async Task<List<FunSettingDto>> GetFunSettingList(string FunSetName, string IsEnable, string GroupNo)
|
{
|
return await Db.Queryable<SysFunSetting>()
|
.LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
|
.WhereIF(!string.IsNullOrEmpty(FunSetName), a => a.FunSetName.Contains(FunSetName))
|
.WhereIF(!string.IsNullOrEmpty(GroupNo), a => a.GroupNo.Contains(GroupNo))
|
.WhereIF(!string.IsNullOrEmpty(IsEnable), a => a.IsEnable == IsEnable)
|
.Where(a => a.IsDel == "0")
|
.Select<FunSettingDto>((a, b) => new FunSettingDto() { CreateName = b.RealName }, true)
|
.ToListAsync();
|
}
|
|
/// <summary>
|
/// 根据id查询功能设定信息
|
/// </summary>
|
/// <param name="id">功能id</param>
|
/// <returns></returns>
|
public async Task<SysFunSetting> GetFunSettingById(int id)
|
{
|
return await Db.Queryable<SysFunSetting>().FirstAsync(s => s.Id == id);
|
}
|
|
/// <summary>
|
/// 根据编号查询功能设定消息
|
/// </summary>
|
/// <param name="funSetNo">功能编号</param>
|
/// <returns></returns>
|
public async Task<SysFunSetting> GetFunSettingByNo(string funSetNo)
|
{
|
return await Db.Queryable<SysFunSetting>().FirstAsync(a => a.IsDel == "0" && a.FunSetNo == funSetNo);
|
}
|
|
///// <summary>
|
///// 根据编号查询功能设定信息
|
///// </summary>
|
///// <param name="FunSetNo">功能编号</param>
|
///// <returns></returns>
|
//public int GetFunSettingByNo(string FunSetNo)
|
//{
|
// List<SysFunSetting> funSettings = _setting.GetFunSettingByNo(FunSetNo);
|
// return funSettings.Count;
|
//}
|
|
/// <summary>
|
/// 新增功能信息
|
/// </summary>
|
/// <param name="settingdto">功能设定dto</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">捕获异常</exception>
|
public async Task<int> AddFunSettings(FunSettingDto settingdto)
|
{
|
//映射模型
|
SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
|
var setData = await Db.Queryable<SysFunSetting>().FirstAsync(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue == settingdto.SetValue);
|
if (setData != null)
|
{
|
throw Oops.Bah("同组内设定值重复");
|
}
|
setting.CreateTime = DateTime.Now;
|
setting.CreateUser = _userManager.UserId;
|
return await Db.Insertable(setting).ExecuteCommandAsync();
|
}
|
|
/// <summary>
|
/// 删除功能信息
|
/// </summary>
|
/// <param name="funSetting">功能设定实体模型</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">捕获异常</exception>
|
public async Task<int> DelFunSettings(SysFunSetting funSetting)
|
{
|
return await Db.Updateable<SysFunSetting>()
|
.Where(s => s.Id == funSetting.Id)
|
.SetColumns(s => s.IsDel == "1")
|
.SetColumns(s => s.UpdateTime == DateTime.Now)
|
.SetColumns(s => s.UpdateUser == _userManager.UserId)
|
.ExecuteCommandAsync();
|
}
|
|
/// <summary>
|
/// 编辑功能信息
|
/// </summary>
|
/// <param name="setting">功能设定实体</param>
|
/// <returns></returns>
|
/// <exception cref="Exception">捕获异常</exception>
|
public async Task<int> ExitFunSettings(FunSettingDto settingdto)
|
{
|
SysFunSetting setting = _mapper.Map<SysFunSetting>(settingdto);
|
|
var setData = await Db.Queryable<SysFunSetting>()
|
.FirstAsync(m => m.IsDel == "0" && m.GroupNo == settingdto.GroupNo && m.SetValue == settingdto.SetValue && m.Id != settingdto.Id);
|
if (setData != null)
|
{
|
throw Oops.Bah("同组内设定值重复");
|
}
|
setting.UpdateUser = _userManager.UserId;
|
setting.UpdateTime = DateTime.Now;
|
return await Db.Updateable(setting)
|
.UpdateColumns(s => new { s.FunSetName, s.SetValue, s.FunText, s.IsEnable, s.Ord, s.GroupNo, s.UpdateUser, s.UpdateTime })
|
.ExecuteCommandAsync();
|
}
|
}
|
}
|