解决冲突

master
ELF 5 years ago
commit 501b8099d4

@ -17,6 +17,8 @@ use BaiduBce\Services\Bos\CannedAcl;
use BaiduBce\Services\Bos\BosOptions;
use BaiduBce\Auth\SignOptions;
use BaiduBce\Log\LogFactory;
use Admin\Model\AuthRuleModel;
use Admin\Model\AuthGroupModel;
use Base\Service\GameService;
/**
@ -301,9 +303,46 @@ class GameController extends ThinkController
}
}
public function delSociatyGames() {
$res = ['code' => 10000];
$id = $_REQUEST['id'];
$delRest = M('sociaty_games','tab_')->where(['id'=>$id])->delete();
if($delRest) {
$res['code'] = 10001;
$this->ajaxReturn($res);
}
}
public function edit($id = null)
{
if (IS_POST) {
if(!empty($_REQUEST['apply_auth'])) {
$gameData['apply_auth'] = $_REQUEST['apply_auth'];
$game_appid = $_REQUEST['game_appid'];
$gameId = M('game','tab_')->where(['game_appid' => $game_appid])->getField('id');
M('game','tab_')->where(['id'=>$gameId])->save($gameData);
if($_REQUEST['apply_auth'] == 1) {
M('sociaty_games','tab_')->where(['game_id'=>$gameId])->delete();
}
if(!empty($_REQUEST['promote_data'])) {
$promote_data = json_decode($_REQUEST['promote_data'],TRUE);
$game_appid = $_REQUEST['game_appid'];
$gameId = M('game','tab_')->where(['game_appid' => $game_appid])->getField('id');
$gameInfo = M('game','tab_')->field('game_name,game_status')->where(['id'=>$gameId])->select();
$dataList = array();
foreach($promote_data as $key => $promoteInfo) {
$isSociaty = M('sociaty_games','tab_')->where(['promote_id'=>intval($promoteInfo['value']),'game_id'=>intval($gameId)])->getField('id');
if(!empty($isSociaty)) {
// $this->error("选择会长中有已存在会长");
}else {
$dataList[] = ['promote_id' => intval($promoteInfo['value']),'game_id' => intval($gameId),'status'=>$gameInfo[0]['game_status'],'create_time'=>time()];
}
}
M('sociaty_games','tab_')->addAll($dataList);
}
// $_REQUEST['apply_auth'] == 1 ? $this->success('开放全部会长权限成功') : $this->success('设置会长权限成功');
}
if ($_POST['game_score'] < 0 || $_POST['game_score'] > 5) {
$this->error('游戏评分只能为0-5之间的数字');
exit;
@ -419,6 +458,29 @@ class GameController extends ThinkController
$data['icon_data'] = explode(',', $data['icon']);
}
$apply_auth = M('game','tab_')->where(['id'=>$id])->getField('apply_auth');
$this->assign('apply_auth',$apply_auth);
$sociatyGames = M('sociaty_games','tab_')->where(['game_id'=>$id])->select();
$sociatyGamesData = [];
if(!empty($sociatyGames)) {
foreach($sociatyGames as $key => $value) {
$sociatyGamesData[$key]['id'] = $value['id'];
if($value['promote_id'] == -1) {
$sociatyGamesData[$key]['promoteAccount'] = "官方渠道";
}else {
$promoteAccount = M('promote','tab_')->where(['id'=>$value['promote_id']])->getField('account');
$sociatyGamesData[$key]['promoteAccount'] = $promoteAccount;
}
$sociatyGamesData[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']);
$applyStatus = M('apply','tab_')->field('id')->where(['game_id'=>$value['game_id'],'status'=>1])->select();
if(empty($applyStatus)) {
$sociatyGamesData[$key]['isPromote'] = "否";
}else {
$sociatyGamesData[$key]['isPromote'] = "是";
}
}
}
$this->assign('sociatygames',$sociatyGamesData);
$data['introduction'] = str_replace("~~", "\r\n", $data['introduction']);
$this->assign('data', $data);
@ -430,6 +492,11 @@ class GameController extends ThinkController
$this->m_title = '游戏列表';
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Game/lists', 'status' => 1])->find());
$this->assign('game_ratio',$game_ratio);
$auth_group = M('AuthGroup')->where( array('status'=>array('egt','0'),'module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) )
->getfield('id,id,title,rules');
$empower_type = M('AuthGroup')->field('data_empower_type')->where(array('id'=>1))->find();
$this->assign('data_empower_type', $empower_type['data_empower_type']);
$this->assign('auth_group', $auth_group);
$this->display();
}
}
@ -906,4 +973,92 @@ class GameController extends ThinkController
//M('cp_game_ratio', 'tab_')->where("id=".$_POST['data_id'])->data(array("is_del"=>"1","update_time"=>time()))->save();
echo(json_encode(array("result"=>"1","desc"=>"删除成功")));
}
public function uploadExcel1() {
Vendor("PHPExcel.PHPExcel");
$gid = $_REQUEST['game_id'];
if(@is_uploaded_file($_FILES['file']['tmp_name'])){
$upfile = $_FILES["file"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$savePath = $_SERVER['DOCUMENT_ROOT'].__ROOT__.'/Uploads/Excel/';
move_uploaded_file($tmp_name,$savePath.$name);
$file_name = $savePath.$name;
$error=$upfile["error"];//上传后系统返回的值
$extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );
if($extension == 'xlsx') {
$objReader = \PHPExcel_IOFactory::createReader('excel2007');
}elseif($extension == 'csv') {
$objReader = \PHPExcel_IOFactory::createReader('csv');
}else {
$objReader = \PHPExcel_IOFactory::createReader('Excel5');//创建读取实例
}
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');//加载文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$dataList = [];
$outPromote = []; //录入出错的会长
$outGame = []; //录入出错的游戏
$successAccount = [];
$keyPro = 0;
$keyGame = 0;
$keyData = 0;
for($i=2;$i<=$highestRow;$i++)
{
$promoteAccount = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$promoteInfo = M('promote','tab_')->field('id')->where(['account' => $promoteAccount ])->find();
if($promote_id == -1) {$promoteInfo['account'] = "官方渠道"; }
if(empty($promoteInfo)) {
$outPromote[$keyPro]['promote_account'] = $promoteAccount;
$keyPro += 1;
}else {
$promote_id = $promoteInfo['id'];
}
$gameInfo = M('game','tab_')->field('game_name,game_status')->where(['id'=>$gid])->select();
$time = time();
$isSociaty = M('sociaty_games','tab_')->where(['promote_id'=>$promote_id,'game_id'=>$gid])->getField('id');
if(empty($isSociaty) && !empty($gameInfo) && !empty($promoteInfo)) {
$dataList[$keyData] = ['promote_id'=>$promote_id,'game_id'=>$gid,'status'=>$gameInfo[0]['game_status'],'create_time'=>$time];
$successAccount[$keyData] = ['account'=>$promoteAccount];
$keyData += 1;
}
}
$backData['outPromote'] = $outPromote;
$backData['datalist'] = $successAccount;
M('sociaty_games','tab_')->addAll($dataList);
$gameData['apply_auth'] = 2;
M('game','tab_')->where(['id'=>$gid])->save($gameData);
$this->ajaxReturn(json_encode($backData,TRUE));
}
}
function getRootPromote() {
$promoteData = M('promote','tab_')->field('id as value,account as title')->where(array('level'=>1,'chain'=>'/'))->select();
$data_president = M('AuthGroup')->field('data_president')->where(array('id'=>1))->find();
$promoteData = array_merge([0=>['value'=>'-1','title'=>'官方渠道']],$promoteData);
$returnData = array('data_president'=>$data_president['data_president'],'list'=>$promoteData);
$this->ajaxReturn(json_encode($returnData));
}
//下载模板
public function downloadDemo() {
$game_id = $_REQUEST['game_id'];
$game_name = M('game','tab_')->where(['id'=>$game_id])->getField('game_name');
$data[] = [
'promoteid' => "官方渠道",
];
$field = array(
"promoteid"=>"会长账号",
);
data2csv($data,'【'.$game_name.'】'.'模板',$field);
}
}

@ -44,6 +44,7 @@
<li data-tab="tab3" ><a href="javascript:void(0);">参数配置</a></li>
<li data-tab="tab4" ><a href="javascript:void(0);">H5分享页面</a></li>
<li data-tab="tab5" ><a href="javascript:void(0);">用户等级设置</a></li>
<li data-tab="tab6" ><a href="javascript:void(0);">推广配置</a></li>
</ul>
<h3 class="page_title">编辑游戏【{$data.relation_game_name}】</h3>
<p class="description_text">说明:查看和编辑游戏的基础信息、下载设置、参数信息等。</p>
@ -924,6 +925,91 @@
</table>
</div>
<!--推广配置-->
<div id="tab6" class="tab-pane tab6 ">
<input type="button" id="addpromote" onclick="addPromote()" style="background: #3E96C9;color:white;border:none;outline: none;width:90px;height:30px;border-radius: 3px;" value="添加" />
<div class="data_list data_game_list" id="addpromoteindex" style="margin-top:20px;">
<div class="">
<table>
<thead>
<tr>
<th>会长账号</th>
<th>添加时间</th>
<th>是否已进行推广</th>
<th style="width:10%;min-width:150px;">操作</th>
</tr>
</thead>
<tbody>
<if condition="$apply_auth eq 2">
<empty name ="sociatygames">
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="sociatygames" id="data">
<tr>
<td>{$data['promoteAccount']}</td>
<td>{$data['create_time']}</td>
<td>{$data['isPromote']}</td>
<td class="" style="color:red"><a href="javascript:void()" onclick="del({$data['id']})">移除</a></td>
</tr>
</volist>
</empty>
<else/>
<td colspan="14" class="text-center">该游戏未设置会长权限,现面对所有会长开放!</td>
</if>
</tbody>
</table>
</div>
</div>
<table border="0" cellspacing="0" cellpadding="0" id="promoteset" style="display:none">
<tbody >
<tr style="display:block;width:600px;" >
<td class="l">推广限制</td>
<td class="r" >
<input type="radio" class="inp_radio js-device js-devices{$key}" value="0" id="all" name="apply_auth" checked> 全部会长可申请
<input type="radio" class="inp_radio js-device js-devices{$key}" value="0" id="part" name="apply_auth" style="margin-left:20px"> 部分会长可申请
</td>
</tr>
<tr style="display:none;width:600px;" id="addtype">
<td class="l" >添加方式</td>
<td class="r" >
<input type="radio" class="inp_radio js-device js-devices{$key}" value="" id="excel" name="" checked> EXCEL导入
<input type="radio" class="inp_radio js-device js-devices{$key}" value="" id="partchoose" name="" style="margin-left:20px"> 批量选择
</td>
</tr>
<tr style="display:none" id="moban">
<td class="l">EXCEL模板</td>
<td class="r" >
<a href="{:U('downloadDemo',['game_id'=>$game_id])}">下载模板</a>
</td>
</tr>
<tr style="display:none" id="daoru">
<td class="l">导入模板</td>
<td class="r" >
<input type="file" name="upfile" id="file_excel" style="width:200px"/>
<input type="button" onclick="suba({$game_id})" style="background: #3E96C9;color:white;border:none;outline: none;width:70px;height:30px;border-radius: 3px;" value="导入" />
</td>
</tr>
</tbody>
</table>
<div class="data_list data_game_list" id="data_list"></div>
<link rel="stylesheet" type="text/css" href="__STATIC__/layui-v2.5.5/css/layui.css">
<input type="hidden" name="group_id" id="group_id" value="{$_GET['group_id']}">
<input type="hidden" name="promote_data" id="promote_data" value="[]">
<div id="transfer_promote" class="demo-transfer" style="margin-left: 100px;margin-top: 35px;display:none"></div>
</div>
<div class="form-item cf">
<input type="hidden" name='id' value="{$data['id']}" />
<input type="hidden" name='type' value="{$_GET['type']}" />
@ -952,7 +1038,198 @@
</block>
<block name="script">
<script src="__STATIC__/layui-v2.5.5/layui.all.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script>
var dataTransfer = '';
$.ajax({
url: "{:U('getRootPromote')}",
type: "post",
data: {group_id: 1},
dataType: 'json',
success: function (data) {
console.log(data,'datadadaa')
// datas = data;
layui.use(['transfer', 'layer', 'util'], function(){
var $ = layui.$
,transfer = layui.transfer
,layer = layui.layer
,util = layui.util;
var data1 =data;
if (JSON.parse(data1).data_president) {
var data2 = JSON.parse(data1).data_president.split(",");
}
// var dataTransfers = transfer.getData('key123');
// $('#promote_data').val(JSON.stringify(dataTransfers));
//显示搜索框
transfer.render({
elem: '#transfer_promote'
,data: JSON.parse(data1).list
,title: ['全部成员', '选中成员']
,showSearch: true,
value: data2,
id: 'key123',
onchange: function(data, index){
dataTransfer = transfer.getData('key123'); //获取右侧数据
// layer.alert(JSON.stringify(dataTransfer));
$('#promote_data').val(JSON.stringify(dataTransfer));
}
})
var dataTransfers = transfer.getData('key123');
$('#promote_data').val(JSON.stringify(dataTransfers));
transfets = transfer;
//批量办法定事件
util.event('lay-demoTransferActive', {
getData: function(othis){
var getData = transfer.getData('key123'); //获取右侧数据
layer.alert(JSON.stringify(getData));
}
});
});
}
});
</script>
<script type="text/javascript">
$("#part").click(function() {
var addtype = document.getElementById("addtype");
addtype.style.display = "block"
$("#part").attr('checked',true)
$("#all").attr('checked',false)
var moban = document.getElementById("moban");
moban.style.display = "block"
var daoru = document.getElementById("daoru");
daoru.style.display = "block"
document.getElementById('all').value = 1
document.getElementById('part').value = 2
})
$("#all").click(function() {
var addtype = document.getElementById("addtype");
addtype.style.display = "none"
$("#part").attr('checked',false)
$("#all").attr('checked',true)
$("#excel").attr('checked',true)
$("#partchoose").attr('checked',false)
var moban = document.getElementById("moban");
moban.style.display = "none"
var daoru = document.getElementById("daoru");
daoru.style.display = "none"
document.getElementById("transfer_promote").style.display = "none"
document.getElementById("data_list").style.display = "none"
document.getElementById('all').value = 1
document.getElementById('part').value = 2
})
$("#excel").click(function() {
var moban = document.getElementById("moban");
// addtype.style.display = "none"
$("#excel").attr('checked',true)
$("#partchoose").attr('checked',false)
moban.style.display = "block"
var daoru = document.getElementById("daoru");
daoru.style.display = "block"
document.getElementById('transfer_promote').style.display = "none"
document.getElementById("data_list").style.display = "block"
})
$("#partchoose").click(function() {
var moban = document.getElementById("moban");
// addtype.style.display = "none"
$("#excel").attr('checked',false)
$("#partchoose").attr('checked',true)
moban.style.display = "none"
var daoru = document.getElementById("daoru");
daoru.style.display = "none"
document.getElementById('transfer_promote').style.display = "block"
document.getElementById("data_list").style.display = "none"
})
function addPromote() {
var addpromoteindex = document.getElementById("addpromoteindex");
var addpromote = document.getElementById("addpromote");
var promoteset = document.getElementById("promoteset");
addpromoteindex.style.display = "none"
addpromote.style.display = "none"
promoteset.style.display = "block"
document.getElementById('all').value = 1
document.getElementById('part').value = 2
}
function del(id) {
var msg = "确认删除该项?"
if(confirm(msg) == true) {
$.ajax({
url:"{:U('Game/delSociatyGames')}",
dataType:'json',
type:'POST',
data:{'id':id},
success:function(res) {
console.log(res.code)
if(res.code == 10001) {
window.location.reload();
}
}
})
}
}
function suba(game_id) {
var file_excel = $('#file_excel')[0].files[0]
var formData = new FormData();
formData.append("file",file_excel);
formData.append("game_id",game_id)
$.ajax({
url:"{:U('Game/uploadExcel1')}",
dataType:'json',
type:'POST',
async:false,
data:formData,
processData : false, // 使数据不做处理
contentType : false, // 不要设置Content-Type请求头
success:function(res) {
document.getElementById('data_list').style.display = "block"
res = JSON.parse(res)
var datalist = res.datalist
var outPromote = res.outPromote
if(datalist.length > 0) {
html = '<div class="" style="width:500px"><table><thead><tr><th>录入成功会长账号</th></tr></thead><tbody>'
datalist.forEach(v=>{
html += '<tr><td>'+v['account']+'</td></tr>';
})
}else {
html = '<div class="" style="width:500px"><table><thead><tr><th>录入成功会长账号</th></tr></thead><tbody>'
+'<tr><td colspan="14" class="text-center">aOh! 暂无账号录入!</td></tr>'
}
html += '</tbody></table></div>'
if(outPromote.length > 0) {
html += '<div class="" style="width:500px"><table><thead><tr><th>录入失败会长账号</th></tr></thead><tbody>'
outPromote.forEach(p=>{
html += '<tr><td>'+p['promote_account']+'</td></tr>';
})
}else {
html += '<div class="" style="width:500px"><table><thead><tr><th>录入失败会长账号</th></tr></thead><tbody>'
+'<tr><td colspan="14" class="text-center">aOh! 暂无录入失败会长账号!</td></tr>>'
}
html += '</tbody></table></div>'
$("#data_list").html(html);
}
})
}
$('[name=shift_mode]').on({
click: function () {
if ($(this).val() == 2) {
$('#shift-transfer').show()
} else {
$('#shift-transfer').hide()
}
}
})
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Game/lists')}');
@ -2366,4 +2643,10 @@
});
</script>
<style>
.layui-transfer-box{
overflow: hidden;
height: 410px!important;
}
</style>
</block>

@ -197,4 +197,30 @@ class ApplyService {
parse_str($items['query'], $params);
return $params;
}
public function checkSociatyPerm($promote, $game)
{
if ($game['apply_auth'] == 1) {
return true;
}
$promoteService = new PromoteService();
$topPromote = $promoteService->getTopPromote($promote);
$record = M('sociaty_games', 'tab_')->where(['game_id' => $game['id'], 'promote_id' => $topPromote['id']])->find();
if ($record['status'] == 1) {
return true;
} else {
return false;
}
}
public function getSociatyGameIds($promote)
{
$promoteService = new PromoteService();
$topPromote = $promoteService->getTopPromote($promote);
$tempIds = M('sociaty_games', 'tab_')->where(['promote_id' => $topPromote['id']])->getField('game_id', true);
$tempIds = $tempIds ?? [];
$ids = M('game', 'tab_')->where(['apply_auth' => 1])->getField('id', true);
$ids = $ids ?? [];
return array_merge($tempIds, $ids);
}
}

@ -92,6 +92,10 @@ class ApplyController extends BaseController
$map['tab_game.sdk_version'] = $type;
$applyService = new ApplyService();
$tempIds = $applyService->getSociatyGameIds($loginPromote);
$gameIdList = array_intersect($gameIdList, $tempIds);
if (count($gameIdList) > 0) {
$gameIds = implode(',', $gameIdList);
@ -115,9 +119,12 @@ class ApplyController extends BaseController
} else {
$gameIdList = M('Game', 'tab_')->group('relation_game_id')->having('count(id) = 2')->getField('id', true);
$applyService = new ApplyService();
$tempIds = $applyService->getSociatyGameIds($loginPromote);
$gameIdList = array_intersect($gameIdList, $tempIds);
if (count($gameIdList) > 0) {
$gameIds = implode(',', $gameIdList);
$map['tab_game.id'] = ['in', $gameIds];
} else {
$map = '1 = 2';

@ -154,8 +154,8 @@ class HomeController extends Controller
$this->error('该链接已被禁');
}
if ($code != '') {
$applyService = new ApplyService();
if ($code != '') {
$data = $applyService->decodeApplyCode($code);
$result = $applyService->checkApplyCode($data, ApplyService::ENCRYPT_TYPE_LANDING_PAGE);
if (!$result['status']) {
@ -173,6 +173,7 @@ class HomeController extends Controller
$columns = [
'id',
'sdk_version',
'apply_auth',
'icon',
'screenshot',
'relation_game_id',
@ -193,6 +194,11 @@ class HomeController extends Controller
$map = ['id' => intval($gameId)];
$game = M('game', 'tab_')->field($columns)->where($map)->find();
$promote = M('promote', 'tab_')->field(['id', 'parent_id', 'chain', 'level'])->where(['id' => $promoteId])->find();
if (!$applyService->checkSociatyPerm($promote, $game)) {
$this->error('该链接已经停止使用');
}
if ($game['sdk_version'] == 1 && $isIOS) {
$map = [];
$map['relation_game_id'] = $game['relation_game_id'];
@ -207,6 +213,9 @@ class HomeController extends Controller
$apply = M('apply', 'tab_')->field(['game_id', 'enable_status', 'promote_id'])
->where(['promote_id' => $promoteId, 'game_id' => $game['id']])
->find();
if (!$apply) {
$this->error('该链接已经停止使用');
}
$game['icon'] = get_cover($game['icon'], 'path');
$gameSource = M('GameSource', 'tab_')->field(['create_time', 'org_plist_url', 'is_new_sdk'])->where(array('game_id' => $game['id']))->find();

@ -40,8 +40,9 @@ class PackageController extends Controller
if ($isBlack) {
$this->redirect("package/downloadError", ['message' => '该链接已被禁']);
}
if ($code != '') {
$applyService = new ApplyService();
if ($code != '') {
$data = $applyService->decodeApplyCode($code);
$result = $applyService->checkApplyCode($data, ApplyService::ENCRYPT_TYPE_DOWNLOAD);
if (!$result['status']) {
@ -59,7 +60,16 @@ class PackageController extends Controller
$map['promote_id'] = $promoteId;
$columns = ['game_id', 'promote_id', 'promote_account', 'pack_url', 'plist_url', 'status', 'enable_status'];
$apply = M('apply','tab_')->field($columns)->where($map)->find();
$game = M('game','tab_')->field(['id', 'game_name', 'sdk_version'])->where(['id' => $apply['game_id']])->find();
if (!$apply) {
$this->redirect("package/downloadError", ['message' => '该链接已经停止使用']);
}
$promote = M('promote', 'tab_')->field(['id', 'parent_id', 'chain', 'level'])->where(['id' => $promoteId])->find();
$game = M('game','tab_')->field(['id', 'game_name', 'sdk_version', 'apply_auth'])->where(['id' => $apply['game_id']])->find();
if (!$applyService->checkSociatyPerm($promote, $game)) {
$this->redirect("package/downloadError", ['message' => '该链接已经停止使用']);
}
if (Request::isMobile()) {
if (!Request::isAndroid() && $game['sdk_version'] == 1) {

@ -1074,6 +1074,22 @@ CREATE TABLE `sys_document_pop_rules` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--广--
CREATE TABLE `tab_sociaty_games` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`promote_id` int(11) NOT NULL COMMENT '会长ID',
`game_id` int(11) NOT NULL COMMENT '游戏ID',
`status` tinyint(1) NOT null DEFAULT '0' COMMENT '状态 0 禁用 1 启用',
`create_time` int(10) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(10) NOT NULL DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT '工会授权游戏';
----
ALTER TABLE `tab_game`
ADD COLUMN `apply_auth` INT(11) NULL DEFAULT '1' COMMENT '申请权限(1为全部可申请2为部分会长可申请)' AFTER `game_detail_cover`;
-- 2020-01-14
-- cxj
ALTER TABLE `tab_promote_game_ratio`

Loading…
Cancel
Save