using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using CNet.Web.Api.Model.Request; using CNet.Main.Model; using CNet.Main.BLL; using CNet.Model; namespace CNet.Web.Api.Controllers { [Produces("application/json")] [Authorize] [Route("api/PubUser")] public class PubUserController : BaseController { private Pub_UserBLL bll = new Pub_UserBLL(); private V_Pubuser_DeptBLL userDeptBLL = new V_Pubuser_DeptBLL(); private Pub_UserroleBLL userRoleBLL = new Pub_UserroleBLL(); Pub_UserfunctionBLL userFunctionBLL = new Pub_UserfunctionBLL(); [HttpGet,Route("GetAccess")] public dynamic GetAccess() { // var userCode = User.Identity.Name; //var c = (a:1,b:2); //return ( // access: new List() { "super_admin", "admin" }, // avatar: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png", // name: "super_admin", // user_id:"1" // ); var user = new CNetUser(User); var userName = user.UserName; var userCode = user.UserCode; var access = user.Access; return new { access = access, avatar = "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png", name = userName, user_id = userCode }; } /// /// 获取用户分页 /// /// [Route("GetPage")] [HttpPost] public PageDateRes GetPage([FromBody]PageDataReq pageReq) { var whereStr = GetWhereStr(); if (whereStr=="-1") { return new PageDateRes() {code=ResCode.Error,msg="查询参数有误!",data=null }; } var users = userDeptBLL.GetPage(whereStr, (pageReq.field + " " + pageReq.order), pageReq.pageNum, pageReq.pageSize); // PageDateRes users = usersPage.MapTo,PageDateRes >(); var userCodes = string.Join("','", users.data.Select(p => p.UserCode)); List userRoles = userRoleBLL.GetList($"userCode in ('{userCodes}')"); users.data.ForEach(p => { p.RoleCodes = userRoles.Where(c => c.UserCode == p.UserCode).Select(d => d.RoleCode); }); return users; } private string GetWhereStr() { StringBuilder sb = new StringBuilder(" 1=1 "); sb.Append(" and StopFlag=0 "); var query = this.HttpContext.GetWhereStr(); if (query=="-1") { return query; } sb.AppendFormat(" and {0} ", query); return sb.ToString(); } /// /// 添加用户 /// /// [Route("Add")] [HttpPost] public DataRes Add([FromBody]V_Pubuser_Dept model) { DataRes res = new DataRes() { code = ResCode.Success, data = true }; var oldUser = bll.GetUserByUserName(model.UserName); if (oldUser!= null) { res.code = ResCode.NoValidate; res.data = false; res.msg ="用户名已存在,请修改!"; return res; } model.Crdt = model.Lmdt = DateTime.Now; var user = new CNetUser(User); model.Crid = model.Lmid = $"{user.UserCode}-{user.UserName}"; var r = bll.Add(model); if (!r.Item1) { res.code = ResCode.Error; res.data = false; res.msg = r.Item2; } return res; } /// /// 编辑用户 /// /// [Route("Edit")] [HttpPost] public DataRes Edit([FromBody]V_Pubuser_Dept model) { DataRes res = new DataRes() { code = ResCode.Success, data = true }; var oldUser = bll.GetUserByUserName(model.UserName); if (oldUser != null&&oldUser.Id!=model.Id) { res.code = ResCode.NoValidate; res.data = false; res.msg = "用户名已存在,请修改!"; return res; } model.Lmdt = DateTime.Now; var user = new CNetUser(User); model.Lmid = $"{user.UserCode}-{user.UserName}"; var r = bll.Edit(model); if (!r.Item1) { res.code = ResCode.Error; res.data = false; res.msg = r.Item2; } return res; } /// /// 删除用户 /// /// [Route("Delete/{id}")] [HttpPost] public DataRes Delete(long id) { DataRes res = new DataRes() { code = ResCode.Success, data = true }; var r = bll.ChangeSotpStatus($"id={id}", null); if (!r) { res.code = ResCode.Error; res.data = false; res.msg = "删除失败"; } return res; } /// /// 获取用户权限 /// /// [Route("GetFunctions/{code}")] [HttpPost] public DataRes> GetFunctions(string code) { DataRes> res = new DataRes>() { code = ResCode.Success }; var list = userFunctionBLL.GetList($"userCode='{code}'"); res.data = list.Select(p=>p.FunctionCode); return res; } /// /// 保存用户权限 /// /// [Route("SaveFunctions/{code}")] [HttpPost] public DataRes SaveFunctions(string code, [FromBody]List functions) { DataRes res = new DataRes() { code = ResCode.Success, data = true }; List< Pub_Userfunction> list = new List< Pub_Userfunction>(); functions.ForEach(p => { list.Add(new Pub_Userfunction() { FunctionCode = p,UserCode = code }); }); var r = bll.SaveFunctions(code, list); if (!r.Item1) { res.code = ResCode.Error; res.data = false; res.msg = "保存失败"; } return res; } /// /// 注销登录 /// /// [HttpPost, Route("Logout")] public dynamic Logout() { //User = null; DataRes res = new DataRes() { code = ResCode.Success, data = true }; return res; } } }