Explorar el Código

20250721002 用户管理Bug和错误逻辑修改

向羽 孟 hace 9 meses
padre
commit
b03ad71345

+ 9 - 4
CCDCountWpf/WpfFrom/AddUserWindow.xaml.cs

@@ -37,13 +37,18 @@ namespace CCDCountWpf.WpfFrom
                 MessageBox.Show("请将信息填写完整");
                 return;
             }
-            if(UserPassTbx.Password == UserRePassTbx.Password)
+            if (MessageBus.ShowBinding.UserMesDataModels.Where(x => x.UserName == UserNameTbx.Text).Count() > 0)
+            {
+                MessageBox.Show("用户名已存在");
+                return;
+            }
+            if (UserPassTbx.Password == UserRePassTbx.Password)
             {
                 MessageBus.UserMessageClass.InsertUserMessage(new UserMesDataModelClass()
                 {
                     UserName = UserNameTbx.Text,
-                    PassWord = MessageBus.UserMessageClass.HashPassword(UserPassTbx.Password),
-                    UserMes = "测试",
+                    PassWord = UserPassTbx.Password,
+                    UserMes = UserLevelCbx.SelectedItem.ToString(),
                     DateTime = DateTime.Now,
                     IsDelete = false,
                     IsAdmin = UserLevelCbx.SelectedItem.ToString() == "管理员" ? true : false
@@ -54,7 +59,7 @@ namespace CCDCountWpf.WpfFrom
                 MessageBox.Show("密码不一致");
                 return;
             }
-                MessageBox.Show("添加成功");
+            MessageBox.Show("添加成功");
             MessageBus.ShowBinding.UserMesDataModels = MessageBus.UserMessageClass.GetAllUserMessage();
             this.Close();
         }

+ 25 - 6
CCDCountWpf/WpfFrom/ChangeUserWindow.xaml.cs

@@ -40,16 +40,22 @@ namespace CCDCountWpf.WpfFrom
                 MessageBox.Show("请将信息填写完整");
                 return;
             }
-            if (MessageBus.UserMessageClass.HashPassword(UserOldPassTbx.Password) != UserMessage.PassWord)
+            string OldPass = MessageBus.UserMessageClass.HashPassword(UserOldPassTbx.Password);
+            if (OldPass != UserMessage.PassWord)
             {
                 MessageBox.Show("旧密码输入错误");
                 return;
             }
-            if (UserOldPassTbx.Password != UserNewPassTbx.Password)
+            if (UserReNewPassTbx.Password != UserNewPassTbx.Password)
             {
                 MessageBox.Show("新密码输入不一致");
                 return;
             }
+            if(MessageBus.ShowBinding.UserMesDataModels.Where(x => x.UserName == UserNameTbx.Text).Count() > 0)
+            {
+                MessageBox.Show("用户名已存在");
+                return;
+            }
             UserMesDataModelClass newUserMessage = new UserMesDataModelClass()
             {
                 Id = UserMessage.Id,
@@ -75,14 +81,27 @@ namespace CCDCountWpf.WpfFrom
                 return;
             }
             MessageBus.UserMessageClass.ResetPassWord(UserMessage.Id);
-            MessageBus.UserMessageClass.ChangePassWord(UserMessage.Id, UserOldPassTbx.Password, UserNewPassTbx.Password);
+            MessageBus.ShowBinding.UserMesDataModels = MessageBus.UserMessageClass.GetAllUserMessage();
+            MessageBox.Show("重置成功");
+            UserMessage = MessageBus.ShowBinding.UserMesDataModels.Where(x => x.Id == UserMessage.Id).FirstOrDefault();
         }
 
         private void Window_Loaded(object sender, RoutedEventArgs e)
         {
-            UserLevelCbx.Items.Add("管理员");
-            UserLevelCbx.Items.Add("普通用户");
-            UserLevelCbx.SelectedItem = UserMessage.IsAdmin ? "管理员" : "普通用户";
+            UserLevelCbx.Items.Clear();
+            if (UserMessage.IsAdmin && UserMessage.Id == 1)
+            {
+                UserLevelCbx.Items.Add("管理员");
+                UserLevelCbx.SelectedIndex = 0;
+                UserNameTbx.Text = UserMessage.UserName;
+                UserNameTbx.IsReadOnly = true;
+            }
+            else
+            {
+                UserLevelCbx.Items.Add("管理员");
+                UserLevelCbx.Items.Add("普通用户");
+                UserLevelCbx.SelectedItem = UserMessage.IsAdmin ? "管理员" : "普通用户";
+            }
             UserIDTbx.Text = UserMessage.Id.ToString();
         }
     }

