Commit ab475454 authored by 黄奎's avatar 黄奎

新增实体类

parent 4d0b4fb8
using Edu.Common.Enum;
namespace Edu.Common.API
{
/// <summary>
/// 用户Token
/// </summary>
public interface IUserInfoToken
{
/// <summary>
/// 用户ID
/// </summary>
public string uid { get; set; }
/// <summary>
/// 请求消息来源
/// </summary>
public ApiRequestFromEnum requestFrom { get; set; }
}
/// <summary>
/// ERP用户Token
/// </summary>
public class ErpTokenUserInfo : IUserInfoToken
{
/// <summary>
/// 用户ID
/// </summary>
public string uid { get; set; }
/// <summary>
/// 请求消息来源
/// </summary>
public ApiRequestFromEnum requestFrom { get; set; }
/// <summary>
/// 集团id
/// </summary>
public int groupId { get; set; }
}
/// <summary>
/// API请求token携带的用户信息
/// </summary>
public class EduUserInfoToken : IUserInfoToken
{
/// <summary>
/// 用户ID
/// </summary>
public string uid { get; set; }
/// <summary>
/// 请求消息来源
/// </summary>
public ApiRequestFromEnum requestFrom { get; set; }
}
}
......@@ -30,5 +30,11 @@ namespace Edu.Common.Enum
[EnumField("App教师端")]
AppTech = 102,
/// <summary>
/// ERP【生成Token使用】
/// </summary>
[EnumField("ERP")]
ERP =6,
}
}
\ No newline at end of file
......@@ -55,6 +55,11 @@ namespace Edu.Model.CacheModel
/// </summary>
public string Token { get; set; }
/// <summary>
/// ERP-Token
/// </summary>
public string ErpToken { get; set; }
/// <summary>
/// 菜单列表
/// </summary>
......
using Edu.Common.Enum;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 部门表实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Department
{
/// <summary>
/// 部门编号(主键)
/// </summary>
public int DeptId { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 部门负责人
/// </summary>
public int DeptManager { get; set; }
/// <summary>
/// 部门电话
/// </summary>
public string DeptTel { get; set; }
/// <summary>
/// 部门负责人编号
/// </summary>
public string ManagerIds { get; set; }
/// <summary>
/// 上级部门编号
/// </summary>
public int ParentId { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 删除状态(1-删除)
/// </summary>
public DateStateEnum? Status { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
using Edu.Common.Enum;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 岗位表实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Post
{
/// <summary>
/// 岗位编号
/// </summary>
public int PostId { get; set; }
/// <summary>
/// 岗位名称
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 部门编号
/// </summary>
public int RB_Dept_Id { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 删除状态(1-删除)
/// </summary>
public DateStateEnum? Status { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
using System.Collections.Generic;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 部门树形结构列表
/// </summary>
public class DepartmentTree_ViewModel
{
/// <summary>
/// 部门编号(主键)
/// </summary>
public int DeptId { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 上级部门编号
/// </summary>
public int ParentId { get; set; }
/// <summary>
/// 下级部门列表
/// </summary>
public List<DepartmentTree_ViewModel> ChildList { get; set; }
}
}
using Edu.Model.Entity.User;
using System;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 部门实体实体类
/// </summary>
[Serializable]
public class RB_Department_ViewModel : RB_Department
{
/// <summary>
/// 创建人
/// </summary>
public string CreateByName { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateByName { get; set; }
}
}
\ No newline at end of file
using Edu.Common.Enum;
using Edu.Model.Entity.User;
using System;
namespace Edu.Common.API
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// API请求token携带的用户信息
/// 岗位视图实体
/// </summary>
public class TokenUserInfo
[Serializable]
public class RB_Post_ViewModel : RB_Post
{
/// <summary>
/// 用户ID
/// 常见人
/// </summary>
public string Uid { get; set; }
public string CreateByName { get; set; }
/// <summary>
/// 请求消息
/// 修改人
/// </summary>
public ApiRequestFromEnum RequestFrom { get; set; }
public string UpdateByName { get; set; }
}
}
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.User
{
/// <summary>
/// 部门管理仓储层
/// </summary>
public class RB_DepartmentRepository : BaseRepository<RB_Department>
{
/// <summary>
/// 获取部门分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Department_ViewModel> GetDepartmentPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Department_ViewModel query)
{
rowsCount = 0;
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM rb_department AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.Group_Id)}={query.Group_Id} ");
}
if (query.DeptId > 0)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.DeptId)}={query.DeptId} ");
}
if (!string.IsNullOrEmpty(query.DeptName))
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.DeptName)} LIKE @DeptName ");
parameters.Add("DeptName", "%" + query.DeptName.Trim() + "%");
}
if (query.Status != null && (int)query.Status > -1)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.Status)}={(int)query.Status} ");
}
return GetPage<RB_Department_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
else
{
return new List<RB_Department_ViewModel>();
}
}
/// <summary>
/// 获取部门列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Department_ViewModel> GetDepartmentListRepository(RB_Department_ViewModel query)
{
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM rb_department AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.Group_Id)}={query.Group_Id} ");
}
if (query.DeptId > 0)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.DeptId)}={query.DeptId} ");
}
if (!string.IsNullOrEmpty(query.DeptName))
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.DeptName)} LIKE @DeptName ");
parameters.Add("DeptName", "%" + query.DeptName.Trim() + "%");
}
if (query.Status != null && (int)query.Status > -1)
{
builder.Append($" AND A.{nameof(RB_Department_ViewModel.Status)}={(int)query.Status} ");
}
return Get<RB_Department_ViewModel>(builder.ToString(), parameters).ToList();
}
else
{
return new List<RB_Department_ViewModel>();
}
}
}
}
\ No newline at end of file
using Edu.Common.Enum;
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.User
{
/// <summary>
/// 岗位管理仓储层
/// </summary>
public class RB_PostRepository : BaseRepository<RB_Post>
{
/// <summary>
/// 获取岗位分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Post_ViewModel> GetPostPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Post_ViewModel query)
{
rowsCount = 0;
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM rb_post AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.Group_Id)}={query.Group_Id} ");
}
if (query.PostId > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)}={query.PostId} ");
}
if (!string.IsNullOrEmpty(query.PostName))
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostName)} LIKE @PostName ");
parameters.Add("PostName", "%" + query.PostName.Trim() + "%");
}
if (query.Status != null && (int)query.Status > -1)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.Status)}={(int)query.Status} ");
}
return GetPage<RB_Post_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(),parameters).ToList();
}
else
{
return new List<RB_Post_ViewModel>();
}
}
/// <summary>
/// 获取岗位列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Post_ViewModel> GetPostListRepository(RB_Post_ViewModel query)
{
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM rb_post AS A
WHERE 1=1
");
builder.Append($" AND A.{nameof(RB_Post_ViewModel.Status)}={(int)DateStateEnum.Normal} ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.Group_Id)}={query.Group_Id} ");
}
if (query.PostId > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)}={query.PostId} ");
}
if (!string.IsNullOrEmpty(query.PostName))
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostName)} LIKE @PostName ");
parameters.Add("PostName", "%" + query.PostName.Trim() + "%");
}
return Get<RB_Post_ViewModel>(builder.ToString(),parameters).ToList();
}
else
{
return new List<RB_Post_ViewModel>();
}
}
}
}
\ No newline at end of file
......@@ -36,7 +36,7 @@ namespace Edu.WebApi.Controllers
if (Request.HttpContext.Items[GlobalKey.TokenUserInfo] != null)
{
JObject parms = JObject.Parse(Request.HttpContext.Items[GlobalKey.TokenUserInfo].ToString());
requestParm.Uid = parms.GetStringValue("Uid");
requestParm.Uid = parms.GetStringValue("uid");
}
}
#endregion
......
......@@ -70,8 +70,23 @@ namespace Edu.WebApi.Controllers.User
{
return ApiResult.Failed(message: $"此账号【{ account }】已禁用,如需使用请联系管理员!");
}
//生成token
string token = WebApiTokenHelper.CreateToken(model.Id.ToString(), Common.Enum.ApiRequestFromEnum.WebAdmin);
//生成教育token
IUserInfoToken eduUserInfo = new EduUserInfoToken()
{
requestFrom = Common.Enum.ApiRequestFromEnum.WebAdmin,
uid = model.Id.ToString()
};
//生成ERP-Token
IUserInfoToken erpUserInfo = new ErpTokenUserInfo()
{
requestFrom = Common.Enum.ApiRequestFromEnum.ERP,
uid = model.Id.ToString(),
groupId = model.Group_Id
};
string token = WebApiTokenHelper.CreateToken(eduUserInfo);
string erpToken = WebApiTokenHelper.CreateToken(erpUserInfo);
var treeList = menuModule.GetTreeMenuModule(new Model.ViewModel.System.RB_Menu_ViewModel()
{
MenuType = accountType
......@@ -81,11 +96,12 @@ namespace Edu.WebApi.Controllers.User
Id = model.Id,
AccountType=model.AccountType,
Group_Id = model.Group_Id,
GroupName = model.GroupName,
School_Id = model.School_Id,
AccountName = model.AccountName,
GroupName = model.GroupName,
SchoolName = model.SchoolName,
Token = token,
ErpToken=erpToken,
MenuList = treeList,
GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon,
......
......@@ -49,10 +49,20 @@ namespace Edu.WebApi.Controllers.User
private readonly ManagerModule managerModule = AOPHelper.CreateAOPObject<ManagerModule>();
/// <summary>
/// 账户相关处理
/// 账户相关处理类对象
/// </summary>
private readonly AccountModule accountModule = AOPHelper.CreateAOPObject<AccountModule>();
/// <summary>
/// 岗位处理类对象
/// </summary>
private readonly PostModule postModule = AOPHelper.CreateAOPObject<PostModule>();
/// <summary>
/// 部门处理类对象
/// </summary>
private readonly DepartmentModule departmentModule = AOPHelper.CreateAOPObject<DepartmentModule>();
#region 用户账户管理
/// <summary>
......@@ -627,7 +637,7 @@ namespace Edu.WebApi.Controllers.User
}
/// <summary>
/// 系统管理者
/// 获取系统管理者列表
/// </summary>
/// <returns></returns>
[HttpPost]
......@@ -695,5 +705,189 @@ namespace Edu.WebApi.Controllers.User
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
#region 部门管理
/// <summary>
/// 获取部门分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDeptPageList()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Department_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
var list = departmentModule.GetDepartmentPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
{
item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
}
if (item.UpdateBy > 0)
{
item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? "";
}
}
pageModel.Count = rowsCount;
pageModel.PageData = list;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 获取部门列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDeptList()
{
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Department_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
var list = departmentModule.GetDepartmentListModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 获取部门树形列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDeptTree()
{
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Department_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
var list = departmentModule.GetDepartmentTreeModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 添加修改部门
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetDept()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Department_ViewModel>(RequestParm.Msg.ToString());
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateTime = DateTime.Now;
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id;
bool flag = departmentModule.SetDepartmentModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取部门实体类
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDept()
{
var DeptId = base.ParmJObj.GetInt("DeptId", 0);
var extModel = departmentModule.GetDepartmentModule(DeptId);
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 修改部门状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RemoveDept()
{
var DeptId = base.ParmJObj.GetInt("DeptId", 0);
int Status = base.ParmJObj.GetInt("Status");
var flag = departmentModule.RemoveDepartmentModule(DeptId, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
#region 岗位管理
/// <summary>
/// 获取岗位分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPostPage()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Post_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
var list = postModule.GetPostPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
{
item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
}
if (item.UpdateBy > 0)
{
item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? "";
}
}
pageModel.Count = rowsCount;
pageModel.PageData = list;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 获取岗位列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPostList()
{
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Post_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
var list = postModule.GetPostListModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 添加修改岗位
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetPost()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Post_ViewModel>(RequestParm.Msg.ToString());
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateTime = DateTime.Now;
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id;
bool flag = postModule.SetPostModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取部门实体类
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPost()
{
var PostId = base.ParmJObj.GetInt("PostId", 0);
var extModel = postModule.GetPostModule(PostId);
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 修改岗位状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RemovePost()
{
var PostId = base.ParmJObj.GetInt("PostId", 0);
int Status = base.ParmJObj.GetInt("Status");
var flag = postModule.RemovePostModule(PostId, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
}
}
\ No newline at end of file
......@@ -123,11 +123,11 @@ namespace Edu.WebApi.Filter
try
{
JObject jwtJson = WebApiTokenHelper.AnalysisToken(token);
var tokenUser = Common.Plugin.JsonHelper.DeserializeObject<TokenUserInfo>(jwtJson[Common.GlobalKey.JWT_User_Key].ToString());
var tokenUser = Common.Plugin.JsonHelper.DeserializeObject<EduUserInfoToken>(jwtJson[Common.GlobalKey.JWT_User_Key].ToString());
if (tokenUser != null)
{
var cacheUser = UserReidsCache.GetUserLoginInfo(tokenUser.Uid,apiRequestFromEnum: tokenUser.RequestFrom);
if (Common.Config.IsOnline && cacheUser.ApiRequestFromEnum == tokenUser.RequestFrom && (cacheUser.Token != token || string.IsNullOrWhiteSpace(cacheUser.Token)))
var cacheUser = UserReidsCache.GetUserLoginInfo(tokenUser.uid,apiRequestFromEnum: tokenUser.requestFrom);
if (Common.Config.IsOnline && cacheUser.ApiRequestFromEnum == tokenUser.requestFrom && (cacheUser.Token != token || string.IsNullOrWhiteSpace(cacheUser.Token)))
{
actionContext.Result = new Microsoft.AspNetCore.Mvc.JsonResult(
new ApiResult
......
......@@ -16,12 +16,10 @@ namespace Edu.WebApi.Helper
/// <summary>
/// 生成Token
/// </summary>
/// <param name="uid">加密字符串</param>
/// <param name="requestFromEnum">来源</param>
/// <returns></returns>
public static string CreateToken(string uid, Common.Enum.ApiRequestFromEnum requestFromEnum)
public static string CreateToken(IUserInfoToken userInfo)
{
TokenUserInfo userInfo = new TokenUserInfo { Uid = uid, RequestFrom = requestFromEnum };
IDateTimeProvider provider = new UtcDateTimeProvider();
var now = provider.GetNow().AddMinutes(-1);
var unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
......
......@@ -33,6 +33,8 @@ namespace Edu.WebApi
});
List<string> corsArray = new List<string>()
{
"http://192.168.1.214:8400",
"http://localhost:8400",
"http://localhost:8081",
"http://localhost:8080",
"http://localhost:8082",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment