懒羊羊
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Entity;
using YX.Entity;
using System.Transactions;
namespace YX.DAL
{
    public class SystemUserInfo_Dal
    {
      
       public DataTable GetUserInfoByOrganization_Id(StringBuilder SqlWhere, IList<SqlParameter> IList_param)
        {
            DataTable dt = new DataTable();
            try
            {
                using (Sam_DBEntities db=new Sam_DBEntities())
                {
 
                    StringBuilder strSql = new StringBuilder();
                    strSql.Append(@"SELECT 
                 U.User_ID,
                U.User_Code as '用户工号',
                U.User_Name as '用户名称',
                U.User_Account as '登录账户',
 
                U.User_Sex as '性别',
                U.Title as '职称',
                U.DeleteMark as '状态',
                U.User_Remark as '备注',
                U.CreateDate  as'创建时间',
                U.Email as '邮箱'
                from Base_UserInfo U 
                LEFT JOIN Base_StaffOrganize S 
                ON U.User_ID = S.User_ID where U.DeleteMark !=0");
                    strSql.Append(SqlWhere);
                    strSql.Append(" GROUP BY U.User_ID,U.User_Code,U.User_Name,U.User_Account,U.User_Sex,U.Title,U.DeleteMark,U.User_Remark,U.CreateDate,U.Email");
 
                    dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, strSql.ToString(), IList_param.ToArray()).Tables[0];
                }
 
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
            return dt;
        }
       /// <summary>
       /// 后台登陆验证
       /// </summary>
       /// <param name="name">账户</param>
       /// <param name="pwd">密码</param>
       /// <returns></returns>
       public Base_UserInfo UserLogin(string name, string pwd)
       {
 
           try
           {
               using (Sam_DBEntities db = new Sam_DBEntities())
               {
                  // var password = Md5Helper.Md5(pwd);
                   return db.Base_UserInfo.Where(o => o.User_Account == name && o.User_Pwd == pwd).FirstOrDefault();
               }
 
           }
           catch (Exception ex)
           {
 
               throw ex;
           }
       }
       /// <summary>
       /// 添加用户
       /// </summary>
       /// <param name="UserInfo"></param>
       /// <returns></returns>
       public int AddUserInfo(Base_UserInfo UserInfo)
       {
           int result = 0;
           try
           {
               using (Sam_DBEntities db = new Sam_DBEntities())
               {
                   using (TransactionScope trans = new TransactionScope())
                   {
                      // UserInfo.User_Pwd = Md5Helper.Md5("123456");
                       db.Base_UserInfo.Add(UserInfo);
                       result = db.SaveChanges();
                       trans.Complete();
                       return result;
                   }
 
               }
           }
           catch (Exception ex)
           {
 
               throw ex;
           }
       }
       /// <summary>
       /// 修改用户
       /// </summary>
       /// <param name="UserInfo"></param>
       /// <returns></returns>
       public int EditUserInfo(Base_UserInfo UserInfo)
       {
           int result = 0;
           try
           {
               using (Sam_DBEntities db = new Sam_DBEntities())
               {
 
                   using (TransactionScope trans = new TransactionScope())
                   {
                       //先删除所属部门                       
                       db.Database.ExecuteSqlCommand("delete from Base_StaffOrganize where User_ID={0}", UserInfo.User_ID);
                       //先删除用户权限               
                       db.Database.ExecuteSqlCommand("delete from Base_UserRight where User_ID={0}", UserInfo.User_ID);
                       //先删除属性
                       db.Database.ExecuteSqlCommand("delete from Base_AppendPropertyInstance where PropertyInstance_Key={0}", UserInfo.User_ID);
                        //先删除用户角色
                       db.Database.ExecuteSqlCommand("delete from Base_UserRole where User_ID={0}",UserInfo.User_ID);
 
                       //添加用户权限
 
                       if (UserInfo.Base_UserRight != null && UserInfo.Base_UserRight.Count>0)
                       {
                           string sql_userright = "";
                           foreach (var item in UserInfo.Base_UserRight)
                           {
                               sql_userright += string.Format(@"insert into Base_UserRight ([UserRight_ID]
                                                      ,[User_ID]
                                                      ,[Menu_Id]
                                                      ,[CreateDate]
                                                      ,[CreateUserId]
                                                      ,[CreateUserName])
                                        values('{0}','{1}','{2}','{3}','{4}','{5}');"
                                   , Guid.NewGuid().ToString(), UserInfo.User_ID, item.Menu_Id, DateTime.Now.ToString("yyyy-MM-dd HH: mm:ss"), item.CreateUserId, item.CreateUserName);
                           }
                           db.Database.ExecuteSqlCommand(sql_userright);
                       }
 
                       //添加所属部门
                       if (UserInfo.Base_StaffOrganize != null && UserInfo.Base_StaffOrganize.Count>0)
                       {
                           string sql_staff = "";
                           foreach (var item in UserInfo.Base_StaffOrganize)
                           {
                               sql_staff += string.Format(@"insert into Base_StaffOrganize 
                            ([StaffOrganize_Id]  ,[Organization_ID],[User_ID] ,[CreateDate] ,[CreateUserId],[CreateUserName] )
                            values('{0}','{1}','{2}','{3}','{4}','{5}');", Guid.NewGuid().ToString(), item.Organization_ID, UserInfo.User_ID, DateTime.Now.ToString("yyyy-MM-dd HH: mm:ss"),
                                                                       item.CreateUserId, item.CreateUserName);
                           }
                           db.Database.ExecuteSqlCommand(sql_staff);
                       }
                        //添加所属角色
                        if (UserInfo.Base_UserRole != null && UserInfo.Base_UserRole.Count>0)
                        {
                            string sql_user_role = "";
                            foreach (var item in UserInfo.Base_UserRole)
                            {
                                sql_user_role += string.Format(@"insert into Base_UserRole( [UserRole_ID]
                                  ,[User_ID],[Roles_ID],[CreateDate],[CreateUserId],[CreateUserName])
                                    values('{0}','{1}','{2}','{3}','{4}','{5}')",Guid.NewGuid().ToString(),UserInfo.User_ID,item.Roles_ID,DateTime.Now.ToString("yyyy-MM-dd HH: mm:ss"),
                                    item.CreateUserId,item.CreateUserName);
                            }
                            db.Database.ExecuteSqlCommand(sql_user_role);
                        }
                       //添加属性
                       if (UserInfo.Base_AppendPropertyInstance != null && UserInfo.Base_AppendPropertyInstance.Count>0)
                       {
                           string sql_append = "";
                           foreach (var item in UserInfo.Base_AppendPropertyInstance)
                           {
                               sql_append += string.Format(@"insert into Base_AppendPropertyInstance([PropertyInstance_ID] ,[Property_Control_ID] ,
                                [PropertyInstance_Value],[PropertyInstance_Key])values('{0}','{1}','{2}','{3}');",
                                            Guid.NewGuid().ToString(), item.Property_Control_ID, item.PropertyInstance_Value, UserInfo.User_ID);
                           }
                           db.Database.ExecuteSqlCommand(sql_append);
                       }
                      
                       //修改信息
                       db.Base_UserInfo.Attach(UserInfo);
                       //把当前实体的状态改为Modified
                       db.Entry(UserInfo).State = EntityState.Modified;//会全部字段修改
                       db.Entry(UserInfo).Property("User_Pwd").IsModified = false;//不修改某字段
                       db.Entry(UserInfo).Property("CreateDate").IsModified = false;//不修改某字段
                       db.Entry(UserInfo).Property("CreateUserId").IsModified = false;//不修改某字段
                       db.Entry(UserInfo).Property("CreateUserName").IsModified = false;//不修改某字段
                       result = db.SaveChanges();
                       trans.Complete();
                       return result;
                   }
 
               }
           }
           catch (Exception ex)
           {
 
               throw ex;
           }
       }
    }
}