Commit 0ffc8533 by 杨树贤

添加用户邀请用户统计信息

parent 4f4c8fa3
...@@ -21,7 +21,7 @@ class InvitesController extends Controller ...@@ -21,7 +21,7 @@ class InvitesController extends Controller
* @param Request $request * @param Request $request
* @param Invite $invite * @param Invite $invite
* @param InviteFilter $filter * @param InviteFilter $filter
* @return false|string * @return array
*/ */
public function index(Request $request, Invite $invite, InviteFilter $filter) public function index(Request $request, Invite $invite, InviteFilter $filter)
{ {
...@@ -33,19 +33,34 @@ class InvitesController extends Controller ...@@ -33,19 +33,34 @@ class InvitesController extends Controller
return $this->Export(0, 'ok', $invites); return $this->Export(0, 'ok', $invites);
} }
/**
* 用户邀请情况(用户邀请获得的金额,还有邀请的人数)
* @param Request $request
* @param Invite $invite
* @return array
*/
public function info(Request $request, Invite $invite)
{
$userId = $request->get('user_id');
$info = $invite->getInviteInfo($userId);
return $this->Export(0, 'ok', ['data' => $info]);
}
/** /**
* 添加邀请好友记录 * 添加邀请好友记录
* @param Request $request * @param Request $request
* @param Invite $invite * @param Invite $invite
* @param Integral $integral * @param Integral $integral
* @return false|string * @return array
*/ */
public function store(Request $request, Invite $invite, Integral $integral) public function store(Request $request, Invite $invite, Integral $integral)
{ {
$data = [ $data = [
'user_id' => $request->get('user_id'), 'user_id' => $request->get('user_id'),
'invited_user_id' => $request->get('invited_user_id'), 'invited_user_id' => $request->get('invited_user_id'),
'add_time' => time(), 'add_time' => time(),
]; ];
$canInvite = $integral->checkIntegralLimit($data['user_id'], Integral::INTEGRAL_TYPE_INVITE_FRIEND); $canInvite = $integral->checkIntegralLimit($data['user_id'], Integral::INTEGRAL_TYPE_INVITE_FRIEND);
if ($canInvite) { if ($canInvite) {
......
...@@ -47,8 +47,10 @@ class Invite extends Model ...@@ -47,8 +47,10 @@ class Invite extends Model
} }
//使用异步任务去添加流水 //使用异步任务去添加流水
//好友邀请部分,是需要同时添加两个人的流水的 //好友邀请部分,是需要同时添加两个人的流水的
$integralId = Integral::INTEGRAL_TYPE_INVITE_FRIEND;
$integralBill = new IntegralBill(); $integralBill = new IntegralBill();
$data['integral_id'] = Integral::INTEGRAL_TYPE_INVITE_FRIEND; $data['integral_id'] = $integralId;
$userId = $data['user_id'];
$result = $integralBill->createIntegralBill($data); $result = $integralBill->createIntegralBill($data);
if ($result) { if ($result) {
//这个是被邀请人的流水添加 //这个是被邀请人的流水添加
...@@ -57,6 +59,11 @@ class Invite extends Model ...@@ -57,6 +59,11 @@ class Invite extends Model
$result = $integralBill->createIntegralBill($data); $result = $integralBill->createIntegralBill($data);
if (!$result) { if (!$result) {
return false; return false;
} else {
$result = $this->saveInviteInfoToRedis($integralId, $userId);
if (!$result) {
return false;
}
} }
} }
...@@ -65,4 +72,35 @@ class Invite extends Model ...@@ -65,4 +72,35 @@ class Invite extends Model
return $result; return $result;
} }
private function saveInviteInfoToRedis($integralId, $userId)
{
//同时把邀请人数和邀请获得的金额缓存起来,要给前端展示当前用户的邀请情况
$redis = new RedisModel();
//先获取该次申请可以获得的金额
$integral = json_decode($redis->hget('ic_welfare_integrals', $integralId), true);
$amount = array_get($integral, 'amount');
//然后可以对该用户的邀请金额叠加,邀请人数加一
$inviteInfo = json_decode($redis->hget('ic_welfare_invites', $userId), true);
if ($inviteInfo) {
$inviteInfo['amount'] += $amount;
$inviteInfo['count']++;
} else {
$inviteInfo = [
'amount' => $amount,
'count' => 1,
];
}
$result = $redis->hset('ic_welfare_invites', $userId, json_encode($inviteInfo));
return $result !== false ? true : false;
}
public function getInviteInfo($userId)
{
$redis = new RedisModel();
$info = json_decode($redis->hget('ic_welfare_invites', $userId), true);
return $info;
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment