111
yantian yue
2023-12-28 7820f50a29b75e0704e6e1dcfdaf2e85397c66a8
提交 | 用户 | 时间
e46d3b 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Data.SqlClient;
7 using YX.Entity;
8 using System.Data.Entity;
9 using System.Linq.Expressions;
10 namespace YX.DAL
11 {
12     public class SystemMenu_Dal
13     {
14        
15         ///// <summary>
16         ///// 获取子节点
17         ///// </summary>
18         ///// <returns></returns>
19         //public DataTable GetSysMenuChilds(string ParentId)
20         //{
21         //    DataTable dt = null;
22         //    try
23         //    {
24         //        using (Sam_DBEntities db=new Sam_DBEntities())
25         //        {
26         //            string sql = @"SELECT  
27         //            Menu_Id
28         //          ,[Menu_Name] as '菜单名称'
29         //          ,[Menu_Tag] as '菜单标记'
30         //          ,[Menu_Img] as '菜单图标'
31            //       ,case[ParentId] when '0'then '父节' else '子节'end as '节点位置'
32         //          ,[SortCode] as '菜单排序'
33         //          ,[CreateDate] as'创建时间'
34         //          ,[CreateUserName] as'创建人'
35         //          ,[ModifyDate] as '修改时间'
36         //          ,[ModifyUserName] as'修改人'
37         //            FROM [Base_SysMenu]WHERE ParentId=@ParentId
38         //            order by sortcode asc";
39         //            SqlParameter[] par = new SqlParameter[]
40         //            {
41         //            new SqlParameter("@ParentId", ParentId)
42         //            };
43         //            dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql, par).Tables[0];
44         //        }
45                   
46         //    }
47         //    catch (Exception ex)
48         //    {
49                 
50         //        throw ex;
51         //    }
52         //    return dt;
53         //}
54         public List<Base_SysMenu> GetMenusByCondition(Expression<Func<Base_SysMenu, bool>> lambda)
55         {
56             List<Base_SysMenu> list = new List<Base_SysMenu>();
57             using (Sam_DBEntities db = new Sam_DBEntities())
58             {
59                 list = db.Base_SysMenu.Where(lambda).ToList();
60             }
61             return list;
62         }
63         /// <summary>
64         /// 用户权限查询
65         /// </summary>
66         /// <param name="lambda"></param>
67         /// <returns></returns>
68         public List<Base_UserRight> GetUserRightByCondition(Expression<Func<Base_UserRight, bool>> lambda)
69         {
70             try
71             {
72                 using (Sam_DBEntities db = new Sam_DBEntities())
73                 {
74                     return db.Base_UserRight.Where(lambda).ToList(); ;
75                 }
76
77             }
78             catch (Exception EX)
79             {
80
81                 throw EX;
82             }
83         }
84         /// <summary>
85         /// 角色权限查询
86         /// </summary>
87         /// <param name="lambda"></param>
88         /// <returns></returns>
89         public List<Base_RoleRight> GetRoleRightByCondition(Expression<Func<Base_RoleRight, bool>> lambda)
90         {
91             try
92             {
93                 using (Sam_DBEntities db = new Sam_DBEntities())
94                 {
95                     return db.Base_RoleRight.Where(lambda).ToList(); ;
96                 }
97
98             }
99             catch (Exception EX)
100             {
101
102                 throw EX;
103             }
104         }
105         /// <summary>
106         /// 获取全部菜单
107         /// </summary>
108         /// <returns></returns>
109         public List<Base_SysMenu> GetSysMenus()
110         {
111
112             try
113             {
114                 //DataTable dt = dal.GetParent();
115                 //list = DataTableToModel.GetEntities<Base_SysMenu>(dt).ToList();
116                 using (Sam_DBEntities db = new Sam_DBEntities())
117                 {
118                     return db.Base_SysMenu.ToList();
119                 }
120
121             }
122             catch (Exception ex)
123             {
124
125                 throw ex;
126             }
127
128         }
129         /// <summary>
130         /// 获取菜单根节点
131         /// </summary>
132         /// <returns></returns>
133         public List<Base_SysMenu> GetSysMenusParent(string UserID)
134         {
135             try
136             {
137                 using (Sam_DBEntities db = new Sam_DBEntities())
138                 {
139                     var query = (from menuinfo in db.Base_SysMenu
140                                 join userright in db.Base_UserRight
141                                 on menuinfo.Menu_Id equals userright.Menu_Id
142                                 where menuinfo.ParentId == "0" && userright.Base_UserInfo.User_ID == UserID
143                                 orderby menuinfo.SortCode ascending
144                                 select menuinfo).Union(from M in db.Base_SysMenu
145                                                        join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
146                                                        join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
147                                                        where M.ParentId == "0" && U_R.Base_UserInfo.User_ID == UserID
148                                                        orderby M.SortCode ascending
149                                                        select M);
150                     //var sql = query.ToString();                           
151                     return query.ToList(); ;
152                 }
153
154             }
155             catch (Exception ex)
156             {
157
158                 throw ex;
159             }
160         }
161         /// <summary>
162         /// 获取菜单子节点
163         /// </summary>
164         /// <param name="ParentId"></param>
165         /// <returns></returns>
166         public List<Base_SysMenu> GetSysMenuChilds(string ParentId, string UserID)
167         {
168             try
169             {
170                 using (Sam_DBEntities db = new Sam_DBEntities())
171                 {
172                     var query = (from menuinfo in db.Base_SysMenu
173                                 join userright in db.Base_UserRight
174                                 on menuinfo.Menu_Id equals userright.Menu_Id
175                                 where menuinfo.ParentId == ParentId && userright.Base_UserInfo.User_ID == UserID
176                               
177                                 select menuinfo).Union(from M in db.Base_SysMenu 
178                                                        join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
179                                                        join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
180                                                        where M.ParentId==ParentId && U_R.Base_UserInfo.User_ID==UserID
181                                                   
182                                                        select M).OrderBy(o=>o.SortCode);
183                     return query.ToList(); ;
184                     //  return db.Base_SysMenu.Where(o=>o.ParentId==ParentId).ToList();
185                 }
186             }
187             catch (Exception ex)
188             {
189
190                 throw ex;
191             }
192
193         }
194         /// <summary>
195         /// 获取菜单子节点
196         /// </summary>
197         /// <param name="ParentId"></param>
198         /// <returns></returns>
199         public List<Base_SysMenu> GetSysMenuChilds(string ParentId)
200         {
201             try
202             {
203                 using (Sam_DBEntities db = new Sam_DBEntities())
204                 {
205                     var query = (from menuinfo in db.Base_SysMenu                               
206                                  where menuinfo.ParentId == ParentId                           
207                                  select menuinfo).OrderBy(o => o.SortCode);
208                     return query.ToList(); ;
209                     //  return db.Base_SysMenu.Where(o=>o.ParentId==ParentId).ToList();
210                 }
211             }
212             catch (Exception ex)
213             {
214
215                 throw ex;
216             }
217
218         }
219         /// <summary>
220         /// 添加菜单
221         /// </summary>
222         /// <param name="info"></param>
223         public int AddSysMenu(Base_SysMenu info)
224         {
225             try
226             {
227                 using (Sam_DBEntities db = new Sam_DBEntities())
228                 {
229                     db.Base_SysMenu.Add(info);
230                     return db.SaveChanges();
231                 }
232             }
233             catch (Exception)
234             {
235
236                 throw;
237             }
238         }
239         /// <summary>
240         /// 修改菜单
241         /// </summary>
242         /// <param name="info"></param>
243         /// <returns></returns>
244         public int UpdateSysMenu(Base_SysMenu info)
245         {
246             try
247             {
248                 using (Sam_DBEntities db = new Sam_DBEntities())
249                 {
250                     db.Base_SysMenu.Attach(info);
251                     //把当前实体的状态改为Modified
252                     db.Entry(info).State = EntityState.Modified;
253                     return db.SaveChanges();
254                 }
255             }
256             catch (Exception)
257             {
258
259                 throw;
260             }
261         }
262         /// <summary>
263         /// 删除菜单
264         /// </summary>
265         /// <param name="key"></param>
266         /// <returns></returns>
267         public int DeleteSysMenu(string key)
268         {
269             try
270             {
271                 using (Sam_DBEntities db = new Sam_DBEntities())
272                 {
273                     var obj = new Base_SysMenu { Menu_Id = key };
274                     db.Base_SysMenu.Attach(obj);
275                     db.Base_SysMenu.Remove(obj);
276                     return db.SaveChanges();
277                 }
278             }
279             catch (Exception)
280             {
281
282                 throw;
283             }
284         }
285         //获取按钮
286         public List<Base_SysMenu> GetButtonList(string ParentId, string UserID)
287         {
288             try
289             {
290                 using (Sam_DBEntities db = new Sam_DBEntities())
291                 {
292                     var query = (from a in db.Base_SysMenu
293                                 join b in db.Base_UserRight
294                                 on a.Menu_Id equals b.Menu_Id
295                                 where a.ParentId == ParentId &&b.Base_UserInfo.User_ID==UserID
296                                  select a).Union(from M in db.Base_SysMenu
297                                                 join R_R in db.Base_RoleRight on M.Menu_Id equals R_R.Menu_Id
298                                                 join U_R in db.Base_UserRole on R_R.Base_Roles.Roles_ID equals U_R.Roles_ID
299                                                 where M.ParentId == ParentId && U_R.Base_UserInfo.User_ID == UserID
300                                                 orderby M.SortCode ascending
301                                                 select M);
302                     return query.ToList();
303                     //return db.Base_SysMenu.Where(o => o.ParentId == MenuID && o.Menu_Type == 3).ToList() ;
304                 }
305             }
306             catch (Exception)
307             {
308
309                 throw;
310             }
311         }
312     }
313 }