public bool UserMessageSaveByGlobalUser(GlobalUser gu, ref ErrorInfo err, string message, string allUserIdStr, int typeId) { ProInterface.Models.MESSAGE msg = new ProInterface.Models.MESSAGE(); msg.CONTENT = message; msg.MESSAGE_TYPE_ID = typeId; msg.DISTRICT_ID = AppSet.CityId; msg.PUSH_TYPE = "智能推送"; return(UserMessageSaveByGlobalUser(gu, ref err, msg, null, allUserIdStr)); }
public bool UserMessageSave(string loginKey, ref ErrorInfo err, ProInterface.Models.MESSAGE inEnt, IList <string> allPar, string allUserIdStr = null) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } GlobalUser gu = Global.GetUser(loginKey); return(UserMessageSaveByGlobalUser(gu, ref err, inEnt, allPar, allUserIdStr)); }
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); }