request->get('gameid', '', 'trim'); $name = $this->request->get('name', '', 'trim'); if (isset($name) && !empty($name)) { $where['a.name'] = ['like', "%$name%"]; } $tmpGameList = model('Common/Game')->getAllByCondition('id,name',['is_welfare'=>2]); $gameList = array(); foreach ($tmpGameList as $game) { $gameList[$game['id']] = $game; } $welfareGiftType = model('welfareGiftType')->select(); foreach ($welfareGiftType as $ty) { $welfareGiftType[$ty['id']] = $ty; } $resourcesModel = Db::name('cy_welfare_resources'); $resources = $resourcesModel->field('id,name')->select(); foreach ($resources as $v) { $resources[$v['id']] = $v; } $welfareModel = model('welfare'); $list = $welfareModel->alias('a') ->field('a.*') ->where($where) ->where(function ($query) use ($gameid) { if (isset($gameid) && !empty($gameid)) { $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $gameid)); } }) ->order($order) ->paginate(10, false, ['query' => input('get.')])->each(function ($item, $key) use ($gameList, $welfareGiftType, $resources) { $game_ids = explode(',', $item['game_id']); $tmp = []; foreach ($game_ids as $k => $v) { $tmp[] = $gameList[$v]['name']; } $item['game_name'] = implode('
', $tmp); if ($welfareGiftType[$item['welfare_gift_type_id']]['type_id'] == 1) { $dayStr = ''; switch ($welfareGiftType[$item['welfare_gift_type_id']]['recharge_type']){ case 1: $dayStr = '全部'; break; case 2: $dayStr = '日'; break; case 3: $dayStr = '周'; break; case 4: $dayStr = '月'; break; case 5: $dayStr = '季'; break; case 6: $dayStr = '年'; break; case 7: $dayStr = '自定义'; break; } if($welfareGiftType[$item['welfare_gift_type_id']]['recharge_type'] == 1){ $note = '(使用条件:最低充值金额' . $welfareGiftType[$item['welfare_gift_type_id']]['recharge_amount'] . ')时间段:'.$dayStr; }else{ $note = '(使用条件:区间金额' . $welfareGiftType[$item['welfare_gift_type_id']]['recharge_amount'].'-'.$welfareGiftType[$item['welfare_gift_type_id']]['max_recharge_amount'] . ')时间段:'.$dayStr; } } elseif ($welfareGiftType[$item['welfare_gift_type_id']]['type_id'] == 2) { // $note = '(使用条件: 创角)'; $note = ''; } else { $note = '(使用条件: 最低等级' . $welfareGiftType[$item['welfare_gift_type_id']]['role_level'] . ')'; } $item['welfare_gift_type_name'] = $welfareGiftType[$item['welfare_gift_type_id']]['name'] . $note; $resources_data = json_decode($item['resources_data'], true); $tmp = []; foreach ($resources_data as $k => $v) { $tmp[] = '礼包名称:' . $resources[$v['welfare_resources_id']]['name'] . ' 数量:' . $v['number']; } if ($tmp) { $item['welfare_resources_name'] = implode('
', $tmp); } else { $item['welfare_resources_name'] = ''; } return $item; }); $this->assign('game_list', $tmpGameList); $this->assign('list', $list); $this->assign('page', $list->render()); return $this->fetch(); } /** *增 */ public function add() { if ($this->request->isPost()) { $data = $this->request->post(); if (!in_array($data['grant_type_id'], [3, 8, 9])) { $data['frequency'] = 1; } if (!in_array($data['grant_type_id'], [7])) { $data['first_type'] = 1; } if (!in_array($data['grant_type_id'], [8,9])) { $data['month_type'] = 1; } if (!$data['select']) { $this->error('请选择游戏'); } $data['game_id'] = $data['select']; if(!$data['welfare_gift_type_id']){ $this->error('福利礼包类型'); } if(!isset($data['welfare_resources_id']) && !$data['welfare_resources_id']){ $this->error('请选择福利!'); } $resources_data = []; foreach ($data['welfare_resources_id'] as $k => $v) { if(!$v){ $this->error('请选择福利!'); } $resources_data[] = [ 'welfare_resources_id' => $v, 'number' => $data['number'][$k], ]; } $data['resources_data'] = json_encode($resources_data); unset($data['select'], $data['welfare_resources_id'], $data['number']); $data['update_time'] = $data['create_time'] = time(); $m = Db::name('cy_welfare')->insertGetId($data); if (!empty($m)) { $this->success('添加成功', url('index')); } $this->error('添加失败'); } $tmpGameList = model('Common/Game')->getAllByCondition('id,name',['is_welfare'=>2]); $this->assign('game_list', $tmpGameList); $welfare_gift_type = Db::name('cy_welfare_gift_type')->select(); $this->assign('welfare_gift_type', $welfare_gift_type); $this->assign('grant_type_ids', model('Welfare')->grant_type_id); return $this->fetch(); } /** *删 */ public function delete() { $id = $this->request->param('id', '', 'intval'); if (empty($id)) { $this->error('参数错误!'); } $appModel = model('Common/Welfare'); if (!$appModel->find($id)) { $this->error('参数错误,不存在该数据'); } if ($appModel->where('id', '=', $id)->delete()) { $this->success('删除成功', url('index')); } $error = $appModel->getError(); $this->error($error ?: '删除失败'); } /** *编辑SDK密钥 */ public function edit() { $id = $this->request->param('id', '', 'intval'); $appModel = Db::name('cy_welfare'); if (!$data = $appModel->find($id)) { $this->error('参数错误,不存在该数据'); } if (empty($id)) { $this->error('参数错误!'); } if ($this->request->isPost()) { $data = $this->request->post(); if (!in_array($data['grant_type_id'], [3, 8, 9])) { $data['frequency'] = 1; } $resources_data = []; if(!isset($data['welfare_resources_id']) && !$data['welfare_resources_id']){ $this->error('请选择福利!'); } foreach ($data['welfare_resources_id'] as $k => $v) { if(!$v){ $this->error('请选择福利!'); } $resources_data[] = [ 'welfare_resources_id' => $v, 'number' => $data['number'][$k], ]; } $data['resources_data'] = json_encode($resources_data); unset($data['welfare_resources_id'], $data['number']); $data['update_time'] = time(); Db::name('cy_welfare')->where(['id' => $id])->update($data); $this->success('修改成功', url('index')); $this->error($appModel->getError() ?: '修改失败'); } $game = explode(',', $data['game_id']); $tmpGameList = model('Common/Game')->getAllByCondition('name', ['id' => ['in', $game]]); $resourcesModel = Db::name('cy_welfare_resources'); $resources = $resourcesModel->where(function ($query) use ($game) { foreach ($game as $k => $v) { $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $v)); } })->field('id,name')->select(); $this->assign('resources', $resources); $this->assign('game_name', implode(',', array_column($tmpGameList, 'name'))); $welfare_gift_type = Db::name('cy_welfare_gift_type')->select(); $this->assign('welfare_gift_type', $welfare_gift_type); $this->assign('grant_type_ids', model('Welfare')->grant_type_id); $this->assign('resources_data', json_decode($data['resources_data'], true)); $this->assign('data', $data); return $this->fetch(); } public function getWelfareResources() { $resourcesModel = Db::name('cy_welfare_resources'); $game = input('game'); if (!$game) { $this->error('游戏不能为空'); } $gameArr = explode(',', $game); $result = $resourcesModel->where(function ($query) use ($gameArr) { foreach ($gameArr as $k => $v) { $query->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $v)); } })->field('id,name')->select(); $result = array_merge([['id'=>'','name'=>'']],json_decode(json_encode($result),true)); $this->jsonResult($result, 1, '成功'); } }