123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- defined('InShopNC') or exit('Access Invalid!');
- require_once(BASE_HELPER_PATH . '/mtopcard/mtopcard.php');
- class toolsControl extends SystemControl
- {
- public function __construct()
- {
- parent::__construct();
- }
- private function show_menu($menu_key) {
- $menu_array = array(
- 'vr_order_tools'=>array('menu_type'=>'link','menu_name'=>'虚拟订单——卡处理','menu_url'=>'./index.php?act=tools&op=vrorder'),
- 'oms_order_push'=>array('menu_type'=>'link','menu_name'=>'oms订单推送','menu_url'=>'./index.php?act=tools&op=index'),
- );
- $menu_array[$menu_key]['menu_type'] = 'text';
- Tpl::output('menu',$menu_array);
- }
- public function indexOp(){
- $this->vrorderOp();
- }
- public function vrorderOp()
- {
- if(chksubmit())
- {
- $order_sn = trim($_GET['order_sn']);
- $type = trim($_GET['type']);
- if(empty($order_sn)) {
- $this->show_menu('vr_order_tools');
- Tpl::showpage('vr_order_tools');
- }
- else
- {
- if($type == 'change_card') {
- $ret = $this->change_card($order_sn);
- }
- elseif($type == 'cancel_order') {
- $ret = $this->cancel_order($order_sn);
- }
- elseif($type == 'freeze_card') {
- $ret = $this->freeze_card($order_sn);
- }
- elseif($type == 'bind_card') {
- $ret = $this->bind_card($order_sn);
- }
- elseif($type == 'unfreeze_card') {
- $card_no = $order_sn;
- $ret = $this->unfreeze_card($card_no);
- }
- else {
- showMessage(L('nc_common_save_fail'), urlAdmin('tools', 'vr_order_tools'));
- }
- if($ret['state']) {
- showMessage(L('nc_common_save_succ'), urlAdmin('tools', 'vr_order_tools'));
- } else {
- showMessage($ret['msg'], urlAdmin('tools', 'vr_order_tools'));
- }
- }
- }
- else
- {
- $this->show_menu('vr_order_tools');
- Tpl::showpage('vr_order_tools');
- }
- }
- //现在的卡有问题,换一张同等价位的新卡,并将原卡冻结,订单重新置为已支付状态。
- private function change_card($order_sn)
- {
- Log::record(__METHOD__ . "order_sn={$order_sn}",Log::DEBUG);
- $logic = Logic('queue');
- $ret = $logic->OnChanageCard(['order_sn' => $order_sn]);
- return $ret;
- }
- private function cancel_order($order_sn)
- {
- $model_vr_order = Model('vr_order');
- $logic_vr_order = Logic('vr_order');
- $order_info = $model_vr_order->getOrderInfo(['order_sn' => $order_sn],'*',true);
- return $logic_vr_order->changeOrderStateCancel($order_info,'admin', '不能充值的卡,已经退款,取消订单。');
- }
- private function freeze_card($order_sn)
- {
- Log::record(__METHOD__ . "order_sn={$order_sn}",Log::DEBUG);
- $logic = Logic('queue');
- $ret = $logic->OnCancelorderFreezeCard(['order_sn' => $order_sn]);
- return $ret;
- }
- private function bind_card($order_sn)
- {
- Log::record(__METHOD__ . "order_sn={$order_sn}",Log::DEBUG);
- $logic = Logic('queue');
- $ret = $logic->OnVrOrderSuccess(['order_sn' => $order_sn]);
- return $ret;
- }
- private function unfreeze_card($card_no)
- {
- $mod_card = Model('card_key');
- $cards = $mod_card->getCards(['card_no' => $card_no]);
- if(count($cards) > 1) {
- return callback(false,'超过一张卡满足解冻条件,请技术人员确认');
- }
- foreach ($cards as $card) {
- $card_id = intval($card['card_id']);
- $ret = mtopcard\cards_helper::unfreeze($card_id);
- return callback($ret,"解冻失败?");
- }
- return callback(false,"没有找到卡号:{$card_no}");
- }
- public function oms_order_pushOp()
- {
- if(chksubmit())
- {
- $order_number = trim($_GET['order_number']);
- if(empty($order_number)) {
- $this->show_menu('oms_order_push');
- Tpl::showpage('oms_order_push');
- }
- else
- {
- $mod_order = Model('order');
- $orders = $mod_order->getOrderList(['order_sn' => $order_number]);
- if(empty($orders)) {
- showMessage(L('nc_common_save_fail'), urlAdmin('tools', 'oms_order_push'));
- }
- else
- {
- $order = $orders[0];
- $pay_sn = $order['pay_sn'];
- $trade_no = $order['trade_no'];
- //todo 对完全不需要通过微信和支付宝支付现金的订单,就不会有trade_no,因此此时推送会失败。
- if(empty($pay_sn) || empty($trade_no)) {
- showMessage(L('nc_common_save_fail'), urlAdmin('tools', 'oms_order_push'));
- return;
- }
- $logic_delivery = Logic('delivery');
- $ret = $logic_delivery->putOrder($pay_sn, $trade_no);
- if($ret == true) {
- showMessage(L('nc_common_save_succ'), urlAdmin('tools', 'oms_order_push'));
- } else {
- showMessage(L('nc_common_save_fail'), urlAdmin('tools', 'oms_order_push'));
- }
- }
- }
- }
- else
- {
- $this->show_menu('oms_order_push');
- Tpl::showpage('oms_order_push');
- }
- }
- }
|