游戏返利

master
ELF 3 years ago
parent 05dd251fec
commit 0ea585bd96

@ -4,6 +4,7 @@
*/ */
namespace Admin\Controller; namespace Admin\Controller;
use Admin\Model\SpendModel; use Admin\Model\SpendModel;
use Base\Service\GameRebateService;
use Think\Think; use Think\Think;
use Base\Tool\Printer; use Base\Tool\Printer;
use Base\Tool\TaskClient; use Base\Tool\TaskClient;
@ -114,4 +115,18 @@ class GameApiController extends Think {
$result = $gameResource->apply($order, $role); $result = $gameResource->apply($order, $role);
var_dump($result); var_dump($result);
} }
public function rebateSend()
{
$service = new GameRebateService();
$service->sendAll('A');
$service->sendAll('B');
$service->sendAll('C');
}
public function rebateSendDaily()
{
$service = new GameRebateService();
$service->sendDaily(date('Y-m-d'));
}
} }

@ -0,0 +1,183 @@
<?php
namespace Admin\Controller;
use Base\Repository\GameRepository;
use Base\Service\GameRebateService;
use User\Api\UserApi as UserApi;
use Base\Service\PresidentDepositService;
/**
* 游戏返利
*/
class GameRebateController extends ThinkController
{
public function single()
{
$this->records('A');
}
public function accumulative()
{
$this->records('C');
}
public function daily()
{
$this->records('B');
}
public function records($awardType)
{
$page = I('p', 1);
$row = I('row', 10);
$baseGameId = I('base_game_id', 0);
$serverId = I('server_id', '');
$roleName = I('role_name', '');
$userAccount = I('user_account', '');
$reviewStatus = I('review_status', -1);
$sendStatus = I('send_status', -1);
$reviewerId = I('reviewer_id', 0);
$where = [
'_string' => '1=1',
];
$where['type'] = $awardType;
if ($baseGameId != 0) {
$where['base_game_id'] = $baseGameId;
}
if ($userAccount != '') {
$where['user_account'] = ['like', $userAccount . '%'];
}
if ($roleName != '') {
$where['role_name'] = ['like', $roleName . '%'];
}
if ($serverId != '') {
$where['server_id'] = $serverId;
}
if ($reviewStatus != -1) {
$where['review_status'] = $reviewStatus;
}
if ($sendStatus != -1) {
$where['send_status'] = $sendStatus;
}
if ($reviewerId != 0) {
$where['reviewer_id'] = $reviewerId;
}
if (I('send_time_start', '') != '') {
$where['_string'] .= ' and send_time>=' . strtotime(I('send_time_start') . ' 00:00:00');
}
if (I('send_time_end', '') != '') {
$where['_string'] .= ' and send_time<=' . strtotime(I('send_time_end') . ' 23:59:59');
}
$query = M('rebate_orders', 'tab_')->where($where);
$records = [];
if (I('export', 0) == 1 || $row == 'all') {
$records = $query->select();
} else {
$countQuery = clone $query;
$records = $query->page($page, $row)->select();
$count = $countQuery->count();
}
$sendStatusList = [
0 => '待发放',
1 => '发放成功',
2 => '发放异常',
];
$reviewStatusList = [
0 => '待审核',
1 => '审核通过',
2 => '审核拒绝',
];
$pageTitles = [
'A' => '单笔充值福利',
'B' => '月卡福利发放',
'C' => '累充福利发放',
];
$pageTitle = $pageTitles[$awardType];
if (count($records) > 0) {
foreach ($records as $key => $record) {
$records[$key]['review_status_text'] = $reviewStatusList[$record['review_status']];
$records[$key]['review_time'] = $record['review_time'] > 0 ? date('Y-m-d H:i:s', $record['review_time']) : '--';
$records[$key]['send_status_text'] = $sendStatusList[$record['send_status']];
$records[$key]['send_time'] = $record['send_time'] > 0 ? date('Y-m-d H:i:s', $record['send_time']) : '--';
$records[$key]['award_date_range'] = is_null($record['award_started_at']) || is_null($record['award_ended_at'])
? '' : $record['award_started_at'] . ' ~ ' . $record['award_ended_at'];
$records[$key]['gift_content'] = implode('<br/>', explode('|', $record['gift_content']));
}
if (I('export', 0) == 1) {
$field = [
'base_game_name' => '游戏名称',
'server_name' => '区服',
'user_account' => '账号',
'role_id' => '角色ID',
'role_name' => '角色名称',
'pay_amount' => '充值金额',
'gift_content' => '奖励内容',
'review_status_text' => '审核状态',
'review_time' => '审核时间',
'send_status_text' => '发放状态',
'send_time' => '发放时间',
'reviewer_username' => '审核人',
];
addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出' . $pageTitle . '记录','url'=>U('GameRebate/records'),'menu'=>'推广员-发放福利管理-' . '导出' . $pageTitle . '记录']);
data2csv($records, $pageTitle, $field);
exit;
}
}
$page = set_pagination($count, $row == 'all' ? 99999999 : $row);
if($page) {
$this->assign('_page', $page);
}
$admins = M('ucenter_member', 'sys_')->field(['id', 'username'])->select();
$baseGames = M('base_game', 'tab_')->select();
$gameRepository = new GameRepository();
$this->assign('pageTitle', $pageTitle);
$this->assign('awardType', $awardType);
$this->assign('servers', $gameRepository->getServersByBaseGameId($baseGameId));
$this->assign('admins', $admins);
$this->assign('baseGames', $baseGames);
$this->assign('sendStatusList', $sendStatusList);
$this->assign('reviewStatusList', $reviewStatusList);
$this->assign('records', $records);
$this->display('records');
}
public function review()
{
$ids = I('ids', []);
$status = I('status', 0);
try {
$service = new GameRebateService();
$service->review($ids, $status);
$this->ajaxReturn([
'status' => 1,
'message' => '操作成功'
]);
} catch (\Exception $e) {
$this->ajaxReturn([
'status' => 0,
'message' => $e->getMessage()
]);
}
}
public function getServers()
{
$gameId = I('game_id', 0);
$gameRepository = new GameRepository();
$servers = $gameRepository->getServersByBaseGameId($gameId);
return $this->ajaxReturn(['status' => 1, 'message' => '获取成功', 'data' => ['servers' => $servers]]);
}
}

