public function eachDoFollow($uid, $fids)
{
// 获取用户关组状态
$followStates = $this->getFollowStateByFids($uid, $fids);
$data = array();
$_following = array();
$_follower = array();
foreach ($followStates as $key => $value) {
if (0 == $value['following']) {
$data[] = "({$uid}, {$key}, " . time() . ')';
$_following[] = $key;
}
if (0 == $value['follower']) {
$data[] = "({$key}, {$uid}, " . time() . ')';
$_follower[] = $key;
}
}
// 处理数据结果
if (!empty($data)) {
$sql = "INSERT INTO {$this->tablePrefix}{$this->tableName}(`uid`,`fid`,`ctime`) VALUES " . implode(',', $data);
$res = $this->execute($sql);
if ($res) {
// 关注成功
$this->error = L('PUBLIC_ADD_FOLLOW_SUCCESS');
// 被关注人的关注人数+1
foreach ($_follower as $fo) {
model('UserData')->setUid($fo)->updateKey('following_count', 1, true);
}
// 更新被关注人的粉丝数统计
$this->_updateFollowCount($uid, $_following, true);
// 更新关注人的粉丝数
model('UserData')->setUid($uid)->updateKey('follower_count', count($_follower), true);
return true;
} else {
$this->error = L('PUBLIC_ADD_FOLLOW_FAIL');
return false;
}
} else {
// 已经全部关注
$this->error = L('PUBLIC_FOLLOW_ING');
return false;
}
}