/// <summary>
        /// 添加新SystemUserRoleMapping记录
        /// </summary>
        /// <param name="model">SystemUserRoleMapping实体对象</param>
        /// <returns>新插入数据的id</returns>
        public static int Insert(SystemUserRoleMapping model, SqlConnection conn = null, SqlTransaction transaction = null)
        {
            var sql = new StringBuilder();

            sql.Append("INSERT INTO [SystemUserRoleMapping]([SystemUserId], [RoleId], [CreatedTime])");
            sql.Append(" OUTPUT INSERTED.[Id] ");
            sql.Append("VALUES(@SystemUserId, @RoleId, @CreatedTime)");
            var ret = 0;

            if (conn != null)
            {
                if (transaction == null)
                {
                    throw new ArgumentNullException("transaction");
                }
                ret = conn.ExecuteScalar <int>(sql.ToString(), model, transaction);
            }
            else
            {
                using (var conn1 = GetOpenConnection())
                {
                    ret = conn1.ExecuteScalar <int>(sql.ToString(), model);
                }
            }

            return(ret);
        }
Пример #2
0
        public ActionResult UserRole(int userId, int roleId)
        {
            var userModel = SystemUserRoleMappingHelper.GetUserRoleBy(userId);

            if (userModel == null)
            {
                return(new JsonResult(ResponseHelper.Error("用户不存在")));
            }
            if (roleId == userModel.RoleId)
            {
                return(new JsonResult(ResponseHelper.Success("ok")));
            }
            var roleModel = SystemRoleHelper.GetModel(p => p.Id == roleId);

            if (roleModel == null)
            {
                return(new JsonResult(ResponseHelper.Error("该角色不存在!")));
            }
            var userRoleMapping = SystemUserRoleMappingHelper.GetModel(p => p.SystemUserId == userId);

            if (userRoleMapping == null)
            {
                userRoleMapping = new SystemUserRoleMapping {
                    CreatedTime = DateTime.Now, RoleId = roleId, SystemUserId = userId
                };
                SystemUserRoleMappingHelper.Insert(userRoleMapping);
                return(new JsonResult(ResponseHelper.Success("ok")));
            }
            if (SystemUserRoleMappingHelper.Update(userRoleMapping, p => p.SystemUserId == userId, SystemUserRoleMappingHelper.Columns.RoleId))
            {
                return(new JsonResult(ResponseHelper.Success("ok")));
            }
            return(new JsonResult(ResponseHelper.Error("修改失败!")));
        }
 /// <summary>
 /// 更新SystemUserRoleMapping数据记录
 /// </summary>
 /// <param name="model">SystemUserRoleMapping实体对象</param>
 /// <param name="fields">需要更新的字段名字</param>
 /// <param name="reverse">反转给定的更新字段</param>
 /// <returns>是否成功,true为成功</returns>
 public static bool Update(SystemUserRoleMapping model, Expression <Func <SystemUserRoleMapping, bool> > predicate, bool reverse, params SystemUserRoleMappingColumn[] fields)
 {
     return(Update(
                model: model,
                predicate: predicate,
                reverse: reverse,
                conn: null,
                transaction: null,
                fields: fields));
 }
 /// <summary>
 /// 更新SystemUserRoleMapping数据记录
 /// </summary>
 /// <param name="model">SystemUserRoleMapping实体对象</param>
 /// <param name="fields">需要更新的字段名字</param>
 /// <param name="reverse">反转给定的更新字段</param>
 /// <returns>是否成功,true为成功</returns>
 public static bool Update(SystemUserRoleMapping model, bool reverse, SqlConnection conn, SqlTransaction transaction, params SystemUserRoleMappingColumn[] fields)
 {
     return(Update(
                model: model,
                predicate: null,
                reverse: reverse,
                conn: conn,
                transaction: transaction,
                fields: fields));
 }
 /// <summary>
 /// 更新SystemUserRoleMapping数据记录
 /// </summary>
 /// <param name="model">SystemUserRoleMapping实体对象</param>
 /// <param name="fields">需要更新的字段名字</param>
 /// <param name="reverse">反转给定的更新字段</param>
 /// <returns>是否成功,true为成功</returns>
 public static bool Update(SystemUserRoleMapping model, params SystemUserRoleMappingColumn[] fields)
 {
     return(Update(
                model: model,
                predicate: null,
                reverse: false,
                conn: null,
                transaction: null,
                fields: fields));
 }
 /// <summary>
 /// 更新SystemUserRoleMapping数据记录
 /// </summary>
 /// <param name="model">SystemUserRoleMapping实体对象</param>
 /// <param name="fields">需要更新的字段名字</param>
 /// <param name="reverse">反转给定的更新字段</param>
 /// <returns>是否成功,true为成功</returns>
 public static bool Update(SystemUserRoleMapping model, Expression <Func <SystemUserRoleMapping, bool> > predicate, SqlConnection conn, SqlTransaction transaction, params SystemUserRoleMappingColumn[] fields)
 {
     return(Update(
                model: model,
                predicate: predicate,
                reverse: false,
                conn: conn,
                transaction: transaction,
                fields: fields));
 }
        /// <summary>
        /// 获取指定的SystemUserRoleMapping实体对象
        /// </summary>
        /// <param name="Id">Id</param>
        /// <returns>SystemUserRoleMapping实体</returns>
        public static SystemUserRoleMapping GetModel(int Id)
        {
            var sql = new StringBuilder();

            sql.Append("SELECT TOP 1 [Id], [SystemUserId], [RoleId], [CreatedTime] FROM [SystemUserRoleMapping] ");
            sql.Append(" WHERE [Id]=@Id ");
            SystemUserRoleMapping ret = null;

            using (var conn = GetOpenConnection())
            {
                ret = conn.QueryFirstOrDefault <SystemUserRoleMapping>(sql.ToString(), new { @Id = Id });
            }

            return(ret);
        }
        /// <summary>
        /// 获取指定的SystemUserRoleMapping实体对象
        /// </summary>
        public static SystemUserRoleMapping GetModel(Expression <Func <SystemUserRoleMapping, bool> > predicate)
        {
            var parser    = new PredicateParser();
            var where_str = parser.Parse(predicate);

            var sql = new StringBuilder();

            sql.Append("SELECT TOP 1 * FROM [SystemUserRoleMapping] ");
            sql.Append(" WHERE " + where_str);
            SystemUserRoleMapping ret = null;

            using (var conn = GetOpenConnection())
            {
                ret = conn.QueryFirstOrDefault <SystemUserRoleMapping>(sql.ToString());
            }

            return(ret);
        }
