using System; using System.Threading.Tasks; using System.Web.Mvc; using Abp; using Abp.Auditing; using Abp.Domain.Repositories; using Abp.Notifications; using Abp.UI; using Abp.Web.Models; using Abp.Web.Mvc.Authorization; using WePlatform.Authorization.Users; using WePlatform.CommonManager.Notifications; using WePlatform.Configuration; using IwbZero.Auditing; using IwbZero.Runtime.Session; using IwbZero.ToolCommon.FileHelpers; namespace WePlatform.Controllers { [AbpMvcAuthorize, DisableAuditing] public class HomeController : IwbControllerBase { public HomeController(IRepository userRepository) { UserRepository = userRepository; NotificationManager = NullNotificationManager.Instance; } public INotificationManager NotificationManager { get; } private IRepository UserRepository { get; } public ActionResult Index() { return View(); } public async Task T(string id) { await NoticeManager.SendMsgAsync(new UserIdentifier(1, 4), id, NotificationSeverity.Success); return Content("ok"); } [AbpMvcAuthorize, AuditLog("个人信息")] public ActionResult UserProfile() { var profile = new UserProfileViewModel(AbpSession); return View(profile); } [AbpMvcAuthorize, AuditLog("修改密码")] public ActionResult ChangePassword() { return View(); } [AbpMvcAuthorize, AuditLog("修改个人信息")] [HttpPost] public async Task UpdateUserProfile(UserProfileViewModel model) { try { var sysUser = await UserRepository.FirstOrDefaultAsync(a => a.Id == model.UserId); sysUser.Name = model.RealName; sysUser.EmailAddress = model.EmailAddress; sysUser.PhoneNumber = model.PhoneNumber; await UserRepository.UpdateAsync(sysUser); } catch (Exception e) { throw new UserFriendlyException("修改个人信息", e.Message); } return AbpJson(new AjaxResponse(true)); } [AbpMvcAuthorize, AuditLog("修改头像")] [HttpPost] public async Task UpdateAvatar() { var fileName = $"{AbpSession.UserId}@{AbpSession.UserName}"; var filePath = $"/{await SettingManager.GetSettingValueAsync(IwbSettingNames.DownloadPath)}/UserAvatar/"; //var url = Request.UploadFile("avatar_file", fileName,filePath,targetExt:"png"); string avatar = Request["Avatar"]; var file = avatar.Replace("data:image/png;base64,", ""); var url = file.Base64ToPng(fileName, filePath); if (url.StartsWith("error@")) { string error = url.Split(new[] { '@' }, StringSplitOptions.RemoveEmptyEntries)[1]; throw new UserFriendlyException("修改头像", error); } var user = await UserRepository.FirstOrDefaultAsync(a => a.Id == AbpSession.UserId); var oldUrl = user.ImagePath; var newUrl = url.Replace(fileName, $"{AbpSession.UserId}@@{AbpSession.UserName}"); var path = $"{AppDomain.CurrentDomain.BaseDirectory}{url}"; var newPath = $"{AppDomain.CurrentDomain.BaseDirectory}{newUrl}"; if (path.CompressImage(newPath)) { user.ImagePath = newUrl; url.DeleteFile(); url = newUrl; } else { user.ImagePath = url; } await UserRepository.UpdateAsync(user); if (!string.IsNullOrEmpty(oldUrl)) { oldUrl.DeleteFile(); } return AbpJson(new AjaxResponse(url)); //return Content("{\"result\":\"" + url + "\"}"); } } public class UserProfileViewModel { public UserProfileViewModel() { } public UserProfileViewModel(IIwbSession model) { if (model?.UserId == null) return; UserId = model.UserId ?? 0; UserName = model.UserName; RealName = model.RealName; EmailAddress = model.EmailAddress; PhoneNumber = model.PhoneNumber; ImagePath = model.AvatarImagePath; } public long UserId { get; set; } /// /// 系统账号 /// public string UserName { get; set; } /// /// 姓名 /// public string RealName { get; set; } /// /// 电子邮箱 /// public string EmailAddress { get; set; } /// /// 个人简介 /// public string Profile { get; set; } /// /// 出生日期 /// public DateTime? Birthday { get; set; } /// /// 身份证号 /// public string IdCard { get; set; } /// /// 联系号码 /// public string PhoneNumber { get; set; } /// /// 备用号码 /// public string PhoneNumber2 { get; set; } /// /// 头像图片 /// public string ImagePath { get; set; } } }