20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/Dialogs/ModifyUserViewModel.cs
2024-03-11 13:12:02 +08:00

140 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}
}