|
|
<?php
|
|
|
|
|
|
namespace Admin\Controller;
|
|
|
use User\Api\UserApi as UserApi;
|
|
|
use Common\Api\GameApi;
|
|
|
use Callback\Controller\BaseController;
|
|
|
/**
|
|
|
* 后台首页控制器
|
|
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
|
|
*/
|
|
|
class RepairController extends ThinkController {
|
|
|
public function repairEdit($orderNo=null,$is_uc=0){
|
|
|
$param['out_trade_no'] = $orderNo;
|
|
|
$game = new GameApi();
|
|
|
if($is_uc){
|
|
|
$result=$game->game_pay_notify($param,1,1);
|
|
|
}else{
|
|
|
$result=$game->game_pay_notify($param,1);
|
|
|
}
|
|
|
$spend = M('Spend',"tab_");
|
|
|
|
|
|
if($result == "success"){
|
|
|
$auth = session('user_auth');
|
|
|
// 补单记录
|
|
|
M('repair_pay', 'tab_')->add([
|
|
|
'admin_id' => $auth['uid'],
|
|
|
'admin_name' => $auth['username'],
|
|
|
'pay_order_number' => $orderNo,
|
|
|
'ip' => get_client_ip(),
|
|
|
'tab' => 'spend',
|
|
|
'create_time' => time(),
|
|
|
'type' => 1 // 补单
|
|
|
]);
|
|
|
|
|
|
$rr = $spend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1));
|
|
|
//操作日志
|
|
|
addOperationLog(array(
|
|
|
"op_type"=>1,
|
|
|
"key"=> $orderNo,
|
|
|
"url"=>U("Spend/lists",array("pay_order_number"=>$orderNo))
|
|
|
));
|
|
|
|
|
|
$this->ajaxReturn(array('status'=>1,'msg'=>'补单成功'));
|
|
|
}else{
|
|
|
$this->ajaxReturn(array('status'=>0,'msg'=>'补单失败'));
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
|
*编辑绑币补单
|
|
|
*/
|
|
|
public function repairBindEdit($orderNo=null){
|
|
|
$bindspend = M('BindSpend',"tab_");
|
|
|
$param['out_trade_no'] = $orderNo;
|
|
|
$param['distinction'] = 'bind';
|
|
|
$game = new GameApi();
|
|
|
$result=$game->game_pay_notify($param,2);
|
|
|
if($result == "success"){
|
|
|
$rr = $bindspend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1));
|
|
|
$this->ajaxReturn(array('status'=>1,'msg'=>'补单成功'));
|
|
|
}else{
|
|
|
$this->ajaxReturn(array('status'=>0,'msg'=>'补单失败'));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 退款接口
|
|
|
* @param null $orderNo
|
|
|
*/
|
|
|
public function Refund($orderNo=null){
|
|
|
$map['pay_order_number'] = $orderNo;
|
|
|
$order=sp_random_string(4);
|
|
|
$res=D('Spend')->Refund($map,$order,md5("mcaseqwezdsi".$order));
|
|
|
if(get_spend_pay_way($orderNo)==1){
|
|
|
if($res=="10000")$this->ajaxReturn(['status'=>1,'msg'=>'退款成功']);
|
|
|
if(res&&strlen($res)>50){
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>$res]);
|
|
|
}else{
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'错误']);
|
|
|
}
|
|
|
}elseif(get_spend_pay_way($orderNo)==3){
|
|
|
if($res==1){
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'退款申请成功']);
|
|
|
}else{
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>$res]);
|
|
|
}
|
|
|
}elseif(get_spend_pay_way($orderNo)==4){
|
|
|
if($res==0){
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'退款申请成功']);
|
|
|
}else{
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>$res]);
|
|
|
}
|
|
|
}elseif(get_spend_pay_way($orderNo)==0){
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'退款成功']);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 退款查询借口
|
|
|
* @param [type] $orderNo [订单号]
|
|
|
* @param integer $type [1 威富通 2官方]
|
|
|
* @return [type] [description]
|
|
|
*/
|
|
|
public function find_refund($orderNo=null,$type=1){
|
|
|
if($type==1){
|
|
|
$spen=D('Spend')->swiftpass_refund($orderNo);
|
|
|
}else{
|
|
|
$spen=D('Spend')->weixin_refundquery($orderNo);
|
|
|
}
|
|
|
$res=json_decode($spen,true);
|
|
|
if($res['status']==1){
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'退款成功']);
|
|
|
}else{
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>$res['msg']]);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 游戏充值补单
|
|
|
*/
|
|
|
public function noticePayed($orderNo, $second, $type) {
|
|
|
$auth = session('user_auth');
|
|
|
|
|
|
if (IS_AJAX) {
|
|
|
if ($type != 'spend' && $type != 'deposit') {
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'参数有误']);
|
|
|
}
|
|
|
$tab = $type;
|
|
|
|
|
|
if (!$orderNo || !$second) {
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'参数不足']);
|
|
|
}
|
|
|
$r = D('Member')->check_sc_pwd($second);
|
|
|
if (!$r) {
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'二级密码错误']);
|
|
|
}
|
|
|
|
|
|
M($tab, 'tab_')->startTrans();
|
|
|
$order = M($tab, 'tab_')->where(['pay_order_number' => $orderNo])->find();
|
|
|
if ($order['pay_status'] == 1) {
|
|
|
M($tab, 'tab_')->rollback();
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'支付成功,无需补单']);
|
|
|
}
|
|
|
|
|
|
$r = M($tab, 'tab_')->where([
|
|
|
'pay_order_number' => $orderNo,
|
|
|
'pay_status' => 0
|
|
|
])->save([
|
|
|
'pay_status' => 1,
|
|
|
'payed_time' => time()
|
|
|
]);
|
|
|
if ($r) {
|
|
|
|
|
|
$cpFlag = 0; // 0 通知cp失败 1 成功
|
|
|
// 通知cp
|
|
|
if ($tab == 'spend') {
|
|
|
$param['out_trade_no'] = $orderNo;
|
|
|
$game = new GameApi();
|
|
|
$result=$game->game_pay_notify($param,1);
|
|
|
$spend = M($tab, "tab_");
|
|
|
|
|
|
if($result == "success"){
|
|
|
$rr = $spend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1));
|
|
|
|
|
|
PromoteStatistics($orderNo);
|
|
|
|
|
|
if ($rr !== false) {
|
|
|
$cpFlag = 1;
|
|
|
M($tab, 'tab_')->commit();
|
|
|
} else {
|
|
|
M($tab, 'tab_')->rollback();
|
|
|
$this->ajaxReturn(array('status'=>1,'msg'=>'补单失败.'));
|
|
|
}
|
|
|
}else{
|
|
|
PromoteStatistics($orderNo);
|
|
|
M($tab, 'tab_')->commit();
|
|
|
}
|
|
|
} else { // deposit
|
|
|
$user = M("user","tab_");
|
|
|
$r = $user->where("id=".$order['user_id'])->setInc("balance", $order['pay_amount']);
|
|
|
if ($r === false) {
|
|
|
M($tab, 'tab_')->rollback();
|
|
|
$this->ajaxReturn(array('status'=>1,'msg'=>'数据有误.'));
|
|
|
}
|
|
|
$r = $user->where("id=".$order['user_id'])->setInc("cumulative", $order['pay_amount']);
|
|
|
if ($r === false) {
|
|
|
M($tab, 'tab_')->rollback();
|
|
|
$this->ajaxReturn(array('status'=>1,'msg'=>'数据有误..'));
|
|
|
}
|
|
|
M('spend', 'tab_')->commit();
|
|
|
}
|
|
|
|
|
|
// 通知到账记录
|
|
|
M('repair_pay', 'tab_')->add([
|
|
|
'admin_id' => $auth['uid'],
|
|
|
'admin_name' => $auth['username'],
|
|
|
'pay_order_number' => $orderNo,
|
|
|
'ip' => get_client_ip(),
|
|
|
'tab' => $tab,
|
|
|
'create_time' => time(),
|
|
|
'type' => 0
|
|
|
]);
|
|
|
if ($tab == 'spend' && $cpFlag === 1) {
|
|
|
// 补单记录
|
|
|
M('repair_pay', 'tab_')->add([
|
|
|
'admin_id' => $auth['uid'],
|
|
|
'admin_name' => $auth['username'],
|
|
|
'pay_order_number' => $orderNo,
|
|
|
'ip' => get_client_ip(),
|
|
|
'tab' => $tab,
|
|
|
'create_time' => time(),
|
|
|
'type' => 1
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
// todo: 分红 上级奖励等
|
|
|
if ($tab == 'spend' && $cpFlag == 0) {
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'充值补单成功,通知CP失败!']);
|
|
|
}
|
|
|
//操作日志
|
|
|
$optionarr = array(
|
|
|
"op_type"=>1,
|
|
|
"key"=> $orderNo
|
|
|
);
|
|
|
$pay_where = substr($orderNo, 0, 2);
|
|
|
if($pay_where == 'SP'){
|
|
|
//游戏充值通知到账
|
|
|
$optionarr['menu'] = "充值-游戏订单-游戏充值-通知到账";
|
|
|
$optionarr['url'] = U("Spend/lists",array("pay_order_number"=>$orderNo));
|
|
|
}elseif($pay_where == 'PF'){
|
|
|
//平台币充值通知到账
|
|
|
$optionarr['menu'] = "充值-平台币订单-平台币充值-通知到账";
|
|
|
$optionarr['url'] = U("Deposit/lists",array("pay_order_number"=>$orderNo));
|
|
|
}
|
|
|
addOperationLog($optionarr);
|
|
|
|
|
|
$this->ajaxReturn(['status'=>1,'msg'=>'充值补单成功!']);
|
|
|
} else {
|
|
|
M('spend', 'tab_')->rollback();
|
|
|
$this->ajaxReturn(['status'=>0,'msg'=>'补单失败,请重试']);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 平台币充值补单
|
|
|
*/
|
|
|
public function platform($orderNo) {
|
|
|
if (IS_AJAX) {
|
|
|
$payOrderNumber = I('request.pay_order_number');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|