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/Mem_Terminaldoc")] public class Mem_TerminaldocController : BaseController { public Mem_TerminaldocController(IMemoryCache cache, IApiClient client) : base(cache, client) { } private ConcurrentDictionary Mem_TerminaldocMap = new ConcurrentDictionary(); /// /// 获取平台终端列表 /// /// /// /// /// /// /// /// /// [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 Mem_Terminaldoc(), "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 A.TerminalKey " + direct + " ) as rownum from " + "Mem_Terminaldoc as A " + " where 1=1 " + filterstr + ")AAA "; string commandText2 = " where AAA.rownum>" + start + " and AAA.rownum<" + end + " ORDER BY AAA.TerminalKey desc"; string commandText3 = commandText0 + commandText1 + commandText2; 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); } string result1; long totalcount = DataAccess.GetRowCountDefine("select count(TerminalKey) 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 Add( Int32 TerminalKey, string TerminalName, string TerminalDesc, Int32 ParentTerminalKey, Int32 TerminalCode,int HasLowLevel, Int32 SourceTerminalCode, string SourceTerminalKey, [FromBody]dynamic data ) { if (data != null) { if (data.TerminalKey != null) { TerminalKey = data.TerminalKey; } else { TerminalKey = 0; } if (data.TerminalName != null) { TerminalName = data.TerminalName; } else { TerminalName = ""; } if (data.TerminalDesc != null) { TerminalDesc = data.TerminalDesc; } else { TerminalDesc = ""; } if (data.ParentTerminalKey != null) { ParentTerminalKey = data.ParentTerminalKey; } else { ParentTerminalKey = 0; } if (data.TerminalCode != null) { TerminalCode = data.TerminalCode; } else { TerminalCode = 0; } if (data.HasLowLevel != null) { HasLowLevel = data.HasLowLevel; } else { HasLowLevel =0; } if (data.SourceTerminalCode != null) { SourceTerminalCode = data.SourceTerminalCode; } else { SourceTerminalCode = 0; } if (data.SourceTerminalKey != null) { SourceTerminalKey = data.SourceTerminalKey; } else { SourceTerminalKey = ""; } } #region 添加机构节点 //String uuid = System.Guid.NewGuid().ToString("N"); int newid =Convert.ToInt32(ReturnMaxID("TerminalKey", "Mem_Terminaldoc"))+1; string commandText = "INSERT INTO Mem_Terminaldoc (TerminalKey," + "TerminalName,TerminalDesc,ParentTerminalKey,TerminalCode,HasLowLevel," + "SourceTerminalCode,SourceTerminalKey)" + " VALUES ('"+ newid + "',@TerminalName,@TerminalDesc,@ParentTerminalKey,@TerminalCode," + "@HasLowLevel,@SourceTerminalCode,@SourceTerminalKey)"; string result; //string result1; //准备参数 List> parameters = new List>(); //parameters.Add(new List() { "TerminalKey", TerminalKey }); parameters.Add(new List() { "TerminalName", TerminalName }); parameters.Add(new List() { "TerminalDesc", TerminalDesc }); parameters.Add(new List() { "ParentTerminalKey", ParentTerminalKey }); parameters.Add(new List() { "TerminalCode", TerminalCode }); parameters.Add(new List() { "HasLowLevel", HasLowLevel }); parameters.Add(new List() { "SourceTerminalCode", SourceTerminalCode }); parameters.Add(new List() { "SourceTerminalKey", SourceTerminalKey }); List parameters1 = DataAccess.ToParameters(parameters); int success = DataAccess.ExecuteCommand(commandText, parameters1, out result); #endregion return Json(new { //success = success,success1 success = success }); } /// /// 平台终端列表修改 /// /// /// /// /// /// /// /// /// /// /// [AuthPermission] [HttpPost, Route("edit")] public JsonResult edit( Int32 TerminalKey, string TerminalName, string TerminalDesc, Int32 ParentTerminalKey, Int32 TerminalCode, int HasLowLevel, Int32 SourceTerminalCode, string SourceTerminalKey, [FromBody]dynamic data ) { if (data != null) { if (data.TerminalKey != null) { TerminalKey = data.TerminalKey; } else { TerminalKey = 0; } if (data.TerminalName != null) { TerminalName = data.TerminalName; } else { TerminalName = ""; } if (data.TerminalDesc != null) { TerminalDesc = data.TerminalDesc; } else { TerminalDesc = ""; } if (data.ParentTerminalKey != null) { ParentTerminalKey = data.ParentTerminalKey; } else { ParentTerminalKey = 0; } if (data.TerminalCode != null) { TerminalCode = data.TerminalCode; } else { TerminalCode = 0; } if (data.HasLowLevel != null) { HasLowLevel = data.HasLowLevel; } else { HasLowLevel = 0; } if (data.SourceTerminalCode != null) { SourceTerminalCode = data.SourceTerminalCode; } else { SourceTerminalCode = 0; } if (data.SourceTerminalKey != null) { SourceTerminalKey = data.SourceTerminalKey; } else { SourceTerminalKey = ""; } } //string[] RoleIdss = RoleId.Split(","); //int[] RoleIdis = Array.ConvertAll(RoleIdss, s => Convert.ToInt32(s)); #region 编辑用户 string commandText = "UPDATE Mem_Terminaldoc " + " SET TerminalName = @TerminalName,"; commandText += " TerminalDesc = @TerminalDesc" + ",ParentTerminalKey = @ParentTerminalKey" + " ,TerminalCode = @TerminalCode" + ",HasLowLevel = @HasLowLevel" + ",SourceTerminalCode = @SourceTerminalCode" + ",SourceTerminalKey = @SourceTerminalKey" + " WHERE TerminalKey= @TerminalKey"; string result; //准备参数 List> parameters = new List>(); parameters.Add(new List() { "TerminalKey", TerminalKey }); parameters.Add(new List() { "TerminalName", TerminalName }); parameters.Add(new List() { "TerminalDesc", TerminalDesc }); parameters.Add(new List() { "ParentTerminalKey", ParentTerminalKey }); parameters.Add(new List() { "TerminalCode", TerminalCode }); parameters.Add(new List() { "HasLowLevel", HasLowLevel }); parameters.Add(new List() { "SourceTerminalCode", SourceTerminalCode }); parameters.Add(new List() { "SourceTerminalKey", SourceTerminalKey }); List parameters1 = DataAccess.ToParameters(parameters); int success = DataAccess.ExecuteCommand(commandText, parameters1, out result); #endregion #region 角色 //RoleDAL.SaveRolesRelatePermission(OrgId, RoleIdis); #endregion return Json(new { success = success, result = result, }); } /// /// 组织机构删除 /// /// /// [AuthPermission] [HttpPost, Route("delete")] public ActionResult Delete(string id) { //SQL语句 string commandText = "DELETE FROM Mem_Terminaldoc WHERE TerminalKey = @id"; //string commandText1 = "DELETE FROM Mem_TerminaldocRole WHERE TerminalKey = @id"; //准备参数 List> parameters = new List>(); parameters.Add(new List() { "id", id }); string result = ""; //string result1 = ""; //参数转换 List parameters1 = DataAccess.ToParameters(parameters); //执行并返回结果 int success = DataAccess.ExecuteCommand(commandText, parameters1, out result); //int success1 = DataAccess.ExecuteCommand(commandText1, parameters1, out result1); //如果Mem_Terminaldoc和Mem_TerminaldocRole表记录都删除成功 int success2 = 0; if (success > 0 ) { success2 = success;//此处应该是success2 = success+success1,由于不清楚前端是怎么接收处理的,暂且这么处理。 } else { success2 = -1; } return Content("{success:" + success2 + "}"); } /// /// 获取最大的id /// /// /// /// public object ReturnMaxID(string field,string tablename) { string result; List parameters = new List(); bool boolen = DataAccess.GetOneValue("select max("+ field + ") from "+ tablename, parameters.ToArray(), out object objValue, out result); if (boolen == true) { return objValue; } else { return result; } } [HttpGet] [Route("getterms")] public ActionResult getTerms() { IList