Пример #9
0
        public IActionResult Getuserinfo(string strlist)
        {
            var response = ResponseModelFactory.CreateResultInstance;

            using (_dbContext)
            {
                var code = strlist;
                //TODO:钉钉相关的配置信息都要放到配置文件中
                string suiteKey    = "dinga7xg5vjb2lwwvicu";
                string suiteSecret = "pUiI0xvN0ZEbsFavSbuaLqctwHL2p9cIRlQ4HU5GS7y-TmYngcTjJGuI309ZLR_h";
                string timestamp   = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000).ToString();
                string suiteTicket = "TestSuiteTicket";
                string signature1  = timestamp + "\n" + suiteTicket;
                string signature2  = HmacSHA256(signature1, suiteSecret);
                string signature   = System.Web.HttpUtility.UrlEncode(signature2, System.Text.Encoding.UTF8);
                string auth_corpid = strlist;
                string url         = "https://oapi.dingtalk.com/gettoken?appkey=" + suiteKey + "&appsecret=" + suiteSecret;

                try
                {
                    var response11 = Haikan3.Utils.DingDingHelper.HttpGet(url);
                    var result     = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.PersistentCodeResult>(response11);
                    if (result != null && result.errcode == "0")
                    {
                        string url11      = "https://oapi.dingtalk.com/user/getuserinfo?access_token=" + result.access_token + "&code=" + code;
                        var    response12 = Haikan3.Utils.DingDingHelper.HttpGet(url11);
                        var    result12   = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.PersistentCodeResult12>(response12);
                        if (result12 != null && result12.errcode == 0)
                        {
                            //获取人员信息
                            //var results = Haikan3.Utils.DingDingHelper.GetUserDetail(result.access_token, result12.userid);
                            var roiduuid = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "客户经理");
                            var userdata = _dbContext.SystemUser.Where(x => x.Streets == result12.userid).ToList().Count;
                            if (userdata == 0)
                            {
                                UserEditViewModel model = new UserEditViewModel();
                                string            pas   = "******";
                                var entity = new HaikanCRM.Api.Entities.SystemUser();
                                entity.SystemUserUuid = Guid.NewGuid();
                                entity.Streets        = result12.userid;
                                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                entity.RealName       = result12.name;
                                entity.LoginName      = result12.name;
                                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(pas.Trim(), MdDesEncrypt.SecretKey);
                                entity.PassWord       = Security.GenerateMD5(pas.Trim());
                                entity.SystemRoleUuid = roiduuid.SystemRoleUuid.ToString();
                                entity.IsDeleted      = 0;
                                entity.ZaiGang        = "在岗";
                                entity.UserType       = 2;
                                _dbContext.SystemUser.Add(entity);
                                _dbContext.SaveChanges();
                                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                                var success = true;
                                ////循环加权限
                                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                                //{
                                if (entity.SystemRoleUuid != null)
                                {
                                    var roles = new SystemUserRoleMapping();
                                    roles.SystemUserUuid = entity.SystemUserUuid;
                                    roles.SystemRoleUuid = Guid.Parse(entity.SystemRoleUuid);
                                    roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                                    roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                                    _dbContext.SystemUserRoleMapping.Add(roles);
                                }
                                //}
                                success = _dbContext.SaveChanges() > 0;
                                if (success)
                                {
                                    response.SetSuccess();
                                }
                                else
                                {
                                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                                    response.SetFailed("保存用户角色数据失败");
                                }
                            }
                            var user           = _dbContext.SystemUser.FirstOrDefault(x => x.IsDeleted == 0 && x.Streets == result12.userid);
                            var role           = _dbContext.SystemRole.FirstOrDefault(x => x.SystemRoleUuid == Guid.Parse(user.SystemRoleUuid));
                            var claimsIdentity = new ClaimsIdentity(new Claim[]
                            {
                                new Claim(ClaimTypes.Name, result12.userid),
                                new Claim("guid", user.SystemUserUuid.ToString()),
                                new Claim("avatar", ""),
                                new Claim("displayName", user.RealName),
                                new Claim("loginName", user.LoginName),
                                new Claim("emailAddress", ""),
                                //new Claim("guid",user.SystemUserUuid.ToString()),
                                //new Claim("userType",usertype.ToString()),
                                new Claim("userType", user.UserType.Value.ToString()),
                                new Claim("roleid", user.SystemRoleUuid.TrimEnd(',')),
                                new Claim("roleName", role.RoleName.TrimEnd(',')),
                                new Claim("ZYZ", ""),
                                new Claim("YH", ""),
                                new Claim("DDY", ""),
                                new Claim("SJ", "")
                            });
                            var token = JwtBearerAuthenticationExtension.GetJwtAccessToken(_appSettings, claimsIdentity);

                            response.SetData(new { user, token });

                            return(Ok(response));
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            return(Ok(response));
        }
Пример #10
0
        public IActionResult Getalluseranddep()
        {
            //1、获取access_token
            string access_token = Haikan3.Utils.DingDingHelper.GetAccessToken0().access_token;
            var    response     = ResponseModelFactory.CreateResultInstance;

            using (_dbContext)
            {
                try
                {
                    UserEditViewModel model = new UserEditViewModel();

                    string pas         = "******";
                    var    code        = access_token;
                    string suiteKey    = "dinga7xg5vjb2lwwvicu";
                    string suiteSecret = "pUiI0xvN0ZEbsFavSbuaLqctwHL2p9cIRlQ4HU5GS7y-TmYngcTjJGuI309ZLR_h";
                    string timestamp   = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000).ToString();
                    string suiteTicket = "TestSuiteTicket";
                    string signature1  = timestamp + "\n" + suiteTicket;
                    string signature2  = HmacSHA256(signature1, suiteSecret);
                    string signature   = System.Web.HttpUtility.UrlEncode(signature2, System.Text.Encoding.UTF8);
                    string auth_corpid = access_token;
                    //string url = "https://oapi.dingtalk.com/service/get_corp_token?signature=" + signature + "&timestamp=" + timestamp + "&suiteTicket=" + suiteTicket + "&accessKey=" + suiteKey;
                    string url = "https://oapi.dingtalk.com/gettoken?appkey=" + suiteKey + "&appsecret=" + suiteSecret;
                    //string param = "{ \"auth_corpid\": \"ding5998aa137739c847bc961a6cb783455b\"}";
                    //var response11 = Haikan3.Utils.DingDingHelper.HttpPost(url, param);
                    var response11 = Haikan3.Utils.DingDingHelper.HttpGet(url);
                    var result     = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.PersistentCodeResult>(response11);
                    if (result != null && result.errcode == "0")
                    {
                        //获取部门列表
                        string urldep       = "https://oapi.dingtalk.com/department/list?access_token=" + result.access_token;
                        var    responseldep = Haikan3.Utils.DingDingHelper.HttpGet(urldep);
                        var    resultdep    = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.departmentAlldata>(responseldep);
                        //将获取的部门信息保存到数据库
                        //if (resultdep.department == null)
                        //{
                        //    response.SetFailed(resultdep.errmsg);
                        //    return Ok(response);
                        //}
                        for (int i = 0; i < resultdep.department.Count; i++)
                        {
                            var depid = _dbContext.SystemDepartment.Count(x => x.Dingid == resultdep.department[i].id);
                            //数据库中没有查到此部门--将数据添加到数据库中
                            if (depid == 0)
                            {
                                var entity = new SystemDepartment();
                                entity.Name           = resultdep.department[i].name;                 //部门名称
                                entity.Dingid         = resultdep.department[i].id;                   //部门钉钉id
                                entity.IsDeleted      = 0;                                            //未删除
                                entity.EstablishTime  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //添加时间
                                entity.EstablishName  = "钉钉同步";                                       //添加人
                                entity.Remark         = "";                                           //备注
                                entity.DepartmentUuid = Guid.NewGuid();                               //部门guid
                                _dbContext.SystemDepartment.Add(entity);                              //添加
                                _dbContext.SaveChanges();
                            }
                            else//此部门已存在---更新部门数据
                            {
                                var entity = _dbContext.SystemDepartment.FirstOrDefault(x => x.Dingid == resultdep.department[i].id);
                                entity.Name = resultdep.department[i].name;//更新部门名称
                                _dbContext.SaveChanges();
                            }

                            //获取该部门的所有用户
                            string urldepuser = "******" + result.access_token + "&department_id=" + resultdep.department[i].id;

                            //获取部门uuid
                            var depuuid = _dbContext.SystemDepartment.FirstOrDefault(x => x.Dingid == resultdep.department[i].id).DepartmentUuid;

                            var responsedepuser = Haikan3.Utils.DingDingHelper.HttpGet(urldepuser);
                            var resdepuser      = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.depauser>(responsedepuser);
                            //将获取到的人员信息保存到数据库中
                            for (int j = 0; j < resdepuser.userlist.Count; j++)
                            {
                                var userid = _dbContext.SystemUser.Count(x => x.Streets == resdepuser.userlist[j].userid);

                                //获取人员信息
                                var results    = Haikan3.Utils.DingDingHelper.HttpGet("https://oapi.dingtalk.com/user/get?access_token=" + result.access_token + "&userid=" + resdepuser.userlist[j].userid);
                                var usersxinxi = Newtonsoft.Json.JsonConvert.DeserializeObject <HaikanCRM.Api.ViewModels.DIngDing.usersdata>(results);
                                var roiduuid   = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "客户经理");
                                //数据库中没有该人员信息--添加到数据库中
                                if (userid == 0)
                                {
                                    var entity = new SystemUser();
                                    entity.SystemUserUuid = Guid.NewGuid();
                                    entity.LoginName      = resdepuser.userlist[j].name;
                                    entity.RealName       = resdepuser.userlist[j].name;
                                    entity.Streets        = resdepuser.userlist[j].userid;
                                    entity.DepartmentUuid = depuuid;//部门uuid
                                    entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                    //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(pas.Trim(), MdDesEncrypt.SecretKey);
                                    entity.PassWord       = Security.GenerateMD5(pas.Trim());;
                                    entity.SystemRoleUuid = roiduuid.SystemRoleUuid.ToString();
                                    entity.IsDeleted      = 0;
                                    entity.ZaiGang        = "在岗";
                                    entity.UserType       = 2;
                                    _dbContext.SystemUser.Add(entity);
                                    _dbContext.SaveChanges();

                                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                                    var success = true;
                                    ////循环加权限
                                    //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                                    //{
                                    if (entity.SystemRoleUuid != null)
                                    {
                                        var roles = new SystemUserRoleMapping();
                                        roles.SystemUserUuid = entity.SystemUserUuid;
                                        roles.SystemRoleUuid = Guid.Parse(entity.SystemRoleUuid);
                                        roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                                        roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                                        _dbContext.SystemUserRoleMapping.Add(roles);
                                    }
                                    //}
                                    success = _dbContext.SaveChanges() > 0;
                                    if (success)
                                    {
                                        response.SetSuccess();
                                    }
                                    else
                                    {
                                        _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                                        response.SetFailed("保存用户角色数据失败");
                                    }
                                }
                                else
                                { //数据库中存在该人员--修改信息
                                    var entity = _dbContext.SystemUser.FirstOrDefault(x => x.Streets == resdepuser.userlist[j].userid);
                                    entity.RealName       = resdepuser.userlist[j].name;
                                    entity.LoginName      = resdepuser.userlist[j].name;
                                    entity.DepartmentUuid = depuuid;//部门uuid
                                    _dbContext.SaveChanges();
                                }
                            }

                            ////获取子部门id列表
                            //string urlzidep = "https://oapi.dingtalk.com/department/list_ids?access_token=" + result.access_token + "&id=" + resultdep.department[i].id;
                            //    var responselzidep = Haikan3.Utils.DingDingHelper.HttpGet(urlzidep);
                        }
                    }

                    //var response = ResponseModelFactory.CreateInstance;
                    return(Ok(response));
                }
                catch (Exception ex)
                {
                    response.SetFailed(ex.Message);
                    return(Ok(response));
                }
            }
        }
