master
elf 2 years ago
parent 1381caaa30
commit 20664f3ff6

@ -8,6 +8,7 @@ use Base\Service\MerchantMainService;
use Base\Service\PaymentRuleService;
use Base\Service\PromoteCompanyService;
use Base\Service\GameService;
use Exception;
use Think\Model;
/**
@ -857,4 +858,107 @@ class PaymentMerchantController extends ThinkController
]
]);
}
public function editMaster()
{
$id = I('id', 0);
$rule = null;
if ($id > 0) {
$rule = M('game_master_merchant_rule', 'tab_')->where(['id' => $id])->find();
if (empty($rule)) {
$this->error('记录不存在');
}
}
$gameService = new GameService();
$games = $gameService->getBaseGames();
$this->assign('games', $games);
$this->assign('rule', $rule);
$this->display('masterForm');
}
public function saveMasterRule()
{
try {
$params = I('post.');
$service = new PaymentRuleService();
$service->saveGameMasterMerchantRule($params);
$this->ajaxReturn([
'status' => 1,
'message' => '成功',
]);
} catch (Exception $e) {
$this->ajaxReturn([
'status' => 0,
'message' => $e->getMessage(),
]);
}
}
public function deleteMasterRule()
{
$id = I('post.id', 0);
M('game_master_merchant_rule', 'tab_')->where(['id' => $id])->delete();
$this->ajaxReturn([
'status' => 1,
'message' => '删除成功',
]);
}
public function masterRules()
{
$page = I('p', 1);
$row = I('row', 10);
$baseGameId = I('base_game_id', 0);
$startedAt = I('started_at', '1970-01-01');
$endedAt = I('ended_at', '9999-01-01');
$conditions = [];
if ($baseGameId != 0) {
$conditions['base_game_id'] = $baseGameId;
}
$conditions['update_time'] = ['between', [strtotime($startedAt . ' 00:00:00'), strtotime($endedAt . ' 23:59:59')]];
$query = M('game_master_merchant_rule', 'tab_')->where($conditions);
$countQuery = clone $query;
$items = $query->order('id desc')->page($page, $row)->select();
$count = $countQuery->count();
$admins = M('ucenter_member', 'sys_')->field(['id', 'username'])->select();
$admins = index_by_column('id', $admins);
$records = [];
foreach ($items as $item) {
$records[] = [
'id' => $item['id'],
'base_game_id' => $item['base_game_id'],
'base_game_name' => $item['base_game_name'],
'is_first_pay' => $item['is_first_pay'],
'max_times' => $item['max_times'],
'max_pay_amount' => $item['max_pay_amount'],
'admin_username' => $admins[$item['admin_id']]['username'],
'update_time' => date('Y-m-d H:i:s', $item['update_time']),
];
}
$page = set_pagination($count, $row);
if($page) {
$this->assign('_page', $page);
}
$gameService = new GameService();
$games = $gameService->getBaseGames();
$this->assign('games', $games);
$this->assign('records', $records);
$this->assign('admins', $admins);
$this->display();
}
}

@ -0,0 +1,162 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="__CSS__/base.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/common.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/style.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/default_color.css" media="all">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__STATIC__/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer3/layer.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"charset="UTF-8"></script>
<script src="__STATIC__/juicer-min.js" type="text/javascript"></script>
</head>
<style>
html {
min-width:100%;
}
body {
padding: 0px;
}
table{
margin: auto;
}
.hidebox{
display: none;
}
.r{
width: 300px;
}
.l{
width: 180px;
}
.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;
}
.input-list, .i_list {
float: left;
margin: 0;
}
</style>
<body>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="form" action="{:U('saveMasterRule')}" method="post" class="form-horizontal">
<input type="hidden" name="id" value="<?=$rule['id']?: 0?>">
<!-- 基础文档模型 -->
<div id="tab1" class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark">*</i>游戏:</td>
<td class="r">
<select name="game_id" id="game-select" class="select_gallery">
<option value="0">所有游戏</option>
<?php foreach($games as $game):?>
<option value="<?=$game['id']?>" <?php if($rule && $rule['base_game_id']==$game['id']):?>selected<?php endif;?>><?=$game['name']?></option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>首充限制:</td>
<td class="r">
<label>
<input type="radio" name="is_first_pay" class="" <?php if($rule && $rule['is_first_pay']==1):?>checked<?php endif;?> value="1"> 开启
</label>
<label></label>
<input type="radio" name="is_first_pay" class="" <?php if($rule && $rule['is_first_pay']==0):?>checked<?php endif;?> value="0"> 关闭
</label>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>充值次数限制:</td>
<td class="r">
<input type="text" name="max_times" placeholder="请输入首充限制" value="<?=$rule['max_times'] ?: 0?>" style="width: 150px">
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>充值次数限制:</td>
<td class="r">
<input type="text" name="max_pay_amount" placeholder="请输入充值金额限制 value="<?=$rule['max_pay_amount'] ?: 0;?>" style="width: 150px">
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-item cf">
<button class="submit_btn mlspacing" id="submit" type="submit" target-form="form-horizontal" style="margin-left: 193px">
确认
</button>
</div>
</form>
</div>
</div>
<script type="text/javascript">
$(".select_gallery").select2();
$(function(){
$('#submit').click(function (e) {
var target = $('form').get(0).action;
var query = $('form').serialize();
var that = this;
$(that).addClass('disabled').attr('autocomplete','off').prop('disabled',true);
$.post(target,query).success(function(result){
if(layer) { layer.closeAll('loading'); }
if (result.status == 1) {
layer.msg(result.message)
setTimeout(function(){
parent.location.reload()
},350)
} else {
layer.msg(result.message)
}
});
});
});
</script>
</body>
</html>

@ -0,0 +1,285 @@
<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"/>
<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;
}
.el-card {
border-radius: 4px;
border: 1px solid #ebeef5;
background-color: #fff;
overflow: hidden;
color: #303133;
transition: .3s;
}
.el-card .card-body {
padding: 20px;
}
.el-card .card-header {
padding: 18px 20px;
border-bottom: 1px solid #ebeef5;
box-sizing: border-box;
}
.clearfix:after {
content:"";
display: block;
clear:both;
}
.set-default-btn {
border: none;
background: #3C95C8;
font-size: 14px;
font-weight: normal;
color: #fff;
cursor: pointer;
border-radius: 3px;
display: inline-block;
text-align: center;
border-bottom: none;
width: 55px;
height: 28px;
line-height: 26px;
}
</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 clearfix main-place top_nav_list navtab_list">
<h3 class="page_title">游戏对公支付策略</h3>
</div>
<div class="cf clearfix top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl 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_select" name="base_game_id" class="select_gallery" style="width:200px;">
<option value="0">请选择游戏</option>
<?php foreach($games as $game):?>
<option value="<?=$game['id']?>"><?=$game['name']?></option>
<?php endforeach;?>
</select>
</div>
<div class="input-list">
<input type="text" id="started_at" name="started_at" class="time" value="" placeholder="操作开始时间" autocomplete="off" />
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" id="ended_at" name="ended_at" class="time" value="" placeholder="操作结束时间" autocomplete="off" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('PaymentMerchant/masterRules')}">搜索</a>
<a id="add-form-btn" class="sch-btn" style="width: 80px;" href="javescript:;">新增策略</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th>游戏名称</th>
<th>首充限制</th>
<th>充值次数限制</th>
<th>充值金额限制</th>
<th>操作时间</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="records">
<td colspan="9" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="records" id="data">
<tr data-id="<?=$data['id']?>">
<td>{$data.base_game_name}</td>
<td>{$data.is_first_pay}</td>
<td>{$data.max_times}</td>
<td>{$data.max_pay_amount}</td>
<td>{$data.update_time}</td>
<td>
<div class="partakebtn">
<a class="edit-form-btn" href="javascript:;">编辑</a>
<a class="delet-btn" href="javascript:;">删除</a>
</div>
</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">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></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('PaymentMerchant/masterRules')}");
$(function(){
//搜索功能
$("#search").click(function(){
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();
}
})
$('.time').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
startView: 'month',
minView:'month',
maxView:'month',
});
function getIds() {
var ids = [];
$('.ids:checked').each(function() {
ids.push($(this).val());
})
return ids;
}
$('.delete-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id');
$.ajax({
url: '{:U("deleteMasterRule")}',
type: 'post',
dataType: 'json',
data: {id: id},
success: function(result) {
if (result.status == 1) {
layer.msg(result.message)
setTimeout(function() {
window.location.href = window.location.href
}, 200)
} else {
layer.msg(result.message)
}
}
})
}
})
$('.edit-form-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id');
layer.open({
type: 2,
title: "编辑策略",
shadeClose: true,
shade: 0.8,
area: ['500px', '300px'],
content: '/{$Think.SUBSITE_INDEX}?s=/PaymentMerchant/editMaster&id=' + id
})
}
})
$('#add-form-btn').on({
click: function() {
layer.open({
type: 2,
title: "新增策略",
shadeClose: true,
shade: 0.8,
area: ['500px', '300px'],
content: '/{$Think.SUBSITE_INDEX}?s=/PaymentMerchant/editMaster'
})
}
})
});
</script>
</block>

@ -2,6 +2,7 @@
namespace Base\Service;
use Base\Facade\Request;
use Exception;
class PaymentRuleService
{
@ -118,4 +119,25 @@ class PaymentRuleService
}
return $records;
}
public function saveGameMasterMerchantRule($params)
{
if (empty($params['base_game_id'])) {
throw new Exception('请选择游戏');
}
$data = [
'base_game_id' => $params['base_game_id'],
'is_first_pay' => $params['is_first_pay'] ?: 0,
'max_times' => $params['max_times'] ?: 0,
'max_pay_amount' => $params['max_pay_amount'] ?: 0,
'update_time' => time(),
];
if (!empty($params['id'])) {
M('game_master_merchant_rule', 'tab_')->where(['id' => $params['id']])->save($data);
} else {
$data['create_time'] = time();
M('game_master_merchant_rule', 'tab_')->add($data);
}
}
}
Loading…
Cancel
Save