using JCSoft.WX.Framework.Api; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Common.Wechat; using Common; using System.Data; using Common.Model; using ZcPeng.PublicLibrary; using CoreEntity.Entity; using CoreEntity.DAL; using System.Collections.Concurrent; using Newtonsoft.Json.Converters; using Newtonsoft.Json; using System.Data.SqlClient; using Microsoft.Extensions.Primitives; using Microsoft.Extensions.Caching.Memory; using Jwt; using PublicLibrary.Model; using Newtonsoft.Json.Linq; using SupplierWeb.Codes.mvc; using SupplierWeb.Codes.Auth; using Common.Config; namespace SupplierWeb.Controllers { [Route("web/org")] public class OrgController : BaseController { public OrgController(IMemoryCache cache, IApiClient client) : base(cache, client) { } private ConcurrentDictionary roleMap = new ConcurrentDictionary(); public class TempTableResult { public int id { get; set; } public string permissionName { get; set; } public string permissionUrl { get; set; } public int roleId { get; set; } public int checkedValue { get; set; } public string permissionRule { get; set; } public string permissionRuleType { get; set; } public int relateId { get; set; } public string AuthType { get; set; } } public class TreeNode { public string parentValue { get; set; } public string label { get; set; } public int value { get; set; } } public class TempQuery { public int[] data { get; set; } public int roleId { get; set; } } public class SortContent { public Object content { get; set; }//权限内容 public string code { get; set; }//权限id public int sort { get; set; }//权限序号 } /// /// 获取组织机构列表 /// /// /// /// /// /// /// /// /// [AuthPermission] [HttpPost, Route("index")] public JsonResult Indexp(QueryFilter[] filters, Int32 pageIndex, Int32 pageSize, string sortField, Int32 sortDirection, string[] sumFields, [FromBody]dynamic data) { if (data != null) { filters = data.filters.ToObject(); pageIndex = data.pageIndex; pageSize = data.pageSize; sortField = data.sortField; sortDirection = data.sortDirection; sumFields = data.sumFields.ToObject(); } #region 获取机构列表 DataTable dt = new DataTable(); string result; IList permss = new List(0); List parameters = new List(); string filterstr = QueryFilter.getFilterSqlParam(filters, out parameters, new CM_Org(),"A."); string direct = " desc "; if (sortDirection != 1) { direct = " asc"; } int start = (pageIndex - 1) * pageSize; int end = (start + 1 + pageSize); string commandText0 = "select * from "; string commandText1 = "(" + "select A.*,row_number() over" + "( order by " + sortField + " " + direct + " ) as rownum from " + "CM_Org as A " + " where 1=1 " + //" and A.CreationPerson = '" + userids + "'" + filterstr + ")AAA "; string commandText2 = " where AAA.rownum>" + start + " and AAA.rownum<" + end; string commandText3 = commandText0 + commandText1 + commandText2;//-tanyang bool success = DataAccess.GetValues(commandText3, ref dt, parameters.ToArray(), out result); #endregion if (dt != null && dt.Rows.Count > 0) { // 把DataTable转换为IList permss = ModelConvertHelper.ConvertToModel(dt); #region 获取权限的角色列表,角色列表 ////角色列表 //IList roles = Roles(); //// 把DataTable转换为IList //if (roleMap.Count < roles.Count) //{ // foreach (Role role in roles) // { // roleMap.TryAdd(role.Id, role); // } //} //foreach (CM_Org perms in permss) //{ // string direct1 = " desc "; // dt = DataAccess.GetDataTable(Config.TablePrefix + "RoleRelatePermission", "Id", "*", "PermissionId=" + perms.Id+ " and IsDelete = 0 ", "", "Id" + direct1, 1, 100,out var msg); // // 把DataTable转换为IList // if (dt != null && dt.Rows.Count > 0) // { // IList permRelates = ModelConvertHelper.ConvertToModel(dt); // //List listRoles = new List(); // List superior_list = new List(0); // foreach (RoleRelatePermission permsr in permRelates) // { // //Role role; // //if (roleMap.TryGetValue(permsr.RoleId, out role)) // //{ // // listRoles.Add(role); // //} // superior_list.Add(permsr.RoleId); // } // //perms.RoleList = listRoles; // perms.Roleids = string.Join(",", superior_list.ToArray()); // } //} #endregion } string result1; long totalcount = DataAccess.GetRowCountDefine("select count(OrgId) from " + commandText1, parameters.ToArray(), out result1); IsoDateTimeConverter timejson = new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" }; //IList menus = Permission.Convert(permss); var jsonData = JsonConvert.SerializeObject(permss, timejson); return Json(new { items = JsonConvert.DeserializeObject(jsonData), sum = new { }, totalCount = totalcount }); } /// /// 组织机构添加 /// /// /// /// /// /// /// /// /// /// /// [AuthPermission] [HttpPost, Route("add")] public JsonResult Addp( String OrgId,String ParentOrgId,String UserId, string OrgCode, string OrgName, string FullCode, Int32 FullName,String RoleId,[FromBody]dynamic data ) { if (data != null) { OrgId = data.id; ParentOrgId = data.ParentOrgId; UserId = data.UserId; OrgCode = data.OrgCode; OrgName = data.OrgName; FullCode = data.FullCode; FullName = data.FullName; RoleId = data.RoleId; } #region 添加机构节点 String uuid = System.Guid.NewGuid().ToString("N"); string commandText = "INSERT INTO CM_Org (ParentOrgId," + "OrgCode,OrgName,FullCode,FullName,OrgId)" + " VALUES (@ParentOrgId,@OrgCode,@OrgName,@FullCode,@FullName,'"+ uuid + "')"; //String orgRoleId = System.Guid.NewGuid().ToString("N"); //string commandText1 = "INSERT INTO CM_OrgRole (OrgRoleId,OrgId,RoleId)" + // " VALUES ('"+ orgRoleId + "','" + uuid + "','"+ RoleId +"')"; //准备参数 //List> orgRoles = new List>(); //orgRoles.Add(new List() { "OrgRoleId", orgRoleId }); //orgRoles.Add(new List() { "OrgId", uuid }); //orgRoles.Add(new List() { "RoleId", RoleId }); string result; //string result1; //准备参数 List> parameters = new List>(); parameters.Add(new List() { "ParentOrgId", ParentOrgId }); parameters.Add(new List() { "UserId", UserId }); parameters.Add(new List() { "OrgCode", OrgCode }); parameters.Add(new List() { "OrgName", OrgName }); parameters.Add(new List() { "FullCode", FullCode }); parameters.Add(new List() { "FullName", FullName}); //parameters.Add(new List() { "UserId", System.Guid.NewGuid().ToString("N")}); List parameters1 = DataAccess.ToParameters(parameters); int success = DataAccess.ExecuteCommand(commandText, parameters1, out result); //List orgRoles1 = DataAccess.ToParameters(orgRoles); //int success1 = DataAccess.ExecuteCommand(commandText1, orgRoles1, out result1); #endregion //#region 添加角色 //int id = BaseDAL.GetId(Config.TablePrefix + "Permission"); //RoleDAL.SaveRolesRelatePermission(id, RoleIdis); //#endregion return Json(new { //success = success,success1 success = success }); } /// /// 获取角色 /// /// [HttpGet, Route("roles")] public ActionResult Roles() { var permss = GetTopRoles(); IList