Пример #11
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                //if ((!string.IsNullOrEmpty(model.UserIdCard))&& _dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                //{
                //    response.SetFailed("身份证号已存在");
                //    return Ok(response);
                //}
                if (string.IsNullOrEmpty(model.SystemRoleUuid))
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }
                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();

                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                entity.SystemRoleUuid = "";
                entity.PassWord       = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    entity.SystemRoleUuid += model.SystemRoleUuid[i] + ",";
                //}
                entity.SystemRoleUuid = model.SystemRoleUuid;
                entity.SystemRoleUuid = entity.SystemRoleUuid.TrimEnd(',');
                //entity.OldCard = model.OldCard;
                entity.Phone            = model.Phone;
                entity.Sex              = model.Sex;
                entity.Placeofresidence = model.Placeofresidence;
                entity.Age              = model.Age;
                entity.Nickname         = model.Nickname;
                _dbContext.SystemUser.Add(entity);
                int res = _dbContext.SaveChanges();
                if (res > 0)
                {
                    ToLog.AddLog("添加", "成功:添加:系统用户管理列表数据", _dbContext);
                }
                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                //循环加权限
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    if (model.SystemRoleUuid[i] != "")
                //    {
                //        var roles = new SystemUserRoleMapping();
                //        roles.SystemUserUuid = entity.SystemUserUuid;
                //        roles.SystemRoleUuid = Guid.Parse(model.SystemRoleUuid[i]);
                //        roles.AddTime = DateTime.Now.ToString("yyyy-MM-dd");
                //        roles.AddPeople = AuthContextService.CurrentUser.DisplayName;

                //        _dbContext.SystemUserRoleMapping.Add(roles);

                //    }
                //}
                //非循环加权
                var roles = new SystemUserRoleMapping();
                roles.SystemUserUuid = entity.SystemUserUuid;
                roles.SystemRoleUuid = Guid.Parse(model.SystemRoleUuid);
                roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;
                _dbContext.SystemUserRoleMapping.Add(roles);

                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                return(Ok(response));
            }
        }
        /// <summary>
        /// 更新SystemUserRoleMapping数据记录
        /// </summary>
        /// <param name="model">SystemUserRoleMapping实体对象</param>
        /// <param name="fields">需要更新的字段名字</param>
        /// <param name="reverse">反转给定的更新字段</param>
        /// <returns>是否成功,true为成功</returns>
        public static bool Update(SystemUserRoleMapping model, Expression <Func <SystemUserRoleMapping, bool> > predicate, bool reverse, SqlConnection conn, SqlTransaction transaction, params SystemUserRoleMappingColumn[] fields)
        {
            var where_str = string.Empty;

            if (predicate != null)
            {
                var parser = new PredicateParser();
                where_str = parser.Parse(predicate);
            }
            else
            {
                where_str = "[Id] = @Id";
            }

            var sql = new StringBuilder();

            sql.Append("UPDATE [SystemUserRoleMapping]");
            if (fields == null || fields.Length == 0)
            {
                sql.Append(" SET [SystemUserId] = @SystemUserId, [RoleId] = @RoleId, [CreatedTime] = @CreatedTime");
            }
            else
            {
                if (reverse == true)
                {
                    fields = (SystemUserRoleMappingColumn[])Columns.All.Except(fields);
                }
                sql.Append(" SET ");
                for (int i = 0; i < fields.Length; i++)
                {
                    if (fields[i].IsAddEqual)
                    {
                        sql.Append("[" + fields[i].Name + "] += @" + fields[i].Name + "");
                        fields[i].SetAddEqual();
                    }
                    else
                    {
                        sql.Append("[" + fields[i].Name + "] = @" + fields[i].Name + "");
                    }

                    if (i != fields.Length - 1)
                    {
                        sql.Append(",");
                    }
                }
            }
            sql.Append(" WHERE " + where_str);
            var ret = false;

            if (conn != null)
            {
                if (transaction == null)
                {
                    throw new ArgumentNullException("transaction");
                }
                ret = conn.Execute(sql.ToString(), model, transaction) > 0;
            }
            else
            {
                using (var conn1 = GetOpenConnection())
                {
                    ret = conn1.Execute(sql.ToString(), model) > 0;
                }
            }

            return(ret);
        }
