using CommonUtil; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Operater.DAL; using Operater.DbModel; using Operater.DTO.System; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Api.Operater.Controllers { [Route(TopConstants.API_ROUTE)] public class LoginController : BaseController { /// /// 登录 /// /// /// [HttpPost] public IActionResult LoginCheck([FromBody] LoginCheckRequest request) { // string pwdEn = SecurityUtil.MD5Encrypt(request.Pwd, false); var userInfo = new UserInfoDAL().ListGet(t => t.UserName == request.UserName && t.Pwd == request.Pwd); if (userInfo.IsNull() || userInfo.Count == 0) { return Error("账号或密码错误!"); } LoginCheckResponse loginCheckResponse = new LoginCheckResponse() { UserId = userInfo[0].ParentId, SubUserId = userInfo[0].Id, UserName = userInfo[0].NickName }; //生成token string enKey = "ophwuv2E1qyy6R2r"; TokenUserInfo tokenUserInfo = new TokenUserInfo() { Id = loginCheckResponse.UserId, ExpirationTime = DateTime.Now.AddHours(5) }; string EncryStr = SecurityUtil.AesEncrypt(JSONUtil.ObjectToJson(tokenUserInfo), enKey, "0102030405060708"); loginCheckResponse.LoginToken = EncryStr; return Success(loginCheckResponse); } /// /// 获取账号信息 /// /// /// [HttpPost] public IActionResult GetUserRole([FromBody] GetUserRoleRequest request) { var user = new UserInfoDAL().ListGet(t => t.Id == request.UserId); if (user.IsNull() || user.Count == 0) { return Error("无账号信息"); } //获取权限 List perId = new List(); if (user[0].UserType == 0) { perId.Add("admin"); } else { var roles = new RoleSetDAL().GetById(user[0].RoleId); perId = roles.Roles.Split(',').ToList(); } List perList = new List(); foreach (string perItem in perId) { if (perItem.IsNullOrEmpty()) { continue; } GetUserRolesPermissions per = new GetUserRolesPermissions() { roleId = user[0].Id, permissionId = perItem }; perList.Add(per); } GetUserRoles getUserRoles = new GetUserRoles() { id = user[0].Id, name = user[0].UserName, permissions = perList }; GetUserRoleResult getUserRoleResult = new GetUserRoleResult() { Id = user[0].Id, Name = user[0].NickName, Username = user[0].UserName, roleId = user[0].Id, role = getUserRoles }; GetUserRoleResponse response = new GetUserRoleResponse() { result = getUserRoleResult, success = true }; return Ok(response); } /// /// 获取子账号列表 /// /// /// [HttpPost] public IActionResult GetSubAccountList([FromBody] GetSubAccountListRequest request) { int totalCount = 0; var sublist = new UserInfoDAL().ListPageGet(t => t.UserType == 1, t => t.ModifyTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount); return Success(sublist, request.PageNo, request.PageSize, totalCount); } /// /// 获取子账号详情 /// /// /// [HttpPost] public IActionResult GetSubAccountDetail([FromBody] GetSubAccountDetailRequest request) { var subItem = new UserInfoDAL().GetById(request.Id); return Success(subItem); } /// /// 删除账号 /// /// [HttpPost] public IActionResult DeleteSubAccount([FromBody] DeleteSubAccountRequest request) { var res = new UserInfoDAL().Delete(t => t.Id == request.Id && t.UserType == 1); return Success(res == 1); } /// /// 新增用户 /// /// /// public IActionResult AddUser([FromBody] AddUserRequest request) { string userId = string.Empty; if (new UserInfoDAL().IsExist(t => t.UserName == request.UserName)) { return Error("账户名已存在,请重新设置"); } while (true) { userId = GetRandomString(6); if (userId.StartsWith("0")) { continue; } var hasExit = new UserInfoDAL().GetById(userId); if (!hasExit.IsNull() && !hasExit.Id.IsNullOrEmpty()) { continue; } break; } var mainUser = new UserInfoDAL().ListGet(t => t.UserType == 0); string parentId = mainUser[0].Id; string enPwd = SecurityUtil.MD5Encrypt(request.Pwd, false); UserInfo userInfo = new UserInfo() { Id = userId, UserName = request.UserName, Pwd = enPwd, ParentId = parentId, Mobile = request.Mobile, UserType = 1, NickName = request.NickName, ModifyTime = DateTime.Now, RoleId=request.RoleId }; var res = new UserInfoDAL().Insert(userInfo); return Success(res); } /// /// 修改账号 /// /// /// [HttpPost] public IActionResult UpdateAccount([FromBody] UpdateAccountRequest request) { if (new UserInfoDAL().IsExist(t => t.UserName == request.UserName && t.Id != request.Id)) { return Error("账户名已存在,请重新设置"); } string enPwd = SecurityUtil.MD5Encrypt(request.Pwd, false); UserInfo userInfo = new UserInfo() { UserName = request.UserName, Pwd = enPwd, Mobile = request.Mobile, UserType = 1, NickName = request.NickName, ModifyTime = DateTime.Now }; var res = new UserInfoDAL().Update(userInfo, i => new { i.UserName, i.Pwd, i.Mobile, i.NickName, i.ModifyTime }, t => t.Id == request.Id); return Success(res == 1); } public string GetRandomString(int len) { string s = "1234567890"; string reValue = string.Empty; Random rd = new Random(); while (reValue.Length < len) { string s1 = s[rd.Next(0, s.Length)].ToString(); if (reValue.IndexOf(s1) == -1) reValue += s1; } return reValue; } } }