DHDHSoftware/DH.RBAC/Views/Sys/User/AddUserForm.cs
liyaobang 9f7c6206ca 提交rbac
提交设置右键错位的bug
2025-04-08 15:15:02 +08:00

429 lines
13 KiB
C#

using Sunny.UI;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using DH.RBAC.Common;
using DH.RBAC.Logic.Sys;
using DH.RBAC.Utility.Other;
using DH.RBAC.Model.Sys;
namespace DH.RBAC.Page.Sys.User
{
public partial class AddUserForm : UIForm
{
private SysUserLogic userLogic;
private SysUserRoleRelationLogic userRoleRelationLogic;
private SysUserLogOnLogic userLogOnLogic;
private SysRoleLogic roleLogic;
private SysOrganizeLogic organizeLogic;
public AddUserForm()
{
InitializeComponent();
userLogic = new SysUserLogic();
userRoleRelationLogic = new SysUserRoleRelationLogic();
userLogOnLogic = new SysUserLogOnLogic();
roleLogic = new SysRoleLogic();
organizeLogic = new SysOrganizeLogic();
}
#region
private void btnClose_Click(object sender, EventArgs e)
{
FormHelper.subForm = null;
ParentPage.btnQuery_Click(null, null);
this.Close();
}
private Point mPoint;
private void titlePanel_MouseDown(object sender, MouseEventArgs e)
{
mPoint = new Point(e.X, e.Y);
}
private void titlePanel_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
}
}
private void btnClose_MouseEnter(object sender, EventArgs e)
{
btnClose.BackColor = Color.FromArgb(231, 231, 231);
}
private void btnClose_MouseLeave(object sender, EventArgs e)
{
btnClose.BackColor = Color.Transparent;
}
#endregion
public UserPage ParentPage { get; set; }
public string Id { get; set; }
/// <summary>
/// 画面加载,读取用户信息,显示在界面上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AddUserForm_Load(object sender, EventArgs e)
{
if (StringHelper.IsNullOrEmpty(Id))
{
lblTitle.Text = "新增用户";
txtAccount.Enabled = true;
}
else
{
lblTitle.Text = "修改用户";
txtAccount.Enabled = false;
txtPassword.Enabled = false;
}
//获取部门下拉列表的值
bool flag = GetDepartmentCombox();
if (!flag)
{
btnClose_Click(null, null);
return;
}
flag = GetRoleTrans();
if (!flag)
{
btnClose_Click(null, null);
return;
}
if (StringHelper.IsNullOrEmpty(Id))
{
return;
}
SysUser entity = userLogic.Get(Id);
entity.StrBirthday = entity.Birthday.Value.ToString("yyyy-MM-dd");
entity.RoleId = userRoleRelationLogic.GetList(entity.Id).Select(c => c.RoleId).ToList();
if (entity == null)
{
AntdUI.Message.warn(this, "用户信息不存在!", autoClose: 3);
btnClose_Click(null, null);
return;
}
//给文本框赋值
txtAccount.Text = entity.Account;
txtNickName.Text = entity.NickName;
txtName.Text = entity.RealName;
txtBirthday.Text = entity.StrBirthday;
if (entity.Gender == "1")
rdMale.Checked = true;
else
rdFemale.Checked = true;
txtEmail.Text = entity.Email;
comboDept.SelectedValue = entity.DepartmentId;
txtTel.Text = entity.MobilePhone;
txtAddress.Text = entity.Address;
uiIntegerUpDown1.Value = entity.SortCode.Value;
//左边删除已存在的,右边新增这些
foreach (string id in entity.RoleId)
{
string name = roleIdDict[id];
if (uiTransfer1.ItemsLeft.Contains(name))
{
uiTransfer1.ItemsLeft.Remove(name);
}
uiTransfer1.ItemsRight.Add(name);
}
}
Dictionary<string, string> roleNameDict = new Dictionary<string, string>();
Dictionary<string, string> roleIdDict = new Dictionary<string, string>();
/// <summary>
/// 获得角色
/// </summary>
/// <returns></returns>
private bool GetRoleTrans()
{
List<SysRole> listRole = roleLogic.GetList();
var listTree = new List<TreeSelect>();
foreach (var item in listRole)
{
TreeSelect model = new TreeSelect();
model.id = item.Id;
model.text = item.Name;
listTree.Add(model);
}
foreach (TreeSelect select in listTree)
{
uiTransfer1.ItemsLeft.Add(select.text);
roleIdDict.Add(select.id, select.text);
roleNameDict.Add(select.text, select.id);
}
return true;
}
/// <summary>
/// 获得部门下拉列表数据
/// </summary>
/// <returns></returns>
private bool GetDepartmentCombox()
{
var data = organizeLogic.GetList();
var treeList = new List<TreeSelect>();
foreach (SysOrganize item in data)
{
TreeSelect model = new TreeSelect();
model.id = item.Id;
model.text = item.FullName;
model.parentId = item.ParentId;
treeList.Add(model);
}
List<TreeSelect> list2 = treeList.Where(it => it.parentId != "0").ToList();
comboDept.ValueMember = "id";
comboDept.DisplayMember = "text";
comboDept.DataSource = list2;
return true;
}
/// <summary>
/// 确认按钮点击事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnConfirm_Click(object sender, EventArgs e)
{
if (StringHelper.IsNullOrEmpty(Id))
{
DoAdd();
}
else
{
DoUpdate();
}
}
/// <summary>
/// 执行更新操作
/// </summary>
private void DoUpdate()
{
bool flag = ChechEmpty(false);
if (!flag)
{
return;
}
SysUser model = new SysUser();
model.Id = Id;
model.Account = txtAccount.Text;
model.NickName = txtNickName.Text;
model.RealName = txtName.Text;
model.StrBirthday = txtBirthday.Text;
model.Gender = rdMale.Checked ? "1" : "0";
model.Email = txtEmail.Text;
model.DepartmentId = comboDept.SelectedValue.ToString();
model.MobilePhone = txtTel.Text;
model.Address = txtAddress.Text;
model.SortCode = uiIntegerUpDown1.Value;
List<string> ids = new List<string>();
foreach (string item in uiTransfer1.ItemsRight)
{
ids.Add(roleNameDict[item]);
}
string roleIds = StringHelper.GetStrArray(ids);
model.roleIds = roleIds;
model.ModifyUserId = GlobalConfig.CurrentUser.Id;
DateTime defaultDt = DateTime.Today;
DateTime.TryParse(model.StrBirthday + " 00:00:00", out defaultDt);
model.Birthday = defaultDt;
if (model.roleIds == "")
{
AntdUI.Message.warn(this, "请选择角色!", autoClose: 3);
return;
}
//更新用户基本信息。
int row = userLogic.AppUpdateAndSetRole(model, model.roleIds.SplitToList().ToArray(), model.ModifyUserId);
//更新用户角色信息。
if (row == 0)
{
AntdUI.Message.warn(this, "对不起,操作失败!", autoClose: 3);
return;
}
//ParentPage.Init();
btnClose_Click(null, null);
}
/// <summary>
/// 数据校验
/// </summary>
/// <param name="checkPassword"></param>
/// <returns></returns>
private bool ChechEmpty(bool checkPassword)
{
if (StringHelper.IsNullOrEmpty(txtAccount.Text))
{
AntdUI.Message.warn(this, "账号不能为空!", autoClose: 3);
return false;
}
if (StringHelper.IsNullOrEmpty(txtNickName.Text))
{
AntdUI.Message.warn(this, "昵称不能为空!", autoClose: 3);
return false;
}
if (checkPassword)
{
if (StringHelper.IsNullOrEmpty(txtPassword.Text))
{
AntdUI.Message.warn(this, "初始密码不能为空!", autoClose: 3);
return false;
}
}
if (comboDept.SelectedItem == null)
{
AntdUI.Message.warn(this, "所属部门不能为空!", autoClose: 3);
return false;
}
if (StringHelper.IsNullOrEmpty(comboDept.SelectedItem.ToString()))
{
AntdUI.Message.warn(this, "所属部门不能为空!", autoClose: 3);
return false;
}
if (StringHelper.IsNullOrEmpty(uiIntegerUpDown1.Text))
{
AntdUI.Message.warn(this, "排序号不能为空!", autoClose: 3);
return false;
}
if (comboDept.SelectedItem == null)
{
AntdUI.Message.warn(this, "所属部门不能为空!", autoClose: 3);
return false;
}
if (StringHelper.IsNullOrEmpty(comboDept.SelectedItem.ToString()))
{
AntdUI.Message.warn(this, "所属部门不能为空!", autoClose: 3);
return false;
}
if (uiTransfer1.ItemsRight == null)
{
AntdUI.Message.warn(this, "角色不能为空!", autoClose: 3);
return false;
}
if (uiTransfer1.ItemsRight.Count == 0)
{
AntdUI.Message.warn(this, "角色不能为空!", autoClose: 3);
return false;
}
return true;
}
/// <summary>
/// 执行新增操作
/// </summary>
private void DoAdd()
{
bool flag = ChechEmpty(true);
if (!flag)
return;
SysUser model = new SysUser();
model.Account = txtAccount.Text;
model.NickName = txtNickName.Text;
model.password = txtPassword.Text.MD5Encrypt();
model.RealName = txtName.Text;
model.StrBirthday = txtBirthday.Text;
model.Gender = rdMale.Checked ? "1" : "0";
model.Email = txtEmail.Text;
model.DepartmentId = comboDept.SelectedValue.ToString();
model.MobilePhone = txtTel.Text;
model.Address = txtAddress.Text;
model.SortCode = uiIntegerUpDown1.Value;
model.CreateUserId = GlobalConfig.CurrentUser.Id;
List<string> ids = new List<string>();
foreach (string item in uiTransfer1.ItemsRight)
{
ids.Add(roleNameDict[item]);
}
string roleIds = StringHelper.GetStrArray(ids);
model.roleIds = roleIds;
var userEntity = userLogic.GetByUserName(model.Account);
if (userEntity != null)
{
AntdUI.Message.warn(this, "已存在当前用户名,请重新输入!", autoClose: 3);
return;
}
DateTime defaultDt = DateTime.Today;
DateTime.TryParse(model.StrBirthday + " 00:00:00", out defaultDt);
model.Birthday = defaultDt;
if (model.roleIds == "")
{
AntdUI.Message.warn(this, "请选择角色!", autoClose: 3);
return;
}
int row = userLogic.AppInsert(model, model.password, model.roleIds.SplitToList().ToArray(), model.CreateUserId);
if (row == 0)
{
AntdUI.Message.warn(this, "对不起,操作失败!", autoClose: 3);
;
return;
}
btnClose_Click(null, null);
}
}
}