示例#1
0
        /// <summary>
        /// 删除登录
        /// </summary>
        /// <param name="loginKey">登录凭证</param>
        /// <param name="err">错误信息</param>
        /// <param name="keyId">删除登录</param>
        /// <returns>删除登录</returns>
        public bool Login_Delete(string loginKey, ref ProInterface.ErrorInfo err, int keyId)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(false);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    var ent = db.fa_login.SingleOrDefault(a => a.ID == keyId);
                    db.fa_login.Remove(ent);

                    db.SaveChanges();
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete);
                    return(true);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    err.Message = e.Message;
                    return(false);
                }
            }
        }
示例#2
0
 /// <summary>
 /// 查询一条
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <param name="whereLambda">条件lambda表达表</param>
 /// <returns>查询一条</returns>
 public ProInterface.Models.LOGIN Login_Single(string loginKey, ref ProInterface.ErrorInfo err, string whereLambda)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         IList <fa_login> content = new List <fa_login>();
         Expression <Func <fa_login, bool> > whereFunc;
         try
         {
             whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda);
         }
         catch
         {
             err.IsError = true;
             err.Message = "条件表态式有误";
             return(null);
         }
         var reEnt = db.fa_login.Where(whereFunc).ToList();
         if (reEnt.Count > 0)
         {
             return(Fun.ClassToCopy <fa_login, ProInterface.Models.LOGIN>(reEnt[0]));
         }
         return(null);
     }
 }
示例#3
0
 /// <summary>
 /// 添加系统用户
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <param name="inEnt">实体类</param>
 /// <returns>添加系统用户</returns>
 public object User_Add(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.USER inEnt)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         fa_user reEnt = Fun.ClassToCopy <ProInterface.Models.USER, fa_user>(inEnt);
         reEnt = db.fa_user.Add(reEnt);
         try
         {
             db.SaveChanges();
             GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Add);
             return(reEnt.ID);
         }
         catch (Exception e)
         {
             err.IsError = true;
             err.Message = e.Message;
             err.Excep   = e;
             return(null);
         }
     }
 }
示例#4
0
 /// <summary>
 /// 满足条件记录数
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <param name="whereLambda">条件lambda表达表</param>
 /// <returns></returns>
 public int Login_Count(string loginKey, ref ProInterface.ErrorInfo err, string whereLambda)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(0);
     }
     using (DBEntities db = new DBEntities())
     {
         IList <fa_login> content = new List <fa_login>();
         Expression <Func <fa_login, bool> > whereFunc;
         try
         {
             if (whereLambda == null || whereLambda.Trim() == "")
             {
                 return(db.fa_login.Count());
             }
             whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda);
             return(db.fa_login.Where(whereFunc).Count());
         }
         catch
         {
             err.IsError = true;
             err.Message = "条件表态式有误";
             return(0);
         }
     }
 }
示例#5
0
        /// <summary>
        /// 修改系统用户
        /// </summary>
        /// <param name="loginKey">登录凭证</param>
        /// <param name="err">错误信息</param>
        /// <param name="inEnt">实体类</param>
        /// <returns>修改系统用户</returns>
        public bool User_Edit(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.USER inEnt)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(false);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    var ent = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID);
                    ent = Fun.ClassToCopy <ProInterface.Models.USER, fa_user>(inEnt, ent);

                    db.SaveChanges();
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
                    return(true);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    err.Message = e.Message;
                    err.Excep   = e;
                    return(false);
                }
            }
        }
示例#6
0
        public object Login_Save(DBEntities db, string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.LOGIN inEnt, IList <string> allPar)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            var  ent   = db.fa_login.SingleOrDefault(a => a.ID == inEnt.ID);
            bool isAdd = false;

            if (ent == null)
            {
                isAdd  = true;
                ent    = Mapper.Map <LOGIN, fa_login>(inEnt);
                ent.ID = Fun.GetCurrvalSeqID <fa_login>();
            }
            else
            {
                ent = Fun.ClassToCopy <ProInterface.Models.LOGIN, fa_login>(inEnt, ent, allPar);
            }
            if (isAdd)
            {
                ent = db.fa_login.Add(ent);
            }
            GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
            return(ent);
        }
