| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- <?php
- namespace app\admin\controller;
- use app\BaseController;
- use app\common\model\CreditCardConfigModel;
- use app\common\model\PaymentChannelModel;
- use think\App;
- use think\facade\View;
- use think\Request;
- class PaymentChannel extends BaseController
- {
- private $model;
- private $creditCardConfigModel;
- public function __construct(App $app)
- {
- $this->model = new PaymentChannelModel();
- $this->creditCardConfigModel = new CreditCardConfigModel();
- parent::__construct($app);
- }
- public function index() {
- $list = $this->model->findAll();
- foreach ($list as &$item) $item['type_str'] = [lang("Default"), lang("Zue Coin Setting"), lang("Credit Card Setting")][$item['type'] - 1];
- View::assign("list", $list);
- return view();
- }
- public function add() {
- if ($this->request->isAjax()) {
- $params = $this->request->param();
- if(!isset($params['type']))
- return $this->fail(lang('type is err'));
- $channel = $this->model->findByName($params['name'] ?? '');
- if ($channel)
- return $this->fail(lang('Data duplication'));
- $save_channel = [
- 'name' => $params['name'],
- 'icon' => $params['icon'],
- 'type' => $params['type'],
- 'is_upload_code' => $params['is_upload_code'],
- 'create_time' => time(),
- 'update_time' => time()
- ];
- $save_channel_credit_config = [];
- if ($params['type'] == '2') {
- $save_channel['zue_coin_exchange_rate'] = $params['zue_coin_exchange_rate'];
- $save_channel['zue_coin_consume_rate'] = $params['zue_coin_consume_rate'];
- }
- $last_id = $this->model->insert($save_channel,true);
- if($params['type'] == '3') {
- if (!isset($params['bank']) || !is_array($params['bank']))
- return $this->fail(lang('Parameter invalid'));
- for ($i = 0; $i < count($params['bank']); $i++) {
- array_push($save_channel_credit_config, [
- 'channel_id' => $last_id,
- 'is_stage' => (int)isset($params['is_stage'][$i]),
- 'bank' => $params['bank'][$i],
- 'stage_6' => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
- 'stage_9' => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
- 'stage_12' => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
- 'stage_24' => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
- 'stage_36' => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
- ]);
- }
- }
- if (count($save_channel_credit_config) > 0)
- $this->creditCardConfigModel->saveAll($save_channel_credit_config);
- return $this->ok(true);
- }
- return view();
- }
- public function delete(Request $request) {
- $params = $request->param();
- if(!isset($params['ids']))
- return $this->fail(lang("Please select the data you want to delete"));
- $this->model->deleteByIds(explode(',',$params['ids']));
- return $this->ok(true);
- }
- public function edit() {
- $params = $this->request->param();
- if(!isset($params['id']))
- return $this->fail(lang('ID not exist'));
- $channel = $this->model->findById($params['id']);
- if (!$channel)
- return $this->fail( lang('Data not exist'));
- if($this->request->isAjax()) {
- $judge = $this->model->findByName($params['name']);
- if ($judge && $judge->id != $channel->id)
- return $this->fail(lang("Data duplication"));
- $update_channel = [
- 'name' => $params['name'],
- 'icon' => $params['icon'],
- 'type' => $params['type'],
- 'is_upload_code' => $params['is_upload_code'],
- 'update_time' => time()
- ];
- $save_channel_credit_config = [];
- $update_channel_credit_config = [];
- if ($params['type'] == '2') {
- $update_channel['zue_coin_exchange_rate'] = $params['zue_coin_exchange_rate'];
- $update_channel['zue_coin_consume_rate'] = $params['zue_coin_consume_rate'];
- }
- $this->model->where('id', $params['id'])->update($update_channel);
- if($params['type'] == '3') {
- if (isset($params['bank']) && is_array($params['bank'])) {
- for ($i = 0; $i < count($params['bank']); $i++) {
- if(isset($params['config_id'][$i]) && $params['config_id'][$i] > 0) {
- array_push($update_channel_credit_config, [
- 'id' => $params['config_id'][$i],
- 'is_stage' => (int)isset($params['is_stage'][$i]),
- 'bank' => $params['bank'][$i],
- 'stage_6' => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
- 'stage_9' => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
- 'stage_12' => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
- 'stage_24' => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
- 'stage_36' => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
- ]);
- } else {
- array_push($save_channel_credit_config, [
- 'channel_id' => $channel->id,
- 'is_stage' => (int)isset($params['is_stage'][$i]),
- 'bank' => $params['bank'][$i],
- 'stage_6' => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
- 'stage_9' => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
- 'stage_12' => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
- 'stage_24' => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
- 'stage_36' => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
- ]);
- }
- }
- }
- }
- $res = $this->model->where('id',$params['id'])->update($update_channel);
- if (count($save_channel_credit_config) > 0) {
- $this->creditCardConfigModel->saveAll($save_channel_credit_config);
- }
- if (count($update_channel_credit_config) > 0) {
- foreach ($update_channel_credit_config as $item) $this->creditCardConfigModel->where('id', $item['id'])->update($item);
- }
- return $this->ok($res);
- }
- View::assign('channel', $channel);
- return view();
- }
- public function delete_config(Request $request) {
- $params = $request->param();
- if(!isset($params['ids']))
- return $this->fail(lang("Please select the data you want to delete"));
- $this->creditCardConfigModel->deleteByIds(explode(',',$params['ids']));
- return $this->ok(true);
- }
- /**
- * @return \think\response\Json
- */
- public function upload() {
- // 获取表单上传文件 例如上传了001.jpg
- $file = request()->file('file');
- // 上传到本地服务器
- $save_name = \think\facade\Filesystem::disk('public')->putFile( 'icon', $file);
- return $this->ok(str_replace('\\',"/",'/storage/'.$save_name));
- }
- }
|