using System.Data; using System.Data.SqlClient; using System.Dynamic; using System.Text; using Gs.Sys.Models; using Gs.Toolbox; using Gs.Toolbox.ApiCore.Abstract.Mvc; using Gs.Toolbox.ApiCore.Common.Mvc; using Gs.Toolbox.ApiCore.Group; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; using static Gs.Toolbox.UtilityHelper; namespace Gs.Sys.Services { [ApiGroup(ApiGroupNames.Sys)] public class MesSysPageviewManager : Repository, IRomteService { private readonly IHttpContextAccessor _http; private readonly string _userCode, _userGuid, _orgFids; public MesSysPageviewManager(IHttpContextAccessor httpContextAccessor) { _http = httpContextAccessor; (_userCode, _userGuid, _orgFids) = UtilityHelper.GetUserGuidAndOrgGuid(_http); } /// /// 查询列表,支持分页 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> GetListPage(PageQuery model) { var currentPage = model.currentPage; var everyPageSize = model.everyPageSize; var sortName = string.IsNullOrEmpty(model.sortName) ? "a.PAGE_GROUP" : model.sortName; var keyWhere = model.keyWhere; string keyType = model.keyType; var sbSql = new StringBuilder(); sbSql.Append("select * from "); sbSql.Append("( "); sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* "); sbSql.Append(",(select top 1 f.[url_Path] from [dbo].[MES_FILE] f where f.parent_Guid=a.guid order by create_date desc) as icoImg2 "); if (string.IsNullOrEmpty(keyType)) { sbSql.Append(",cast(0 as bit) as chkInt"); } else sbSql.Append(",cast( (select count(1) from SYS_USER_BIND b where b.userGuid='" + keyType+ "' and b.aboutGuid=a.guid) as bit) as chkInt "); sbSql.Append(" from MES_SYS_PAGEVIEW a "); sbSql.Append(keyWhere); sbSql.Append(") as T "); sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize); sbSql.Append(" order by rowindex asc "); sbSql.Append(" select count(1) as intTotal from MES_SYS_PAGEVIEW a where 1=1 "); sbSql.Append(keyWhere); var dset = new DataSet(); try { dset = DbHelperSQL.Query(sbSql.ToString()); } catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message); return ReturnDto>.QuickReturn(default(PageList), ReturnCode.Exception, "读取失败"); } var _pglist = new PageList { total = 0, everyPageSize = 0, pages = 0, list = new List() }; if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) //有数据 { var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize; _pglist.total = intTotal; _pglist.everyPageSize = everyPageSize; _pglist.pages = pages; var _dy = dset.Tables[0].TableToDynamicList(); _pglist.list = _dy; } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// 增加 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto EditModel([FromBody] MesSysPageview model) { var _bl = false; try { if (!CheckGuid(model.Guid)) { model.Guid = Guid.NewGuid(); _bl = base.Insert(model); } else { _bl = Db.Updateable(model).IgnoreColumns(true) .ExecuteCommand() > 0 ? true : false; } } catch (Exception ex) { LogHelper.Debug(ToString(), "EditModel error:" + ex.Message); return ReturnDto.QuickReturn("", ReturnCode.Exception, ex.Message); } if (_bl) return ReturnDto.QuickReturn(model.Guid.ToString(), ReturnCode.Success, "操作成功!"); return ReturnDto.QuickReturn("", ReturnCode.Exception, "增加失败,请重试!"); } /// /// 删除实体,支持批量删除 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto DeleteModel([FromBody] JArray guidList) { var intArray = guidList.ToObject(); int? rtnInt = (int)ReturnCode.Default; rtnInt = base.DeleteById(intArray) ? guidList.Count : 0; if (rtnInt > 0) return ReturnDto.QuickReturn(rtnInt, ReturnCode.Success, "操作成功,共删除" + rtnInt + "条数据!"); return ReturnDto.QuickReturn(rtnInt, ReturnCode.Exception, "删除失败,请重试!"); } /// /// 读取 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto GetModel([FromBody] MesSysPageview model) { var m = base.GetById(model.Guid); if (m != null) return ReturnDto.QuickReturn(m, ReturnCode.Success, "读取成功!"); return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!"); } ///// ///// 读取列表,支持树 ///// ///// ///// //[RequestMethod(RequestMethods.POST)] //public ReturnDto> GetTreeLis([FromBody] string guid) //{ // var lst = new List(); // var sbSql = new StringBuilder(); // sbSql.Append("select * from MES_SYS_PAGEVIEW where PAGE_STATUS=1 order by page_idx asc"); // var dset = new DataSet(); // try // { // dset = DbHelperSQL.Query(sbSql.ToString()); // } // catch (Exception ex) // { // return ReturnDto>.QuickReturn(lst, ReturnCode.Default, "读取失败!"); // } // DataTable dtDistinct = (new DataView(dset.Tables[0])).ToTable(true, new string[] { "PAGE_GROUP" }); // foreach (DataRow DataRow in dtDistinct.Rows) // { // dynamic m = new System.Dynamic.ExpandoObject(); // m.groupName = string.IsNullOrEmpty(DataRow["PAGE_GROUP"].ToString()) ? "未分组" : DataRow["PAGE_GROUP"].ToString(); // m.child = new List(); // DataRow[] _dtRows = dset.Tables[0].Select("PAGE_GROUP='" + m.groupName.ToString() + "'"); // if (_dtRows.Length == 0) // continue; // foreach (DataRow _row in _dtRows) // { // m.child.Add(new MesSysPageview() // { // Guid = Guid.Parse(_row["guid"].ToString()), // PageView = _row["PAGE_VIEW"].ToString(), // Path = (_row["PATH"].ToString()), // Icoimg = _row["ICOIMG"].ToString(), // }); // } // lst.Add(m); // } // return ReturnDto>.QuickReturn(lst, ReturnCode.Success, "读取成功!"); //} /// /// 修改用户密码 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto SetUserBind([FromBody] dynamic mode) { string userGuid = mode.userGuid; string bindGuidslist = mode.bindGuidslist; string fType = mode.fType; dynamic m = new ExpandoObject(); m.outGuid = ""; m.outMsg = ""; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("[prc_pad_bind]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outGuid", SqlDbType.NVarChar, 100), new("@outMsg", SqlDbType.NVarChar, 300), new("@edtUserGuid", _userGuid), new("@userGuid", userGuid), new("@fType", fType), new("@bindGuids", bindGuidslist) }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); m.outOrderGuid = parameters[0].Value.ToString(); m.outMsg = parameters[1].Value.ToString(); } catch (Exception ex) { m.outOrderGuid = ""; m.outMsg = ex.Message; LogHelper.Debug(ToString(), "SetPass error:" + ex.Message); return ReturnDto.QuickReturn(m, ReturnCode.Default, "操作失败!"); } finally { conn.Close(); } } } return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!"); } /// /// 查询列表,支持分页,目前不用了,但不建议删除,可能会用到 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto> GetUserBindListPage(PageQuery model) { var currentPage = model.currentPage; var everyPageSize = model.everyPageSize; var sortName = string.IsNullOrEmpty(model.sortName) ? "a.fType" : model.sortName; var keyWhere = model.keyWhere; var sbSql = new StringBuilder(); sbSql.Append(" ; with cet as ("); sbSql.Append(" select bd.userGuid, bd.guid,pg.PAGE_VIEW as gnName, bd.fType,bd.createBy,bd.createDate from[MES_SYS_PAGEVIEW] pg right join[dbo].[SYS_USER_BIND] bd on(bd.aboutGuid= pg.guid and bd.fType= 'PDA页面') where bd.fType= 'PDA页面'"); sbSql.Append("),cet2 as ("); sbSql.Append(" select bd.userGuid, bd.guid, pg.depot_name + '(' + pg.depot_code + ')' as gnName, bd.fType,bd.createBy,bd.createDate from[dbo].[MES_DEPOTS] pg right join[dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '仓库' where bd.fType = '仓库'"); sbSql.Append("),cet3 as ("); sbSql.Append("select bd.userGuid, bd.guid,pg.ip as gnName, bd.fType,bd.createBy,bd.createDate from[dbo].[print_info] pg right join[dbo].[SYS_USER_BIND] bd on bd.aboutGuid = pg.guid and bd.fType = '打印机' where bd.fType = '打印机'"); sbSql.Append("),cet4 as ("); sbSql.Append("select guid, userGuid,gnName, fType,createBy,createDate from cet"); sbSql.Append(" union all"); sbSql.Append(" select guid,userGuid,gnName ,fType,createBy,createDate from cet2"); sbSql.Append(" union all"); sbSql.Append(" select guid,userGuid,gnName,fType,createBy,createDate from cet3"); sbSql.Append(")"); sbSql.Append(" select a.*,u.ACCOUNT as account,u.USER_NAME as USER_NAME into #tmp from cet4 a left join SYS_USER u on a.userGuid=u.GUID order by a.fType asc,a.gnName asc"); sbSql.Append(" select * from "); sbSql.Append("( "); sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* "); sbSql.Append(" from #tmp a where 1=1"); sbSql.Append(keyWhere); sbSql.Append(") as T "); sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize); sbSql.Append(" order by rowindex asc "); sbSql.Append(" select count(1) as intTotal from #tmp a where 1=1 "); sbSql.Append(keyWhere); sbSql.Append(" drop table #tmp"); LogHelper.Debug(ToString(), "GetListPage error:" + sbSql.ToString()); var dset = new DataSet(); try { dset = DbHelperSQL.Query(sbSql.ToString()); } catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message); return ReturnDto>.QuickReturn(default(PageList), ReturnCode.Exception, "读取失败"); } var _pglist = new PageList { total = 0, everyPageSize = 0, pages = 0, list = new List() }; if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) //有数据 { var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize; _pglist.total = intTotal; _pglist.everyPageSize = everyPageSize; _pglist.pages = pages; var _dy = dset.Tables[0].TableToDynamicList(); _pglist.list = _dy; } return ReturnDto>.QuickReturn(_pglist, ReturnCode.Success, "读取成功"); } /// /// 删除 /// /// /// [RequestMethod(RequestMethods.POST)] public ReturnDto DeleteUserBind([FromBody] dynamic model) { string guidList = model.guidList; var rtnInt = (int)ReturnCode.Default; try { System.Text.StringBuilder strSql = new StringBuilder(); strSql.Append("delete from SYS_USER_BIND "); strSql.Append(" where guid in (select line from dbo.fn_split('" + guidList + "',','))"); var rows = DbHelperSQL.ExecuteSql(strSql.ToString()); rtnInt = rows; } catch (Exception ex) { LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message); rtnInt = (int)ReturnCode.Exception; return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "删除失败," + ex.Message); } if (rtnInt > 0) return ReturnDto.QuickReturn(default(int?), ReturnCode.Success, "操作成功,共删除" + rtnInt + "条数据!"); return ReturnDto.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,请重试!"); } } }