20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/Dialogs/ModifyUserViewModel.cs

140 lines
4.8 KiB
C#
Raw Normal View History

2024-03-11 05:12:02 +00:00
using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace InSituLaboratory.ViewModels.Pages.Dialogs
{
public class ModifyUserViewModel : DialogViewModelBase
{
public UserModel UserInfo { get; set; } = new UserModel();
/// <summary>
/// 控制用户名是否可以更改
/// 默认False
/// </summary>
public bool IsReadOnlyUserName { get; set; }
IUserService _userService;
public ModifyUserViewModel(IUserService userService)
{
_userService = userService;
}
/// <summary>
/// 新增或者编辑打开窗口
/// </summary>
/// <param name="parameters"></param>
public override void OnDialogOpened(IDialogParameters parameters)
{
var model = parameters.GetValue<UserModel>("model");
if (model == null)
{
Title = "新增用户信息";
UserInfo = new UserModel(_userService);
UserInfo.UserName = "";
UserInfo.Gender = 1;
UserInfo.Password = "123456";
UserInfo.UserIcon = "a01.jpg";
}
else
{
Title = "编辑菜单项";
IsReadOnlyUserName = true;
var su = _userService.Find<SysUser>(model.UserId);
UserInfo.UserId = su.UserId;
UserInfo.UserName = su.UserName;
UserInfo.RealName = su.RealName;
UserInfo.Password = su.Password;
UserInfo.UserIcon = su.UserIcon;
UserInfo.Gender = su.Gender;
UserInfo.Address = su.Address;
UserInfo.Age = su.Age;
UserInfo.Status = su.Status;
UserInfo.Phone = su.Phone;
UserInfo.Email = su.Email;
UserInfo.QQ = su.QQ;
UserInfo.WeChat = su.WeChat;
}
}
/// <summary>
/// 保存
/// </summary>
public override void DoSave()
{
if (UserInfo.HasErrors) return;
//保存逻辑
try
{
//查询当前用户的登录信息
var CurrentUser = _userService.Query<SysUser>(u => u.UserName == StaticInfo.LoginUserName).First();
if (UserInfo.UserId == 0)
{
//新增保存
//UserId的编码规则
//4个年份 2024
//3位序号 XXX
int uid = DateTime.Now.Year * 1000;
int num = _userService.Set<SysUser>().Max(x => x.UserId) % uid;
uid += num + 1;
_userService.Insert<SysUser>(new SysUser
{
UserId = uid,
UserName = UserInfo.UserName,
RealName = UserInfo.RealName,
Password = UserInfo.Password,
UserIcon = UserInfo.UserIcon,
Address = UserInfo.Address,
Age = UserInfo.Age,
Status = 1,
Phone = UserInfo.Phone,
Gender = UserInfo.Gender,
Email = UserInfo.Email,
QQ = UserInfo.QQ,
WeChat = UserInfo.WeChat,
CreateTime = System.DateTime.Now,
CreateId = CurrentUser.UserId
});
}
else
{
// 编辑保存
var user = _userService.Find<SysUser>(UserInfo.UserId);
user.RealName = UserInfo.RealName;
user.Gender = UserInfo.Gender;
user.Address = UserInfo.Address;
user.Age = UserInfo.Age;
user.Phone = UserInfo.Phone;
user.Email = UserInfo.Email;
user.QQ = UserInfo.QQ;
user.WeChat = UserInfo.WeChat;
user.LastModifyTime = System.DateTime.Now;
user.LastModifyId = CurrentUser.UserId;
//还可以添加页面中可以进行修改的字段属性
_userService.Update(user);
}
// 保存成功后 ,需要关闭当前弹窗
base.DoSave();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}