@ -0,0 +1,404 @@
<extend name="Public/base"/>
<block name="css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" href="__CSS__/promote.css" type="text/css"/>
<script src="__STATIC__/laydate/laydate.js"></script>
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
.textarea-style {
width: 200px;
height: 80px;
border-radius: 5px;
padding: 5px;
}
.mustmark {
color: #FF0000;
font-style: normal;
margin: 0 3px;
}
.butnbox {
padding: 10px 0 10px;
}
.butnbox .butnlist .butn {
display: inline-block;
width: 120px;
height: 28px;
line-height: 28px;
text-align: center;
color: #FFF;
background: #3C95C8;
border-radius: 3px;
cursor: pointer;
}
.data_list table td .status-0 {
color: #e6a23c;
}
.data_list table td .status-1 {
color: #67c23a;
}
.data_list table td .status-2 {
color: #f56c6c;
}
</style>
</block>
<block name="body">
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__JS__/jquery.form.js"></script>
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script src="__STATIC__/md5.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="__STATIC__/webuploader/webuploader.js"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js"></script>
<div class="cf main-place top_nav_list navtab_list">
<?php if($awardType == 'A'):?>
<h3 class="page_title">单笔充值福利</h3>
<?php elseif($awardType == 'B'):?>
<h3 class="page_title">月卡福利发放</h3>
<?php elseif($awardType == 'C'):?>
<h3 class="page_title">累充福利发放</h3>
<?php endif;?>
</div>
<div class="cf top_nav_list" style="height: 38px;">
<!-- 高级搜索 -->
<div class="jssearch cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="game_id" name="base_game_id" class="select_gallery" style="width:120px;">
<option value="0">请选择游戏</option>
<?php foreach($baseGames as $baseGame):?>
<option value="<?=$baseGame['id']?>"><?=$baseGame['name']?></option>
<?php endforeach;?>
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="server_id" name="server_id" class="select_gallery" style="width:120px;">
<option value="">请选择区服</option>
<?php foreach($servers as $server):?>
<option server-id="<?=$server['server_id']?>" value="<?=$server['server_id']?>">
<?=$server['server_name']?>
</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list">
<input type="text" name="user_account" class="" placeholder="玩家账号" value="{:I('user_account')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" name="role_name" class="" placeholder="角色名" value="{:I('role_name')}"/>&nbsp;
</div>
<div class="input-list input-list-promote search_label_rehab">
<input type="text" readonly name="send_time_start" class="time-select" value="{:I('send_time_start')}"
placeholder="发放开始时间"/>
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" readonly name="send_time_end" class="time-select" value="{:I('send_time_end')}"
placeholder="发放结束时间"/>
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select name="review_status" class="select_gallery" style="width:120px;">
<option value="-1">请选择审核状态</option>
<?php foreach($reviewStatusList as $key => $name):?>
<option value="<?=$key?>">
<?=$name?>
</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select name="send_status" class="select_gallery" style="width:120px;">
<option value="-1">请选择发放状态</option>
<?php foreach($sendStatusList as $key => $name):?>
<option value="<?=$key?>">
<?=$name?>
</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select name="reviewer_id" class="select_gallery" style="width:120px;">
<option value="0">请选择审核人</option>
<?php foreach($admins as $admin):?>
<option value="<?=$admin['id']?>">
<?=$admin['username']?>
</option>
<?php endforeach;?>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('GameRebate/single')}">搜索</a>
</div>
<!-- <div class="input-list">
<a class="sch-btn" href="{:U('Export/expUser',array_merge(array('id'=>12,),I('get.')))}">导出</a>
</div> -->
</div>
</div>
<div class="butnbox">
<div class="butnlist jscheckbutn" style="margin-left: 2px">
<a class="butn" id="review-agree-btn">审批通过</a>
<a class="butn" id="review-refuse-btn" style="background-color: red;">审核拒绝</a>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th>
<input class="check-all" type="checkbox">
</th>
<th>游戏名称</th>
<th>区服</th>
<th>账号</th>
<th>角色ID</th>
<th>角色名</th>
<?php if($awardType == 'A'):?>
<th>充值金额</th>
<?php elseif($awardType == 'B'):?>
<th>当日累计充值金额</th>
<th>可领取福利日期</th>
<?php elseif($awardType == 'C'):?>
<th>达到档位金额</th>
<?php endif;?>
<th>奖励内容</th>
<th>发放状态</th>
<th>发放时间</th>
<th>审核状态</th>
<th>审核时间</th>
<th>审核人</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="records">
<td colspan="99" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="records" id="data">
<tr data-id="<?=$data['id']?>">
<td>
<?php if($data['review_status'] == 0):?>
<input class="ids" type="checkbox" value="{$data['id']}" name="ids[]">
<?php else:?>
<input class="ids disabled" disabled="disabled" type="checkbox" value="{$data['id']}" name="ids[]">
<?php endif;?>
</td>
<td>{$data.base_game_name}</td>
<td>{$data.server_name}</td>
<td>{$data.user_account}</td>
<td>{$data.role_id}</td>
<td>{$data.role_name}</td>
<?php if($awardType == 'A'):?>
<td>{$data.pay_amount}</td>
<?php elseif($awardType == 'B'):?>
<td>{$data.pay_amount}</td>
<td>{$data.award_date_range}</td>
<?php elseif($awardType == 'C'):?>
<td>{$data.amount}</td>
<?php endif;?>
<td>{$data.gift_content}</td>
<td>
<span class="status-{$data.send_status}">{$data.send_status_text}</span>
</td>
<td>{$data.send_time}</td>
<td>
<span class="status-{$data.review_status}">{$data.review_status_text}</span>
</td>
<td>{$data.review_time}</td>
<td>{$data.reviewer_username}</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<a class="sch-btn export-btn"
href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a>
</if>
{$_page|default=''}
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="Query/withdraw">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<script src="__STATIC__/jquery.cookie.js" charset="utf-8"></script>
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
$(".select_gallery").select2();
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('GameRebate/single')}");
$(function(){
// 添加全部选项
if ('all' == "{:I('row', 0)}") {
$("#pagechange").prepend("<option value='all' selected>全部</option>");
} else {
$("#pagechange").prepend("<option value='all'>全部</option>");
}
$('.time-select').each(function(){
laydate.render({
elem: this,
type: 'date'
});
});
//搜索功能
$("#search").click(function(){
var sdate = Date.parse($("input[name='send_time_start']").val()) / 1000;
var edate = Date.parse($("input[name='send_time_end']").val()) / 1000;
if (sdate > edate) {
layer.msg('开始时间必须小于等于结束时间');
return false;
}
if ((edate - sdate) > 2592000) {
layer.msg('时间间隔不能超过31天请重新选择日期');
return false;
}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&"+$('.jssearch').find('select').serialize();
//query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$("#game_id").change(function () {
$.ajax({
url: "{:U('getServers')}",
type: "post",
data: { game_id: $("#game_id").val() },
dataType: 'json',
success: function (result ) {
if (result.status == 1) {
var servers = result.data.servers
var str = "<option value=''>请选择区服</option>"
for (var i in servers){
str += "<option value='"+servers[i].server_id+"'>"+servers[i].server_name+"</option>"
}
$("#server_id").empty()
$("#server_id").append(str)
$("#server_id").select2()
}
}
})
})
$('#review-agree-btn').on({
click:function () {
var ids = getIds()
if (ids.length == 0) {
return layer.msg('请选择要操作的记录')
}
layer.confirm('确定要审核通过这些记录吗?', {
title: '审核通过',
btn: ['确定']
}, function(){
verify(ids, 1)
})
}
})
$('#review-refuse-btn').on({
click:function () {
var ids = getIds()
if (ids.length == 0) {
return layer.msg('请选择要操作的记录')
}
layer.confirm('确定要审核拒绝这些记录吗?', {
title: '审核拒绝',
btn: ['确定']
}, function(){
verify(ids, 2)
})
}
})
function verify(ids, status) {
$.ajax({
url: "{:U('review')}",
type: "post",
data: { ids: ids, status: status },
dataType: 'json',
success: function (result ) {
if (result.status == 1) {
layer.msg(result.message, function(){
window.location.href = window.location.href
})
} else {
layer.msg(result.message)
}
}
})
}
function getIds() {
var ids = [];
$('.ids:checked').each(function() {
ids.push($(this).val());
})
return ids;
}
});
$(".export-btn").on("click",function(e){
e.preventDefault();
window.location.href=$(this).attr("href")
})
</script>
</block>

@ -55,6 +55,19 @@ class GameRepository
->select(); ->select();
} }
public function getServersByBaseGameId($baseGameId, $fields = ['id', 'server_name', 'server_id'])
{
$baseGame = M('base_game', 'tab_')->where(['id' => $baseGameId])->find();
$map = [];
$map['game_id'] = ['in', $this->getGameIdsByBaseGame($baseGame)];
return M('server', 'tab_')
->field($fields)
->where($map)
->group('server_id')
->order('server_id asc')
->select();
}
public function getGameIdsByBaseGame($baseGame, $deviceType = 0) public function getGameIdsByBaseGame($baseGame, $deviceType = 0)
{ {
$gameIds = []; $gameIds = [];

@ -0,0 +1,137 @@
<?php
namespace Base\Service;
use GuzzleHttp\Client;
class GameRebateService
{
const SIGN_KEY = 'Eza65532qaOIAAWasdq962aqweasd';
private function getClient()
{
return new Client([
'base_uri' => 'http://rebate.99you.cn/xyy_apply.php/23400/',
'timeout' => 10.0,
]);
}
public function sendByOrder($order)
{
$gift = M('rebate_gifts', 'tab_')->where(['type' => $order['type'], 'gift_key' => $order['gift_key']])->find();
$hasError = false;
$sendResult = '';
if ($gift['game_currency'] > 0) {
$result = $this->sendCurrency($order['server_id'], $order['role_id'], $gift['game_currency']);
if ($result['code'] != 1) {
$hasError = true;
}
$sendResult .= ($result['msg'] ?? '');
$sendResult .= ';';
}
if ($gift['gift_id'] > 0) {
$result = $this->sendGift($order['server_id'], $order['role_id'], $gift['gift_id']);
if ($result['code'] != 1) {
$hasError = true;
}
$sendResult .= ($result['msg'] ?? '');
}
M('rebate_orders', 'tab_')->where(['id' => $order['id']])->save([
'send_status' => $hasError ? 2 : 1,
'send_time' => time(),
'send_result' => $sendResult,
]);
}
public function sendCurrency($serverId, $roleId, $currency)
{
$sign = md5($currency.$serverId.$roleId.self::SIGN_KEY);
$params = [
'act' => 'sendgold',
'serverid' => $serverId,
'role_id' => $roleId,
'money' => $currency,
'sign' => $sign
];
return $this->get('', $params);
}
public function sendGift($serverId, $roleId, $giftId)
{
$sign = md5($giftId.$serverId.$roleId.self::SIGN_KEY);
$params = [
'act' => 'send_email',
'serverid' => $serverId,
'role_id' => $roleId,
'prop_id' => $giftId,
'sign' => $sign
];
return $this->get('', $params);
}
protected function get($uri, array $params = [])
{
try {
$response = $this->getClient()->get($uri, [
'verify' => false,
'query' => $params,
]);
$result = (string)$response->getBody();
return json_decode($result, true);
} catch (\Exception $e) {
return [
'code' => 3,
'msg' => '网络异常:' . $e->getMessage(),
];
}
}
public function review(array $ids, $status)
{
if (!in_array($status, [1, 2])) {
throw new \Exception('状态异常');
}
if (count($ids) == 0) {
throw new \Exception('请选择要操作的记录');
}
$orders = M('rebate_orders', 'tab_')->field(['id'])->where(['review_status' => 0, 'id' => ['in', $ids]])->select();
if (count($orders) != count($ids)) {
throw new \Exception('含有不存在的记录或者已审核的记录');
}
$adminInfo = $_SESSION['onethink_admin']['user_auth'];
M('rebate_orders', 'tab_')->where(['review_status' => 0, 'id' => ['in', $ids]])->save([
'review_status' => $status,
'review_time' => time(),
'reviewer_id' => $adminInfo['uid'],
'reviewer_username' => $adminInfo['username'],
]);
}
public function sendAll($type)
{
$orders = M('rebate_orders', 'tab_')->where(['type' => $type, 'review_status' => 1, 'send_status' => 0])->select();
foreach ($orders as $order) {
if ($type == 'B') {
if (time() < strtotime($order['award_started_at'] . ' 00:00:00') || time() > strtotime($order['award_ended_at'] . ' 23:59:59')) {
continue;
}
}
$this->sendByOrder($order);
}
}
public function sendDaily($date)
{
$map = [
'type' => 'B',
'review_status' => 1,
'send_status' => 1,
'award_started_at' => ['elt', $date],
'award_ended_at' => ['egt', $date]
];
$orders = M('rebate_orders', 'tab_')->where($map)->select();
foreach ($orders as $order) {
$this->sendByOrder($order);
}
}
}

@ -0,0 +1,134 @@
<?php
namespace Base\Tool\GameResource;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
/**
* 逍遥游之仙魔降世-测试资源接口
*/
class XyyClient
{
const SIGN_NAME = 'sign';
const SUCCESS = '0000';
const KEY = '6c9VLnZFlhEppATKKWeH5vV900K6Nhy5';
protected $client;
private $apis = [
'provide' => ['uri' => '/', 'method' => 'get'],
];
public function __construct()
{
$this->client = new Client([
'base_uri' => 'http://rebate.99you.cn/wdzx_apply.php/23399',
'timeout' => 10.0,
]);
}
public function api($api, array $params = [])
{
$api = $this->apis[$api] ?? null;
if (is_null($api)) {
throw new \Exception('接口不存在');
}
$params[self::SIGN_NAME] = $this->sign($params);
try {
return $this->request($api, $params);
} catch (\Exception $e) {
$env = C('APP_ENV', null, 'prod');
return ['code' => 3, 'msg' => '接口请求错误。' . ($env == 'prod' ? '' : $e->getMessage()) , 'data' => []];
}
}
public function request($api, $params)
{
if ($api['method'] == 'get') {
return $this->get($api['uri'], $params);
} else {
return $this->post($api['uri'], $params);
}
}
protected function post($uri, array $params = [])
{
$response = $this->client->post($uri, [
'verify' => false,
'form_params' => $params,
]);
$result = (string)$response->getBody();
return json_decode($result, true);
}
protected function get($uri, array $params = [])
{
$response = $this->client->get($uri, [
'verify' => false,
'query' => $params,
]);
$result = (string)$response->getBody();
return json_decode($result, true);
}
protected function sign($params)
{
return md5($params['orderid'] . $params['serverid'] . $params['role_id'] . self::KEY);
}
public function apply($order, $role)
{
$data = [
'role_id' => $role['role_id'],
'serverid' => $role['server_id'],
'amount' => $order['ref_amount'],
// 'money' => intval($order['ref_amount']) * 10,
'orderid' => $order['order_no'],
];
$result = $this->api('provide', $data);
if ($result['code'] == 1) {
return [
'status' => true,
'message' => $result['msg'],
'result' => $result
];
} else {
return [
'status' => false,
'message' => $result['msg'],
'result' => $result
];
}
}
public function getResourceTypes($deviceType)
{
if ($deviceType == 'andriod') {
return [['id' => 1, 'name' => '通用', 'device_type' => 'andriod']];
} elseif ($deviceType == 'ios') {
return [['id' => 2, 'name' => '通用', 'device_type' => 'ios']];
}
}
public function getResources($typeId, $deviceType)
{
return [
1 => ['ref_id' => 1, 'name' => '60元宝', 'amount' => 6],
2 => ['ref_id' => 2, 'name' => '300元宝', 'amount' => 30],
3 => ['ref_id' => 3, 'name' => '980元宝', 'amount' => 98],
4 => ['ref_id' => 4, 'name' => '1280元宝', 'amount' => 128],
5 => ['ref_id' => 5, 'name' => '1980元宝', 'amount' => 198],
6 => ['ref_id' => 6, 'name' => '3280元宝', 'amount' => 328],
7 => ['ref_id' => 7, 'name' => '6480元宝', 'amount' => 648],
8 => ['ref_id' => 8, 'name' => '10000元宝', 'amount' => 1000],
9 => ['ref_id' => 9, 'name' => '20000元宝', 'amount' => 2000],
10 => ['ref_id' => 10, 'name' => '30000元宝', 'amount' => 3000],
11 => ['ref_id' => 11, 'name' => '50000元宝', 'amount' => 5000],
12 => ['ref_id' => 12, 'name' => '100000元宝', 'amount' => 10000],
13 => ['ref_id' => 13, 'name' => '200000元宝', 'amount' => 20000],
];
}
}
Loading…
Cancel
Save