123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- namespace App\Http\Controllers\Api\Dwbs;
- use App\Http\Controllers\Controller;
- use App\Repositories\Enums\Dwbs\DayTypeEnum;
- use App\Repositories\Models\Base\User;
- use App\Repositories\Models\Dwbs\Ranking;
- use App\Repositories\Models\Dwbs\StatisticalResource;
- use App\Services\Dwbs\ZhengshuService;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- /**
- * 荣誉殿堂
- */
- class ZhengshuController extends Controller
- {
- /**
- * @var ZhengshuService
- */
- private $service;
- /**
- * ZhengshuController constructor.
- *
- * @param ZhengshuService $zhengshuService
- */
- public function __construct(ZhengshuService $service)
- {
- parent::__construct();
- // $this->middleware('checkUserPermission');
- $this->service = $service;
- }
- /**
- * 列表
- * @param Request $request
- *
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
- * @throws \Prettus\Repository\Exceptions\RepositoryException
- */
- public function index(Request $request)
- {
- $lists = $this->service->handleList($request);
- return $this->response->success($lists);
- }
- /**
- * 详情
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
- */
- public function show(Request $request)
- {
- $this->validate($request, ['id' => 'required|integer']);
- $model = $this->service->handleProfile($request->get('id'));
- return $this->response->success($model);
- }
- /**
- * 我的证书
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
- */
- public function meZhengshu(Request $request)
- {
- $user_id = login_user_id();
- // User::refreshUserTag($user_id);
- $user = User::query()->where('id', $user_id)->first();
- $tag = $user['tag'];
- $tag_star = $user['tag_star'];
- $xuefen = $user['xuefen'];
- return $this->response->success(compact('tag_star', 'tag', 'xuefen'));
- }
- /**
- * 排行榜数据
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
- * @throws \Illuminate\Validation\ValidationException
- */
- public function resources(Request $request)
- {
- $this->validateData($request, ['type' => 'required|in:1,2'], ['type' => '类型']);
- $type = $request->get('type');
- $model = StatisticalResource::query()->where('type', $type);
- $user = login_user();
- $user_id = $user['id'];
- $group_id = $user['group_id'];
- $day = Carbon::now()->subWeek()->startOfWeek()->toDateString();
- $week = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::week)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- if (!$week) {
- $week = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::week)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- }
- $day = Carbon::now()->subMonth()->startOfMonth()->toDateString();
- $month = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::month)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- if (!$month) {
- $month = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::month)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- }
- $day = Carbon::now()->subQuarter()->startOfQuarter()->toDateString();
- $quarter = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::quarter)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- if (!$quarter) {
- $quarter = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::quarter)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- }
- $day = Carbon::now()->subYear()->startOfYear()->toDateString();
- $year = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::year)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- if (!$year) {
- $year = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::year)->orderByDesc('id')->select(['id', 'path', 'day'])->first();
- }
- $week = null;
- $month = null;
- $quarter = null;
- $year = null;
- return $this->response->success(compact('week', 'month', 'quarter', 'year'));
- }
- }
|