+ 1 - 1
CCDCountWpf/WpfFrom/MainWindow.xaml.cs

@@ -112,7 +112,7 @@ namespace CCDCountWpf
         {
             if (MessageBus.NowLoginUserMessage != null)
             {
-                if (MessageBus.NowLoginUserMessage.Id != 1)
+                if (!MessageBus.NowLoginUserMessage.IsAdmin)
                 {
                     MessageBox.Show("权限不足");
                 }

+ 10 - 0
CCDCountWpf/WpfPage/UserManagementPage.xaml.cs

@@ -41,6 +41,11 @@ namespace CCDCountWpf.WpfPage
 
         private void ChangeUserBtn_Click(object sender, RoutedEventArgs e)
         {
+            if (SelectUserMessage.Id == 1&&MessageBus.NowLoginUserMessage.Id != 1)
+            {
+                MessageBox.Show("权限不足,不可操作Admin用户");
+                return;
+            }
             if (SelectUserMessage == null)
             {
                 MessageBox.Show("请选择用户");
@@ -53,6 +58,11 @@ namespace CCDCountWpf.WpfPage
 
         private void DeleteUserBtn_Click(object sender, RoutedEventArgs e)
         {
+            if (SelectUserMessage.Id == 1)
+            {
+                MessageBox.Show("Admin管理员账户,不可删除");
+                return;
+            }
             if (SelectUserMessage == null)
             {
                 MessageBox.Show("请选择用户");

+ 2 - 1
TestWork.DLL/MainThreadClass.cs

@@ -80,7 +80,6 @@ namespace CCDCount.DLL
             }
             else
             {
-                StartSendBottLogicMessageThread();
                 LOG.log("ModbusTcpClient Connect Success!", 6);
             }
         }
@@ -167,6 +166,7 @@ namespace CCDCount.DLL
                 // 取图线程开启
                 cameraClass.StartCamera();
                 _CameraStatic = true;
+                StartSendBottLogicMessageThread();
                 // 数据交换线程开启
                 StartSwitchThread();
                 // 为数粒算法的识别成功一粒回调函数添加方法
@@ -190,6 +190,7 @@ namespace CCDCount.DLL
             bool result = false;
             try
             {
+                _CameraStatic = false;
                 shuLiClass.WorkCompleted -= Worker_OneGrainCompleted;
                 // 相机取图关闭
                 cameraClass.StopCamera();

+ 1 - 1
TestWork.DLL/SqlDataClass/UserMessSqliteDataClass.cs

@@ -223,7 +223,7 @@ namespace CCDCount.DLL.SqlDataClass
             using (var conn = new SQLiteConnection($"Data Source={_dbPath};Version=3;"))
             {
                 conn.Open();
-                string sql = "UPDATE UserMessage SET PassWord = @PassWord WHERE UserName = @UserName AND IsDelete = 0";
+                string sql = "UPDATE UserMessage SET PassWord = @PassWord WHERE Id = @Id AND IsDelete = 0";
                 var cmd = new SQLiteCommand(sql, conn);
                 cmd.Parameters.AddWithValue("@PassWord", HashPassword("123456"));
                 cmd.Parameters.AddWithValue("@Id", Id);