|
|
|
@ -13,45 +13,50 @@ use Base\Service\PromoteService;
|
|
|
|
|
* 支付回调控制器
|
|
|
|
|
* @author 小纯洁
|
|
|
|
|
*/
|
|
|
|
|
class BaseController extends Controller {
|
|
|
|
|
protected function _initialize(){
|
|
|
|
|
C(api('Config/lists'));
|
|
|
|
|
C(sdk::get_tool());
|
|
|
|
|
}
|
|
|
|
|
class BaseController extends Controller
|
|
|
|
|
{
|
|
|
|
|
private $promoteService;
|
|
|
|
|
|
|
|
|
|
protected function _initialize()
|
|
|
|
|
{
|
|
|
|
|
C(api('Config/lists'));
|
|
|
|
|
C(sdk::get_tool());
|
|
|
|
|
$this->promoteService = new PromoteService();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 购买成功后
|
|
|
|
|
* @author 鹿文学
|
|
|
|
|
*/
|
|
|
|
|
protected function set_order($data) {
|
|
|
|
|
$order = M('Order','tab_');
|
|
|
|
|
$map['order_number'] = $data['out_trade_no'];
|
|
|
|
|
$result_data = $order->where($map)->find();
|
|
|
|
|
if(empty($result_data)) {$this->record_logs("数据异常");return false;}
|
|
|
|
|
$other = $order->where(array('merchandise_id'=>$result_data['merchandise_id'],'pay_status'=>1))->find();
|
|
|
|
|
if(!empty($other)){
|
|
|
|
|
$datasave['pay_status'] = 1;
|
|
|
|
|
$datasave['is_refund'] = 2;
|
|
|
|
|
$res = $order->where($map)->save($datasave);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if($result_data['pay_status'] == 0) {
|
|
|
|
|
$data_save['pay_status'] = 1;
|
|
|
|
|
$data_save['trade_no'] = $data['trade_no'];
|
|
|
|
|
$data_save['pay_time'] = NOW_TIME;
|
|
|
|
|
$res = $order->where($map)->save($data_save);
|
|
|
|
|
if($res!== false) {
|
|
|
|
|
M('Merchandise','tab_')->where(['id'=>$result_data['merchandise_id']])->save(['status'=>4]);
|
|
|
|
|
M('user','tab_')->where(['id'=>$result_data['buyer_id']])->setInc("cumulative",$result_data['order_price']);
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
$this->record_logs("修改数据失败");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 购买成功后
|
|
|
|
|
* @author 鹿文学
|
|
|
|
|
*/
|
|
|
|
|
protected function set_order($data) {
|
|
|
|
|
$order = M('Order','tab_');
|
|
|
|
|
$map['order_number'] = $data['out_trade_no'];
|
|
|
|
|
$result_data = $order->where($map)->find();
|
|
|
|
|
if(empty($result_data)) {$this->record_logs("数据异常");return false;}
|
|
|
|
|
$other = $order->where(array('merchandise_id'=>$result_data['merchandise_id'],'pay_status'=>1))->find();
|
|
|
|
|
if(!empty($other)){
|
|
|
|
|
$datasave['pay_status'] = 1;
|
|
|
|
|
$datasave['is_refund'] = 2;
|
|
|
|
|
$res = $order->where($map)->save($datasave);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if($result_data['pay_status'] == 0) {
|
|
|
|
|
$data_save['pay_status'] = 1;
|
|
|
|
|
$data_save['trade_no'] = $data['trade_no'];
|
|
|
|
|
$data_save['pay_time'] = NOW_TIME;
|
|
|
|
|
$res = $order->where($map)->save($data_save);
|
|
|
|
|
if($res!== false) {
|
|
|
|
|
M('Merchandise','tab_')->where(['id'=>$result_data['merchandise_id']])->save(['status'=>4]);
|
|
|
|
|
M('user','tab_')->where(['id'=>$result_data['buyer_id']])->setInc("cumulative",$result_data['order_price']);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$this->record_logs("修改数据失败");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*充值到游戏成功后修改充值状态和设置游戏币
|
|
|
|
@ -705,22 +710,36 @@ class BaseController extends Controller {
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getMarketAdminId($promoteId)
|
|
|
|
|
public function getPromoteById($promoteId)
|
|
|
|
|
{
|
|
|
|
|
return $this->promoteService->getPromoteById($promoteId, ['top']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getMarketAdminId($promote)
|
|
|
|
|
{
|
|
|
|
|
$promote = M('promote', 'tab_')->field(['id', 'chain', 'level', 'admin_id'])->where(['id' => $promoteId])->find();
|
|
|
|
|
$marketAdminId = 0;
|
|
|
|
|
if ($promote) {
|
|
|
|
|
$topPromote = (new PromoteService)->getTopPromote($promote);
|
|
|
|
|
$marketAdminId = $topPromote['admin_id'];
|
|
|
|
|
return $this->promoteService->getMarketAdminIdByPromote($promote);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getIsCheckValue($promote, $gameId)
|
|
|
|
|
{
|
|
|
|
|
if (is_null($promote)) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if ($this->promoteService->isGameIdSettle($promote, $gameId)) {
|
|
|
|
|
return 1;
|
|
|
|
|
} else {
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
return $marketAdminId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*消费记录表 参数
|
|
|
|
|
*/
|
|
|
|
|
private function spend_param($param=array()){
|
|
|
|
|
|
|
|
|
|
$user_entity = get_user_entity($param['user_id']);
|
|
|
|
|
$promote = $this->getPromoteById($user_entity["promote_id"]);
|
|
|
|
|
|
|
|
|
|
$data_spned['user_id'] = $param["user_id"];
|
|
|
|
|
$data_spned['user_account'] = $user_entity["account"];
|
|
|
|
|
$data_spned['user_nickname'] = $user_entity["nickname"];
|
|
|
|
@ -747,9 +766,10 @@ class BaseController extends Controller {
|
|
|
|
|
$data_spned['pay_game_status'] = 0;
|
|
|
|
|
$data_spned['extend'] = $param['extend'];
|
|
|
|
|
$data_spned['pay_way'] = $param["pay_way"];
|
|
|
|
|
$data_spned['market_admin_id'] = $this->getMarketAdminId($user_entity["promote_id"]);
|
|
|
|
|
$data_spned['market_admin_id'] = $this->getMarketAdminId($promote);
|
|
|
|
|
$data_spned['is_check'] = $this->getIsCheckValue($promote, $param["game_id"]);
|
|
|
|
|
if($data_spned['pay_way'] != 7){
|
|
|
|
|
$discount = $this->get_discount($param['game_id'],$user_entity['promote_id'],$param['user_id']);
|
|
|
|
|
$discount = $this->get_discount($param['game_id'],$user_entity['promote_id'], $param["game_id"]);
|
|
|
|
|
$data_spned['pay_amount'] = $param["price"] * $discount['discount']/10;//实付金额
|
|
|
|
|
$data_spned['discount_type'] = $discount['discount_type'];
|
|
|
|
|
}else{//苹果支付不计入折扣
|
|
|
|
|