新框架PC后端代码(祈禧6月初版本)
南骏 池
3 天以前 72449a1b8699b65712e57fba8abce5a8240e9465
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System.Data;
using System.Dynamic;
using System.Security.Cryptography;
using System.Text;
using Microsoft.AspNetCore.Http;
 
namespace Gs.Toolbox;
 
public static class UtilityHelper
{
 
    /// <summary>
    /// 读取登录用户信息:返回用户Code,用户Guid,组织ID
    /// </summary>
    /// <param name="_http"></param>
    /// <returns></returns>
    public static (string?, string?, string?) GetUserGuidAndOrgGuid(
        IHttpContextAccessor _http)
    {
        try
        {
            string _token = _http.HttpContext.Request.Headers["token"];
            var _userGuid = _token;
            var _sb = new StringBuilder();
            _sb.Append("select ACCOUNT as t1,'' as t3 from SYS_USER where guid='" + _userGuid + "' ");
            var dset = new DataSet();
            dset = DbHelperSQL.Query(_sb.ToString());
            if (dset != null && dset.Tables[0].Rows.Count > 0)
            {
                DataRow _row = dset.Tables[0].Rows[0];
                var _userCode = _row["t1"].ToString();
                var _orgFids = _row["t3"].ToString();
                return (_userCode, _userGuid, _orgFids);
            }
            return (null, null, null);
        }
        catch (Exception ex)
        {
            LogHelper.Debug("GetUserGuidAndOrgGuid:", ex.Message);
        }
        return (null, null, null);
    }
 
    /// <summary>
    ///     32位MD5加密
    /// </summary>
    /// <param name="password"></param>
    /// <returns></returns>
    public static string MD5Encrypt32(string password)
    {
        var cl = password;
        var pwd = "";
        var md5 = MD5.Create();
        var s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
        for (var i = 0; i < s.Length; i++) pwd = pwd + s[i].ToString("X");
        return pwd;
    }
 
    /// <summary>
    ///     table转DynamicList
    /// </summary>
    /// <param name="table"></param>
    /// <returns></returns>
    public static List<dynamic> TableToDynamicList(this DataTable table)
    {
        var list = new List<dynamic>();
        // 遍历DataTable中的每一行
        foreach (DataRow row in table.Rows)
        {
            dynamic item = new ExpandoObject();
            // 遍历每一列,并添加到dynamic对象中
            foreach (DataColumn column in table.Columns)
                ((IDictionary<string, object>)item)[column.ColumnName] =
                    row[column];
            list.Add(item);
        }
 
        return list;
    }
 
    /// <summary>
    ///     row转DynamicList
    /// </summary>
    /// <param name="row"></param>
    /// <returns></returns>
    public static dynamic RowToDynamic(this DataRow row)
    {
        dynamic expando = new ExpandoObject();
        if (row != null)
            foreach (DataColumn column in row.Table.Columns)
            {
                var value = row[column];
                // 如果值为DBNull.Value,则转换为null
                if (value == DBNull.Value) value = null;
                ((IDictionary<string, object>)expando)[column.ColumnName] =
                    value;
            }
 
        return expando;
    }
 
    public static int? ToInt(string strV)
    {
        if (string.IsNullOrEmpty(strV))
            return null;
        return int.Parse(strV);
    }
 
    /// <summary>
    /// </summary>
    /// <param name="_userGuid">操作用户</param>
    /// <param name="_abtGuid">关联主键,有时候会为null</param>
    /// <param name="_tableName">表名,表描述</param>
    /// <param name="_logTxt">行为</param>
    /// <returns></returns>
    public static StringBuilder BuildLog(string _userGuid, string _abtGuid,
        string _table, string _logTxt)
    {
        var sb = new StringBuilder();
        sb.Append(" exec prc_log_create '" + _userGuid + "','" + _abtGuid +
                  "','" + _table + "','" + _logTxt + "' ");
        return sb;
    }
     
    /// <summary>
    ///     判断是不是guid
    /// </summary>
    /// <param name="guid"></param>
    /// <returns></returns>
    public static bool CheckGuid(Guid? guid)
    {
        if (guid == Guid.Empty)
            return false;
        if (guid == null) return false;
        return true;
    }
 
    /// <summary>
    ///     判断是不是guid
    /// </summary>
    /// <param name="guid"></param>
    /// <returns></returns>
    public static bool CheckGuid(string? guid)
    {
        if (guid == Guid.Empty.ToString())
            return false;
        if (string.IsNullOrEmpty(guid))
            return false;
        if (guid == null) return false;
        return true;
    }
}