Пример #13
0
        public IActionResult Edit(UserEditViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (ConfigurationManager.AppSettings.IsTrialVersion)
            {
                response.SetIsTrial();
                return(Ok(response));
            }
            using (_dbContext)
            {
                var entity = _dbContext.SystemUser.FirstOrDefault(x => x.SystemUserUuid == model.SystemUserUuid);
                if (entity == null)
                {
                    response.SetFailed("用户不存在");
                    return(Ok(response));
                }
                if (entity.LoginName != model.LoginName)
                {
                    response.SetFailed("用户民不可修改");
                    return(Ok(response));
                }
                //if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName && x.SystemUserUuid != model.SystemUserUuid) > 0)
                //{
                //    response.SetFailed("登录名已存在");
                //    return Ok(response);
                //}
                if (model.UserIdCard != null && model.UserIdCard != "")
                {
                    if (entity.UserIdCard != model.UserIdCard)
                    {
                        if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                        {
                            response.SetFailed("身份证号已存在");
                            return(Ok(response));
                        }
                    }
                }
                if (model.SystemRoleUuid == null && model.SystemRoleUuid == "")
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }
                if (entity.LoginName == model.LoginName && ConfigurationManager.HaikanPassport_IfUse)
                {
                    var uu = SyncInformation.UpdateUser(model.LoginName, model.PassWord.Trim(), model.OldCard);
                    if (!(int.Parse(uu) > 0))
                    {
                        response.SetFailed("修改统一身份信息失败");
                        return(Ok(response));
                    }
                }



                entity.LoginName      = model.LoginName;
                entity.RealName       = model.RealName;
                entity.UserIdCard     = model.UserIdCard;
                entity.SystemRoleUuid = model.SystemRoleUuid;
                entity.OldCard        = model.OldCard;
                if (Security.GenerateMD5(model.PassWord.Trim()) != entity.PassWord)
                {
                    //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                    entity.PassWord = Security.GenerateMD5(model.PassWord.Trim());
                }
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.ToString().Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                _dbContext.SaveChanges();
                //entity.UserType = model.UserType;
                //entity.ShopUuid = model.ShopUuid;
                //entity.VillageId = model.VillageId;
                //string temp = "";
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    temp += model.SystemRoleUuid[i] +",";
                //}
                //entity.SystemRoleUuid = temp.TrimEnd(',');
                //entity.IsDeleted = model.IsDeleted;
                //entity.OldCard = model.OldCard;
                //entity.Phone = model.Phone;
                _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                ////循环加权限
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                if (!string.IsNullOrEmpty(model.SystemRoleUuid))
                {
                    var roles = new SystemUserRoleMapping();
                    roles.SystemUserUuid = entity.SystemUserUuid;
                    roles.SystemRoleUuid = Guid.Parse(model.SystemRoleUuid);
                    roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                    roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                    _dbContext.SystemUserRoleMapping.Add(roles);
                }
                //}
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                response = ResponseModelFactory.CreateInstance;
                return(Ok(response));
            }
        }
Пример #14
0
        public IActionResult Edit(UserEditViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (ConfigurationManager.AppSettings.IsTrialVersion)
            {
                response.SetIsTrial();
                return(Ok(response));
            }
            using (_dbContext)
            {
                var entity = _dbContext.SystemUser.FirstOrDefault(x => x.SystemUserUuid == model.SystemUserUuid);
                if (entity == null)
                {
                    response.SetFailed("用户不存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName && x.SystemUserUuid != model.SystemUserUuid) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard && x.SystemUserUuid != model.SystemUserUuid) > 0)
                {
                    response.SetFailed("身份证号已存在");
                    return(Ok(response));
                }
                entity.LoginName      = model.LoginName;
                entity.RealName       = model.RealName;
                entity.UserIdCard     = model.UserIdCard;
                entity.PassWord       = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                entity.UserType       = model.UserType;
                entity.SystemRoleUuid = model.SystemRoleUuid;
                entity.IsDeleted      = model.IsDeleted;
                entity.DepartmentUuid = model.DepartmentUuid;
                int res = _dbContext.SaveChanges();
                if (res > 0)
                {
                    ToLog.AddLog("编辑", "成功:编辑:系统用户信息一条数据", _dbContext);
                }

                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var roles = new SystemUserRoleMapping();
                roles.SystemUserUuid = entity.SystemUserUuid;
                roles.SystemRoleUuid = Guid.Parse(entity.SystemRoleUuid);
                roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;
                var success = true;
                _dbContext.SystemUserRoleMapping.AddRange(roles);
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }



                response = ResponseModelFactory.CreateInstance;
                return(Ok(response));
            }
        }
Пример #15
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                {
                    response.SetFailed("身份证号已存在");
                    return(Ok(response));
                }
                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.SystemRoleUuid == model.SystemRoleUuid);
                entity.SystemRoleUuid = rolename.SystemRoleUuid.ToString();//用户角色uuid
                if (rolename.RoleName == "超级管理员")
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 1;
                }

                entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                _dbContext.SystemUser.Add(entity);
                int res = _dbContext.SaveChanges();
                if (res > 0)
                {
                    ToLog.AddLog("添加", "成功:添加:系统用户信息一条数据", _dbContext);
                }

                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var roles = new SystemUserRoleMapping();
                roles.SystemUserUuid = entity.SystemUserUuid;
                roles.SystemRoleUuid = (Guid)model.SystemRoleUuid;
                roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;
                var success = true;
                _dbContext.SystemUserRoleMapping.AddRange(roles);
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                response.SetSuccess();
                return(Ok(response));
            }
        }
