作者 王智

累计邀请接口

... ... @@ -6,6 +6,7 @@ namespace app\api\controller;
use app\common\controller\Api;
use app\common\model\Money;
use app\common\model\UserLevel;
use app\common\model\UserToken;
use think\console\command\make\Model;
... ... @@ -176,4 +177,137 @@ class Vip extends Api
];
$this->success('成功', $return);
}
/**
* @ApiTitle (会员接口-累计邀请)
* @ApiSummary (累计邀请)
* @ApiMethod (POST)
* @ApiRoute (/api/vip/invite)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturn ({
'code':'1',
'msg':'返回成功',
"data":{
"num":
[{
"people_count":"累计邀请",
"money_count":"累计收益",
"one_level":"一级人数",
"two_level":"二级人数"
}],
"con":
[{"time":"创建时间",
"name":"姓名",
"avatar":"头像",
"level":"级别:[1=一级,2=二级]",
"money":"金额"}]
}
})
*/
public function invite()
{
$token = $this->request->header();
if (empty($token['token'])) {
$this->error('请登陆后再操作!', '', '9');
}
$token_model = new UserToken();
$user_id = $token_model::get(['token' => $token['token']]);
if (!$user_id) {
$this->error('Token不存在', '', '8');
}
$money_model = new Money();
$money_arr = $money_model::all(['status' => 1, 'user_id' => $user_id['id']]);
foreach ($money_arr as $k => $v) {
$lj_money_old[$k]['money'] = $v['money'];
}
//累计收益
$money_count = array_sum(array_column($lj_money_old, 'money'));
$user_level_model = new UserLevel();
$user_id_arr = $user_level_model::all(['user_id' => $user_id['id']]);
foreach ($user_id_arr as $k => $v) {
$first_son_arr[$k] = $v['user_son_id'];
}
//一级数量
$first_son = count($first_son_arr);
$second_son_num = 0;
foreach ($first_son_arr as $k => $v) {
$second_son_arr_old[$k] = collection($user_level_model::all(['user_id' => $v]))->toArray();
$second_son_num += count($second_son_arr_old[$k]);
}
//二级数量
$second_son = $second_son_num;
//累计邀请
$people_son = $first_son + $second_son;
$return3 = [
'people_count' => $people_son,
'money_count' => $money_count,
'one_level' => $first_son,
'two_level' => $second_son
];
$user_model = new \app\common\model\User();
foreach ($first_son_arr as $k => $v) {
$first_son_con_old[$k] = $user_model::all(['user_id' => $v]);
}
foreach ($first_son_con_old as $k => $v) {
$first_son_con[] = $v[0];
}
foreach ($first_son_arr as $k => $v) {
$first_son_money_con[$k] = $money_model->where('huoqu_id', $v)->where('user_id', $user_id['id'])->select();
}
$kong2 = [];
foreach ($first_son_money_con as $k => $v) {
foreach ($v as $key => $val) {
$kong2[] = $val;
}
}
foreach ($kong2 as $k => $v) {
$first_money[$k]['money'] = $v['money'];
}
$key = 0;
foreach ($first_son_con as $k => $v) {
$return1[$k]['time'] = $v['createtime'];
$return1[$k]['name'] = $v['name'];
$return1[$k]['avatar'] = $v['avatar'];
$return1[$k]['level'] = 1;
$return1[$k]['money'] = $first_money[$key++]['money'];
}
$return['con'] = $return1;
$kong = [];
foreach ($second_son_arr_old as $k => $v) {
foreach ($v as $key => $val) {
$kong[] = $val;
}
}
foreach ($kong as $k => $v) {
$kong_arr[$k] = $user_model::all(['user_id' => $v['user_son_id']]);
}
foreach ($kong as $k => $v) {
$seconnd_son_money_con[$k] = $money_model->where('huoqu_id', $v['user_son_id'])->where('user_id', $user_id['id'])->select();
}
$kong3 = [];
foreach ($seconnd_son_money_con as $k => $v) {
foreach ($v as $key => $val) {
$kong3[] = $val;
}
}
foreach ($kong3 as $k => $v) {
$second_money[$k]['money'] = $v['money'];
}
foreach ($kong_arr as $k => $v) {
$new_kong_arr[] = $v[0];
}
foreach ($new_kong_arr as $k => $v) {
$return2[$k]['time'] = $v['createtime'];
$return2[$k]['name'] = $v['name'];
$return2[$k]['avatar'] = $v['avatar'];
$return2[$k]['level'] = 2;
$return2[$k]['money'] = $second_money[$key++]['money'];
}
$return['num'] = $return3;
$return['con'] = array_merge($return2, $return1);
$this->success('成功', $return);
}
}
\ No newline at end of file
... ...
<?php
namespace app\common\model;
use think\Model;
class UserLevel extends Model
{
//表名
protected $name = 'user_level';
// 开启自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
}
\ No newline at end of file
... ...