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)); } }