winform+dev的前后台分离标准项目
lg
2024-08-28 452f7aa3fdd30953b53de1ac0c137db64857b400
暂无
已添加3个文件
已修改1个文件
468 ■■■■■ 文件已修改
DevApp/Gs.DevApp/ToolBox/MsgHelper.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Modes/MenuAction.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/Gs.User/Service/OrganizationController.cs 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DevApp/Gs.DevApp/ToolBox/MsgHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Gs.DevApp.ToolBox
{
    /// <summary>
    ///  ç³»ç»Ÿæ¶ˆæ¯æç¤ºçª—体
    /// </summary>
    public class MsgHelper
    {
        /// <summary>
        ///  æ‰“开对话框
        /// </summary>
        /// <param name="msg">本次对话内容</param>
        /// <returns></returns>
        public static bool AskQuestion(string msg)
        {
            DialogResult r;
            r = MessageBox.Show(msg, "确认",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question,
                MessageBoxDefaultButton.Button2);
            return r == DialogResult.Yes;
        }
        /// <summary>
        ///  é”™è¯¯æ¶ˆæ¯æç¤ºæ¡†
        /// </summary>
        /// <param name="msg">错误消息内容</param>
        public static void ShowError(string msg)
        {
            MessageBox.Show(msg, "警告",
                MessageBoxButtons.OK,
                MessageBoxIcon.Hand,
                MessageBoxDefaultButton.Button1);
        }
        /// <summary>
        ///  æ˜¾ç¤ºç³»ç»Ÿå¼‚常
        /// </summary>
        /// <param name="e">系统异常</param>
        public static void ShowException(Exception e)
        {
            var s = e.Message;
            var innerMsg = string.Empty;
            if (e.InnerException != null)
            {
                innerMsg = e.InnerException.Message;
                s += "\n" + innerMsg;
            }
            Warning(s);
        }
        public static void ShowException(Exception ex, string customMessage)
        {
            //if (ex is CustomException)
            //{
            //    ShowException(ex);
            //}
            //else if (customMessage != "")
            //{
            //    Warning(customMessage);
            //}
            //else
            //{
            //    Warning(ex.Message);
            //}
        }
        /// <summary>
        ///  ä¿¡æ¯æç¤ºæ¡†
        /// </summary>
        /// <param name="msg">本次显示的消息</param>
        public static void ShowInformation(string msg)
        {
            MessageBox.Show(msg, "信息",
                MessageBoxButtons.OK,
                MessageBoxIcon.Asterisk,
                MessageBoxDefaultButton.Button1);
        }
        /// <summary>
        ///  è­¦å‘Šæç¤ºæ¡†
        /// </summary>
        /// <param name="msg">警告内容</param>
        public static void Warning(string msg)
        {
            MessageBox.Show(msg, "警告",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1);
        }
    }
}
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Gs.DevApp.ToolBox;
using System.Resources;
using System.Drawing;
using Newtonsoft.Json;
using Gs.DevApp.Models;
namespace Gs.DevApp.ToolBox
{
    /// <summary>
    /// é€šç”¨ç±»
    /// </summary>
    public class UtilityHelper
    {
        private static string WebApiUrl = System.Configuration.ConfigurationSettings.AppSettings.Get("WebApiUrl").ToString();
        /// <summary>
        /// httpPost访问服务
        /// </summary>
        /// <param name="url">服务地址</param>
        /// <param name="meth">方法名称</param>
        /// <param name="param">参数</param>
        /// <returns></returns>
        public static string HttpPost(string url, string meth, string param)
        {
            if (string.IsNullOrEmpty(url))
                url = WebApiUrl;
            url += meth;
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json";
            request.Headers.Add("token", GetBasicAuthTicket());
            request.Accept = "*/*";
            request.Timeout = 15000;
            request.AllowAutoRedirect = false;
            StreamWriter requestStream = null;
            WebResponse response = null;
            string responseStr = null;
            try
            {
                requestStream = new StreamWriter(request.GetRequestStream());
                requestStream.Write(param);
                requestStream.Close();
                response = request.GetResponse();
                if (response != null)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                    responseStr = reader.ReadToEnd();
                    //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr);
                    reader.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                request = null;
                requestStream = null;
                response = null;
            }
            return responseStr;
        }
        /// <summary>
        /// æ ¹æ®å›¾ç‰‡åè¯»å–资源文件,不带后缀名
        /// </summary>
        /// <param name="imageName"></param>
        /// <param name="lay">1为大图</param>
        /// <returns></returns>
        public static Image GetImgFromResource(string imageName, int lay)
        {
            // èŽ·å–å½“å‰ç¨‹åºé›†
            Assembly assembly = Assembly.GetExecutingAssembly();
            // åˆ›å»ºèµ„源管理器来访问资源
            ResourceManager resourceManager = new ResourceManager("Gs.DevApp.Properties.Resources", assembly);
            // å°è¯•获取图片资源
            try
            {
                Image image = resourceManager.GetObject(imageName) as Image;
                if (image != null)
                {
                    return image;
                }
            }
            catch (Exception ex)
            {
            }
            Image image2 = resourceManager.GetObject(lay == 1 ? "chartsshowlegend_32x32" : "linktoprevious_16x16") as Image;
            return image2;
        }
        /// <summary>
        /// è¯»å–token
        /// </summary>
        /// <returns></returns>
        public static string GetBasicAuthTicket()
        {
            string token = Guid.NewGuid().ToString();
            return token;
        }
        /// <summary>
        /// æ ‡å‡†json串返回ReturnModel-->table,
        /// </summary>
        /// <param name="strReturn"></param>
        /// <returns></returns>
        public static ReturnModel<PageListModel> GetTableByJson(string strReturn)
        {
            ReturnModel<PageListModel> rto = new ReturnModel<PageListModel>();
            JObject json = JObject.Parse(strReturn);
            rto.rtnCode =int.Parse( json["rtnCode"].ToString());
            rto.rtnMsg = json["rtnMsg"].ToString();
            rto.rtnData = new PageListModel();
            rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString());
            rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString());
            rto.rtnData.everyPageSize = int.Parse(json["rtnData"]["everyPageSize"].ToString());
            JArray array = new JArray();
            var d = json["rtnData"]["list"];
            foreach (var a in d)
            {
                array.Add(a);
            }
            DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
            rto.rtnData.list = dt;
            return rto;
        }
        /// <summary>
        /// æ ‡å‡†json串返回ReturnModel->字符串,
        /// </summary>
        /// <param name="strReturn"></param>
        /// <returns></returns>
        public static ReturnModel<dynamic> GetDataByJson(string strReturn)
        {
            ReturnModel<dynamic> rto = new ReturnModel<dynamic>();
            JObject json = JObject.Parse(strReturn);
            rto.rtnCode =int.Parse( json["rtnCode"].ToString());
            rto.rtnMsg = json["rtnMsg"].ToString();
            rto.rtnData = json["rtnData"];
            return rto;
        }
    }
}
WebApi/Gs.User/Modes/MenuAction.cs
@@ -23,10 +23,6 @@
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public string serialNumber { get; set; }
        /// <summary>
        /// èœå•图标
