From 94e53b9394aa981f0d6a1cd80edac9a9ba1ba97c Mon Sep 17 00:00:00 2001 From: lg <999544862qq.com> Date: 星期二, 27 八月 2024 11:08:07 +0800 Subject: [PATCH] 用户,权限,菜单 --- WebApi/Gs.User/Service/UserController.cs | 85 ++++++++++++ WebApi/Gs.User/Modes/UserLogin.cs | 28 ++++ WebApi/Gs.User/Modes/MenuAction.cs | 56 ++++++++ WebApi/Gs.User/Service/MenuActionController.cs | 206 +++++++++++++++++++++++++++++ 4 files changed, 375 insertions(+), 0 deletions(-) diff --git a/WebApi/Gs.User/Modes/MenuAction.cs b/WebApi/Gs.User/Modes/MenuAction.cs new file mode 100644 index 0000000..6e1c262 --- /dev/null +++ b/WebApi/Gs.User/Modes/MenuAction.cs @@ -0,0 +1,56 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Gs.User.Modes +{ + public class MenuAction + { + /// <summary> + /// 涓婚敭 + /// </summary> + public Guid? guid { get; set; } + + /// <summary> + /// 涓婄骇涓婚敭 + /// </summary> + public Guid? upGuid { get; set; } + + /// <summary> + /// 鑿滃崟鍚� + /// </summary> + public string name { get; set; } + + /// <summary> + /// 缂栧彿 + /// </summary> + public string serialNumber { get; set; } + + /// <summary> + /// 鑿滃崟鍥炬爣 + /// </summary> + public string icon { get; set; } + + /// <summary> + /// 鐘舵�� + /// </summary> + public int status { get; set; } + + /// <summary> + /// 绐椾綋璺緞 + /// </summary> + public string fromPath { get; set; } + /// <summary> + /// 鎺掑簭 + /// </summary> + public int idx { get; set; } + + /// <summary> + /// 绫诲埆 + /// </summary> + public int category { get; set; } + + } +} diff --git a/WebApi/Gs.User/Modes/UserLogin.cs b/WebApi/Gs.User/Modes/UserLogin.cs new file mode 100644 index 0000000..49c93ce --- /dev/null +++ b/WebApi/Gs.User/Modes/UserLogin.cs @@ -0,0 +1,28 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Gs.User.Modes +{ + public class UserLogin + { + /// <summary> + /// 璐﹀彿 + /// </summary> + public string accountNo { get; set; } + + /// <summary> + /// 缁勭粐鏈烘瀯guid + /// </summary> + public Guid orgGuid { get; set; } + + /// <summary> + /// 瀵嗙爜 + /// </summary> + public string accountPwd { get; set; } + + + } +} diff --git a/WebApi/Gs.User/Service/MenuActionController.cs b/WebApi/Gs.User/Service/MenuActionController.cs new file mode 100644 index 0000000..42f57ab --- /dev/null +++ b/WebApi/Gs.User/Service/MenuActionController.cs @@ -0,0 +1,206 @@ +锘縰sing Gs.Toolbox; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Gs.User.Modes; + +namespace Gs.User.Service +{ + [ApiGroup(ApiGroupNames.Auth)] + public class MenuActionController : IRomteService + { + + /// <summary> + /// 璇诲彇鍔熻兘鑿滃崟鍒楄〃锛屾敮鎸佸垎椤� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<PageList<MenuAction>> GetListPage([FromBody] PageQuery model) + { + int currentPage = model.currentPage; + int everyPageSize = model.everyPageSize; + string sortName = string.IsNullOrEmpty(model.sortName) ? "a.idx" : model.sortName; + System.Text.StringBuilder sbSql = new StringBuilder(); + sbSql.Append("select * from "); + sbSql.Append("( "); + sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,* from sys_MenuAction a where 1=1" + model.keyWhere); + sbSql.Append(") as T "); + sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize + ""); + sbSql.Append(" select count(1) as intTotal from dbo.sys_MenuAction a where 1=1 " + model.keyWhere).ToString(); + DataSet dset = new DataSet(); + try + { + dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString()); + } + catch (Exception ex) + { + Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error锛�" + ex.Message); + return ReturnDto<PageList<MenuAction>>.QuickReturn(default(PageList<MenuAction>), ReturnCode.Exception, "璇诲彇澶辫触"); + } + PageList<MenuAction> _pglist = new PageList<MenuAction> + { + total = 0, + everyPageSize = 0, + pages = 0, + list = new List<MenuAction>() + }; + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)//鏈夋暟鎹� + { + int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); + int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize); + _pglist.total = intTotal; + _pglist.everyPageSize = everyPageSize; + _pglist.pages = pages; + foreach (DataRow dr in dset.Tables[0].Rows) + { + _pglist.list.Add( + new MenuAction() + { + guid = Guid.Parse(dr["guid"].ToString()), + upGuid = dr["upGuid"].ToString().Length > 0 ? Guid.Parse(dr["upGuid"].ToString()) : null, + name = dr["name"].ToString(), + serialNumber = dr["serialNumber"].ToString(), + icon = dr["icon"].ToString(), + status = int.Parse(dr["status"].ToString()), + fromPath = dr["fromPath"].ToString(), + idx = int.Parse(dr["idx"].ToString()), + category = int.Parse(dr["category"].ToString()), + } + ); + } + } + return ReturnDto<PageList<MenuAction>>.QuickReturn(_pglist, ReturnCode.Success, "璇诲彇鎴愬姛"); + } + + + /// <summary> + /// 鍒犻櫎鍔熻兘鑿滃崟 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<int?> DeleteModel([FromBody] MenuAction model) + { + int rtnInt = (int)ReturnCode.Default; + try + { + rtnInt = DbHelperSQL.ExecuteSql("delete from dbo.sys_MenuAction where guid='" + model.guid.ToString() + "'"); + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "DeleteModel error锛�" + ex.Message); + rtnInt = (int)ReturnCode.Exception; + } + if (rtnInt > 0) + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "鎿嶄綔鎴愬姛锛屽叡鍒犻櫎" + rtnInt.ToString() + "鏉℃暟鎹紒"); + else + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + } + + /// <summary> + /// 澧炲姞鍔熻兘鑿滃崟 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<int?> EditModel([FromBody] MenuAction model) + { + string dddd= model.guid.ToString(); + Guid? guid = model.guid; + Guid? upGuid = model.upGuid; + string name = model.name; + string serialNumber = model.serialNumber; + string icon = model.icon; + int status = model.status; + string fromPath = model.fromPath; + int category = model.category; + int idx = model.idx; + int? rtnInt = (int)ReturnCode.Default; + StringBuilder strSql = new StringBuilder(); + if (guid != null) + { + strSql.Append(" update dbo.sys_MenuAction"); + strSql.Append(" set upGuid=@upGuid,name=@name,serialNumber=@serialNumber,icon=@icon,status=@status,fromPath=@fromPath,category=@category,idx=@idx"); + strSql.Append(" where guid='" + guid + "'"); + } + else + { + guid = Guid.NewGuid(); + strSql.Append("insert into dbo.sys_MenuAction("); + strSql.Append(" guid,upGuid,name,serialNumber,icon,status,fromPath,category,idx)"); + strSql.Append(" values ("); + strSql.Append("'" + guid + "',@upGuid,@name,@serialNumber,@icon,@status,@fromPath,@category,@idx)"); + } + SqlParameter[] parameters = { + new SqlParameter("@upGuid", upGuid), + new SqlParameter("@name", name), + new SqlParameter("@serialNumber",serialNumber), + new SqlParameter("@icon",icon), + new SqlParameter("@status",status), + new SqlParameter("@fromPath",fromPath), + new SqlParameter("@category",category), + new SqlParameter("@idx",idx), + }; + try + { + rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "EditModel error锛�" + ex.Message); + rtnInt = (int)ReturnCode.Exception; + } + if (rtnInt > 0) + return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "澧炲姞鎴愬姛锛�"); + else + return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, "澧炲姞澶辫触锛岃閲嶈瘯锛�"); + } + + /// <summary> + /// 璇诲彇鍔熻兘鑿滃崟 + /// </summary> + /// <param name="guid"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + [AllowAnonymous] + public ReturnDto<MenuAction> GetModel([FromBody] MenuAction model ) + { + MenuAction m = new MenuAction(); + System.Text.StringBuilder sbSql = new StringBuilder(); + sbSql.Append("select top 1 * from dbo.sys_MenuAction where 1=1 and guid='" + model.guid.ToString() + "' "); + try + { + DataSet dset = new DataSet(); + dset = DbHelperSQL.Query(sbSql.ToString()); + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) + { + System.Data.DataRow dr = dset.Tables[0].Rows[0]; + m.guid = Guid.Parse(dr["guid"].ToString()); + m.upGuid = dr["upGuid"].ToString().Length > 0 ? Guid.Parse(dr["upGuid"].ToString()) : null; + m.name = dr["name"].ToString(); + m.serialNumber = dr["serialNumber"].ToString(); + m.icon = dr["icon"].ToString(); + m.status = int.Parse(dr["status"].ToString()); + m.fromPath = dr["fromPath"].ToString(); + m.idx = int.Parse(dr["idx"].ToString()); + m.category = int.Parse(dr["category"].ToString()); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�"); + } + else + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); + } + } + } +} diff --git a/WebApi/Gs.User/Service/UserController.cs b/WebApi/Gs.User/Service/UserController.cs new file mode 100644 index 0000000..614295d --- /dev/null +++ b/WebApi/Gs.User/Service/UserController.cs @@ -0,0 +1,85 @@ +锘縰sing Gs.Toolbox; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Text; +using Gs.User.Modes; + +namespace Gs.User.Service +{ + + [ApiGroup(ApiGroupNames.Auth)] + public class UserController : IRomteService + { + /// <summary> + /// 鐢ㄦ埛鐧诲綍 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<System.Dynamic.ExpandoObject> UserLogin([FromBody] UserLogin model) + { + string accountPwd = model.accountPwd; + string accountNo = model.accountNo; + Guid orgGuid = model.orgGuid; + string strPass = ""; + DataSet dset = new DataSet(); + dynamic m = new System.Dynamic.ExpandoObject(); + using (SqlConnection conn = new SqlConnection(DbHelperSQL.strConn)) + { + using (SqlCommand cmd = new SqlCommand("[prc_user_login]", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] parameters = new SqlParameter[] { + new SqlParameter("@accountNo",accountNo), + new SqlParameter("@accountPwd",strPass), + new SqlParameter("@orgGuid",orgGuid), + }; + foreach (SqlParameter parameter in parameters) + { + cmd.Parameters.Add(parameter); + } + using (SqlDataAdapter dt = new SqlDataAdapter(cmd)) + { + dt.Fill(dset, "0"); + } + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) + { + System.Data.DataRow row = dset.Tables[0].Rows[0]; + m.loginGuid = Guid.Parse(row["loginGuid"].ToString()); + m.loginOrgGuid = row["loginOrgGuid"].ToString(); + System.Text.StringBuilder sbR = new StringBuilder(); + if (dset.Tables.Count > 1 && dset.Tables[1].Rows.Count > 1) + { + foreach (System.Data.DataRow r in dset.Tables[1].Rows) + { + if (sbR.Length > 0) + sbR.Append(","); + sbR.Append(r["rightGuid"].ToString()); + } + } + m.loginRightList = sbR.ToString(); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "鐧诲綍鎴愬姛锛�"); + } + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "UserLogin error锛�" + ex.Message); + } + finally + { + conn.Close(); + } + } + } + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, "鐧诲綍澶辫触锛�"); + } + } +} -- Gitblit v1.9.3