懒羊羊
2023-12-28 e46d3baaf3e8d7d85f4bafec3aad75e52b078408
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using YX.Entity;
using System.Data.Entity;
using System.Linq.Expressions;
namespace YX.DAL
{
    public class SystemMenu_Dal
    {
       
        ///// <summary>
        ///// 获取子节点
        ///// </summary>
        ///// <returns></returns>
        //public DataTable GetSysMenuChilds(string ParentId)
        //{
        //    DataTable dt = null;
        //    try
        //    {
        //        using (Sam_DBEntities db=new Sam_DBEntities())
        //        {
        //            string sql = @"SELECT  
        //            Menu_Id
        //          ,[Menu_Name] as '菜单名称'
        //          ,[Menu_Tag] as '菜单标记'
        //          ,[Menu_Img] as '菜单图标'
           //       ,case[ParentId] when '0'then '父节' else '子节'end as '节点位置'
        //          ,[SortCode] as '菜单排序'
        //          ,[CreateDate] as'创建时间'
        //          ,[CreateUserName] as'创建人'
        //          ,[ModifyDate] as '修改时间'
        //          ,[ModifyUserName] as'修改人'
        //            FROM [Base_SysMenu]WHERE ParentId=@ParentId
        //            order by sortcode asc";
        //            SqlParameter[] par = new SqlParameter[]
        //            {
        //            new SqlParameter("@ParentId", ParentId)
        //            };
        //            dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql, par).Tables[0];
        //        }
                  
        //    }
        //    catch (Exception ex)
        //    {
                
        //        throw ex;
        //    }
        //    return dt;
        //}
        public List<Base_SysMenu> GetMenusByCondition(Expression<Func<Base_SysMenu, bool>> lambda)
        {
            List<Base_SysMenu> list = new List<Base_SysMenu>();
            using (Sam_DBEntities db = new Sam_DBEntities())
            {
                list = db.Base_SysMenu.Where(lambda).ToList();
            }
            return list;
        }
        /// <summary>
        /// 用户权限查询
        /// </summary>
        /// <param name="lambda"></param>
        /// <returns></returns>
        public List<Base_UserRight> GetUserRightByCondition(Expression<Func<Base_UserRight, bool>> lambda)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    return db.Base_UserRight.Where(lambda).ToList(); ;
                }
 
            }
            catch (Exception EX)
            {
 
                throw EX;
            }
        }
        /// <summary>
        /// 角色权限查询
        /// </summary>
        /// <param name="lambda"></param>
        /// <returns></returns>
        public List<Base_RoleRight> GetRoleRightByCondition(Expression<Func<Base_RoleRight, bool>> lambda)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    return db.Base_RoleRight.Where(lambda).ToList(); ;
                }
 
            }
            catch (Exception EX)
            {
 
                throw EX;
            }
        }
        /// <summary>
        /// 获取全部菜单
        /// </summary>
        /// <returns></returns>
        public List<Base_SysMenu> GetSysMenus()
        {
 
            try
            {
                //DataTable dt = dal.GetParent();
                //list = DataTableToModel.GetEntities<Base_SysMenu>(dt).ToList();
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    return db.Base_SysMenu.ToList();
                }
 
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
 
        }
        /// <summary>
        /// 获取菜单根节点
        /// </summary>
        /// <returns></returns>
        public List<Base_SysMenu> GetSysMenusParent(string UserID)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    var query = (from menuinfo in db.Base_SysMenu
                                join userright in db.Base_UserRight
                                on menuinfo.Menu_Id equals userright.Menu_Id
                                where menuinfo.ParentId == "0" && userright.Base_UserInfo.User_ID == UserID
                                orderby menuinfo.SortCode ascending
                                select menuinfo).Union(from M in db.Base_SysMenu
                                                       join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
                                                       join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
                                                       where M.ParentId == "0" && U_R.Base_UserInfo.User_ID == UserID
                                                       orderby M.SortCode ascending
                                                       select M);
                    //var sql = query.ToString();                           
                    return query.ToList(); ;
                }
 
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
        }
        /// <summary>
        /// 获取菜单子节点
        /// </summary>
        /// <param name="ParentId"></param>
        /// <returns></returns>
        public List<Base_SysMenu> GetSysMenuChilds(string ParentId, string UserID)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    var query = (from menuinfo in db.Base_SysMenu
                                join userright in db.Base_UserRight
                                on menuinfo.Menu_Id equals userright.Menu_Id
                                where menuinfo.ParentId == ParentId && userright.Base_UserInfo.User_ID == UserID
                              
                                select menuinfo).Union(from M in db.Base_SysMenu 
                                                       join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
                                                       join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
                                                       where M.ParentId==ParentId && U_R.Base_UserInfo.User_ID==UserID
                                                  
                                                       select M).OrderBy(o=>o.SortCode);
                    return query.ToList(); ;
                    //  return db.Base_SysMenu.Where(o=>o.ParentId==ParentId).ToList();
                }
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
 
        }
        /// <summary>
        /// 获取菜单子节点
        /// </summary>
        /// <param name="ParentId"></param>
        /// <returns></returns>
        public List<Base_SysMenu> GetSysMenuChilds(string ParentId)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    var query = (from menuinfo in db.Base_SysMenu                               
                                 where menuinfo.ParentId == ParentId                           
                                 select menuinfo).OrderBy(o => o.SortCode);
                    return query.ToList(); ;
                    //  return db.Base_SysMenu.Where(o=>o.ParentId==ParentId).ToList();
                }
            }
            catch (Exception ex)
            {
 
                throw ex;
            }
 
        }
        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <param name="info"></param>
        public int AddSysMenu(Base_SysMenu info)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    db.Base_SysMenu.Add(info);
                    return db.SaveChanges();
                }
            }
            catch (Exception)
            {
 
                throw;
            }
        }
        /// <summary>
        /// 修改菜单
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public int UpdateSysMenu(Base_SysMenu info)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    db.Base_SysMenu.Attach(info);
                    //把当前实体的状态改为Modified
                    db.Entry(info).State = EntityState.Modified;
                    return db.SaveChanges();
                }
            }
            catch (Exception)
            {
 
                throw;
            }
        }
        /// <summary>
        /// 删除菜单
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public int DeleteSysMenu(string key)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    var obj = new Base_SysMenu { Menu_Id = key };
                    db.Base_SysMenu.Attach(obj);
                    db.Base_SysMenu.Remove(obj);
                    return db.SaveChanges();
                }
            }
            catch (Exception)
            {
 
                throw;
            }
        }
        //获取按钮
        public List<Base_SysMenu> GetButtonList(string ParentId, string UserID)
        {
            try
            {
                using (Sam_DBEntities db = new Sam_DBEntities())
                {
                    var query = (from a in db.Base_SysMenu
                                join b in db.Base_UserRight
                                on a.Menu_Id equals b.Menu_Id
                                where a.ParentId == ParentId &&b.Base_UserInfo.User_ID==UserID
                                 select a).Union(from M in db.Base_SysMenu
                                                join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
                                                join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
                                                where M.ParentId == ParentId && U_R.Base_UserInfo.User_ID == UserID
                                                orderby M.SortCode ascending
                                                select M);
                    return query.ToList();
                    //return db.Base_SysMenu.Where(o => o.ParentId == MenuID && o.Menu_Type == 3).ToList() ;
                }
            }
            catch (Exception)
            {
 
                throw;
            }
        }
    }
}