@@ -38,10 +34,12 @@
        /// </summary>
        public int status { get; set; }
        public string statusTxt { get; set; }
        /// <summary>
        /// çª—体路径
        /// </summary>
        public string fromPath { get; set; }
        public string formPath { get; set; }
        /// <summary>
        /// æŽ’序
        /// </summary>
@@ -52,5 +50,12 @@
        /// </summary>
        public int category { get; set; }
        public string categoryTxt { get; set; }
        /// <summary>
        /// æ˜¯å¦å†…ç½®
        /// </summary>
        public int isSys { get; set; }
    }
}
WebApi/Gs.User/Service/OrganizationController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
using Gs.Toolbox;
using Gs.User.Modes;
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;
namespace Gs.User.Service
{
    [ApiGroup(ApiGroupNames.Auth)]
    public class OrganizationController : IRomteService
    {
        /// <summary>
        /// è¯»å–机构列表,支持分页
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model)
        {
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = string.IsNullOrEmpty(model.sortName) ? "a.name" : 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_Organization 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 sys_Organization 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<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
            }
            PageList<dynamic> _pglist = new PageList<dynamic>
            {
                total = 0,
                everyPageSize = 0,
                pages = 0,
                list = new List<dynamic>()
            };
            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
                        {
                            guid = Guid.Parse(dr["guid"].ToString()),
                            upGuid = dr["upGuid"].ToString(),
                            name = dr["name"].ToString(),
                            conPeople = dr["conPeople"].ToString(),
                            conTel = int.Parse(dr["conTel"].ToString()),
                            status = int.Parse(dr["status"].ToString()),
                        }
                    );
                }
            }
            return ReturnDto<PageList<dynamic>>.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;
            int cont = 0;
            try
            {
                //是否内置
                cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from sys_Organization where guid='" + model.guid.ToString() + "' and [isSys]=1").ToString());
                if (cont > 0)
                {
                    return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "删除失败,该条目为系统内置,不可删除!");
                }
                rtnInt = DbHelperSQL.ExecuteSql("delete from sys_Organization 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] dynamic model)
        {
            Guid? guid = model.guid;
            Guid? upGuid = model.upGuid;
            string name = model.name;
            string conPeople = model.conPeople;
            string conTel = model.conTel;
            int status = model.status;
            int? rtnInt = (int)ReturnCode.Default;
            StringBuilder strSql = new StringBuilder();
            if (guid != null)
            {
                strSql.Append(" update sys_Organization");
                strSql.Append(" set upGuid=@upGuid,name=@name,conPeople=@conPeople,status=@status,conTel=@conTel");
                strSql.Append(" where guid='" + guid + "'");
            }
            else
            {
                guid = Guid.NewGuid();
                strSql.Append("insert into sys_Organization(");
                strSql.Append(" guid,upGuid,name,conPeople,status,conTel)");
                strSql.Append(" values (");
                strSql.Append("'" + guid + "',@upGuid,@name,@conPeople,@status,@conTel)");
            }
            SqlParameter[] parameters = {
             new SqlParameter("@upGuid", upGuid),
             new SqlParameter("@name", name),
             new SqlParameter("@conPeople",conPeople),
             new SqlParameter("@status",status),
             new SqlParameter("@conTel",conTel),
         };
            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] dynamic model)
        {
            dynamic m = new System.Dynamic.ExpandoObject();
            System.Text.StringBuilder sbSql = new StringBuilder();
            sbSql.Append("select top 1 * from sys_Organization 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();
                    m.name = dr["name"].ToString();
                    m.conPeople = dr["conPeople"].ToString();
                    m.status = int.Parse(dr["status"].ToString());
                    m.conTel = dr["conTel"].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, "读取失败!");
            }
        }
    }
}