Commit cb1b5c73 by zry

api dev

parent 9a8cc93b
This diff was suppressed by a .gitattributes entry.
......@@ -17,14 +17,18 @@ namespace Performance.Api.Controllers
[Route("api/[controller]")]
public class AccountController : Controller
{
UserService _userService;
IMemoryCache _memoryCache;
Application _options;
private UserService _userService;
private RoleService _roleService;
private IMemoryCache _memoryCache;
private Application _options;
public AccountController(UserService userService,
HospitalService hospitalService,
RoleService roleService,
IMemoryCache memoryCache,
IOptions<Application> options)
{
_userService = userService;
_roleService = roleService;
_memoryCache = memoryCache;
_options = options.Value;
}
......@@ -40,6 +44,11 @@ public class AccountController : Controller
public ApiResponse<UserIdentity> Login([FromBody]LoginRequest request)
{
var user = _userService.Login(request);
if (user == null)
return new ApiResponse<UserIdentity>(ResponseType.Fail, "用户不存在");
var roles = _roleService.GetUserRole(user.UserID);
if (roles != null && roles.Count > 0)
user.DefalutUrl = roles.First().DefaultUrl;
if (string.IsNullOrEmpty(user.Token))
user.Token = Guid.NewGuid().ToString("N");
......
......@@ -24,7 +24,7 @@ public HospitalController(HospitalService hospitalService)
[HttpPost]
public ApiResponse<List<HospitalResponse>> GetHospitalList([FromBody]ApiRequest request)
{
var hospitalList = _hospitalService.GetUserHopital(request.ActiveUId);
var hospitalList = _hospitalService.GetUserHopital(request.ActiveUID);
return new ApiResponse<List<HospitalResponse>>(ResponseType.OK, "ok", hospitalList);
}
......
using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;
using Newtonsoft.Json.Linq;
using Performance.DtoModels;
using Performance.DtoModels.AppSettings;
using Performance.Infrastructure;
using Performance.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Performance.Api.Controllers
{
[Route("api/[controller]")]
public class MenuController : Controller
{
private MenuService _menuService;
public MenuController(MenuService menuService)
{
_menuService = menuService;
}
/// <summary>
/// 设置用户管辖医院
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("menulist")]
[HttpPost]
public ApiResponse MenuList([FromBody]ApiRequest request)
{
var menuList = _menuService.GetMenuList(request.ActiveUID);
return new ApiResponse(ResponseType.OK, menuList);
}
}
}
......@@ -12,6 +12,6 @@ public class ApiRequest
public string Version { get; set; }
public string Device { get; set; }
public string AppName { get; set; }
public int ActiveUId { get; set; }
public int ActiveUID { get; set; }
}
}
......@@ -25,10 +25,18 @@ public AutoMapperConfigs()
.ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.HosID));
CreateMap<sys_hospital, HospitalResponse>()
.ForMember(dest => dest.HosID, opt => opt.MapFrom(src => src.ID));
// 医院新增/修改 请求
CreateMap<HospitalRequest, sys_hospital>();
CreateMap<sys_hospital, HospitalRequest>();
// 角色 响应
CreateMap<RoleResponse, sys_role>()
.ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.RoleID));
CreateMap<sys_role, RoleResponse>()
.ForMember(dest => dest.RoleID, opt => opt.MapFrom(src => src.ID));
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class RoleResponse
{
public int RoleID { get; set; }
/// <summary>
/// 角色名称
/// </summary>
public string RoleName { get; set; }
/// <summary>
///
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 菜单状态 1 启用 2禁用
/// </summary>
public int States { get; set; }
}
}
......@@ -15,5 +15,6 @@ public class UserIdentity
public string Mail { get; set; }
public string Mobile { get; set; }
public int States { get; set; }
public string DefalutUrl { get; set; }
}
}
......@@ -15,5 +15,9 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<sys_hospital> Sys_Hospital { get; set; }
public virtual DbSet<sys_sms> Sys_Sms { get; set; }
public virtual DbSet<sys_user_hospital> Sys_User_Hospital { get; set; }
public virtual DbSet<sys_menu> Sys_Menu { get; set; }
public virtual DbSet<sys_role> Sys_Role { get; set; }
public virtual DbSet<sys_role_menu> Sys_Role_Menu { get; set; }
public virtual DbSet<sys_user_role> Sys_User_Role { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_menu.cs">
// * FileName: sys_menu.cs
// * history : 2019-03-05 16:57:57
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
namespace Performance.EntityModels
{
/// <summary>
/// sys_menu Entity Model
/// </summary>
public class sys_menu
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// 父级菜单ID
/// </summary>
public int ParentID { get; set; }
/// <summary>
/// 菜单名称
/// </summary>
public string MenuName { get; set; }
/// <summary>
/// 菜单Url
/// </summary>
public string MenuUrl { get; set; }
/// <summary>
/// 菜单图标
/// </summary>
public string MenuIcon { get; set; }
/// <summary>
/// 菜单类型 1 首页中出现 2 医院页中出现
/// </summary>
public int MenuType { get; set; }
/// <summary>
/// 菜单状态 1 启用 2禁用
/// </summary>
public int States { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_role.cs">
// * FileName: sys_role.cs
// * history : 2019-03-05 16:57:57
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
namespace Performance.EntityModels
{
/// <summary>
/// sys_role Entity Model
/// </summary>
public class sys_role
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// 角色名称
/// </summary>
public string RoleName { get; set; }
/// <summary>
///
/// </summary>
public string Remark { get; set; }
/// <summary>
///
/// </summary>
public string DefaultUrl { get; set; }
/// <summary>
/// 菜单状态 1 启用 2禁用
/// </summary>
public int States { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_role_menu.cs">
// * FileName: sys_role_menu.cs
// * history : 2019-03-05 16:57:57
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
namespace Performance.EntityModels
{
/// <summary>
/// sys_role_menu Entity Model
/// </summary>
public class sys_role_menu
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> RuleID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> MenuID { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_user_role.cs">
// * FileName: sys_user_role.cs
// * history : 2019-03-05 16:57:57
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
namespace Performance.EntityModels
{
/// <summary>
/// sys_user_role Entity Model
/// </summary>
public class sys_user_role
{
/// <summary>
///
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> RoleID { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> UserID { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_menu.cs">
// * FileName: sys_menu.cs
// * history : Created by T4 2019-03-05 16:58:02
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Performance.Repository
{
/// <summary>
/// sys_menu Repository
/// </summary>
public class PerforMenuRepository : PerforRepository<sys_menu>
{
public PerforMenuRepository(PerformanceDbContext context) : base(context)
{
}
public List<sys_menu> GetMenuList(int userid)
{
string sql = @"select sm.* from sys_user_role sur join sys_role_menu srm on sur.roleid = srm.roleid join sys_menu sm on srm.menuid = sm.id where sur.userid=@userid";
return DapperQuery(sql, new { userid }).ToList();
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_role.cs">
// * FileName: sys_role.cs
// * history : Created by T4 2019-03-05 16:58:02
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
using System;
namespace Performance.Repository
{
/// <summary>
/// sys_role Repository
/// </summary>
public class PerforRoleRepository : PerforRepository<sys_role>
{
public PerforRoleRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_role_menu.cs">
// * FileName: sys_role_menu.cs
// * history : Created by T4 2019-03-05 16:58:02
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
using System;
namespace Performance.Repository
{
/// <summary>
/// sys_role_menu Repository
/// </summary>
public class PerforRolemenuRepository : PerforRepository<sys_role_menu>
{
public PerforRolemenuRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" sys_user_role.cs">
// * FileName: sys_user_role.cs
// * history : Created by T4 2019-03-05 16:58:02
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
using System;
namespace Performance.Repository
{
/// <summary>
/// sys_user_role Repository
/// </summary>
public class PerforUserroleRepository : PerforRepository<sys_user_role>
{
public PerforUserroleRepository(PerformanceDbContext context) : base(context)
{
}
}
}
......@@ -32,7 +32,7 @@ public List<HospitalResponse> GetUserHopital(int userid)
var joinList = _joinRepository.GetEntities(t => t.UserID == userid).ToList();
if (joinList == null && joinList.Count == 0)
throw new PerformanceException($"userid:{userid} 没有下属医院");
return null;
var hosList = _hospitalRepository.GetEntities(t => joinList.Select(j => j.HosID).Contains(t.ID)).ToList();
......@@ -50,7 +50,7 @@ public bool Insert(HospitalRequest request)
throw new PerformanceException("医院名称重复");
var hospital = Mapper.Map<sys_hospital>(request);
hospital.CreateDate = DateTime.Now;
hospital.CreateUser = request.ActiveUId;
hospital.CreateUser = request.ActiveUID;
hospital.States = (int)States.Enabled;
return _hospitalRepository.Add(hospital);
......
using Performance.EntityModels;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.Services
{
public class MenuService : IAutoInjection
{
private PerforMenuRepository _menuRepository;
public MenuService(PerforMenuRepository menuRepository)
{
_menuRepository = menuRepository;
}
public List<sys_menu> GetMenuList(int userid)
{
return _menuRepository.GetMenuList(userid);
}
}
}
using AutoMapper;
using Performance.DtoModels;
using Performance.EntityModels;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Performance.Services
{
public class RoleService : IAutoInjection
{
private PerforRoleRepository _roleRepository;
private PerforUserroleRepository _userroleRepository;
public RoleService(PerforRoleRepository roleRepository,
PerforUserroleRepository userroleRepository)
{
this._roleRepository = roleRepository;
this._userroleRepository = userroleRepository;
}
/// <summary>
/// 获取用户角色
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public List<sys_role> GetUserRole(int userid)
{
if (userid <= 0)
throw new PerformanceException($"userid:{userid} 错误");
var joinList = _userroleRepository.GetEntities(t => t.UserID == userid).ToList();
if (joinList == null && joinList.Count == 0)
return null;
return _roleRepository.GetEntities(t => joinList.Select(j => j.RoleID).Contains(t.ID)).ToList();
}
}
}
......@@ -77,7 +77,7 @@ public bool Insert(UserRequest request)
throw new PerformanceException("手机号重复");
var user = Mapper.Map<sys_user>(request);
user.CreateDate = DateTime.Now;
user.CreateUser = request.ActiveUId;
user.CreateUser = request.ActiveUID;
user.States = (int)States.Enabled;
return _userRepository.Add(user);
......
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