getGroupList($condition, 30, 'add_time desc'); Tpl::output('group_list', $group_list); Tpl::output('page', $mod->showpage('2')); Tpl::showpage('provider.group.list'); } public function addOp() { if (chksubmit()) { $obj_validate = new Validator(); $obj_validate->validateparam = [ ["input" => $_POST["group_name"], "require" => "true", "message" => '通道组名称不能为空'], ]; $error = $obj_validate->validate(); if ($error != '') { showMessage($error); } else { $mod = Model('provider_group'); $insert['group_name'] = trim($_POST['group_name']); $insert['add_time'] = time(); $result = $mod->addGroup($insert); if ($result) { showMessage('添加成功', 'index.php?act=provider_group&op=index'); } else { showMessage('添加失败'); } } } Tpl::showpage('provider.group.add'); } public function editOp() { $group_id = $_GET['group_id'] ?? $_POST['group_id']; $mod = Model('provider_group'); $group = $mod->getProviderGroup(['group_id' => $group_id]); if(empty($group)) { showMessage('通道组不存在'); } if(chksubmit()) { $updata['group_name'] = trim($_POST['group_name']); $updata['bz'] = trim($_POST['bz']); $result = $mod->editGroup($group_id, $updata); if ($result) { showMessage('编辑成功', 'index.php?act=provider_group&op=index'); } else { showMessage('编辑失败'); } }else{ Tpl::output('group', $group); Tpl::showpage('provider.group.edit'); } } public function DelGroupsOp() { $group_ids = $_GET['group_ids']; $cond['group_id'] = ['in', $group_ids]; try { $mod = Model('provider_group'); $trans = new trans_wapper($mod, __METHOD__); $mod->delGroup($cond); $mod->delGroupInfo($cond); $trans->commit(); showMessage('操作成功', 'index.php?act=provider_group&op=index'); } catch (Exception $e) { $trans->rollback(); showMessage('操作失败', ''); } } public function provider_chooseOp() { $group_id = $_GET['group_id']??$_POST['group_id']; $mod = Model('provider_group'); $provider_group = $mod->getProviderGroup(['group_id' => $group_id]); if(empty($provider_group)) { showMessage('此通道组不存在'); } if(chksubmit()) { $condition['group_id'] = $group_id; $condition['quality'] = $_POST['quality']; $condition['type'] = $_POST['type']; $is_only = $_POST['is_only']??0; $group_info = $mod->getGroupInfo($condition); if($group_info['is_only'] == $is_only) { showMessage('编辑成功'); } $result = $mod->editGroupInfo($condition,['is_only' => $is_only]); if ($result) { showMessage('编辑成功'); } else { showMessage('编辑失败'); } } else { $group_info = $mod->getGroupInfos(['group_id' => $group_id]); $check = []; foreach ($group_info as $info) { if(!empty($info['info'])) { $check[] = "{$info['quality']}-{$info['type']}"; } } Tpl::output('check', $check); Tpl::output('group', $provider_group); Tpl::showpage('provider.group'); } } public function get_provider_group_infoOp(){ $mod = Model('provider_group'); $condition['group_id'] = $_GET['group_id']; $condition['quality'] = $_GET['quality']; $condition['type'] = $_GET['type']; $group_info = $mod->getGroupInfo($condition); $infos = explode(',', $group_info['info']); if(empty($group_info['info'])) { echo(json_encode([])); return; } $provider_list = Model('')->table('refill_provider,store') ->field('refill_provider.provider_id,store.store_name') ->join('inner') ->on('store.store_id=refill_provider.store_id') ->limit(1000) ->select(); foreach ($provider_list as $provider) { $providers[$provider['provider_id']] = $provider['store_name']; } $datas = []; foreach($infos as $info) { $info = explode('-', $info); $store_name = $providers[$info[4]]; $card_type = $this->scard_type($info[2]); $datas[$info[3]][] = "{$store_name}-{$card_type}-{$info[3]}元"; } ksort($datas); $result['data'] = $datas; $result['is_only'] = $group_info['is_only']; echo(json_encode($result)); } public function set_provider_group_infoOp() { $type = $_GET['type'] ?? $_POST['type']; if(!in_array($type, [1,2])) { showMessage('通道类型有误'); } if (chksubmit()){ $group_id = $_POST['group_id']; $quality = $_POST['quality']; $info = $_POST['info']; $is_only = $_POST['is_only']; $inserts['group_id'] = $group_id; $inserts['type'] = $type; $inserts['quality'] = $quality; if(!empty($info)) { $inserts['info'] = implode(',', $info); }else{ $inserts['info'] = ''; } $inserts['is_only'] = $is_only; try { $mod = Model('provider_group'); $trans = new trans_wapper($mod, __METHOD__); //删除旧配置 $mod->delGroupInfo(['group_id' => $group_id, 'type' => $type, 'quality' => $quality]); //更新新配置 if (!empty($inserts)) { $mod->addGroupInfo($inserts); } $trans->commit(); showMessage('操作成功', 'index.php?act=provider_group&op=index'); } catch (Exception $e) { $trans->rollback(); showMessage('操作失败', ''); } }else{ global $config; if($type == 1 ) { $amounts = $config['refill_oil_specs']; $operator = [mtopcard\PetroChinaCard, mtopcard\SinopecCard]; }else{ $amounts = $config['refill_phone_specs']; $operator = [mtopcard\ChinaMobileCard, mtopcard\ChinaUnicomCard, mtopcard\ChinaTelecomCard]; } $quality = $_GET['quality'] ?? 1; $providers = Model('')->table('refill_provider,store') ->field('refill_provider.provider_id,refill_provider.name,store.store_name,opened') ->join('inner') ->on('store.store_id=refill_provider.store_id') ->where(['type' => $type, 'qualitys' => ['like', '%' . $quality . '%']]) ->limit(1000) ->order('opened asc , provider_id desc') ->select(); if(empty($providers)) { showMessage('暂无相关通道可配置', ''); } $results = []; foreach ($operator as $opr) { foreach ($providers as $key => $provider) { $data['provider_id'] = $provider['provider_id']; $data['provider_name'] = $provider['name']; $data['opened'] = $provider['opened']; $data['card_type'] = $opr; $card_type = $this->scard_type($opr); $data['name'] = "{$card_type}-{$provider['store_name']}"; $results[] = $data; } } $mod = Model('provider_group'); $condition['group_id'] = $_GET['group_id']; $condition['quality'] = $quality; $condition['type'] = $type; $group_info = $mod->getGroupInfo($condition); $sel_data = []; if(!empty($group_info)) { $infos = explode(',', $group_info['info']); foreach($infos as $info) { $info = explode('-', $info); $sel_data[] = "{$info[0]}-{$info[1]}-{$info[2]}-{$info[3]}-{$info[4]}"; } } $ProviderManager = new \refill\ProviderManager(); $ProviderManager->load(); $QPTA = $ProviderManager->getQPTA(); $QPTA = $QPTA[$quality]; Tpl::output('QPTA', $QPTA); Tpl::output('is_only', $group_info['is_only']); Tpl::output('sel_data', $sel_data); Tpl::output('providers', $results); Tpl::output('amounts', $amounts); Tpl::showpage('provider.group.set'); } } public function merchant_sel_groupOp() { $mchid = $_GET['mchid'] ?? $_POST['mchid']; $model_merchant = Model('merchant'); $merchant = $model_merchant->getMerchantInfo(['mchid' => $mchid]); if (empty($merchant)) { showMessage('机构信息有误'); } if (chksubmit()){ $sel = $_POST['sel']; if(empty($sel)) { $update['group_ids'] = ''; }else{ $sel = implode(',', $sel); $update['group_ids'] = $sel; } $result = $model_merchant->editMerchant($update, ['mchid' => $mchid]); if ($result) { showMessage('编辑成功', 'index.php?act=merchant&op=merchant'); }else{ showMessage('编辑失败', 'index.php?act=merchant&op=merchant'); } } else { $group_mod = Model('provider_group'); $group_list = $group_mod->getGroupList(['group_id' => ['gt', 0]], 1000, 'add_time desc'); if(empty($group_list)) { showMessage('暂无可用通道组,请先添加。','index.php?act=provider_group&op=index'); } $group_ids = explode(',', $merchant['group_ids']); Tpl::output('group_ids', $group_ids); Tpl::output('merchant', $merchant); Tpl::output('group_list', $group_list); Tpl::showpage('merchant.sel.group'); } } }