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
|
{
|
|
/// <summary>
|
/// 登录
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 获取账号信息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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<string> perId = new List<string>();
|
if (user[0].UserType == 0)
|
{
|
perId.Add("admin");
|
}
|
else
|
{
|
var roles = new RoleSetDAL().GetById(user[0].RoleId);
|
perId = roles.Roles.Split(',').ToList();
|
|
}
|
List<GetUserRolesPermissions> perList = new List<GetUserRolesPermissions>();
|
|
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);
|
}
|
|
/// <summary>
|
/// 获取子账号列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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);
|
}
|
|
/// <summary>
|
/// 获取子账号详情
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetSubAccountDetail([FromBody] GetSubAccountDetailRequest request)
|
{
|
var subItem = new UserInfoDAL().GetById(request.Id);
|
return Success(subItem);
|
}
|
|
/// <summary>
|
/// 删除账号
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DeleteSubAccount([FromBody] DeleteSubAccountRequest request)
|
{
|
var res = new UserInfoDAL().Delete(t => t.Id == request.Id && t.UserType == 1);
|
return Success(res == 1);
|
}
|
|
/// <summary>
|
/// 新增用户
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
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);
|
}
|
|
/// <summary>
|
/// 修改账号
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[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;
|
}
|
}
|
}
|