using System; using System.Collections.Generic; using System.Linq; using Edu.Cache.User; using Edu.Common.API; using Edu.Common.Plugin; using Edu.Model.Public; using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.System; using Edu.Module.Public; using Edu.Module.System; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; namespace Edu.WebApi.Controllers.Public { /// /// 系统公用接口 /// [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiController] [EnableCors("AllowCors")] public class PublicController : BaseController { /// /// 省市区处理类对象 /// private readonly DestinationModule destinationModule = new DestinationModule(); /// /// 菜单处理类对象 /// private readonly MenuModule menuModule = new MenuModule(); /// /// 角色处理类对象 /// private readonly RoleModule roleModule = AOP.AOPHelper.CreateAOPObject(); /// /// 公共处理类对象 /// private readonly PublicModule publicModule = new PublicModule(); /// /// 班级基础设置处理类对象 /// private readonly ClassConfigModule classConfigModule = new ClassConfigModule(); #region 省市区 /// /// 获取省市区树形列表 /// /// [HttpPost] public ApiResult GetAreaTree() { var list = destinationModule.GetAreaTreeModule(); return ApiResult.Success(data: list); } /// /// 获取省市区列表 /// /// [HttpPost] public ApiResult GetAreaList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = destinationModule.GetAreaListModule(query); return ApiResult.Success(data: list); } #endregion #region 菜单管理 /// /// 获取菜单分页列表 /// /// [HttpPost] public ApiResult GetMenuPageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = menuModule.GetMenuPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 获取菜单列表 /// /// [HttpPost] public ApiResult GetMenuList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = menuModule.GetMenuListModule(query); return ApiResult.Success(data: list); } /// /// 添加修改菜单 /// /// [HttpPost] public ApiResult SetMenu() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; bool flag = menuModule.SetMenuModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取菜单实体 /// /// [HttpPost] public ApiResult GetMenu() { var MenuId = base.ParmJObj.GetInt("MenuId", 0); var extModel = menuModule.GetMenuModule(MenuId); return ApiResult.Success(data: extModel); } /// /// 修改菜单状态 /// /// [HttpPost] public ApiResult SetMenuStatus() { var MenuId = base.ParmJObj.GetInt("MenuId", 0); int Status = base.ParmJObj.GetInt("Status", 0); var flag = menuModule.SetMenuStatusModule(MenuId, Status); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 菜单功能权限 /// /// 获取菜单功能权限分页列表 /// /// [HttpPost] public ApiResult GetMenuFunctionPage() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = menuModule.GetMenuFunctionPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改菜单功能权限 /// /// [HttpPost] public ApiResult SetMenuFunction() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.Status = Common.Enum.DateStateEnum.Normal; bool flag = menuModule.SetMenuFunctionModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取菜单功能权限实体 /// /// [HttpPost] public ApiResult GetMenuFunction() { var Id = base.ParmJObj.GetInt("Id", 0); var extModel = menuModule.GetMenuFunctionModule(Id); return ApiResult.Success(data: extModel); } /// /// 修改菜单功能权限状态 /// /// [HttpPost] public ApiResult SetMenuFunctionStatus() { var Id = base.ParmJObj.GetInt("Id", 0); int Status = base.ParmJObj.GetInt("Status", 0); var flag = menuModule.SetMenuFunctionStatusModule(Id, Status); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 角色管理 /// /// 获取角色分页列表 /// /// [HttpPost] public ApiResult GetRolePageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = roleModule.GetRolePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 获取角色列表 /// /// [HttpPost] public ApiResult GetRoleList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = roleModule.GetRoleListModule(query); return ApiResult.Success(data: list); } /// /// 添加修改角色 /// /// [HttpPost] public ApiResult SetRole() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateDate = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.Group_Id = base.UserInfo.Group_Id; extModel.School_Id = base.UserInfo.School_Id; bool flag = roleModule.SetRoleModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取角色实体 /// /// [HttpPost] public ApiResult GetRole() { var RoleId = base.ParmJObj.GetInt("RoleId", 0); var extModel = roleModule.GetRoleModule(RoleId); return ApiResult.Success(data: extModel); } /// /// 权限预览 /// /// [HttpPost] public ApiResult ViewRolePermission() { var RoleId = base.ParmJObj.GetInt("RoleId", 0); var extModel = roleModule.ViewRolePermissionModule(RoleId); return ApiResult.Success(data: extModel); } /// /// 修改角色状态 /// /// [HttpPost] public ApiResult SetRoleStatus() { var RoleId = base.ParmJObj.GetInt("RoleId", 0); var Status = base.ParmJObj.GetInt("Status", 0); var flag = roleModule.SetRoleStatusModule(RoleId, Status); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 上传设置 public ApiResult GetFileStoreList() { var query = new RB_File_Store { Group_Id = base.UserInfo.Group_Id, //School_Id = base.UserInfo.School_Id }; var list = publicModule.GetFileStoreList(query); return ApiResult.Success("获取成功", list); } /// /// 新增/修改上传设置 /// /// public ApiResult AddOrUpdateFileStore() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; if (query == null) { return ApiResult.Failed("请传入上传设置信息"); } else { if ((int)query.StoreType == 0) { return ApiResult.Failed("请选择存储位置"); } if (query.ID == 0) { query.CreateDate = System.DateTime.Now; } query.UpdateDate = System.DateTime.Now; bool result = publicModule.AddOrUpdateFileStore(query); if (result) { return ApiResult.Success("上传设置保存成功"); } else { return ApiResult.Failed("上传设置保存失败"); } } } /// /// 获取上传信息的详情 /// /// public ApiResult GetFileStoreDetail() { var query = new RB_File_Store { Group_Id = base.UserInfo.Group_Id, School_Id = base.UserInfo.School_Id }; var model = publicModule.GetFileStoreList(query).FirstOrDefault(); if (model == null) { model = new RB_File_Store(); } return ApiResult.Success("获取成功", model); } /// /// 获取触发事件枚举 /// /// [HttpPost] public ApiResult GetStoreTypeEnumList() { int type = base.ParmJObj.GetInt("Type", 0); var list = EnumHelper.EnumToList(typeof(Common.Enum.Public.StoreTypeEnum)); if (type == 1) { return ApiResult.Success("", list.Where(x => x.Id != 3)); } else { return ApiResult.Success("", list); } } /// /// 获取默认上传信息的详情 /// /// public ApiResult GetDefaultFileStore() { var query = new RB_File_Store { Group_Id = base.UserInfo.Group_Id, School_Id = base.UserInfo.School_Id }; var model = publicModule.GetFileStoreList(query).Where(x => x.IsDefault == 1).FirstOrDefault(); if (model == null) { model = new RB_File_Store(); } return ApiResult.Success("获取成功", model); } #endregion #region 角色权限 /// /// 获取角色权限 /// /// [HttpPost] public ApiResult GetRolePermission() { var roleId = base.ParmJObj.GetInt("RoleId"); var list = roleModule.GetRolePermissionModule(roleId); return ApiResult.Success(data: list); } /// /// 保存角色权限 /// /// public ApiResult SetRolePermission() { var roleMenu = base.ParmJObj.GetStringValue("roleMenu"); var roleFunction = base.ParmJObj.GetStringValue("roleFunction"); var rolePermissionList = Common.Plugin.JsonHelper.DeserializeObject>(roleMenu); var roleFunctionList = Common.Plugin.JsonHelper.DeserializeObject>(roleFunction); bool flag = roleModule.SetRolePermissionModule(rolePermissionList, roleFunctionList); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 班级设置 /// /// 获取班级基础设置 /// /// [HttpPost] public ApiResult GetClassConfig() { var query = new RB_Class_Config_ViewModel() { Group_Id=base.UserInfo.Group_Id, ConfigId=base.ParmJObj.GetInt("ConfigId") }; var extModel = classConfigModule.GetClassConfigModule(query); return ApiResult.Success(data: extModel); } /// /// 新增修改班级基础设置 /// /// [HttpPost] public ApiResult SetClassConfig() { var extModel = new RB_Class_Config_ViewModel() { ConfigId = base.ParmJObj.GetInt("ConfigId"), BasicHourFee=base.ParmJObj.GetDecimal("BasicHourFee"), BasicClassNum=base.ParmJObj.GetInt("BasicClassNum"), BasicMinutes=base.ParmJObj.GetInt("BasicMinutes"), BasicHours=base.ParmJObj.GetInt("BasicHours"), }; extModel.Group_Id = base.UserInfo.Group_Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; var flag = classConfigModule.SetClassConfigModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取班级类型费用分页列表 /// /// [HttpPost] public ApiResult GetClassTypePageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = classConfigModule.GetClassTypePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 获取班级类型列表 /// /// [HttpPost] public ApiResult GetClassTypeList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var list = classConfigModule.GetClassTypeListModule(query); return ApiResult.Success(data: list); } /// /// 添加修改班级费用类型 /// /// [HttpPost] public ApiResult SetClassType() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.Group_Id = base.UserInfo.Group_Id; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; bool flag = classConfigModule.SetClassTypeModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 根据编号获取班级费用类型实体 /// /// [HttpPost] public ApiResult GetClassTypeModule() { var CTypeId = base.ParmJObj.GetInt("CTypeId", 0); var extModel = classConfigModule.GetClassTypeModule(CTypeId); return ApiResult.Success(data: extModel); } /// /// 修改班级费用类型状态 /// /// [HttpPost] public ApiResult RemoveClassType() { var CTypeId = base.ParmJObj.GetInt("CTypeId", 0); var flag = classConfigModule.RemoveClassTypeModule(CTypeId); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion } }