推广员订单结算

master
ELF 4 years ago
parent 92e60bd40a
commit a5153e8e94

@ -732,9 +732,6 @@ class PromoteService {
public function getTopPromote($promote) public function getTopPromote($promote)
{ {
/* if ($promote['level'] == 1) {
return $promote;
} */
$chain = trim($promote['chain'], '/'); $chain = trim($promote['chain'], '/');
if ($chain == '') { if ($chain == '') {
return $promote; return $promote;
@ -743,4 +740,53 @@ class PromoteService {
return M('promote', 'tab_')->where(['id' => $topPromoteId])->find(); return M('promote', 'tab_')->where(['id' => $topPromoteId])->find();
} }
} }
public function getPromoteById($id, $with = [])
{
$promote = M('promote', 'tab_')->where(['id' => $id])->find();
if ($promote && in_array('parent', $with)) {
$promote['parent'] = M('promote', 'tab_')->where(['id' => $promote['parent_id']])->find();
}
if ($promote && in_array('top', $with)) {
$promote['top'] = $this->getTopPromote($promote);
}
return $promote;
}
public function getMarketAdminIdByPromoteId($promoteId)
{
$promote = $this->getPromoteById($promoteId, ['top']);
return $this->getMarketAdminIdByPromote($promote);
}
public function getMarketAdminIdByPromote($promote)
{
$marketAdminId = 0;
if ($promote) {
$topPromote = $promote['top'] ?? null;
if (is_null($topPromote)) {
$topPromote = $this->getTopPromote($promote);
}
$marketAdminId = $topPromote['admin_id'];
}
return $marketAdminId;
}
public function getSettleGameIds($promote)
{
$topPromote = $promote['top'] ?? null;
if (is_null($topPromote)) {
$topPromote = $this->getTopPromote($promote);
}
return $topPromote['game_ids'] == '' ? [] : explode(',', $topPromote['game_ids']);
}
public function isGameIdSettle($promote, $gameId)
{
$gameIds = $this->getSettleGameIds($promote);
if (in_array($gameId, $gameIds)) {
return true;
}
return false;
}
} }

@ -13,10 +13,15 @@ use Base\Service\PromoteService;
* 支付回调控制器 * 支付回调控制器
* @author 小纯洁 * @author 小纯洁
*/ */
class BaseController extends Controller { class BaseController extends Controller
protected function _initialize(){ {
private $promoteService;
protected function _initialize()
{
C(api('Config/lists')); C(api('Config/lists'));
C(sdk::get_tool()); C(sdk::get_tool());
$this->promoteService = new PromoteService();
} }
/** /**
@ -705,21 +710,35 @@ class BaseController extends Controller {
return $result; return $result;
} }
public function getMarketAdminId($promoteId) public function getPromoteById($promoteId)
{ {
$promote = M('promote', 'tab_')->field(['id', 'chain', 'level', 'admin_id'])->where(['id' => $promoteId])->find(); return $this->promoteService->getPromoteById($promoteId, ['top']);
$marketAdminId = 0; }
if ($promote) {
$topPromote = (new PromoteService)->getTopPromote($promote); public function getMarketAdminId($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()){ private function spend_param($param=array()){
$promote = $this->getPromoteById($vo->getPromoteId());
$user_entity = get_user_entity($param['user_id']); $user_entity = get_user_entity($param['user_id']);
$data_spned['user_id'] = $param["user_id"]; $data_spned['user_id'] = $param["user_id"];
$data_spned['user_account'] = $user_entity["account"]; $data_spned['user_account'] = $user_entity["account"];
@ -747,9 +766,10 @@ class BaseController extends Controller {
$data_spned['pay_game_status'] = 0; $data_spned['pay_game_status'] = 0;
$data_spned['extend'] = $param['extend']; $data_spned['extend'] = $param['extend'];
$data_spned['pay_way'] = $param["pay_way"]; $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, $vo->getGameId());
if($data_spned['pay_way'] != 7){ 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['pay_amount'] = $param["price"] * $discount['discount']/10;//实付金额
$data_spned['discount_type'] = $discount['discount_type']; $data_spned['discount_type'] = $discount['discount_type'];
}else{//苹果支付不计入折扣 }else{//苹果支付不计入折扣

@ -5,7 +5,10 @@ use Org\XiguSDK\Xigu;
use Qiniu\json_decode; use Qiniu\json_decode;
use Base\Service\PromoteService; use Base\Service\PromoteService;
class BaseController extends RestController{ class BaseController extends RestController
{
private $promoteService;
// 不需要验证游戏签名的接口 A.B A==> 控制器 B==》方法 // 不需要验证游戏签名的接口 A.B A==> 控制器 B==》方法
protected $noNeedGame = [ protected $noNeedGame = [
'Apple.apple_alipay_pay','Apple.apple_weixin_pay','User.get_alipay_zmxy_return', 'Apple.apple_alipay_pay','Apple.apple_weixin_pay','User.get_alipay_zmxy_return',
@ -32,10 +35,13 @@ class BaseController extends RestController{
protected $userToken; protected $userToken;
// 验证token得到的user H5页面使用 // 验证token得到的user H5页面使用
protected function _initialize(){ protected function _initialize()
{
C(api('Config/lists')); C(api('Config/lists'));
C(self::get_tool()); C(self::get_tool());
$this->promoteService = new PromoteService();
$c = CONTROLLER_NAME; $c = CONTROLLER_NAME;
$a = ACTION_NAME; $a = ACTION_NAME;
$data = json_decode ( base64_decode ( file_get_contents ( "php://input" ) ), true ); $data = json_decode ( base64_decode ( file_get_contents ( "php://input" ) ), true );
@ -498,21 +504,35 @@ class BaseController extends RestController{
return round((float)$check_money,2); return round((float)$check_money,2);
} }
public function getMarketAdminId($promoteId) public function getPromoteById($promoteId)
{
return $this->promoteService->getPromoteById($promoteId, ['top']);
}
public function getMarketAdminId($promote)
{
return $this->promoteService->getMarketAdminIdByPromote($promote);
}
public function getIsCheckValue($promote, $gameId)
{ {
$promote = M('promote', 'tab_')->field(['id', 'chain', 'level', 'admin_id'])->where(['id' => $promoteId])->find(); if (is_null($promote)) {
$marketAdminId = 0; return 1;
if ($promote) { }
$topPromote = (new PromoteService)->getTopPromote($promote); if ($this->promoteService->isGameIdSettle($promote, $gameId)) {
$marketAdminId = $topPromote['admin_id']; return 1;
} else {
return 2;
} }
return $marketAdminId;
} }
/** /**
*消费记录表 参数 *消费记录表 参数
*/ */
private function spend_param($param=array()){ private function spend_param($param=array())
{
$promote = $this->getPromoteById($user_entity["promote_id"]);
$user_entity = get_user_entity($param['user_id']); $user_entity = get_user_entity($param['user_id']);
$data_spned['user_id'] = $param["user_id"]; $data_spned['user_id'] = $param["user_id"];
$data_spned['user_account'] = $user_entity["account"]; $data_spned['user_account'] = $user_entity["account"];
@ -536,7 +556,8 @@ class BaseController extends RestController{
$data_spned['spend_time'] = NOW_TIME; $data_spned['spend_time'] = NOW_TIME;
// $data_spned['pay_time'] = NOW_TIME; // $data_spned['pay_time'] = NOW_TIME;
$data_spned['pay_status'] = $param["pay_status"]; $data_spned['pay_status'] = $param["pay_status"];
$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 ($param["pay_status"] == 1) if ($param["pay_status"] == 1)
$data_spned['payed_time'] = time(); $data_spned['payed_time'] = time();
else else
@ -575,6 +596,9 @@ class BaseController extends RestController{
*平台币充值记录表 参数 *平台币充值记录表 参数
*/ */
private function deposit_param($param=array()){ private function deposit_param($param=array()){
$promote = $this->getPromoteById($user_entity["promote_id"]);
$user_entity = get_user_entity($param['user_id']); $user_entity = get_user_entity($param['user_id']);
$data_deposit['order_number'] = $param["order_number"]; $data_deposit['order_number'] = $param["order_number"];
$data_deposit['pay_order_number'] = $param["pay_order_number"]; $data_deposit['pay_order_number'] = $param["pay_order_number"];
@ -591,7 +615,7 @@ class BaseController extends RestController{
$data_deposit['pay_way'] = $param["pay_way"]; $data_deposit['pay_way'] = $param["pay_way"];
$data_deposit['pay_ip'] = $param["spend_ip"]; $data_deposit['pay_ip'] = $param["spend_ip"];
$data_deposit['sdk_version'] = $param["sdk_version"]; $data_deposit['sdk_version'] = $param["sdk_version"];
$data_deposit['market_admin_id'] = $this->getMarketAdminId($user_entity["promote_id"]); $data_deposit['market_admin_id'] = $this->getMarketAdminId($promote);
if (isset($param["pay_url"])) { if (isset($param["pay_url"])) {
$data_deposit['pay_url'] = $param["pay_url"]; $data_deposit['pay_url'] = $param["pay_url"];
} }

@ -31,6 +31,12 @@ class Pay
*/ */
private $apitype; private $apitype;
/**
* 推广员服务
* @var PromoteService
*/
private $promoteService;
/** /**
* 构造方法,用于构造上传实例 * 构造方法,用于构造上传实例
* @param string $driver 要使用的支付驱动 * @param string $driver 要使用的支付驱动
@ -49,6 +55,7 @@ class Pay
/* 设置支付驱动 */ /* 设置支付驱动 */
$class = strpos($driver, '\\') ? $driver : 'Think\\Pay\\Driver\\' . ucfirst(strtolower($driver)); $class = strpos($driver, '\\') ? $driver : 'Think\\Pay\\Driver\\' . ucfirst(strtolower($driver));
$this->setDriver($class, $config); $this->setDriver($class, $config);
$this->promoteService = new PromoteService();
} }
public function isKBCPartner($promoteId) public function isKBCPartner($promoteId)
@ -324,15 +331,26 @@ class Pay
return $result; return $result;
} }
public function getMarketAdminId($promoteId) public function getPromoteById($promoteId)
{ {
$promote = M('promote', 'tab_')->field(['id', 'chain', 'level', 'admin_id'])->where(['id' => $promoteId])->find(); return $this->promoteService->getPromoteById($promoteId, ['top']);
$marketAdminId = 0; }
if ($promote) {
$topPromote = (new PromoteService)->getTopPromote($promote); public function getMarketAdminId($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;
} }
/** /**
@ -340,6 +358,8 @@ class Pay
*/ */
private function add_spend(Pay\PayVo $vo, $param=array(), $payConf = array()) private function add_spend(Pay\PayVo $vo, $param=array(), $payConf = array())
{ {
$promote = $this->getPromoteById($vo->getPromoteId());
$spend = M("spend", "tab_"); $spend = M("spend", "tab_");
$spend_data['user_id'] = $vo->getUserId(); $spend_data['user_id'] = $vo->getUserId();
$spend_data['user_account'] = $vo->getAccount(); $spend_data['user_account'] = $vo->getAccount();
@ -371,7 +391,8 @@ class Pay
$spend_data['extend'] = $vo->getExtend(); $spend_data['extend'] = $vo->getExtend();
$spend_data['spend_ip'] = get_client_ip(); $spend_data['spend_ip'] = get_client_ip();
$spend_data['sdk_version'] = $vo->getSdkVersion(); $spend_data['sdk_version'] = $vo->getSdkVersion();
$spend_data['market_admin_id'] = $this->getMarketAdminId($vo->getPromoteId()); $spend_data['market_admin_id'] = $this->getMarketAdminId($promote);
$spend_data['is_check'] = $this->getIsCheckValue($promote, $vo->getGameId());
/* if ($isKBCPartner) { /* if ($isKBCPartner) {
$spend_data['partner_type'] = 1; $spend_data['partner_type'] = 1;
} */ } */
@ -399,6 +420,9 @@ class Pay
$uc_user = $uc->get_user_from_uid($vo->getUserId()); $uc_user = $uc->get_user_from_uid($vo->getUserId());
$uc_id = $uc->uc_deposit($vo->getUserId(), $vo->getAccount(), $vo->getUserNickName(), $vo->getGameId(), $vo->getGameAppid(), $vo->getGameName(), 0, '', $vo->getPromoteId(), $vo->getPromoteName(), "", $vo->getOrderNo(), $vo->getFee(), time(), $vo->getExtend(), $vo->getPayWay(), get_client_ip(), '', 5, $uc_user['platform'], '', ''); $uc_id = $uc->uc_deposit($vo->getUserId(), $vo->getAccount(), $vo->getUserNickName(), $vo->getGameId(), $vo->getGameAppid(), $vo->getGameName(), 0, '', $vo->getPromoteId(), $vo->getPromoteName(), "", $vo->getOrderNo(), $vo->getFee(), time(), $vo->getExtend(), $vo->getPayWay(), get_client_ip(), '', 5, $uc_user['platform'], '', '');
} else { } else {
$promote = $this->getPromoteById($vo->getPromoteId());
$deposit = M("deposit", "tab_"); $deposit = M("deposit", "tab_");
// $ordercheck = $deposit->where(array('pay_order_number'=>$data["order_no"]))->find(); // $ordercheck = $deposit->where(array('pay_order_number'=>$data["order_no"]))->find();
// if($ordercheck)$this->error("订单已经存在,请刷新充值页面重新下单!"); // if($ordercheck)$this->error("订单已经存在,请刷新充值页面重新下单!");
@ -418,7 +442,7 @@ class Pay
$deposit_data['pay_source'] = 2; $deposit_data['pay_source'] = 2;
$deposit_data['create_time'] = NOW_TIME; $deposit_data['create_time'] = NOW_TIME;
$deposit_data['sdk_version'] = $vo->getSdkVersion(); $deposit_data['sdk_version'] = $vo->getSdkVersion();
$deposit_data['market_admin_id'] = $this->getMarketAdminId($vo->getPromoteId()); $deposit_data['market_admin_id'] = $this->getMarketAdminId($promote);
/* if ($isKBCPartner) { /* if ($isKBCPartner) {
$deposit_data['partner_type'] = 1; $deposit_data['partner_type'] = 1;
} */ } */

Loading…
Cancel
Save