This commit is contained in:
Ling 2024-05-23 16:41:06 +08:00
parent 81f6ac9523
commit 8994cb0164
8 changed files with 114 additions and 46 deletions

View File

@ -33,7 +33,7 @@ namespace CeramicProjectTool
dbUserNameBox.Text = dbConfig["dbUserName"]; dbUserNameBox.Text = dbConfig["dbUserName"];
dbPwdBox.Password = dbConfig["dbUserPwd"]; dbPwdBox.Password = dbConfig["dbUserPwd"];
DBHelper.SetConnStr(dbConfig); DBHelper.SetConnStr(dbConfig);
DBHelper.Init(); DBHelper.NewDB();
} }
@ -105,7 +105,7 @@ namespace CeramicProjectTool
if (saveResult) if (saveResult)
{ {
DBHelper.SetConnStr(dbConfig); DBHelper.SetConnStr(dbConfig);
DBHelper.Init(); DBHelper.NewDB();
MessageBox.Show("保存成功!"); MessageBox.Show("保存成功!");
} }
else else

View File

@ -18,7 +18,7 @@ namespace CeramicProjectTool.Model
* dbo.nr_z_quanxian.gnid, * dbo.nr_z_quanxian.gnid,
* dbo.nr_z_yhjs.mingcheng*/ * dbo.nr_z_yhjs.mingcheng*/
//Id //Id
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)] [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; } public int Id { get; set; }
[SugarColumn(ColumnName = "mokuan")] [SugarColumn(ColumnName = "mokuan")]
public string ModuleName { get; set; } public string ModuleName { get; set; }

View File

@ -76,7 +76,11 @@
</Grid> </Grid>
<StackPanel Grid.Row="1" Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <StackPanel Grid.Row="1" Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Button Margin="10,0,0,10" Content="增加权限项" Height="40" Width="100"/> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Margin="10,0,0,10" Content="增加权限项" Height="40" Width="100" x:Name="addPermissonBtn" Click="addPermissonBtn_Click"/>
<Button Margin="10,0,0,10" Content="删除选中权限项" Height="40" Width="100" x:Name="delPermissonBtn" Click="delPermissonBtn_Click"/>
</StackPanel>
<DataGrid Margin="10,0,0,0" x:Name="permissonData" AutoGenerateColumns="False" IsReadOnly="False"> <DataGrid Margin="10,0,0,0" x:Name="permissonData" AutoGenerateColumns="False" IsReadOnly="False">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="功能Id" Binding="{Binding Id}" IsReadOnly="True"/> <DataGridTextColumn Header="功能Id" Binding="{Binding Id}" IsReadOnly="True"/>
@ -90,7 +94,7 @@
</StackPanel> </StackPanel>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
<Button x:Name="SaveBtn" Content="保存" Width="40" Margin="10" Click="SaveBtn_Click" /> <Button x:Name="SaveBtn" Content="保存" Width="40" Margin="10" Click="SaveBtn_Click" />
<Button x:Name="ResetBtn" Content="重置" Width="40" Margin="10" /> <Button x:Name="ResetBtn" Content="重置" Width="40" Margin="10" Click="ResetBtn_Click" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Grid> </Grid>

View File

