winform+dev的前后台分离标准项目
lg
2024-08-27 94e53b9394aa981f0d6a1cd80edac9a9ba1ba97c
用户,权限,菜单
已添加4个文件
375 ■■■■■ 文件已修改
WebApi/Gs.User/Modes/MenuAction.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Modes/UserLogin.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Service/MenuActionController.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Service/UserController.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Modes/MenuAction.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
using 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; }
    }
}
WebApi/Gs.User/Modes/UserLogin.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
using 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; }
    }
}
WebApi/Gs.User/Service/MenuActionController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
using 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, "读取失败!");
            }
        }
    }
}
WebApi/Gs.User/Service/UserController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
using 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, "登录失败!");
        }
    }
}