yulingwei 5 years ago
parent 80e89c651a
commit e155c92ed6

@ -264,18 +264,29 @@ class StatementMangementController extends ThinkController
if (!empty(I('account'))) {
$map['accounts'] = ['like', '%' . I('account') . '%'];
}
$list = M('reward_record', 'tab_')->where($map)->page($p, $row)->select();
$list = M('reward_record', 'tab_')
->field('tab_reward_record.*, tab_promote.account as promote_account, tab_game.partner_id')
->where($map)
->join('tab_promote on tab_reward_record.promote_id = tab_promote.id', 'left')
->join('tab_game on tab_game.relation_game_id = tab_reward_record.relation_game_id', 'left')
->group('tab_reward_record.id')
->page($p, $row)
->select();
if ($list) {
$companys[1] = array_column(M('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id');
$companys[2] = array_column(M('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id');
$games = array_column(M('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(), 'relation_game_name', 'relation_game_id');
foreach ($list as &$item) {
$item['company_name'] = $companys[$item['company_type']][$item['company_id']];
$item['partner_name'] = $companys[1][$item['partner_id']] ?? '无';
$item['accounts'] = json_decode($item['accounts'], true) ?: [];
$item['settlement_info'] = json_decode($item['settlement_info'], true) ?: [];
$item['reward_type_desc'] = $item['reward_type'] == 1 ? "奖励" : "惩罚";
$item['company_type_desc'] = $item['company_type'] == 1 ? "上游公司" : "下游公司";
$item['relation_game_name'] = $games[$item['relation_game_id']];
$item['reward_time'] = $item['reward_time'] ? date('Y-m-d H:i:s', $item['reward_time']) : '-';
$item['reward_time'] = $item['reward_time'] ? intval(date('m', $item['reward_time'])) . '月' : '-';
$item['confirm_time'] = $item['confirm_time'] ? date('Y-m-d H:i:s', $item['confirm_time']) : '-';
$item['row'] = sizeof($item['settlement_info']) ?? 1;
// if ($item['company_type'] == 1) {
// } else {
@ -303,11 +314,28 @@ class StatementMangementController extends ThinkController
'money' => I('money'),
'content' => I('content'),
'remark' => I('remark'),
'reward_time' => strtotime(I('reward_time'))
'promote_id' => I('promote_id'),
'settlement_info' => json_encode(I('settlement_info') ? array_values(I('settlement_info')) : []),
'reward_time' => strtotime(I('reward_time')),
'confirm_time' => strtotime(I('confirm_time'))
];
$settlment_info = I('settlement_info');
$accounts = I('account');
$user_types = I('user_type');
if ($settlment_info) {
foreach($settlment_info as $item) {
if (!is_numeric($item['price']) || empty($item['price'])) {
return $this->error('请填写完整的结算信息');
}
}
$promoterIds = array_column($settlment_info, 'promote_id');
if (in_array(0, $promoterIds)) {
return $this->error('请选择合作方后再提交');
}
if (sizeof(array_unique($promoterIds)) != sizeof($promoterIds)) {
return $this->error('含有重复的结算方,请确认!');
}
}
if ($accounts) {
foreach ($accounts as $index => $account) {
@ -369,13 +397,16 @@ class StatementMangementController extends ThinkController
} else {
$data = M('reward_record', 'tab_')->where(['id'=>$id])->find();
if (!$data) return $this->error("未找到该记录");
$data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d H:i:s', $data['confirm_time']) : '';
$data['accounts'] = json_decode($data['accounts'], true) ?: [];
$data['settlement_info'] = json_decode($data['settlement_info'], true) ?: [];
$this->assign('data', $data);
}
} else {
$data['reward_time'] = strtotime(date('Y-m-01'));
$this->assign('data', $data);
}
$this->assign('promoters', M('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select());
$this->display();
}

@ -118,12 +118,13 @@
<th>奖罚类型</th>
<th>公司类型</th>
<th>公司名称</th>
<th>涉及账号</th>
<th>会长账号</th>
<th>游戏</th>
<th>事件</th>
<th>金额</th>
<th>备注</th>
<th>奖罚时间</th>
<th>游戏合作方</th>
<th>结算方/结算金额(可多填)</th>
<th>总金额</th>
<th>结算月份</th>
<th>奖惩确认时间</th>
<th>添加人</th>
<th>操作</th>
</tr>
@ -138,27 +139,49 @@
</if>
<notemtpy name = "list">
<volist name="list" id="data">
<tr>
<?php if (empty($data['settlement_info'])):?>
<tr>
<td>{$data.reward_type_desc}</td>
<td>{$data.company_type_desc}</td>
<td>{$data.company_name}</td>
<td>
<?php foreach ($data['accounts'] as $account):?>
<div>
<?php if ($account['user_type'] == 1):?>推广员/<?php else:?>玩家/<?php endif;?>{$account['account']}
</div>
<?php endforeach;?>
</td>
<td>{$data.promote_account}</td>
<td>{$data.relation_game_name}</td>
<td>{$data.content}</td>
<td>{$data.money}</td>
<td>{$data.remark}</td>
<td>{$data['reward_time']}</td>
<td>{:get_admin_nickname($data['creater_id'])}</td>
<td>
<td>{$data.partner_name}</td>
<td>-</td>
<td rowspan="{$data.row}">{$data.money}</td>
<td rowspan="{$data.row}">{$data['reward_time']}</td>
<td rowspan="{$data.row}">{$data['confirm_time']}</td>
<td rowspan="{$data.row}">{:get_admin_nickname($data['creater_id'])}</td>
<td rowspan="{$data.row}">
<a href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id']))}">编辑 </a>
<a class="confirm ajax-get" href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id'], 'delete'=>1))}">删除 </a>
</td>
</tr>
<?php else:?>
<?php foreach($data['settlement_info'] as $k => $item):?>
<tr>
<?php if($k == 0):?>
<td rowspan="{$data.row}">{$data.reward_type_desc}</td>
<td rowspan="{$data.row}">{$data.company_type_desc}</td>
<td rowspan="{$data.row}">{$data.company_name}</td>
<td rowspan="{$data.row}">{$data.promote_account}</td>
<td rowspan="{$data.row}">{$data.relation_game_name}</td>
<td rowspan="{$data.row}">{$data.partner_name}</td>
<td>{$item['price']}</td>
<td rowspan="{$data.row}">{$data.money}</td>
<td rowspan="{$data.row}">{$data['reward_time']}</td>
<td rowspan="{$data.row}">{$data['confirm_time']}</td>
<td rowspan="{$data.row}">{:get_admin_nickname($data['creater_id'])}</td>
<td rowspan="{$data.row}">
<a href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id']))}">编辑 </a>
<a class="confirm ajax-get" href="{:U('StatementMangement/rewardManageSave',array('id'=>$data['id'], 'delete'=>1))}">删除 </a>
</td>
<?php else:?>
<td>{$item['price']}</td>
<?php endif;?>
</tr>
<?php endforeach;?>
<?php endif;?>
</tr>
</volist>
</notemtpy>

@ -5,7 +5,7 @@
<style>
#form .txt_area.download_url {width:400px;}
.tabcon1711 .table_radio2 .table_btn {width:215px;}
.bnt_add,.bnt_remove,.bnt_save{
.bnt_add,.bnt_remove,.bnt_save, .settlement_bnt_add{
height: 30px;
width: 20px;
font-size: 20px;
@ -60,6 +60,7 @@
<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>
<form action="{:U('StatementMangement/rewardManageSave')}" enctype="application/x-www-form-urlencoded" method="POST"
class="form-horizontal form_info_ml" id="form">
@ -91,15 +92,69 @@
<select id="company_id" name="company_id" class="select_gallery">
</select>
</li>
<li>
<label>会长名称</label>
<select id="promote_id" name="promote_id" class="select_gallery">
</select>
</li>
<li>
<label>奖罚时间</label>
<input type="text" id="reward_time" readonly name="reward_time" class="" value="{:date('Y-m-d H:i:s',$data['reward_time'])}" placeholder="奖罚时间" />
</li>
<?php if ($data['settlement_info']):?>
<?php foreach ($data['settlement_info'] as $k => $settlement):?>
<li class="settlement-info">
<?php if ($k == 0):?>
<label>结算方</label>
<?php else:?>
<label>-</label>
<?php endif;?>
<select name="settlement_info[{$k+1}][promote_id]" class="select_gallery promoter-select">
<option value="0">请选择会长</option>
<?php foreach ($promoters as $promoter):?>
<option value="{$promoter['id']}" <?php if ($promoter['id'] == $settlement['promote_id']):?>selected<?php endif;?> >{$promoter['nickname']}</option>
<?php endforeach;?>
</select>
<input type="text" class="txt table_text_input settlement_amount" name="settlement_info[{$k+1}][price]" value="{$settlement['price']}" placeholder="扣款金额">
<select name="settlement_info[{$k+1}][settlment_type]" class="select_gallery">
<option value="1" <?php if ($settlement['settlment_type'] == 1):?>selected<?php endif;?>>线上结算</option>
<option value="2" <?php if ($settlement['settlment_type'] == 2):?>selected<?php endif;?>>线下结算</option>
</select>
<?php if ($k == 0):?>
<button type="button" class="settlement_bnt_add"></button>
<?php else:?>
<button type="button" class="bnt_remove"></button>
<?php endif;?>
</li>
<?php endforeach;?>
<?php else:?>
<li class="settlement-info">
<label>结算方</label>
<select name="settlement_info[{$k+1}][promote_id]" class="select_gallery promoter-select">
<option value="0">请选择会长</option>
<?php foreach ($promoters as $promoter):?>
<option value="{$promoter['id']}" >{$promoter['nickname']}</option>
<?php endforeach;?>
</select>
<input type="text" class="txt table_text_input settlement_amount" name="settlement_info[{$k+1}][price]" value="0" placeholder="扣款金额">
<select name="settlement_info[{$k+1}][settlment_type]" class="select_gallery">
<option value="1" >线上结算</option>
<option value="2" >线下结算</option>
</select>
<button type="button" class="settlement_bnt_add"></button>
</li>
<?php endif;?>
<?php if ($data['accounts']):?>
<?php foreach ($data['accounts'] as $k => $account):?>
<?php if ($k == 0):?>
<li class="user-account">
<?php if ($k == 0):?>
<label>涉及账号</label>
<?php else:?>
<label>-</label>
<?php endif;?>
<select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)">
<option value="1" <?php if ($account['user_type'] == 1):?>selected<?php endif;?>>推广员</option>
<option value="2" <?php if ($account['user_type'] == 2):?>selected<?php endif;?>>玩家</option>
@ -144,7 +199,11 @@
</li>
<li>
<label>金额</label>
<input name="money" type="text" class="" placeholder="金额" value="{$data.money}" />
<input name="money" id='total_money' readonly type="text" class="" placeholder="金额" value="{$data.money}" />
</li>
<li>
<label>奖惩确认时间</label>
<input type="text" id="confirm_time" readonly name="confirm_time" class="" value="{$data['confirm_time']}" placeholder="奖惩确认时间" />
</li>
<li>
<label>备注</label>
@ -174,15 +233,58 @@
<script type="text/javascript">
highlight_subnav('{:U('StatementMangement/rewardManageList')}');
$(".bnt_add").bind("click",function(){
var a= '<li class="user-account"><label>涉及账号</label><select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)"><option value="1">推广员</option><option value="2">玩家</option></select><input type="text" class="txt table_text_input" name="account[]" value="" placeholder="账号"><button type="button" class="bnt_remove"></button>';
var a= '<li class="user-account"><label>-</label><select name="user_type[]" class="select_gallery user_type" onchange="userAccountChange(this)"><option value="1">推广员</option><option value="2">玩家</option></select><input type="text" class="txt table_text_input" name="account[]" value="" placeholder="账号"><button type="button" class="bnt_remove"></button>';
$(".user-account:last").after(a);
});
$(".settlement_bnt_add").bind("click",function(){
var count = $(".settlement-info").length
var promoter_select = $(".promoter-select:first").clone()//.find("option:selected").attr("selected",false).html();
promoter_select.find("option:selected").attr("selected",false);
// promoter_select = promoter_select.get(0)
var a= `<li class="settlement-info">
<label>-</label>
<select name="settlement_info[`+(count+1)+`][promote_id]" class="select_gallery promoter-select">
</select>
<input type="text" class="txt table_text_input settlement_amount" name="settlement_info[`+(count+1)+`][price]" value="0" placeholder="扣款金额">
<select name="settlement_info[`+(count+1)+`][settlment_type]" class="select_gallery">
<option value="1" >线上结算</option>
<option value="2" >线下结算</option>
</select>
<button type="button" class="bnt_remove"></button>
</li>`;
$(".settlement-info:last").after(a);
$("select[name='settlement_info["+(count+1)+"][promote_id]']").html(promoter_select.html())
});
$(document).on('input propertychange', '.settlement_amount', function(){
if (isNaN($(this).val())) {
s=$(this).val().substring(0,$(this).val().Length-1);
$(this).val(s);
layer.msg('请输入数字');
countAmount();
return false;
}
countAmount();
});
function countAmount() {
var total_amount = 0;
$('.settlement_amount').each(function(){
if (parseInt($(this).val()) > 0) {
total_amount += parseInt($(this).val());
}
});
$('#total_money').val(total_amount)
}
$(document).on('click', '.bnt_remove', function(){
$(this).parents('li').remove();
countAmount();
});
var date = new Date();
var monthStart = date.getFullYear()+'-0'+(date.getMonth()+1)+'-01';
$("#reward_time").datetimepicker({
$("#reward_time, #confirm_time").datetimepicker({
format : "yyyy-mm-dd hh:ii",
autoclose : true,
todayBtn : true,
@ -221,6 +323,33 @@
}
});
$('#company_id').html(companyData);
promoteChange();
}
});
}
$(document).on('change', '#company_id', function(){
promoteChange();
});
var promote_id = '{$data["promote_id"]}';
function promoteChange()
{
var companyId = $('#company_id').val();
$.ajax({
url:"{:U('Ajax/getPromotersByCompanyid')}",
dataType:'JSON',
data: {'company_id':companyId},
success:function(response){
var companyData = '';
$.each(response.data, function(index, item){
if (promote_id == item.id) {
companyData += "<option value='"+item.id+"' selected >"+item.nickname+"</option>";
} else {
companyData += "<option value='"+item.id+"' >"+item.nickname+"</option>";
}
});
$('#promote_id').html(companyData);
}
});
}

@ -2165,4 +2165,9 @@ CREATE TABLE `tab_payment_member` (
INSERT INTO `tab_payment_member` (`id`, `real_name`, `mobile`, `last_login_time`) VALUES ('1', '胡歌', '18959188422', '0')
--20200710 ylw
ALTER TABLE `tab_reward_record`
ADD COLUMN `promote_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '会长id' AFTER `company_id`,
ADD COLUMN `settlement_info` json NOT NULL AFTER `accounts`,
ADD COLUMN `confirm_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '确认时间' AFTER `remark`;

Loading…
Cancel
Save