getOneData([ ['uid', '=', $this->mid], ['user_id', '=', $this->userId] ], 'integral,total_integral'); // 如果还没数据 if (empty($my)) { $my = [ 'integral' => 0, 'total_integral' => 0 ]; } return sendSuccessArray([ // 我的积分和累计积分 'my' => $my ]); } /** * 获取我的积分数据 * @date 2022-11-21 */ public function getMyRank() { $my_model = new IntegralMy(); // 获取当前用户积分 $my = $my_model->getOneData([ ['uid', '=', $this->mid], ['user_id', '=', $this->userId] ], 'id,integral,total_integral,total_integral_change_time'); if (empty($my)) { $my['total_integral'] = 0; $rank = '暂无数据'; } else { $map1 = [ ['uid', '=', $this->mid], ['total_integral', '>', $my['total_integral']] ]; $map2 = [ ['uid', '=', $this->mid], ['total_integral', '=', $my['total_integral']], ['total_integral_change_time', '<', $my['total_integral_change_time']] ]; $map3 = [ ['uid', '=', $this->mid], ['total_integral', '=', $my['total_integral']], ['total_integral_change_time', '=', $my['total_integral_change_time']], ['id', '<', $my['id']] ]; $number = $my_model->whereOr([$map1, $map2, $map3])->count(); $rank = $number + 1; } return sendSuccessArray([ 'total_integral' => $my['total_integral'], 'rank' => $rank ]); } /** * 我的积分记录 * @param int $index 类型 0--全部 1--收入 2--支出 * @param int $page 第X页 * @date 2022-11-01 */ public function listLog($index, $page) { $log_model = new IntegralLog(); $where = [ ['uid', '=', $this->mid], ['user_id', '=', $this->userId] ]; if ($index == 1) { $where[] = ['integral', '>', 0]; } else if ($index == 2) { $where[] = ['integral', '<', 0]; } $field = 'id,user_id,show_text,integral,after_integral,create_time'; $list = $log_model->listLogWithPage($where, $page, $field, 'id desc', 50); return sendSuccessArray([ // 积分明细 'list' => $list ]); } /** * 获取排行榜 * @date 2022-11-21 */ public function listRank() { $my_model = new IntegralMy(); $rank_list = $my_model->listRank([ ['uid', '=', $this->mid] ], 'user_id,total_integral', 'total_integral desc,total_integral_change_time asc,id asc', 20); return sendSuccessArray([ // 排行榜列表 'rank_list' => $rank_list ]); } }