示例#7
0
 public bool RoleDelete(string loginKey, ref ErrorInfo err, int id)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(false);
     }
     using (DBEntities db = new DBEntities())
     {
         try
         {
             var ent = db.fa_role.SingleOrDefault(a => a.ID == id);
             ent.fa_bulletin.Clear();
             ent.fa_flow_flownode_flow.Clear();
             ent.fa_function.Clear();
             ent.fa_module.Clear();
             ent.fa_user.Clear();
             //ent.YL_APP_MEUN.Clear();
             foreach (var t in ent.fa_role_config.ToList())
             {
                 db.fa_role_config.Remove(t);
             }
             db.fa_role.Remove(ent);
             db.SaveChanges();
             GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete);
             return(true);
         }
         catch (Exception e)
         {
             err.IsError = true;
             err.Message = e.Message;
             return(false);
         }
     }
 }
示例#8
0
        public TUser UserGetNow(string loginKey, ref ErrorInfo err)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var reEnt = db.fa_user.SingleOrDefault(x => x.ID == gu.UserId);
                if (reEnt != null)
                {
                    var reUser = Fun.ClassToCopy <fa_user, ProInterface.Models.TUser>(reEnt);
                    reUser.RoleAllID   = ",";
                    reUser.RoleAllName = "";
                    foreach (var t in reEnt.fa_role.ToList())
                    {
                        reUser.RoleAllID   += t.ID + ",";
                        reUser.RoleAllName += "," + t.NAME;
                    }
                    if (reUser.RoleAllName.Length > 1)
                    {
                        reUser.RoleAllName = reUser.RoleAllName.Substring(1);
                    }
                    var dis = db.fa_district.SingleOrDefault(x => x.ID == gu.DistrictId);
                    reUser.DistrictName = dis != null?dis.NAME:"";
                    var myDisId   = reEnt.DISTRICT_ID;
                    var changeDis = db.fa_district.Where(x => x.LEVEL_ID == 2 && x.IN_USE == 1 && (x.ID == myDisId || x.PARENT_ID == myDisId)).OrderBy(x => x.ID).ToList();
                    reUser.CanChangeDistrict = Fun.ClassListToCopy <fa_district, DISTRICT>(changeDis);
                    reUser.REMARK            = "";

                    //if (reEnt.fa_user_INFO != null && reEnt.fa_user_INFO.YL_CHANNEL_INFO.Count() > 0)
                    //{
                    //    var allData = db.fa_user.Where(x => x.fa_user_INFO != null && x.DISTRICT_ID == reEnt.DISTRICT_ID && x.fa_role.Where(y => y.ID == 4).Count() > 0).ToList().Select(x => string.Format("渠道经理:{0}({1})  归属:{2}", x.NAME, x.fa_user_INFO.PHONE_NUMBER, x.fa_district.NAME)).ToList();
                    //    if (allData.Count() > 0)
                    //    {
                    //        allData = new List<string> { allData[0] };
                    //    }
                    //    reUser.REMARK = string.Join("<br />", allData);
                    //}
                    //else
                    //{
                    //    reUser.REMARK = "";
                    //}
                    var allModule = db.YL_MODULE.Where(x => x.IS_HIDE == 0 && x.fa_role.Where(y => gu.RoleID.Contains(y.ID)).Count() > 0).ToList();
                    reUser.MyModule = Fun.ClassListToCopy <YL_MODULE, MODULE>(allModule);
                    return(reUser);
                }
                return(null);
            }
        }
