159 lines
6.0 KiB
PHP
Raw Normal View History

<?php
// +----------------------------------------------------------------------
// | 作者:修缘 联系QQ278896498 QQ群1054861244
// | 声明:未经作者许可,禁止倒卖等商业运营,违者必究
// | 另接php业务网站制作、代理后台、gm后台、支付对接等
// +----------------------------------------------------------------------
// | 创建时间: 2022/1/5 22:51
// +----------------------------------------------------------------------
namespace app\admin\controller;
use app\common\model\CdkCode;
use app\common\model\GameGm;
use app\common\validate\CdkValidate;
use think\Request;
class CdkController extends Controller
{
public function index(Request $request, CdkCode $model)
{
$param = $request->param();
$model = $model->scope('where', $param);
if (isset($param['export_data']) && $param['export_data'] == 1) {
$header = ['ID', 'CDK', '类型', '金额', '项目', '数量', '是否使用', '创建时间', '使用时间'];
$body = [];
$data = $model->select();
foreach ($data as $item) {
$record = [];
$record['id'] = $item->id;
$record['cdk_code'] = $item->cdk_code;
$record['type'] = $item->type_text;
$record['money'] = $item->money;
$record['item_name'] = $item->item_name;
$record['num'] = $item->num;
$record['status'] = $item->status_text;
$record['create_time'] = $item->create_time;
$record['update_time'] = $item->update_time;
$body[] = $record;
}
return $this->exportData($header, $body, 'CDK兑换码-' . date('Y-m-d-H-i-s'));
}
$data = $model->paginate($this->admin['per_page'], false, ['query' => $request->get()]);
$this->assign($request->get());
$this->assign([
'data' => $data,
'page' => $data->render(),
'total' => $data->total(),
]);
return $this->fetch();
}
public function add(Request $request, CdkCode $model, CdkValidate $validate)
{
if ($request->isPost()) {
$param = $request->param();
if ($param['type'] == 'charge') {
$validate->scene('charge')->check($param) or admin_error($validate->getError());
$cdk = $model::get_production_cdk((int)$param['charge_cdk_num']);
for ($i=0; $i<count($cdk); $i++) {
$inset[] = [
'cdk_code' => $cdk[$i],
'type' => 1,
'money' => $param['charge_money'],
'item_name' => $param['charge_text'],
'item_id' => $param['charge_id'],
'num' => 1,
];
}
for ($i=0; $i<count($cdk); $i++) {
if($param['charge_money']==1 || $param['charge_money']==30){
$inset[$i]['item_id']=1;
}
}
$result = $model->saveAll($inset);
$result ? admin_success(lang('success'), URL_BACK) : admin_error();
}
if ($param['type'] == 'item') {
$validate ->scene('item')->check($param) or admin_error($validate->getError());
$cdk = $model::get_production_cdk((int)$param['item_cdk_num']);
for ($i=0; $i<count($cdk); $i++) {
$inset[] = [
'cdk_code' => $cdk[$i],
'type' => 2,
'money' => $param['item_money'],
'item_name' => $param['item_text'],
'item_id' => $param['item_id'],
'num' => $param['item_num'],
];
}
$result = $model->saveAll($inset);
$result ? admin_success(lang('success'), URL_BACK) : admin_error();
}
if ($param['type'] == 'mail') {
$validate ->scene('mail')->check($param) or admin_error($validate->getError());
$cdk = $model::get_production_cdk((int)$param['mail_cdk_num']);
for ($i=0; $i<count($cdk); $i++) {
$inset[] = [
'cdk_code' => $cdk[$i],
'type' => 3,
'money' => $param['mail_money'],
'item_name' => $param['title'],
'mail' => $param['gets'],
'num' => 1,
];
}
$result = $model->saveAll($inset);
$result ? admin_success(lang('success'), URL_BACK) : admin_error();
}
}
$gameGm = new GameGm();
$this->assign([
'item_list' => $gameGm::get_item_list(),
'charge_list' => $gameGm::get_charge_list(),
]);
return $this->fetch();
}
//删除
public function del($id, CdkCode $model)
{
if (count($model->noDeletionId) > 0) {
if (is_array($id)) {
if (array_intersect($model->noDeletionId, $id)) {
return admin_error('ID为' . implode(',', $model->noDeletionId) . '的数据无法删除');
}
} else if (in_array($id, $model->noDeletionId)) {
return admin_error('ID为' . $id . '的数据无法删除');
}
}
if ($model->softDelete) {
$result = $model->whereIn('id', $id)->useSoftDelete('delete_time', time())->delete();
} else {
$result = $model->whereIn('id', $id)->delete();
}
return $result ? admin_success(lang('delete_success'), URL_RELOAD) : admin_error(lang('delete_error'));
}
public function enable($id, CdkCode $model)
{
$result = $model->whereIn('id', $id)->update(['status' => 1]);
return $result ? admin_success(lang('status_update_success'), URL_RELOAD) : admin_error(lang('status_update_error'));
}
}