阶段更新

This commit is contained in:
2023-01-12 14:47:38 +08:00
parent 088dd64b2f
commit 5b8901281c
626 changed files with 39326 additions and 12 deletions

View File

@@ -0,0 +1,21 @@
<?php
namespace Modules\Task\Http\Controllers\Api;
use App\Api\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Modules\Task\Http\Resources\CategoryResource;
use Modules\Task\Models\Category;
class CategoryController extends Controller
{
public function index(Request $request): JsonResponse
{
$tasks = Category::Shown()->get();
return $this->success(CategoryResource::collection($tasks));
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace Modules\Task\Http\Controllers\Api;
use App\Api\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Jason\Api\Api;
use Modules\Task\Http\Resources\TaskBaseResource;
use Modules\Task\Http\Resources\TaskResource;
use Modules\Task\Models\Task;
class TaskController extends Controller
{
public function index(Request $request): JsonResponse
{
$user = Api::user();
$category_id = $request->category_id ?? '';
$tasks = Task::query()
->when($category_id, function ($q) use ($category_id) {
$q->where('category_id', $category_id);
})
->Shown()
->when($user, function ($q) use ($user) {
$q->ofUser($user);
})
->get();
return $this->success(TaskBaseResource::collection($tasks));
}
public function show(Task $task)
{
return $this->success(new TaskResource($task));
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace Modules\Task\Http\Controllers\Api;
use App\Api\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Http\Request;
use EasyWeChat\Factory;
use Illuminate\Support\Collection;
use Jason\Api\Api;
use Modules\Task\Facades\TaskFacade;
use Modules\Task\Models\Task;
class UserController extends Controller
{
/**
* Notes: 微信步数
*
* @Author: 玄尘
* @Date: 2022/10/26 9:46
*/
public function wechatStep(Request $request)
{
try {
$key = 'steps';
$task = Task::query()->where('key', $key)->first();
if ($task && $task->status != Task::STATUS_UP) {
throw new \Exception('任务关闭');
}
$toDayStartTimestamp = Carbon::now()->startOfDay()->timestamp;//当天开始的时间戳
$app = Factory::miniProgram([
'app_id' => env('WECHAT_MINI_PROGRAM_APPID'),
'secret' => env('WECHAT_MINI_PROGRAM_SECRET'),
'response_type' => 'collection',
]);
$session = $app->auth->session($request->code);
if ($session->errcode) {
return $this->failed($session->errmsg);
}
$decryptedData = $app->encryptor->decryptData(
$session->session_key,
$request->iv,
$request->encryptData
);
$list = collect($decryptedData['stepInfoList']);
if ($list->isNotEmpty()) {
$toDay = $list->where('timestamp', $toDayStartTimestamp)->first();
if ($toDay) {
TaskFacade::do($key, Api::userId(), [
'steps' => $toDay['step']
], $toDay['step']);
}
if ($toDay['step'] >= $task->task_number) {
return $this->success('任务完成');
} else {
throw new \Exception('您今天的步数未达标');
}
} else {
throw new \Exception('未获取到微信运动数据');
}
} catch (\Exception $exception) {
return $this->failed($exception->getMessage());
}
}
}