/// <summary> /// 更新用户的百度推送设置 /// 系统会自动将数据库中其他相同的推送设置清空,避免当同一个设备登录不同的账号后历史登录的账号收到推送消息 /// </summary> /// <param name="condtion">推送设置</param> /// <param name="userId">用户ID</param> /// <returns></returns> internal static ReplayBase MemberUpdateMemberBaiduPushSet(BaiduPushSetModel condtion, string userId) { using (SysTemDataBaseDataContext context = new SysTemDataBaseDataContext(SqlConnection)) { //先清空与该配置相同的其他用户的推送设置 var d = (from c in context.Us_SysUser where (c.baiduPushchannelId == condtion.channelId) && (c.baiduPushUserId == condtion.userId) && (c.baiduPushdeviceType == (byte)condtion.deviceType.GetHashCode()) select c).ToList(); if (d.Count > 0) { foreach (var s in d) { s.baiduPushchannelId = null; s.baiduPushUserId = null; s.baiduPushdeviceType = null; } context.SubmitChanges(); } //然后再更新用户的推送设置 Us_SysUser dbuser = context.Us_SysUser.Single(p => p.Us_SysUserId == userId); dbuser.baiduPushchannelId = condtion.channelId; dbuser.baiduPushUserId = condtion.userId; dbuser.baiduPushdeviceType = (byte)condtion.deviceType.GetHashCode(); context.SubmitChanges(); return(new ReplayBase() { }); } }
/// <summary> /// 获取用户的百度推送设置 /// </summary> /// <param name="dbuser">数据库对象Us_SysUser</param> /// <returns></returns> internal static BaiduPushSetModel MemberGetMemberBaiduPushSetInfo(Us_SysUser dbuser) { if (dbuser.baiduPushdeviceType == null) { return(null); } BaiduPushSetModel result = new BaiduPushSetModel() { channelId = dbuser.baiduPushchannelId, deviceType = (EnumUserDeviceType)dbuser.baiduPushdeviceType, userId = dbuser.baiduPushUserId }; return(result); }