winform+dev的前后台分离标准项目
lg
2024-09-02 59abbe4785268a10ec9390b8373cce3939c1d24b
WebApi/Gs.User/Service/MenuActionController.cs
@@ -9,13 +9,20 @@
using System.Text;
using System.Threading.Tasks;
using Gs.User.Modes;
using Microsoft.Extensions.Primitives;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Connections.Features;
namespace Gs.User.Service
{
    [ApiGroup(ApiGroupNames.Auth)]
    public class MenuActionController : IRomteService
    {
        private readonly IHttpContextAccessor _http;
        public MenuActionController(IHttpContextAccessor httpContextAccessor)
        {
            _http = httpContextAccessor;
        }
        /// <summary>
        /// 读取功能菜单列表,支持分页
        /// </summary>
@@ -24,6 +31,8 @@
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<MenuAction>> GetListPage([FromBody] PageQuery model)
        {
            (string userGuid, string orgGuid) = Gs.Toolbox.UtilityHelper.GetUserGuidAndOrgGuid(_http);
            Gs.Toolbox.LogHelper.Debug(this.ToString(), "userGuid:" + userGuid + ",orgGuid:" + orgGuid);
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = string.IsNullOrEmpty(model.sortName) ? "a.idx" : model.sortName;
@@ -66,12 +75,13 @@
                            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(),
                            formPath = dr["formPath"].ToString(),
                            idx = int.Parse(dr["idx"].ToString()),
                            category = int.Parse(dr["category"].ToString()),
                            statusTxt = (dr["status"].ToString() == "1" ? "正常" : "禁用"),
                            categoryTxt = (dr["category"].ToString() == "1" ? "窗体类型" : "按钮类型"),
                        }
                    );
                }
@@ -89,8 +99,22 @@
        public ReturnDto<int?> DeleteModel([FromBody] MenuAction model)
        {
            int rtnInt = (int)ReturnCode.Default;
            int cont = 0;
            try
            {
                //是否内置
                cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from sys_MenuAction where guid='" + model.guid.ToString() + "' and [isSys]=1").ToString());
                if (cont > 0)
                {
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该条目为系统内置,不可删除!");
                }
                cont = 0;
                //是否有子菜单
                cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from sys_MenuAction where upguid='" + model.guid.ToString() + "'").ToString());
                if (cont > 0)
                {
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该条目下面有子菜单,不可删除!");
                }
                rtnInt = DbHelperSQL.ExecuteSql("delete from dbo.sys_MenuAction where guid='" + model.guid.ToString() + "'");
            }
            catch (Exception ex)
@@ -112,14 +136,12 @@
        [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;
            string formPath = model.formPath;
            int category = model.category;
            int idx = model.idx;
            int? rtnInt = (int)ReturnCode.Default;
@@ -127,24 +149,23 @@
            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(" set upGuid=@upGuid,name=@name,icon=@icon,status=@status,formPath=@formPath,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(" guid,upGuid,name,icon,status,formPath,category,idx)");
                strSql.Append(" values (");
                strSql.Append("'" + guid + "',@upGuid,@name,@serialNumber,@icon,@status,@fromPath,@category,@idx)");
                strSql.Append("'" + guid + "',@upGuid,@name,@icon,@status,@formPath,@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("@formPath",formPath),
             new SqlParameter("@category",category),
             new SqlParameter("@idx",idx),
         };
@@ -158,7 +179,7 @@
                rtnInt = (int)ReturnCode.Exception;
            }
            if (rtnInt > 0)
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "增加成功!");
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, "操作成功!");
            else
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, "增加失败,请重试!");
        }
@@ -170,7 +191,7 @@
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        [AllowAnonymous]
        public ReturnDto<MenuAction> GetModel([FromBody] MenuAction model )
        public ReturnDto<MenuAction> GetModel([FromBody] MenuAction model)
        {
            MenuAction m = new MenuAction();
            System.Text.StringBuilder sbSql = new StringBuilder();
@@ -185,10 +206,9 @@
                    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.formPath = dr["formPath"].ToString();
                    m.idx = int.Parse(dr["idx"].ToString());
                    m.category = int.Parse(dr["category"].ToString());
                    return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
@@ -202,5 +222,76 @@
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
            }
        }
        /// <summary>
        /// 读取功能菜单列表,分组织展现权限菜单
        /// </summary>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<MenuAction>> GetListPageByOrg()
        {
            System.Text.StringBuilder _orgSql = new StringBuilder();
            _orgSql.Append("select org.guid,null as upGuid,org.name,org.status from [dbo].[sys_Organization] org   where upGuid is not null ");
            DataSet _orgDset = new DataSet();
            System.Text.StringBuilder sbSql = new StringBuilder();
            try
            {
                _orgDset = Gs.Toolbox.DbHelperSQL.Query(_orgSql.ToString());
                foreach (DataRow row in _orgDset.Tables[0].Rows)
                {
                    if (sbSql.Length > 0)
                        sbSql.Append(" union all");
                    sbSql.Append(" select org.guid,null as upGuid,org.name,org.status,'" + row["guid"].ToString() + "' as orgGuid from [dbo].[sys_Organization] org where org.guid ='" + row["guid"].ToString() + "'");
                    sbSql.Append(" union all");
                    sbSql.Append(" select ma.guid,isnull(ma.upGuid,'" + row["guid"].ToString() + "') as upGuid,ma.name,ma.status,'" + row["guid"].ToString() + "' as orgGuid from sys_MenuAction ma");
                }
            }
            catch (Exception ex)
            {
                Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error:" + ex.Message);
                return ReturnDto<PageList<MenuAction>>.QuickReturn(default(PageList<MenuAction>), ReturnCode.Exception, "读取失败");
            }
            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 = 999;
                int pages = 1;
                _pglist.total = intTotal;
                _pglist.everyPageSize = 1;
                _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(),
                            status = int.Parse(dr["status"].ToString()),
                            orgGuid = dr["orgGuid"].ToString(),
                        }
                    );
                }
            }
            return ReturnDto<PageList<MenuAction>>.QuickReturn(_pglist, ReturnCode.Success, "读取成功");
        }
    }
}