| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- namespace App\Http\Controllers\admin;
- use App\Constants\HttpStatus;
- use App\Http\Controllers\Controller;
- use App\Services\BaseService;
- use App\Services\IssueService;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Validation\ValidationException;
- use Exception;
- class Issue extends Controller
- {
- public function fakeLotteryDraw()
- {
- IssueService::fakeLotteryDraw();
- return $this->success();
- }
- /**
- * @description: 分页数据
- * @return {*}
- */
- function index()
- {
- try {
- request()->validate([
- 'issue_no' => ['nullable', 'string'],
- 'id' => ['nullable', 'string'],
- 'status' => ['nullable', 'string'],
- ]);
- $search = request()->all();
- $result = IssueService::paginate($search);
- } catch (ValidationException $e) {
- return $this->error(HttpStatus::VALIDATION_FAILED, $e->validator->errors()->first());
- } catch (Exception $e) {
- return $this->error(intval($e->getCode()));
- }
- return $this->success($result);
- }
- /**
- * @description: 异常分页数据
- * @return {*}
- */
- function abnormal()
- {
- try {
- request()->validate([
- 'issue_no' => ['nullable', 'string'],
- 'id' => ['nullable', 'string'],
- 'status' => ['nullable', 'string'],
- ]);
- $search = request()->all();
- $search['abnormal'] = 1;
- $result = IssueService::paginate($search);
- } catch (ValidationException $e) {
- return $this->error(HttpStatus::VALIDATION_FAILED, $e->validator->errors()->first());
- } catch (Exception $e) {
- return $this->error(intval($e->getCode()));
- }
- return $this->success($result);
- }
- /**
- * @description: 修改|新增
- * @return {*}
- */
- public function store()
- {
- return $this->error(HttpStatus::CUSTOM_ERROR, '禁止编辑');
- // try {
- $params = request()->all();
- $validator = [
- 'issue_no' => 'required|string|max:50|alpha_dash|unique:issues,issue_no',
- 'winning_numbers' => 'nullable|string|max:100',
- 'status' => 'nullable|string',
- ];
- request()->validate($validator);
- $ret = IssueService::submit($params);
- if ($ret['code'] == IssueService::NOT) {
- return $this->error($ret['code'], $ret['msg']);
- }
- // } catch (ValidationException $e) {
- // return $this->error(HttpStatus::VALIDATION_FAILED, '', $e->errors());
- // } catch (Exception $e) {
- // return $this->error(intval($e->getCode()));
- // }
- return $this->success([], $ret['msg']);
- }
- // 开奖失败
- public function failure()
- {
- $id = request()->input('id');
- if (!$id) {
- return $this->error(HttpStatus::VALIDATION_FAILED, '参数错误');
- }
- $ret = IssueService::lotteryDrawFail($id);
- if ($ret['code'] == IssueService::NOT) {
- return $this->error($ret['code'], $ret['msg']);
- }
- return $this->success([], $ret['msg']);
- }
- /**
- * @description: 开始
- * @return {*}
- */
- public function betting()
- {
- $id = request()->input('id');
- if (!$id) {
- return $this->error(HttpStatus::VALIDATION_FAILED, '参数错误');
- }
- $ret = IssueService::betting($id);
- if ($ret['code'] == IssueService::NOT) {
- return $this->error($ret['code'], $ret['msg']);
- }
- return $this->success([], $ret['msg']);
- }
- /**
- * @description: 关闭
- * @return {*}
- */
- public function close()
- {
- $id = request()->input('id');
- if (!$id) {
- return $this->error(HttpStatus::VALIDATION_FAILED, '参数错误');
- }
- $ret = IssueService::closeBetting($id);
- if ($ret['code'] == IssueService::NOT) {
- return $this->error($ret['code'], $ret['msg']);
- }
- return $this->success([], $ret['msg']);
- }
- /**
- * @description: 开奖
- * @return {*}
- */
- public function lotteryDraw()
- {
- $id = request()->input('id');
- $winning_numbers = request()->input('winning_numbers');
- if (!$id) {
- return $this->error(HttpStatus::CUSTOM_ERROR, '参数错误');
- }
- if (empty($winning_numbers)) {
- $url = "https://ydpc28.co/api/pc28/list";
- $result = file_get_contents($url);
- $result = json_decode($result, true);
- if ($result['errorCode'] != 0) {
- return $this->error(HttpStatus::CUSTOM_ERROR, '参数错误');
- }
- $issue = IssueService::findOne(['id' => $id]);
- foreach ($result['data']['list'] as $item) {
- if ($item['lotNumber'] == $issue->issue_no) {
- $array = array_map('intval', str_split($item['openCode']));
- $winning_numbers = implode(',', $array);
- break;
- }
- }
- if (empty($winning_numbers)) {
- return $this->error(HttpStatus::CUSTOM_ERROR, '未查询到开奖信息,请手动开奖');
- }
- }
- if (explode(',', $winning_numbers) < 3) {
- return $this->error(HttpStatus::CUSTOM_ERROR, '开奖号码格式错误');
- }
- $winArr = array_map('intval', explode(',', $winning_numbers));
- $combo = IssueService::getCombo($winArr);
- $ret = IssueService::lotteryDraw($id, $winning_numbers, $combo, "");
- if ($ret['code'] == BaseService::NOT) {
- return $this->error($ret['code'], isset($ret['error']) ?? $ret['msg']);
- }
- return $this->success([], $ret['msg']);
- }
- /**
- * @description: 删除
- */
- public function destroy()
- {
- return $this->error(HttpStatus::CUSTOM_ERROR, '禁止删除');
- $id = request()->post('id');
- // 示例:通过 ID 删除
- $info = IssueService::findOne(['id' => $id]);
- if (!$info) {
- return $this->error(0, '期数不存在');
- }
- $info->delete();
- return $this->success([], '删除成功');
- }
- }
|