/// <summary> /// 关注或者取消关注 粉丝 /// </summary> /// <param name="createUserId"></param> /// <param name="subscribeUserId"></param> /// <param name="careState"></param> /// <returns></returns> public ResultView <UserFans> SaveCareFanState(int createUserId, int subscribeUserId, bool careState) { var result = new ResultView <UserFans>(); try { var model = this._userFansRepository.GetEntityList().Where(p => p.SubscribeUserId == subscribeUserId) .Where(p => p.CreateUserId == createUserId).FirstOrDefault(); if (model == null) { //添加 model = new UserFans(); model.CreateUserId = createUserId; model.SubscribeUserId = subscribeUserId; model.CreateTime = System.DateTime.Now; model.State = careState; this._userFansRepository.CreateEntity(model); } else { //修改 model.UpdateTime = System.DateTime.Now; model.UpdateUserId = createUserId; model.State = careState; this._userFansRepository.UpdateEntity(model); } result.Data = model; result.Success = true; } catch (Exception ex) { result.ExceptionMessage = ex.Message; } return(result); }
/// <summary> /// 订阅和取消订阅 /// </summary> /// <param name="createUserId">登录的用户编号</param> /// <param name="subscribeUserId">订阅的用户编号</param> /// <param name="careState">订阅状态</param> /// <returns></returns> public bool UserSubscribeTransaction(int createUserId, int subscribeUserId, bool careState) { var success = Execute <bool>((db) => { AssertUtil.AreBigger(createUserId, 0, "您还没有登录"); AssertUtil.AreBigger(subscribeUserId, 0, "您订阅的用户不存在"); var subscribeUser = db.User.FirstOrDefault(u => u.State == false && u.Id == createUserId); AssertUtil.IsNotNull(subscribeUser, "您还没有登录或者被禁用"); var fansUser = db.User.FirstOrDefault(u => u.State == false && u.Id == subscribeUserId); AssertUtil.IsNotNull(subscribeUser, "您订阅的用户不存在或者被禁用"); AssertUtil.AreNotEqual(createUserId, subscribeUserId, "用户不能自己订阅的自己"); //用户粉丝 var userFans = db.UserFans.FirstOrDefault(p => p.CreateUserId == createUserId && p.SubscribeUserId == subscribeUserId); if (userFans == null) { //添加 var newuserFans = new UserFans { CreateUserId = createUserId, SubscribeUserId = subscribeUserId, CreateTime = DateTime.Now, State = careState }; fansUser.FansCount += 1; subscribeUser.SubscribeNum += 1; db.UserFans.Add(newuserFans); } else { if (careState) { fansUser.FansCount -= 1; subscribeUser.SubscribeNum -= 1; } else { fansUser.FansCount += 1; subscribeUser.SubscribeNum += 1; } //修改 userFans.UpdateTime = DateTime.Now; userFans.UpdateUserId = createUserId; userFans.State = careState; db.Entry <UserFans>(userFans).State = EntityState.Modified; } db.Entry <User>(subscribeUser).State = EntityState.Modified; db.Entry <User>(fansUser).State = EntityState.Modified; db.Configuration.ValidateOnSaveEnabled = false; return(db.SaveChanges() > 0); }); if (success) { CreateCache <UserFans>(); CreateCache <User>(); } return(success); }
/// <summary> /// 获取用户粉丝视图 /// </summary> /// <param name="loginUserId">登录用户编号</param> /// <param name="uploadCount">最近上传数量</param> /// <param name="userFans">粉丝信息</param> /// <param name="user">关注的用户</param> /// <param name="subscribeUser">被关注的用户</param> /// <param name="userFanses">粉丝列表</param> /// <returns></returns> protected AppUserFansView UserFansView(int loginUserId, int uploadCount, UserFans userFans, User user, User subscribeUser, IQueryable <UserFans> userFanses) { return(new AppUserFansView() { Id = userFans.Id, UploadCount = uploadCount, IsSubed = userFanses != null && loginUserId > 0 && IsSubed(userFanses, subscribeUser.Id, loginUserId), SubscribeUser = UserEasyView(subscribeUser), UserInfo = UserEasyView(user) }); }
/// <summary> /// 关注用户 /// </summary> /// <param name="loginUserId">登录用户编号</param> /// <param name="subscribeUserId">关注用户编号</param> /// <returns></returns> public bool UserSubscribe(int loginUserId, int subscribeUserId) { var success = Execute <bool>((db) => { var loginUser = db.User.FirstOrDefault(u => u.State == false && u.Id == loginUserId); AssertUtil.IsNotNull(loginUser, "登录用户不存在或者被禁用"); var subscribeUser = db.User.FirstOrDefault(u => u.State == false && u.Id == subscribeUserId); AssertUtil.IsNotNull(subscribeUser, "关注用户不存在或者被禁用"); AssertUtil.AreNotEqual(loginUser.Id, subscribeUser.Id, "不能关注自己"); var userFans = db.UserFans.FirstOrDefault(uf => uf.CreateUserId == loginUser.Id && uf.SubscribeUserId == subscribeUser.Id); if (userFans == null) { var newUserFans = new UserFans() { CreateTime = DateTime.Now, CreateUserId = loginUser.Id, SubscribeUserId = subscribeUser.Id }; db.UserFans.Add(newUserFans); } else { AssertUtil.IsTrue(userFans.State, "您已经关注了这个用户"); userFans.UpdateTime = DateTime.Now; userFans.UpdateUserId = loginUser.Id; userFans.State = false; db.Entry(userFans).State = EntityState.Modified; } loginUser.SubscribeNum++; db.Entry(loginUser).State = EntityState.Modified; subscribeUser.FansCount++; db.Entry(subscribeUser).State = EntityState.Modified; db.Configuration.ValidateOnSaveEnabled = false; return(db.SaveChanges() > 0); }); if (success) { CreateCache <UserFans>(); CreateCache <User>(); } return(success); }
/// <summary> /// 获取用户粉丝视图 /// </summary> /// <param name="uploadCount">上传数量</param> /// <param name="userFans">粉丝信息</param> /// <param name="user">关注的用户</param> /// <param name="subscribeUser">被关注的用户</param> /// <returns></returns> protected AppUserFansView UserFansView(int uploadCount, UserFans userFans, User user, User subscribeUser) { return(UserFansView(0, uploadCount, userFans, user, subscribeUser, null)); }
/// <summary> /// 获取用户粉丝视图 /// </summary> /// <param name="loginUserId">登录用户编号</param> /// <param name="userFans">粉丝信息</param> /// <param name="user">关注的用户</param> /// <param name="subscribeUser">被关注的用户</param> /// <param name="userFanses">粉丝列表</param> /// <returns></returns> protected AppUserFansView UserFansView(int loginUserId, UserFans userFans, User user, User subscribeUser, IQueryable <UserFans> userFanses) { return(UserFansView(loginUserId, 0, userFans, user, subscribeUser, userFanses)); }
public bool DeleteEntity(UserFans entity) { return(base.DeleteEntity <UserFans>(entity)); }
public bool UpdateEntity(UserFans entity) { return(base.UpdateEntity <UserFans>(entity)); }
public bool CreateEntity(UserFans entity) { return(base.CreateEntity <UserFans>(entity)); }