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"];
dbPwdBox.Password = dbConfig["dbUserPwd"];
DBHelper.SetConnStr(dbConfig);
DBHelper.Init();
DBHelper.NewDB();
}
@ -105,7 +105,7 @@ namespace CeramicProjectTool
if (saveResult)
{
DBHelper.SetConnStr(dbConfig);
DBHelper.Init();
DBHelper.NewDB();
MessageBox.Show("保存成功!");
}
else

View File

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

View File

@ -76,7 +76,11 @@
</Grid>
<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.Columns>
<DataGridTextColumn Header="功能Id" Binding="{Binding Id}" IsReadOnly="True"/>
@ -90,7 +94,7 @@
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
<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>
</Grid>
</Grid>

View File

@ -42,18 +42,7 @@ namespace CeramicProjectTool.Pages
var datas = ((ListView)sender).ItemsSource as List<ModuleModel>;
var selectedIndex = ((ListView)sender).SelectedIndex;
var mkModel = datas?[selectedIndex == -1 ? 0 : selectedIndex];
if (mkModel != null)
{
configViewModel.SetSelectMKModel(mkModel);
var permissonList = await configViewModel.GetPermissons(mkModel.ModuleName);
if (permissonList != null)
{
permissonData.Dispatcher.Invoke(() =>
{
permissonData.ItemsSource = permissonList;
});
}
}
LoadModuleData(mkModel);
}
@ -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)
{
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_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(
JoinType.Left, rp.FeatureId == p.Id,
JoinType.Left, rp.RuleId == r.Id))

View File

@ -12,7 +12,7 @@ namespace CeramicProjectTool.Util
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 result = _db.Ado.GetInt(sql, new { userName, pwd });
var result = Db.Ado.GetInt(sql, new { userName, pwd });
if (result >= 1)
{
return true;
@ -25,45 +25,46 @@ namespace CeramicProjectTool.Util
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;
}
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;
}
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()
{
var result = await _db.Queryable<PermissonModel>().ToListAsync();
var result = await Db.Queryable<PermissonModel>().ToListAsync();
return result;
}
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;
}
public static async Task UpdatePermissons(List<PermissonModel> permissons)
{
var ids = permissons.Select(x => x.Id).ToList();
var db = Db;
try
{
_db.BeginTran();
db.BeginTran();
//await _db.Deleteable<PermissonModel>().Where(x => !ids.Contains(x.Id)).ExecuteCommandAsync();
await _db.Updateable(permissons).ExecuteCommandAsync();
_db.CommitTran();
await db.Updateable(permissons).ExecuteCommandAsync();
db.CommitTran();
}
catch (Exception)
{
_db.RollbackTran();
db.RollbackTran();
throw;
}
@ -72,7 +73,7 @@ namespace CeramicProjectTool.Util
public static async Task<List<RuleModel>> GetRules()
{
var result = await _db.Queryable<RuleModel>().ToListAsync();
var result = await Db.Queryable<RuleModel>().ToListAsync();
return result;
}
}

View File

@ -9,22 +9,18 @@ namespace CeramicProjectTool.Util
{
public static partial class DBHelper
{
private static SqlSugar.SqlSugarClient _db;
private static SqlSugar.SqlSugarClient? _db;
public static SqlSugar.SqlSugarClient Db
{
get
{
if (_db == null)
{
Init();
}
NewDB();
return _db;
}
}
public static bool isInit = false;
public static void Init()
{
if (_db == null)
public static void NewDB()
{
_db = new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig()
{
@ -35,7 +31,6 @@ namespace CeramicProjectTool.Util
});
isInit = true;
}
}
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);
}
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;
}
}
}
}