Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
 /// <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)
     });
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
 /// <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));
 }
Пример #6
0
 /// <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));
 }
Пример #7
0
 public bool DeleteEntity(UserFans entity)
 {
     return(base.DeleteEntity <UserFans>(entity));
 }
Пример #8
0
 public bool UpdateEntity(UserFans entity)
 {
     return(base.UpdateEntity <UserFans>(entity));
 }
Пример #9
0
 public bool CreateEntity(UserFans entity)
 {
     return(base.CreateEntity <UserFans>(entity));
 }