示例#9
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="loginKey">登录凭证</param>
        /// <param name="err">错误信息</param>
        /// <param name="pageIndex">当前页数</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="whereLambda">条件lambda表达表</param>
        /// <param name="orderField">排序字段</param>
        /// <param name="orderBy">排序方式</param>
        /// <returns>返回满足条件的泛型</returns>
        public IList <ProInterface.Models.LOGIN> Login_Where(string loginKey, ref ProInterface.ErrorInfo err, int pageIndex, int pageSize, string whereLambda, string orderField, string orderBy)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            if (pageIndex < 1)
            {
                pageIndex = 1;
            }
            if (pageSize < 1)
            {
                pageSize = 1;
            }
            int skipCount = (pageIndex - 1) * pageSize;

            if (orderField == null || orderField == "")
            {
                err.IsError = true;
                err.Message = "排序表态式不能为空";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var allList = db.fa_login.AsQueryable();
                if (whereLambda != null && whereLambda != "")
                {
                    try
                    {
                        Expression <Func <fa_login, bool> > whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda);
                        allList = db.fa_login.Where(whereFunc);
                    }
                    catch
                    {
                        err.IsError = true;
                        err.Message = "条件表态式有误";
                        return(null);
                    }
                }

                if (orderBy == "asc")
                {
                    allList = StringFieldNameSortingSupport.OrderBy(allList, orderField);
                }
                else
                {
                    allList = StringFieldNameSortingSupport.OrderByDescending(allList, orderField);
                }

                var content = allList.Skip(skipCount).Take(pageSize).ToList();
                return(Fun.ClassListToCopy <fa_login, ProInterface.Models.LOGIN>(content));
            }
        }
示例#10
0
 /// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <returns>返回满足条件的泛型</returns>
 public IList <ProInterface.Models.USER> User_FindAll(string loginKey, ref ProInterface.ErrorInfo err)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         var allList = db.fa_user.ToList();
         return(Fun.ClassListToCopy <fa_user, ProInterface.Models.USER>(allList));
     }
 }
示例#11
0
 public bool UserEdit(string loginKey, ref ErrorInfo err, TUser inEnt)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(false);
     }
     using (DBEntities db = new DBEntities())
     {
         try
         {
             var ent = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID);
             //ent = Fun.ClassToCopy<ProInterface.Models.TUser, fa_user>(inEnt, ent);
             ent.NAME        = inEnt.NAME;
             ent.DISTRICT_ID = inEnt.DISTRICT_ID;
             ent.IS_LOCKED   = inEnt.IS_LOCKED;
             ent.REMARK      = inEnt.REMARK;
             ent.REGION      = ent.DISTRICT_ID.ToString();
             IList <int> moduleID = new List <int>();
             foreach (var str in inEnt.RoleAllID.Split(','))
             {
                 if (!string.IsNullOrEmpty(str))
                 {
                     moduleID.Add(Convert.ToInt32(str));
                 }
             }
             ent.fa_role.Clear();
             ent.fa_role = db.fa_role.Where(x => moduleID.Contains(x.ID)).ToList();
             ent.fa_district1.Clear();
             if (!string.IsNullOrEmpty(inEnt.UserDistrict))
             {
                 var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                 ent.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList();
             }
             var login = db.fa_login.SingleOrDefault(a => a.LOGIN_NAME == ent.LOGIN_NAME);
             login.IS_LOCKED     = inEnt.IS_LOCKED;
             login.LOCKED_REASON = inEnt.LOCKED_REASON;
             login.PHONE_NO      = inEnt.PHONE_NO;
             login.REGION        = inEnt.DISTRICT_ID.ToString();
             db.SaveChanges();
             GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
             return(true);
         }
         catch (Exception e)
         {
             err.IsError = true;
             err.Message = e.Message;
             err.Excep   = e;
             return(false);
         }
     }
 }
示例#12
0
        public TRole RoleSingle(string loginKey, ref ErrorInfo err, int id)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var        reEnt   = db.fa_role.Where(x => x.ID == id).ToList();
                TRole      tmp     = new TRole();
                IList <KV> allPara = new List <KV>();

                if (reEnt.Count > 0)
                {
                    tmp = Fun.ClassToCopy <fa_role, ProInterface.Models.TRole>(reEnt[0]);
                    tmp.ModuleAllStr = ",";
                    foreach (var t in reEnt[0].fa_module.ToList())
                    {
                        tmp.ModuleAllStr += t.ID + ",";
                    }
                    tmp.RoleConfigs = Fun.ClassListToCopy <fa_role_config, ROLE_CONFIG>(reEnt[0].fa_role_config.ToList());
                }
                //添加
                foreach (var t in allPara)
                {
                    var cfg = tmp.RoleConfigs.SingleOrDefault(x => x.NAME == t.K);
                    if (cfg == null)
                    {
                        tmp.RoleConfigs.Add(new ROLE_CONFIG {
                            NAME = t.K, REMARK = t.V
                        });
                    }
                    else
                    {
                        cfg.REMARK = t.V;
                    }
                }
                //删除
                foreach (var t in tmp.RoleConfigs)
                {
                    if (allPara.SingleOrDefault(x => x.K == t.NAME) == null)
                    {
                        tmp.RoleConfigs.Remove(t);
                    }
                }
                tmp.RoleConfigsStr = JSON.DecodeToStr(tmp.RoleConfigs);
                return(tmp);
            }
        }
示例#13
0
 /// <summary>
 /// 查询一条
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <param name="keyId">主键ID</param>
 /// <returns>查询一条</returns>
 public ProInterface.Models.LOGIN Login_SingleId(string loginKey, ref ProInterface.ErrorInfo err, int keyId)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         var ent   = db.fa_login.SingleOrDefault(x => x.ID == keyId);
         var reEnt = new ProInterface.Models.LOGIN();
         if (ent != null)
         {
             reEnt = Fun.ClassToCopy <fa_login, ProInterface.Models.LOGIN>(ent);
         }
         return(reEnt);
     }
 }
示例#14
0
        /// <summary>
        /// 删除用户,并删除该用户的登录信息
        /// </summary>
        /// <param name="loginKey"></param>
        /// <param name="err"></param>
        /// <param name="keyId"></param>
        /// <returns></returns>
        public bool UserDelete(string loginKey, ref ErrorInfo err, int keyId)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(false);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    var ent   = db.fa_user.SingleOrDefault(a => a.ID == keyId);
                    var login = db.fa_login.Where(x => x.LOGIN_NAME == ent.LOGIN_NAME).ToList();
                    foreach (var t in login)
                    {
                        db.fa_login.Remove(t);
                    }

                    foreach (var t in ent.fa_user_ADDRESS.ToList())
                    {
                        db.fa_user_ADDRESS.Remove(t);
                    }


                    ent.fa_role.Clear();
                    ent.YL_MODULE.Clear();
                    db.fa_user.Remove(ent);

                    db.SaveChanges();
                    UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete);
                    return(true);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    err.Message = e.Message;
                    return(false);
                }
            }
        }
示例#15
0
 public bool RoleSaveNoAuthority(string loginKey, ref ErrorInfo err, int roleId, int queryId, string AuthArr)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(false);
     }
     using (DBEntities db = new DBEntities())
     {
         var roleAuth = db.fa_role_query_authority.SingleOrDefault(x => x.ROLE_ID == roleId && x.QUERY_ID == queryId);
         if (roleAuth == null)
         {
             db.fa_role_query_authority.Add(new fa_role_query_authority {
                 NO_AUTHORITY = AuthArr, QUERY_ID = queryId, ROLE_ID = roleId
             });
         }
         else
         {
             roleAuth.NO_AUTHORITY = AuthArr;
         }
         db.SaveChanges();
     }
     return(true);
 }
示例#16
0
        public TUser UserGetAndSave(string loginKey, ref ErrorInfo err, TUser inEnt, IList <string> allPar)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    string nowLoginName = inEnt.LOGIN_NAME;
                    var    userEnt      = db.fa_user.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME);
                    var    loginEnt     = db.fa_login.SingleOrDefault(x => x.LOGIN_NAME == nowLoginName);
                    if (userEnt == null)
                    {
                        userEnt             = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt);
                        userEnt.ID          = Fun.GetSeqID <fa_user>();
                        userEnt.CREATE_TIME = DateTime.Now;
                        userEnt.LOGIN_COUNT = 0;
                        userEnt.REGION      = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID).REGION;
                        db.fa_user.Add(userEnt);
                    }

                    if (loginEnt == null)
                    {
                        loginEnt          = Fun.ClassToCopy <TUser, fa_login>(inEnt);
                        loginEnt.ID       = Fun.GetSeqID <fa_login>();
                        loginEnt.PASSWORD = (string.IsNullOrEmpty(inEnt.PassWord)) ? AppSet.DefaultPwd.Md5() : inEnt.PassWord.Md5();
                        loginEnt.REGION   = userEnt.REGION;
                        db.fa_login.Add(loginEnt);
                    }

                    IList <int> allRoleId = userEnt.fa_role.Select(x => x.ID).ToList();
                    foreach (var t in inEnt.RoleAllID.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList())
                    {
                        allRoleId.Add(t);
                    }
                    ;
                    userEnt.fa_role.Clear();
                    userEnt.fa_role = db.fa_role.Where(x => allRoleId.Contains(x.ID)).ToList();

                    db.SaveChanges();
                    inEnt    = Fun.ClassToCopy <fa_user, TUser>(userEnt, inEnt);
                    inEnt.ID = userEnt.ID;
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
                    return(inEnt);
                }
                catch (DbEntityValidationException e)
                {
                    err.IsError = true;
                    err.Message = Fun.GetDbEntityErrMess(e);
                    return(null);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    err.Message = Fun.GetExceptionMessage(e);
                    return(null);
                }
            }
        }
示例#17
0
        public object UserAdd(string loginKey, ref ErrorInfo err, TUser inEnt)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            using (DBEntities db = new DBEntities())
            {
                fa_user reEnt  = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt);
                var     nowDis = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID);
                reEnt.CREATE_TIME = DateTime.Now;
                reEnt.DISTRICT_ID = nowDis.ID;
                reEnt.LOGIN_COUNT = 0;

                IList <int> moduleID = new List <int>();
                foreach (var str in inEnt.RoleAllID.Split(','))
                {
                    if (!string.IsNullOrEmpty(str))
                    {
                        moduleID.Add(Convert.ToInt32(str));
                    }
                }
                reEnt.ID      = Fun.GetSeqID <fa_user>();
                reEnt.REGION  = nowDis.REGION;
                reEnt.fa_role = db.fa_role.Where(x => moduleID.Contains(x.ID)).ToList();
                reEnt.fa_district1.Clear();
                if (!string.IsNullOrEmpty(inEnt.UserDistrict))
                {
                    var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                    reEnt.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList();
                }
                reEnt = db.fa_user.Add(reEnt);

                fa_login login = new fa_login();
                login.ID         = Fun.GetSeqID <fa_login>();
                login.LOGIN_NAME = inEnt.LOGIN_NAME;
                if (!string.IsNullOrEmpty(inEnt.PassWord))
                {
                    login.PASSWORD = inEnt.PassWord.Md5();
                }
                else
                {
                    login.PASSWORD = AppSet.DefaultPwd.Md5();
                }
                login.PHONE_NO      = inEnt.PHONE_NO;
                login.IS_LOCKED     = inEnt.IS_LOCKED;
                login.LOCKED_REASON = inEnt.LOCKED_REASON;
                login.REGION        = reEnt.REGION;
                login = db.fa_login.Add(login);


                try
                {
                    db.SaveChanges();
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Add);
                    return(reEnt.ID);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    err.Message = Fun.GetExceptionMessage(e);
                    err.Excep   = e;
                    return(null);
                }
            }
        }
示例#18
0
        public TUser UserSave(string loginKey, ref ErrorInfo err, TUser inEnt, IList <string> allPar)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    var idPar = allPar.SingleOrDefault(x => x == "ID");
                    if (idPar != null)
                    {
                        allPar.Remove(idPar);
                    }

                    var userEnt = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID);
                    if (userEnt == null)
                    {
                        userEnt = db.fa_user.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME);
                    }
                    var  loginEnt = db.fa_login.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME);
                    bool isAdd    = false;
                    if (userEnt == null)
                    {
                        isAdd   = true;
                        userEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt);
                        if (userEnt.ID == 0)
                        {
                            userEnt.ID = Fun.GetSeqID <fa_user>();
                        }
                        userEnt.CREATE_TIME = DateTime.Now;
                        userEnt.LOGIN_COUNT = 0;
                        userEnt.REGION      = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID).REGION;
                    }
                    else
                    {
                        if (db.fa_user.Where(x => x.LOGIN_NAME == inEnt.LOGIN_NAME && x.ID != userEnt.ID).Count() > 0)
                        {
                            err.IsError = true;
                            err.Message = "登录工号已经存在";
                            return(null);
                        }
                        userEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt, userEnt, allPar);
                    }

                    if (loginEnt == null)
                    {
                        loginEnt          = Fun.ClassToCopy <TUser, fa_login>(inEnt);
                        loginEnt.ID       = Fun.GetSeqID <fa_login>();
                        loginEnt.PASSWORD = AppSet.DefaultPwd.Md5();
                        loginEnt.REGION   = userEnt.REGION;
                        db.fa_login.Add(loginEnt);
                    }
                    else
                    {
                        if (db.fa_login.Where(x => x.LOGIN_NAME == loginEnt.LOGIN_NAME && x.ID != loginEnt.ID).Count() > 0)
                        {
                            err.IsError = true;
                            err.Message = "登录工号已经存在";
                            return(null);
                        }
                        loginEnt          = Fun.ClassToCopy <TUser, fa_login>(inEnt, loginEnt, allPar);
                        loginEnt.PHONE_NO = inEnt.PHONE_NO;
                    }


                    if (allPar.Contains("RoleAllID"))
                    {
                        IList <int> allRoleId = new List <int>();
                        allRoleId = inEnt.RoleAllID.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList();
                        userEnt.fa_role.Clear();
                        userEnt.fa_role = db.fa_role.Where(x => allRoleId.Contains(x.ID)).ToList();
                    }

                    if (isAdd)
                    {
                        db.fa_user.Add(userEnt);
                    }

                    userEnt.fa_district1.Clear();
                    if (!string.IsNullOrEmpty(inEnt.UserDistrict))
                    {
                        var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        userEnt.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList();
                    }

                    db.SaveChanges();
                    inEnt    = Fun.ClassToCopy <fa_user, TUser>(userEnt, inEnt);
                    inEnt.ID = userEnt.ID;
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
                    return(inEnt);
                }
                catch (Exception e)
                {
                    err.IsError = true;
                    if (e.Message.IndexOf("EntityValidationErrors") > -1)
                    {
                        err.Message = Fun.GetDbEntityErrMess(e as DbEntityValidationException);
                    }
                    else
                    {
                        System.Data.Entity.Infrastructure.DbUpdateException t = e as System.Data.Entity.Infrastructure.DbUpdateException;
                        err.Message = t.Message;
                    }
                    return(null);
                }
            }
        }
示例#19
0
        public bool RoleSave(string loginKey, ref ErrorInfo err, TRole inEnt, IList <string> allPar)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(false);
            }
            using (DBEntities db = new DBEntities())
            {
                try
                {
                    var ent = db.fa_role.SingleOrDefault(a => a.ID == inEnt.ID);

                    bool isAdd = false;
                    if (ent == null)
                    {
                        isAdd  = true;
                        ent    = Fun.ClassToCopy <ProInterface.Models.ROLE, fa_role>(inEnt);
                        ent.ID = Fun.GetSeqID <fa_role>();
                    }
                    else
                    {
                        ent = Fun.ClassToCopy <ProInterface.Models.ROLE, fa_role>(inEnt, ent, allPar);
                    }

                    ent.fa_module.Clear();
                    IList <int> moduleID = inEnt.ModuleAllStr.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                    ent.fa_module     = db.fa_module.Where(x => moduleID.Contains(x.ID)).ToList();
                    inEnt.RoleConfigs = JSON.EncodeToEntity <IList <ROLE_CONFIG> >(inEnt.RoleConfigsStr);
                    foreach (var t in inEnt.RoleConfigs)
                    {
                        var cfg = ent.fa_role_config.SingleOrDefault(x => x.NAME == t.NAME);
                        if (cfg == null)
                        {
                            ent.fa_role_config.Add(new fa_role_config
                            {
                                NAME    = t.NAME,
                                ROLE_ID = ent.ID,
                                VALUE   = t.VALUE
                            });
                        }
                        else
                        {
                            cfg.VALUE = t.VALUE;
                        }
                    }
                    foreach (var t in ent.fa_role_config.ToList())
                    {
                        if (inEnt.RoleConfigs.SingleOrDefault(x => x.NAME == t.NAME) == null)
                        {
                            db.fa_role_config.Remove(t);
                        }
                    }

                    if (isAdd)
                    {
                        db.fa_role.Add(ent);
                    }
                    db.SaveChanges();
                    GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit);
                    return(true);
                }
                catch (DbEntityValidationException e)
                {
                    err.IsError = true;
                    err.Message = e.Message;
                    err.Excep   = e;
                    return(false);
                }
            }
        }