CodesController.php
1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
namespace App\Http\Controllers;
use App\Http\Filters\CodeFilter;
use App\Models\Code;
use App\Models\Integral;
use App\Tasks\SendNoticeTask;
use Hhxsv5\LaravelS\Swoole\Task\Task;
use Illuminate\Http\Request;
//红包码兑换管理
/**
* Class CodesController
* @package App\Http\Controllers
*/
class CodesController extends Controller
{
/**
* 获取红包码兑换列表
* @param Request $request
* @param Code $code
* @param CodeFilter $filter
* @return array
*/
public function index(Request $request, Code $code, CodeFilter $filter)
{
$page = $request->get('page') ? $request->page : self::DEFAULT_PAGE;
$pageSize = $request->get('page_size') ? $request->page_size : self::DEFAULT_PAGE_SIZE;
$codes = $code->getCodeList($page, $pageSize, $filter);
return $this->Export(0, 'ok', $codes);
}
/**
* 添加红包码兑换
* @param Request $request
* @param Code $code
* @return array
*/
public function store(Request $request, Code $code)
{
$data = [
//兑换的用户Id
'user_id' => $request->get('user_id'),
'add_time' => time(),
'code' => $request->get('code'),
];
//判断是否可以输入红包码,因为每个人只能输入一次红包码,同时被兑换的人每天只能被兑换固定次数
$canAddCode = $code->checkCanExchangeCode($data);
if ($canAddCode) {
$res = $code->addCode($data);
if ($res) {
//向被兑换红包码所属用户发送通知
$code->sendNotice($data['code']);
return $this->Export(0, 'ok');
} else {
return $this->Export(ErrorCode(21, 5), '红包码兑换失败');
}
} else {
return $this->Export(ErrorCode(7, 1), '你已兑换过红包码,不能再兑换');
}
}
}