public static GlobalUser Add(int userId, string loginIP) { GlobalUser reEnt = new GlobalUser(); var entArr = OnLines.Where(a => a.UserId == userId && a.LoginIP == loginIP).ToList(); if (entArr.Count() > 0) { reEnt = entArr[0]; reEnt.LastOpTime = DateTime.Now; return(reEnt); } lock (symObj) { using (DBEntities db = new DBEntities()) { var user = db.YL_USER.SingleOrDefault(x => x.ID == userId); string loginKey = Guid.NewGuid().ToString().Replace("-", ""); ClearTimeOutUser(); IList <string> idArr = new List <string>(); var dis = user.YL_DISTRICT; var tmp = dis; while (tmp != null) { idArr.Add(tmp.ID.ToString()); tmp = tmp.YL_DISTRICT2; } string tmpRuleRegionList = ""; if (user.YL_DISTRICT1.Count() > 0) { tmpRuleRegionList = string.Format("'{0}'", string.Join("','", user.YL_DISTRICT1.Select(x => x.CODE).ToList())); } else { tmpRuleRegionList = string.Format("'{0}'", user.DISTRICT_ID); } reEnt = new GlobalUser { Guid = loginKey, UserId = userId, DistrictId = user.DISTRICT_ID, LastOpTime = DateTime.Now, RoleID = user.YL_ROLE.Select(y => y.ID).ToList(), UserName = user.NAME, LoginIP = loginIP, Region = user.DISTRICT_ID.ToString(), RegionList = idArr, RuleRegionStr = tmpRuleRegionList, LevelId = user.YL_DISTRICT.LEVEL_ID, LoginName = user.LOGIN_NAME, DistrictCode = user.YL_DISTRICT.CODE }; OnLines.Add(reEnt); Save(); #region 记录登录历史 var tmp_user = db.YL_USER.SingleOrDefault(x => x.ID == userId); if (tmp_user.LOGIN_COUNT == null) { tmp_user.LOGIN_COUNT = 0; } tmp_user.LOGIN_COUNT++; tmp_user.LAST_LOGIN_TIME = DateTime.Now; if (ProInterface.AppSet.WiteLoginLog) { YL_LOGIN_HISTORY hist = new YL_LOGIN_HISTORY(); hist.ID = Fun.GetSeqID <YL_LOGIN_HISTORY>(); hist.USER_ID = userId; hist.LOGIN_TIME = DateTime.Now; hist.LOGIN_HOST = loginIP; db.YL_LOGIN_HISTORY.Add(hist); GetUser(loginKey).loginHistoryId = hist.ID; } db.SaveChanges(); #endregion var Watermark = PicFun.CreateWatermark(ProInterface.AppSet.SysName, reEnt.UserName); try { File.WriteAllBytes(string.Format("{0}/UpFiles/{1}.jpg", AppDomain.CurrentDomain.BaseDirectory, reEnt.Guid), Watermark); } catch { } return(reEnt); } } }
public bool ScriptSave(string loginKey, ref ErrorInfo err, TScript inEnt, IList <string> allPar) { GlobalUser gu = Global.GetUser(loginKey); if (gu == null) { err.IsError = true; err.Message = "登录超时"; return(false); } if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.YL_SCRIPT.SingleOrDefault(a => a.ID == inEnt.ID); bool isAdd = false; if (ent == null) { isAdd = true; ent = Fun.ClassToCopy <ProInterface.Models.TScript, YL_SCRIPT>(inEnt); ent.ID = Fun.GetSeqID <YL_SCRIPT>(); } else { if (!ent.BODY_TEXT.Equals(inEnt.BODY_TEXT)) { inEnt.BODY_TEXT = string.Format("//{0}于{1}修改\r\n{2}", gu.UserName, DateTime.Now.ToString(), inEnt.BODY_TEXT); } ent = Fun.ClassToCopy <ProInterface.Models.TScript, YL_SCRIPT>(inEnt, ent, allPar); } if (!string.IsNullOrEmpty(inEnt.ScriptGroupListJosn)) { inEnt.ScriptGroupList = JSON.EncodeToEntity <IList <SCRIPT_GROUP_LIST> >(inEnt.ScriptGroupListJosn); } foreach (var t in inEnt.ScriptGroupList) { var single = ent.YL_SCRIPT_GROUP_LIST.SingleOrDefault(x => x.SCRIPT_ID == t.SCRIPT_ID); if (single == null) { single = Fun.ClassToCopy <ProInterface.Models.SCRIPT_GROUP_LIST, YL_SCRIPT_GROUP_LIST>(t); single.GROUP_ID = ent.ID; ent.YL_SCRIPT_GROUP_LIST.Add(single); } else { single.ORDER_INDEX = t.ORDER_INDEX; } } foreach (var t in ent.YL_SCRIPT_GROUP_LIST.ToList()) { var single = inEnt.ScriptGroupList.SingleOrDefault(x => x.SCRIPT_ID == t.SCRIPT_ID); if (single == null) { db.YL_SCRIPT_GROUP_LIST.Remove(t); } } if (isAdd) { db.YL_SCRIPT.Add(ent); } db.SaveChanges(); UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(false); } } }
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); } } }
public bool UserMessageSaveByGlobalUser(GlobalUser gu, ref ErrorInfo err, ProInterface.Models.MESSAGE inEnt, IList <string> allPar, string allUserIdStr = null) { using (DBEntities db = new DBEntities()) { var disId = string.Format(".{0}.", inEnt.DISTRICT_ID); IList <int> allUserId = new List <int>(); IList <int> allRole = new List <int>(); IList <int> allUser = new List <int>(); if (!string.IsNullOrEmpty(inEnt.ALL_ROLE_ID)) { allRole = inEnt.ALL_ROLE_ID.Split(',').Select(x => Convert.ToInt32(x)).ToList(); } if (!string.IsNullOrEmpty(allUserIdStr)) { allUser = allUserIdStr.Split(',').Select(x => Convert.ToInt32(x)).ToList(); } if (allUser.Count() > 0) { allUserId = db.YL_USER.Where(x => allUser.Contains(x.ID) && (x.YL_DISTRICT.ID_PATH.IndexOf(disId) > -1 || x.DISTRICT_ID == inEnt.DISTRICT_ID)).Select(x => x.ID).ToList(); } else if (allRole.Count() == 0) { allUserId = db.YL_USER.Where(x => x.YL_DISTRICT.ID_PATH.IndexOf(disId) > -1).Select(x => x.ID).ToList(); } else { allUserId = db.YL_USER.Where(x => x.YL_ROLE.Where(y => allRole.Contains(y.ID)).Count() > 0 && (x.DISTRICT_ID == inEnt.DISTRICT_ID || x.YL_DISTRICT.ID_PATH.IndexOf(disId) > -1)).Select(x => x.ID).ToList(); } YL_MESSAGE message = new YL_MESSAGE(); bool isAdd = false; if (inEnt.ID == 0) { isAdd = true; message = Fun.ClassToCopy <ProInterface.Models.MESSAGE, YL_MESSAGE>(inEnt); if (message.MESSAGE_TYPE_ID == null) { message.MESSAGE_TYPE_ID = 1; } message.ID = Fun.GetSeqID <YL_MESSAGE>(); message.CREATE_TIME = DateTime.Now; message.CREATE_USERNAME = gu.UserName; message.CREATE_USERID = gu.UserId; var allUserList = db.YL_USER.Where(x => allUserId.Contains(x.ID)).ToList(); var tmpLoginName = allUserList.Select(x => x.LOGIN_NAME).ToList(); var allLogin = db.YL_LOGIN.Where(x => tmpLoginName.Contains(x.LOGIN_NAME)).ToList(); foreach (var t in allUserList) { var login = allLogin.SingleOrDefault(x => x.LOGIN_NAME == t.LOGIN_NAME); if (login != null && login.PHONE_NO != null) { YL_USER_MESSAGE tmp = new YL_USER_MESSAGE(); tmp.MESSAGE_ID = message.ID; tmp.USER_ID = t.ID; tmp.PHONE_NO = login.PHONE_NO; tmp.STATUS = "等待"; tmp.STATUS_TIME = DateTime.Now; if (message.PUSH_TYPE == "短信推送") { SmsSendAdd(db, login.PHONE_NO, message.CONTENT, message.ID); tmp.STATUS = "已推送"; } tmp.PUSH_TYPE = message.PUSH_TYPE; message.YL_USER_MESSAGE.Add(tmp); } } } else { message = db.YL_MESSAGE.Single(x => x.ID == inEnt.ID); message = Fun.ClassToCopy <ProInterface.Models.MESSAGE, YL_MESSAGE>(inEnt, message, allPar); } if (isAdd) { db.YL_MESSAGE.Add(message); } db.SaveChanges(); } return(true); }