cnf
7 天以前 aebd2d642e19ce9ccb253c671b239e7ed9fc91c6
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
using System.Data;
using System.Text;
using Gs.Entity.Sys;
using Gs.Sys.Models;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using static Gs.Toolbox.UtilityHelper;
 
 
namespace Gs.Sys.Services;
 
/// <summary>
/// </summary>
[ApiGroup(ApiGroupNames.Sys)]
public class OrganizationController : Repository<SysOrganization>, IRomteService
{
    private readonly IHttpContextAccessor _http;
 
    private readonly string _userCode, _userGuid, _orgFids;
 
    public OrganizationController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
        (_userCode, _userGuid, _orgFids) =
            GetUserGuidAndOrgGuid(_http);
    }
 
    /// <summary>
    ///     查询列表,支持分页
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<SysOrganization>> GetListPage(PageQuery query)
    {
        string keyWord = query.keyWord;
        var pageList = new PageList<SysOrganization>();
        try
        {
            var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db.Queryable<SysOrganization>()
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
                .ToPageList(query.currentPage, query.everyPageSize,
                    ref totalCount);
            pageList = new PageList<SysOrganization>(itemsList, totalCount,
                query.everyPageSize);
            if (!string.IsNullOrEmpty(keyWord))
            {
                System.Text.StringBuilder sbOrg = new StringBuilder();
                System.Data.DataSet dataSet = new System.Data.DataSet();
                dataSet = Gs.Toolbox.DbHelperSQL.Query(" select org_fid from  [dbo].[SYS_USER_ORG] where user_guid='" + keyWord + "' order by  org_fid asc");
                if (dataSet != null && dataSet.Tables.Count > 0)
                {
                    foreach (DataRow _row in dataSet.Tables[0].Rows)
                    {
                        if (sbOrg.Length > 0)
                            sbOrg.Append(", ");
                        sbOrg.Append(_row["org_fid"].ToString());
                    }
                }
                pageList.extendText = sbOrg.ToString();
            }
            return ReturnDto<PageList<SysOrganization>>.QuickReturn(pageList,
                ReturnCode.Success, "读取成功");
        }
        catch (Exception ex)
        {
            return ReturnDto<PageList<SysOrganization>>.QuickReturn(pageList,
                ReturnCode.Default, ex.Message);
        }
    }
 
    /// <summary>
    ///     查询列表,支持分页,用于各种绑定
    /// </summary>
    /// <param name="query"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage2(PageQuery model)
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName) ? "a.FNumber" : model.sortName;
        var keyWhere = model.keyWhere;
        string keyType = model.keyType;
        var sbSql = new StringBuilder();
        sbSql.Append("select * from ");
        sbSql.Append("( ");
        sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.* ");
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(",cast( (select count(1)  from SYS_USER_BIND b where b.userGuid='" + keyType + "' and b.aboutGuid=cast( a.FID as nvarchar(50)) and b.fType='组织')  as bit) as chkInt ");
        sbSql.Append("  from SYS_ORGANIZATION a ");
        sbSql.Append(keyWhere);
        sbSql.Append(") as T ");
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and  T.rowindex<=" + currentPage + "*" + everyPageSize);
        sbSql.Append(" order by rowindex asc ");
        sbSql.Append(" select count(1) as intTotal  from SYS_ORGANIZATION a  where 1=1 ");
        sbSql.Append(keyWhere);
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage2 error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
 
        var _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) //有数据
        {
            var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var pages = intTotal % everyPageSize != 0
                ? intTotal / everyPageSize + 1
                : intTotal / everyPageSize;
            _pglist.total = intTotal;
            _pglist.everyPageSize = everyPageSize;
            _pglist.pages = pages;
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
 
 
    /// <summary>
    ///     读取机构
    /// </summary>
    /// <param name="guid"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    [AllowAnonymous]
    public ReturnDto<SysOrganization> GetModel([FromBody] SysOrganization model)
    {
        var m = base.GetById(model.Guid);
        if (m != null)
            return ReturnDto<SysDocRule>.QuickReturn(m, ReturnCode.Success,
                "读取成功!");
        return ReturnDto<SysDocRule>.QuickReturn(m, ReturnCode.Default,
            "读取失败!");
    }
 
    private int IsChkOrUnChk(string guidList, bool status)
    {
        var cont = 0;
        cont = base.GetList(it =>
            it.Guid == Guid.Parse(guidList) && it.CheckStatus == status).Count;
        return cont;
    }
}