@ -42,18 +42,7 @@ namespace CeramicProjectTool.Pages
var datas = ((ListView)sender).ItemsSource as List<ModuleModel>; var datas = ((ListView)sender).ItemsSource as List<ModuleModel>;
var selectedIndex = ((ListView)sender).SelectedIndex; var selectedIndex = ((ListView)sender).SelectedIndex;
var mkModel = datas?[selectedIndex == -1 ? 0 : selectedIndex]; var mkModel = datas?[selectedIndex == -1 ? 0 : selectedIndex];
if (mkModel != null) LoadModuleData(mkModel);
{
configViewModel.SetSelectMKModel(mkModel);
var permissonList = await configViewModel.GetPermissons(mkModel.ModuleName);
if (permissonList != null)
{
permissonData.Dispatcher.Invoke(() =>
{
permissonData.ItemsSource = permissonList;
});
}
}
} }
@ -70,6 +59,26 @@ namespace CeramicProjectTool.Pages
}); });
} }
private async void LoadModuleData(ModuleModel mkModel)
{
if (mkModel == null)
{
mkModel = configViewModel.SelectedModule;
}
if (mkModel != null)
{
configViewModel.SetSelectMKModel(mkModel);
var permissonList = await configViewModel.GetPermissons(mkModel.ModuleName);
if (permissonList != null)
{
permissonData.Dispatcher.Invoke(() =>
{
permissonData.ItemsSource = permissonList;
});
}
}
}
private async void SaveBtn_Click(object sender, RoutedEventArgs e) private async void SaveBtn_Click(object sender, RoutedEventArgs e)
{ {
var module = configViewModel.SelectedModule; var module = configViewModel.SelectedModule;
@ -87,6 +96,33 @@ namespace CeramicProjectTool.Pages
} }
private async void addPermissonBtn_Click(object sender, RoutedEventArgs e)
{
var addedPermissons = new List<PermissonModel>();
var permissonList = permissonData.ItemsSource as List<PermissonModel>;
addedPermissons = permissonList?.Where(i => i.Id == 0).ToList();
if (addedPermissons == null)
{
return;
}
await configViewModel.InsertPermissons(addedPermissons);
LoadModuleData(null);
}
private async void delPermissonBtn_Click(object sender, RoutedEventArgs e)
{
var selectedItems = permissonData.SelectedItems;
var permissonList = permissonData.ItemsSource as List<PermissonModel>;
var permissonIds = selectedItems.Cast<PermissonModel>().Select(x => x.Id).ToList();
await configViewModel.DeletePermissons(permissonIds);
LoadModuleData(null);
}
private void ResetBtn_Click(object sender, RoutedEventArgs e)
{
LoadModuleData(null);
}
} }
} }

View File

@ -23,7 +23,7 @@ namespace CeramicProjectTool.Util
left join nr_sys_gn b on a.gnid = b.id left join nr_sys_gn b on a.gnid = b.id
left join nr_z_yhjs c on a.jsid = c.id left join nr_z_yhjs c on a.jsid = c.id
*/ */
var result = await _db.Queryable<RulePermissonModel, PermissonModel, RuleModel>((rp, p, r) var result = await Db.Queryable<RulePermissonModel, PermissonModel, RuleModel>((rp, p, r)
=> new JoinQueryInfos( => new JoinQueryInfos(
JoinType.Left, rp.FeatureId == p.Id, JoinType.Left, rp.FeatureId == p.Id,
JoinType.Left, rp.RuleId == r.Id)) JoinType.Left, rp.RuleId == r.Id))

View File

@ -12,7 +12,7 @@ namespace CeramicProjectTool.Util
public static bool Login(string userName, string pwd) public static bool Login(string userName, string pwd)
{ {
var sql = $"select top 1 1 from nr_z_yhzh where zhanghao=@userName and mima=@pwd"; var sql = $"select top 1 1 from nr_z_yhzh where zhanghao=@userName and mima=@pwd";
var result = _db.Ado.GetInt(sql, new { userName, pwd }); var result = Db.Ado.GetInt(sql, new { userName, pwd });
if (result >= 1) if (result >= 1)
{ {
return true; return true;
@ -25,45 +25,46 @@ namespace CeramicProjectTool.Util
public static async Task<List<ModuleModel>> GetModuleList() public static async Task<List<ModuleModel>> GetModuleList()
{ {
var result = await _db.Queryable<ModuleModel>().ToListAsync(); var result = await Db.Queryable<ModuleModel>().OrderBy(mt => mt.ModuleName).ToListAsync();
return result; return result;
} }
public static async Task<ModuleModel> Getodule(int id) public static async Task<ModuleModel> Getodule(int id)
{ {
var result = await _db.Queryable<ModuleModel>().Where(i => i.Id == id).FirstAsync(); var result = await Db.Queryable<ModuleModel>().Where(i => i.Id == id).FirstAsync();
return result; return result;
} }
public static async Task UpdateModule(ModuleModel module) public static async Task UpdateModule(ModuleModel module)
{ {
await _db.Updateable<ModuleModel>(module).ExecuteCommandAsync(); await Db.Updateable<ModuleModel>(module).ExecuteCommandAsync();
} }
public static async Task<List<PermissonModel>> GetPermissons() public static async Task<List<PermissonModel>> GetPermissons()
{ {
var result = await _db.Queryable<PermissonModel>().ToListAsync(); var result = await Db.Queryable<PermissonModel>().ToListAsync();
return result; return result;
} }
public static async Task<List<PermissonModel>> GetPermissonsByModule(string moduleName) public static async Task<List<PermissonModel>> GetPermissonsByModule(string moduleName)
{ {
var result = await _db.Queryable<PermissonModel>().Where(x => x.ModuleName.Contains(moduleName)).ToListAsync(); var result = await Db.Queryable<PermissonModel>().Where(x => x.ModuleName.Contains(moduleName)).ToListAsync();
return result; return result;
} }
public static async Task UpdatePermissons(List<PermissonModel> permissons) public static async Task UpdatePermissons(List<PermissonModel> permissons)
{ {
var ids = permissons.Select(x => x.Id).ToList(); var ids = permissons.Select(x => x.Id).ToList();
var db = Db;
try try
{ {
_db.BeginTran(); db.BeginTran();
//await _db.Deleteable<PermissonModel>().Where(x => !ids.Contains(x.Id)).ExecuteCommandAsync(); //await _db.Deleteable<PermissonModel>().Where(x => !ids.Contains(x.Id)).ExecuteCommandAsync();
await _db.Updateable(permissons).ExecuteCommandAsync(); await db.Updateable(permissons).ExecuteCommandAsync();
_db.CommitTran(); db.CommitTran();
} }
catch (Exception) catch (Exception)
{ {
_db.RollbackTran(); db.RollbackTran();
throw; throw;
} }
@ -72,7 +73,7 @@ namespace CeramicProjectTool.Util
public static async Task<List<RuleModel>> GetRules() public static async Task<List<RuleModel>> GetRules()
{ {
var result = await _db.Queryable<RuleModel>().ToListAsync(); var result = await Db.Queryable<RuleModel>().ToListAsync();
return result; return result;
} }
} }

View File

@ -9,32 +9,27 @@ namespace CeramicProjectTool.Util
{ {
public static partial class DBHelper public static partial class DBHelper
{ {
private static SqlSugar.SqlSugarClient _db; private static SqlSugar.SqlSugarClient? _db;
public static SqlSugar.SqlSugarClient Db public static SqlSugar.SqlSugarClient Db
{ {
get get
{ {
if (_db == null) NewDB();
{
Init();
}
return _db; return _db;
} }
} }
public static bool isInit = false; public static bool isInit = false;
public static void Init() public static void NewDB()
{ {
if (_db == null) _db = new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig()
{ {
_db = new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig() ConnectionString = connStr,
{ DbType = SqlSugar.DbType.SqlServer,
ConnectionString = connStr, IsAutoCloseConnection = true,
DbType = SqlSugar.DbType.SqlServer, InitKeyType = SqlSugar.InitKeyType.Attribute
IsAutoCloseConnection = true, });
InitKeyType = SqlSugar.InitKeyType.Attribute isInit = true;
});
isInit = true;
}
} }
public static void SetConnStr(Dictionary<string, string> dbConfig) public static void SetConnStr(Dictionary<string, string> dbConfig)
@ -43,7 +38,7 @@ namespace CeramicProjectTool.Util
} }
public static string connStr = ""; private static string connStr = "";
} }
} }

View File

@ -74,5 +74,37 @@ namespace CeramicProjectTool.ViewModel
{ {
await DBHelper.UpdatePermissons(permissons); await DBHelper.UpdatePermissons(permissons);
} }
internal async Task InsertPermissons(List<PermissonModel> addedPermissons)
{
var _db = DBHelper.Db;
try
{
_db.Ado.BeginTran();
await _db.Insertable(addedPermissons).ExecuteCommandAsync();
_db.Ado.CommitTran();
}
catch (Exception)
{
_db.Ado.RollbackTran();
throw;
}
}
internal async Task DeletePermissons(List<int> permissonIds)
{
var _db = DBHelper.Db;
try
{
_db.Ado.BeginTran();
await _db.Deleteable<PermissonModel>().Where(x => permissonIds.Contains(x.Id)).ExecuteCommandAsync();
_db.Ado.CommitTran();
}
catch (Exception)
{
_db.Ado.RollbackTran();
throw;
}
}
} }
} }