Пример #16
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0 && model.UserIdCard != "")
                {
                    response.SetFailed("身份证号已存在");
                    return(Ok(response));
                }
                if (model.SystemRoleUuid.Count <= 0)
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }
                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();

                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                entity.SystemRoleUuid = "";
                entity.PassWord       = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                {
                    entity.SystemRoleUuid += model.SystemRoleUuid[i] + ",";
                }
                entity.SystemRoleUuid = entity.SystemRoleUuid.TrimEnd(',');
                entity.OldCard        = model.OldCard;
                entity.Phone          = model.Phone;
                entity.Streets        = model.Streets;
                entity.Community      = model.Community;
                entity.Biotope        = model.Biotope;
                _dbContext.SystemUser.Add(entity);
                _dbContext.SaveChanges();

                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                //循环加权限
                for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                {
                    if (model.SystemRoleUuid[i] != "")
                    {
                        var roles = new SystemUserRoleMapping();
                        roles.SystemUserUuid = entity.SystemUserUuid;
                        roles.SystemRoleUuid = Guid.Parse(model.SystemRoleUuid[i]);
                        roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                        roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                        _dbContext.SystemUserRoleMapping.Add(roles);
                    }
                }
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                return(Ok(response));
            }
        }
Пример #17
0
        public IActionResult Edit(UserEditViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (ConfigurationManager.AppSettings.IsTrialVersion)
            {
                response.SetIsTrial();
                return(Ok(response));
            }
            using (_dbContext)
            {
                var entity = _dbContext.SystemUser.FirstOrDefault(x => x.SystemUserUuid == model.SystemUserUuid);
                if (entity == null)
                {
                    response.SetFailed("用户不存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName && x.SystemUserUuid != model.SystemUserUuid) > 0)
                {
                    response.SetFailed("登录名已存在");
                    return(Ok(response));
                }
                if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard && x.SystemUserUuid != model.SystemUserUuid) > 0)
                {
                    response.SetFailed("身份证号已存在");
                    return(Ok(response));
                }
                if (model.SystemRoleUuid.Count <= 0)
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }
                entity.LoginName  = model.LoginName;
                entity.RealName   = model.RealName;
                entity.UserIdCard = model.UserIdCard;
                entity.PassWord   = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                entity.UserType   = model.UserType;
                entity.ShopUuid   = model.ShopUuid;
                entity.VillageId  = model.VillageId;
                string temp = "";
                for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                {
                    temp += model.SystemRoleUuid[i] + ",";
                }
                entity.SystemRoleUuid = temp.TrimEnd(',');
                entity.IsDeleted      = model.IsDeleted;
                entity.OldCard        = model.OldCard;
                entity.Phone          = model.Phone;
                entity.Streets        = model.Streets;
                entity.Community      = model.Community;
                entity.Biotope        = model.Biotope;
                _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                //循环加权限
                for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                {
                    if (!string.IsNullOrEmpty(model.SystemRoleUuid[i]))
                    {
                        var roles = new SystemUserRoleMapping();
                        roles.SystemUserUuid = entity.SystemUserUuid;
                        roles.SystemRoleUuid = Guid.Parse(model.SystemRoleUuid[i]);
                        roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                        roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                        _dbContext.SystemUserRoleMapping.Add(roles);
                    }
                }
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                response = ResponseModelFactory.CreateInstance;
                return(Ok(response));
            }
        }
Пример #18
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                //if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                //{
                //    response.SetFailed("登录名已存在");
                //    return Ok(response);
                //}
                if (model.UserIdCard != null && model.UserIdCard != "")
                {
                    if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                    {
                        response.SetFailed("身份证号已存在");
                        return(Ok(response));
                    }
                }
                if (model.SystemRoleUuid == null && model.SystemRoleUuid.ToString() == "")
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }

                if (ConfigurationManager.HaikanPassport_IfUse)
                {
                    bool checkregister = false;

                    var obj = SyncInformation.CheckUserName(model.LoginName);
                    if (int.Parse(obj) > 0)
                    {
                        var cum = SyncInformation.CheckUserMail(model.OldCard);
                        if (int.Parse(cum) > 0)
                        {
                            //var cur = SyncInformation.CheckUserRegister(model.LoginName, model.OldCard);
                            var ru = SyncInformation.RegisterUser(model.LoginName, model.PassWord.Trim(), model.OldCard);
                            if (ru == "999")
                            {
                                checkregister = true;
                            }
                            else
                            {
                                if (ru == "-888")
                                {
                                    response.SetFailed("系统禁止注册中文用户名");
                                    return(Ok(response));
                                }
                                if (ru == "-999")
                                {
                                    response.SetFailed("当前禁止注册新用户");
                                    return(Ok(response));
                                }
                            }
                        }
                        else
                        {
                            if (cum == "-4")
                            {
                                response.SetFailed("Email 格式有误");
                                return(Ok(response));
                            }
                            if (cum == "-5")
                            {
                                response.SetFailed("Email 不允许注册");
                                return(Ok(response));
                            }
                            if (cum == "-6")
                            {
                                response.SetFailed("Email 已经被注册");
                                return(Ok(response));
                            }
                        }
                    }
                    else
                    {
                        if (obj == "-1")
                        {
                            response.SetFailed("用户名不合法");
                            return(Ok(response));
                        }
                        if (obj == "-2")
                        {
                            response.SetFailed("用户名包含不允许注册的词语");
                            return(Ok(response));
                        }
                        if (obj == "-3")
                        {
                            response.SetFailed("用户名已经存在");
                            return(Ok(response));
                        }
                    }
                    if (!checkregister)
                    {
                        response.SetFailed("用户统一身份注册失败");
                        return(Ok(response));
                    }
                }



                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();
                entity.IsDeleted      = 0;
                entity.LoginName      = model.LoginName;
                entity.RealName       = model.RealName;
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                entity.PassWord       = Security.GenerateMD5(model.PassWord.Trim());
                entity.SystemRoleUuid = model.SystemRoleUuid.ToString();
                entity.UserIdCard     = model.UserIdCard;
                entity.OldCard        = model.OldCard;
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.ToString().Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                _dbContext.SystemUser.Add(entity);
                _dbContext.SaveChanges();


                //entity.SystemRoleUuid = "";
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    entity.SystemRoleUuid += model.SystemRoleUuid[i] + ",";
                //}
                //entity.SystemRoleUuid = entity.SystemRoleUuid.TrimEnd(',');
                //entity.OldCard = model.OldCard;
                //entity.Phone = model.Phone;
                //_dbContext.SystemUser.Add(entity);
                //_dbContext.SaveChanges();

                _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                if (model.SystemRoleUuid != null)
                {
                    var roles = new SystemUserRoleMapping();
                    roles.SystemUserUuid = entity.SystemUserUuid;
                    roles.SystemRoleUuid = model.SystemRoleUuid.Value;
                    roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                    roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                    _dbContext.SystemUserRoleMapping.Add(roles);
                }
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                return(Ok(response));
            }
        }