master
ELF 5 years ago
parent 2867a05bb3
commit cc6c5d4e74

@ -126,9 +126,11 @@ class ConsoleController extends Think {
public function testAggregate()
{
$client = new AggregateClient();
/* $client = new AggregateClient();
$result = $client->api('game-data', ['unique_codes' => ['w123'], 'started_at' => '2019-06-27', 'ended_at' => '2020-07-27']);
var_dump($result);
var_dump($result); */
echo M('game', 'tab_')->where('id>2')->field(['id', 'game_name'])->where('sdk_version=1')->select(false);
}
public function initMarketAdmin()

@ -337,6 +337,9 @@ class PartnerController extends ThinkController
$this->error('保存失败');
}
} else {
$selfCompanies = M('company_info', 'tab_')->field('id,partner company_name,link_man,link_phone')->where(['status' => 1])->select();
$this->assign('selfCompanies', $selfCompanies);
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'Partner/add'])->find());
$this->meta_title = '新增上游CP公司';
$this->display();

@ -7,6 +7,7 @@ use User\Api\UserApi as UserApi;
use OSS\OssClient;
use OSS\Core\OSsException;
use Base\Service\PresidentDepositService;
use Base\Service\PromoteCompanyService;
use Think\Controller;
/**
@ -399,7 +400,24 @@ class PromoteCompanyController extends ThinkController
if ($_POST) {
$time = time();
$save = I('post.');//前端已经验证
$save['promotes'] = json_decode($save['promotes'], true);
$this->checkData($save);
$presidentDepositService = new PresidentDepositService();
$promoteCompanyService = new PromoteCompanyService();
try {
$presidentDepositService->checkBeforeSave($save['deposit'] ?? []);
$promoteCompanyService->checkPromotes($save['promotes'] ?? []);
} catch (\Exception $e) {
$this->ajaxReturn(array(
'status' => 0,
'info' => $e->getMessage()
));
}
$save['create_time'] = $time;
$save['turnover_ratio'] = $this->setTurnoverRatio($save);
$res = D("PromoteCompanyVerify")->add_db($save);
@ -418,6 +436,9 @@ class PromoteCompanyController extends ThinkController
));
}
} else {
$selfCompanies = M('company_info', 'tab_')->field('id,partner company_name,link_man,link_phone')->where(['status' => 1])->select();
$this->assign('selfCompanies', $selfCompanies);
$this->assign('payWays', PresidentDepositService::$payWays);
$this->assign('payTypes', PresidentDepositService::$payTypes);
$this->assign('serviceAgreements', M('service_agreement', 'tab_')->select());
@ -974,14 +995,6 @@ class PromoteCompanyController extends ThinkController
}
}
if (I('pay_type', 0) == 0) {
$this->error('请选择押金付款方式');
}
if (I('pay_type', 0) != PresidentDepositService::PAY_TYPE_NONE && I('pay_way', 0) == 0) {
$this->error('请选择付款方式');
}
// if(!empty(I("contact_phone")) && !checkPhone(I('contact_phone'))) {
// $this->error('联系电话格式不正确');
// }

@ -19,6 +19,10 @@
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="cf main-place top_nav_list navtab_list">
<ul class="tabnav1711 fr jstabnav">
<li data-tab="tab1" class="current"><a href="javascript:void(0);">基本信息</a></li>
<li data-tab="tab2" ><a href="javascript:void(0);">结算信息</a></li>
</ul>
<h3 class="page_title">{$meta_title}</h3>
</div>
@ -52,164 +56,6 @@
</td>
</tr>
<tr>
<td class="l">结算生效期限:</td>
<td class="r">
<input type="text" class="txt time time3" name="validity_start_time" value="" placeholder="生效开始时间">
-<input type="text" class="txt time time4" name="validity_end_time" value="" placeholder="生效结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>
<tr>
<td class="l">渠道费率:</td>
<td class="r" >
<input type="text" class="txt " name="channel_rate" value="" placeholder="渠道费率(最多两位小数)"> <span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">开票税点:</td>
<td class="r" >
<input type="text" class="txt " name="invoice_rate" value="" placeholder="开票税点(最多两位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">税费费率:</td>
<td class="r" >
<input type="text" class="txt " name="taxation_rate" value="" placeholder="税费费率(最多三位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否签署合同:</td>
<td class="r">
<select name="is_sign_contract" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<!-- <tr>
<td class="l noticeinfo">结算方式:</td>
<td class="r">
<select name="settlement_type" class="select_gallery">
<option value="0" selected></option>
<option value="1">周结</option>
<option value="2">月结</option>
</select>
</td>
</tr> -->
<tr>
<td class="l noticeinfo">公司性质:</td>
<td class="r">
<select name="company_type" class="select_gallery">
<!-- <option value="0">请选择公司性质</option> -->
<option value="1" selected>公司</option>
<option value="2">个人</option>
</select>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否有游戏资质:</td>
<td class="r">
<select name="has_game_evidence" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<tr>
<td class="l">联系人:</td>
<td class="r" >
<input type="text" class="txt " name="link_man" value="" placeholder="请输入联系人">
</td>
</tr>
<tr>
<td class="l">联系电话:</td>
<td class="r" >
<input type="text" class="txt " name="link_phone" value="" placeholder="请输入联系电话">
</td>
</tr>
<tr>
<td class="l">注册地址:</td>
<td class="r" >
<input type="text" class="txt " name="reg_address" value="" placeholder="请输入注册地址">
</td>
</tr>
<tr>
<td class="l">注册电话:</td>
<td class="r" >
<input type="text" class="txt " name="reg_phone" value="" placeholder="请输入注册电话">
</td>
</tr>
<tr>
<td class="l">邮寄地址:</td>
<td class="r" >
<input type="text" class="txt " name="address" value="" placeholder="请输入邮寄地址">
</td>
</tr>
<tr>
<td class="l">公司税号:</td>
<td class="r" >
<input type="text" class="txt " name="company_tax_no" value="" placeholder="请输入公司税号">
</td>
</tr>
<tr>
<td class="l">账户名:</td>
<td class="r" >
<input type="text" class="txt " name="payee_name" value="" placeholder="请输入收款方名称">
</td>
</tr>
<tr>
<td class="l">银行账号:</td>
<td class="r" >
<input type="text" class="txt " name="bank_account" value="" placeholder="请输入银行账号">
</td>
</tr>
<tr>
<td class="l">收款银行:</td>
<td class="r" >
<input type="text" class="txt " name="opening_bank" value="" placeholder="请输入开户行">
</td>
</tr>
<tr>
<td class="l">支付宝真实姓名:</td>
<td class="r" >
<input type="text" class="txt " name="ali_user" value="" placeholder="请输入支付宝真实姓名">
</td>
</tr>
<tr>
<td class="l">支付宝登陆账号:</td>
<td class="r" >
<input type="text" class="txt " name="ali_account" value="" placeholder="可以是手机及邮箱等">
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r">
<input type="text" name="remark" class="txt" value="" placeholder="请输入备注">
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>是否有预付款:</td>
<td class="r table_radio">
@ -285,6 +131,245 @@
</table>
</div>
<div id="tab2" class="tab-pane tab2 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>合作方式:</td>
<td class="r">
<select name="relation[collaborate_way]" id="collaborate_way" class="select_gallery">
<option value="1" >甲方</option>
<option value="2" selected>乙方</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>己方公司:</td>
<td class="r">
<select name="relation[self_company_id]" id="self_company" class="select_gallery">
<option value="0"></option>
<?php foreach($selfCompanies as $selfCompany):?>
<option value="<?=$selfCompany['id']?>"><?=$selfCompany['company_name']?></option>
<?php endforeach;?>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>结算周期:</td>
<td class="r">
<select name="relation[settlement_type]" id="settlement_type" class="select_gallery">
<option value="0"></option>
<option value="1" selected>周结</option>
<option value="2">月结</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>开票类型:</td>
<td class="r">
<select name="relation[invoice_type]" id="invoice_type" class="select_gallery">
<option value="0" selected></option>
<option value="1">专票</option>
<option value="2">普票</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">开票内容:</td>
<td class="r table_radio">
<input type="text" name="relation[invoice_content]" id="invoice_content" class="input" value="信息服务费"></textarea>
</td>
</tr>
<tr>
<td class="l">是否有打款流程:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" value="1" name="relation[is_payment]" checked="checked">
</label>
<label>
<input type="radio" value="2" name="relation[is_payment]">
</label>
</span>
<span class="notice-text">选择否将不能进行线上打款</span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>收款方:</td>
<td class="r">
<select name="relation[collection]" id="collection" class="select_gallery">
<option value="1" >甲方</option>
<option value="2" selected>乙方</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">结算生效期限:</td>
<td class="r">
<input type="text" class="txt time time3" name="validity_start_time" value="" placeholder="生效开始时间">
-<input type="text" class="txt time time4" name="validity_end_time" value="" placeholder="生效结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>
<tr>
<td class="l">渠道费率:</td>
<td class="r" >
<input type="text" class="txt " name="channel_rate" value="" placeholder="渠道费率(最多两位小数)"> <span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">开票税点:</td>
<td class="r" >
<input type="text" class="txt " name="invoice_rate" value="" placeholder="开票税点(最多两位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">税费费率:</td>
<td class="r" >
<input type="text" class="txt " name="taxation_rate" value="" placeholder="税费费率(最多三位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否签署合同:</td>
<td class="r">
<select name="is_sign_contract" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<!-- <tr>
<td class="l noticeinfo">结算方式:</td>
<td class="r">
<select name="settlement_type" class="select_gallery">
<option value="0" selected></option>
<option value="1">周结</option>
<option value="2">月结</option>
</select>
</td>
</tr> -->
<tr>
<td class="l noticeinfo">公司性质:</td>
<td class="r">
<select name="company_type" class="select_gallery">
<!-- <option value="0">请选择公司性质</option> -->
<option value="1" selected>公司</option>
<option value="2">个人</option>
</select>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否有游戏资质:</td>
<td class="r">
<select name="has_game_evidence" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<tr>
<td class="l">联系人:</td>
<td class="r" >
<input type="text" class="txt " name="link_man" value="" placeholder="请输入联系人">
</td>
</tr>
<tr>
<td class="l">联系电话:</td>
<td class="r" >
<input type="text" class="txt " name="link_phone" value="" placeholder="请输入联系电话">
</td>
</tr>
<tr>
<td class="l">注册地址:</td>
<td class="r" >
<input type="text" class="txt " name="reg_address" value="" placeholder="请输入注册地址">
</td>
</tr>
<tr>
<td class="l">注册电话:</td>
<td class="r" >
<input type="text" class="txt " name="reg_phone" value="" placeholder="请输入注册电话">
</td>
</tr>
<tr>
<td class="l">邮寄地址:</td>
<td class="r" >
<input type="text" class="txt " name="address" value="" placeholder="请输入邮寄地址">
</td>
</tr>
<tr>
<td class="l">公司税号:</td>
<td class="r" >
<input type="text" class="txt " name="company_tax_no" value="" placeholder="请输入公司税号">
</td>
</tr>
<tr>
<td class="l">账户名:</td>
<td class="r" >
<input type="text" class="txt " name="payee_name" value="" placeholder="请输入收款方名称">
</td>
</tr>
<tr>
<td class="l">银行账号:</td>
<td class="r" >
<input type="text" class="txt " name="bank_account" value="" placeholder="请输入银行账号">
</td>
</tr>
<tr>
<td class="l">收款银行:</td>
<td class="r" >
<input type="text" class="txt " name="opening_bank" value="" placeholder="请输入开户行">
</td>
</tr>
<tr>
<td class="l">支付宝真实姓名:</td>
<td class="r" >
<input type="text" class="txt " name="ali_user" value="" placeholder="请输入支付宝真实姓名">
</td>
</tr>
<tr>
<td class="l">支付宝登陆账号:</td>
<td class="r" >
<input type="text" class="txt " name="ali_account" value="" placeholder="可以是手机及邮箱等">
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r">
<input type="text" name="remark" class="txt" value="" placeholder="请输入备注">
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-item cf">
<input class="submit_btn" type="button" value="保存" id="submit" target-form="form-horizontal" style="margin-left:210px;">
<a class="submit_btn " alt="返回上一页" title="返回上一页" href="{:U('Partner/lists')}" >
@ -332,6 +417,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>
<script type="text/javascript">
showTab();
$("input[type=radio][name=has_server_fee]").on('change', function (e) {
    var v = $(this).val();
if(v == 1){

@ -0,0 +1,507 @@
<extend name="Public/base" />
<block name="css">
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
#form .txt_area.download_url {width:400px;}
.tabcon1711 .table_radio2 .table_btn {width:215px;}
</style>
</block>
<block name="body">
<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>
<script src="__STATIC__/juicer-min.js" type="text/javascript"></script>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">{$meta_title}</h3>
</div>
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="form" action="{:U('add')}" method="post" class="form-horizontal" autocomplete="off">
<!-- 基础 -->
<div id="tab1" class="tab-pane in tab1 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>合同合作方名称:</td>
<td class="r" >
<input type="text" class="txt " name="partner" value="" placeholder="请输入合作方名称">
</td>
</tr>
<tr>
<td class="l">对应平台(简称)</td>
<td class="r" >
<input type="text" class="txt " name="matche_platform" value="" placeholder="请输入对应平台">
</td>
</tr>
<tr>
<td class="l">合同期限:</td>
<td class="r">
<input type="text" class="txt time time1" name="contract_start_time" value="" placeholder="请选择开始时间">
-<input type="text" class="txt time time2" name="contract_end_time" value="" placeholder="请选择结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>
<tr>
<td class="l">结算生效期限:</td>
<td class="r">
<input type="text" class="txt time time3" name="validity_start_time" value="" placeholder="生效开始时间">
-<input type="text" class="txt time time4" name="validity_end_time" value="" placeholder="生效结束时间">
<span class="notice-text" style="float: none;">结束时间不选默认永久</span>
</td>
</tr>
<tr>
<td class="l">渠道费率:</td>
<td class="r" >
<input type="text" class="txt " name="channel_rate" value="" placeholder="渠道费率(最多两位小数)"> <span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">开票税点:</td>
<td class="r" >
<input type="text" class="txt " name="invoice_rate" value="" placeholder="开票税点(最多两位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l">税费费率:</td>
<td class="r" >
<input type="text" class="txt " name="taxation_rate" value="" placeholder="税费费率(最多三位小数)"><span style="margin-left: 3px;padding-top: 5px">%</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否签署合同:</td>
<td class="r">
<select name="is_sign_contract" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<!-- <tr>
<td class="l noticeinfo">结算方式:</td>
<td class="r">
<select name="settlement_type" class="select_gallery">
<option value="0" selected></option>
<option value="1">周结</option>
<option value="2">月结</option>
</select>
</td>
</tr> -->
<tr>
<td class="l noticeinfo">公司性质:</td>
<td class="r">
<select name="company_type" class="select_gallery">
<!-- <option value="0">请选择公司性质</option> -->
<option value="1" selected>公司</option>
<option value="2">个人</option>
</select>
</td>
</tr>
<tr>
<td class="l noticeinfo">是否有游戏资质:</td>
<td class="r">
<select name="has_game_evidence" class="select_gallery">
<option value="1"></option>
<option value="0" selected="selected"></option>
</select>
</td>
</tr>
<tr>
<td class="l">联系人:</td>
<td class="r" >
<input type="text" class="txt " name="link_man" value="" placeholder="请输入联系人">
</td>
</tr>
<tr>
<td class="l">联系电话:</td>
<td class="r" >
<input type="text" class="txt " name="link_phone" value="" placeholder="请输入联系电话">
</td>
</tr>
<tr>
<td class="l">注册地址:</td>
<td class="r" >
<input type="text" class="txt " name="reg_address" value="" placeholder="请输入注册地址">
</td>
</tr>
<tr>
<td class="l">注册电话:</td>
<td class="r" >
<input type="text" class="txt " name="reg_phone" value="" placeholder="请输入注册电话">
</td>
</tr>
<tr>
<td class="l">邮寄地址:</td>
<td class="r" >
<input type="text" class="txt " name="address" value="" placeholder="请输入邮寄地址">
</td>
</tr>
<tr>
<td class="l">公司税号:</td>
<td class="r" >
<input type="text" class="txt " name="company_tax_no" value="" placeholder="请输入公司税号">
</td>
</tr>
<tr>
<td class="l">账户名:</td>
<td class="r" >
<input type="text" class="txt " name="payee_name" value="" placeholder="请输入收款方名称">
</td>
</tr>
<tr>
<td class="l">银行账号:</td>
<td class="r" >
<input type="text" class="txt " name="bank_account" value="" placeholder="请输入银行账号">
</td>
</tr>
<tr>
<td class="l">收款银行:</td>
<td class="r" >
<input type="text" class="txt " name="opening_bank" value="" placeholder="请输入开户行">
</td>
</tr>
<tr>
<td class="l">支付宝真实姓名:</td>
<td class="r" >
<input type="text" class="txt " name="ali_user" value="" placeholder="请输入支付宝真实姓名">
</td>
</tr>
<tr>
<td class="l">支付宝登陆账号:</td>
<td class="r" >
<input type="text" class="txt " name="ali_account" value="" placeholder="可以是手机及邮箱等">
</td>
</tr>
<tr>
<td class="l">备注:</td>
<td class="r">
<input type="text" name="remark" class="txt" value="" placeholder="请输入备注">
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>是否有预付款:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="0" name="has_advance_charge" checked>
</label>
<label>
<input type="radio" class="inp_radio" value="1" name="has_advance_charge" >
</label>
</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>承担服务费:</td>
<td class="r table_radio">
<span class="form_radio table_btn" style="width: auto;">
<label>
<input type="radio" class="inp_radio" value="0" name="has_server_fee" checked>
</label>
<label>
<input type="radio" class="inp_radio" value="1" name="has_server_fee" >
</label>
</span>
<span class="notice-text" id="server_fee_input" style="color: #000;display: none;"><input type="text" class="txt " name="server_fee" value="0" placeholder="请输入服务器费用" style="width: 100px;">&nbsp;&nbsp;</span>
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>合作关系:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="1" name="cooperation_status" checked> 合作中
</label>
<label>
<input type="radio" class="inp_radio" value="0" name="cooperation_status"> 停止合作
</label>
</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l noticeinfo"><i class="mustmark" style="margin-left:-7px">*</i>显示状态:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="1" name="status" checked> 开启
</label>
<label>
<input type="radio" class="inp_radio" value="0" name="status"> 关闭
</label>
</span>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l noticeinfo">文档管理</td>
<td class="r table_radio">
<input type="button" class="coin-detail" data-url="{:U('Ajax/addfile')}" value="添加"
style="border-radius:5%;background: #fff;color: #333;font-weight: 400;border: 1px solid #777;width: 100px;height: 35px">
</td>
</tr>
</tbody>
</table>
<table border="1" style="width: 600px;text-align: center;" cellspacing="0" cellpadding="0" id="docShow">
</table>
</div>
<div class="form-item cf">
<input class="submit_btn" type="button" value="保存" id="submit" target-form="form-horizontal" style="margin-left:210px;">
<a class="submit_btn " alt="返回上一页" title="返回上一页" href="{:U('Partner/lists')}" >
返回
</a>
</div>
</form>
</div>
</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="{$meta_title}">
<input type="hidden" name="url" value="Partner/add">
</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>
<script type="text/html" id="doctpl">
{@each list as it,index}
{@if index==0}
<thead>
<tr>
<th>文档名称</th>
<th>上传时间</th>
<th style="width:150px;">操作</th>
</tr>
</thead>
{@/if}
<tr>
<td style="padding:0;">${it.file_name}</td>
<td>${it.upload_time}</td>
<td>
<a class="filedown" data-index="${index}" data-path="${it.file_path}">下载</a>
<a class="filedel" data-index="${index}" data-path="${it.file_path}">删除</a>
</td>
</tr>
{@/each}
</script>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<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 type="text/javascript">
$("input[type=radio][name=has_server_fee]").on('change', function (e) {
    var v = $(this).val();
if(v == 1){
$("#server_fee_input").show();
}else{
$("#server_fee_input").hide();
}
  });
$('.time1').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView: "month",
autoclose:true
}).change(function(){
var start = new Date($(this).val()).getTime();
var end = new Date($('.time2').val()).getTime();
if(isNaN(end)) {return false;}
if(start>=end) {layer.msg('开始时间必须小于结束时间');return false;}
return false;
});
$('.time2').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView: "month",
autoclose:true
}).change(function(){
var end = new Date($(this).val()).getTime();
var start = new Date($('.time1').val()).getTime();
if(isNaN(start)) {return false;}
if(start>=end) {layer.msg('开始时间必须小于结束时间');return false;}
return false;
});
$('.time3').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView: "month",
autoclose:true
}).change(function(){
var start = new Date($(this).val()).getTime();
var end = new Date($('.time4').val()).getTime();
if(isNaN(end)) {return false;}
if(start>=end) {layer.msg('开始时间必须小于结束时间');return false;}
return false;
});
$(".time3").datetimepicker("setDate", new Date());
$('.time4').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView: "month",
autoclose:true
}).change(function(){
var end = new Date($(this).val()).getTime();
var start = new Date($('.time3').val()).getTime();
if(isNaN(start)) {return false;}
if(start>=end) {layer.msg('开始时间必须小于结束时间');return false;}
return false;
});
//导航高亮
highlight_subnav("{:U('Partner/lists')}");
</script>
<script>
var doc = [];
function addFile(info) {
doc.push(info);
layer.closeAll();
PROMOTE.juicerFun();
// window.parent.addFile(info);
}
$(".coin-detail").click(function () {
var url = $(this).data('url');
var title = '文档添加';
layer.open({
type: 2,
title: title,
shadeClose: true,
shade: 0.8,
area: ['40%', '60%'],
content: url
});
});
$("#submit").on("click",function(){
var cres = $('form').serializeArray();
//验证通过
if(doc.length > 0){
cres.push({"name":"file_info", "value":JSON.stringify(doc)});
}
//添加
$.ajax({
url:"{:U('partner/add')}",
type:"post",
data:cres,
dataType:"json",
success:function(data){
if(data.status == 1){
layer.msg(data.info,function(){
window.location.href="{:U('partner/lists')}";
});
}else{
layer.msg(data.info);
}
},
error:function(e){
}
});
})
var PROMOTE = {
juicerFun(){
var tpl =$("#doctpl").html();
var html = juicer(tpl, {list:doc});
$("#docShow").html(html);
PROMOTE.juicerEvent();
},
juicerEvent(){
$(".filedown,.filedel").off("click");
$(".filedown").on("click",function(){
var url = window.location.protocol+"//"+window.location.host+$(this).data("path");
// window.open(url,"_blank");
var link = document.createElement('a');
link.setAttribute("download", "");
link.href = url;
link.click()
});
$(".filedel").on("click",function(){
var path = $(this).data("path");
var index = $(this).data("index");
console.log(index);
var id = 0;
$.ajax({
url:"{:U('Ajax/delFile')}",
type:"post",
data:{
"id":0,
"file_path":path
},
dataType:"json",
success:function(data){
if(data.status == 1){
doc.splice(index,1)
PROMOTE.juicerFun();
}else{
layer.alert(data.info);
}
},
error:function(e){
}
});
})
}
}
</script>
</block>

@ -125,6 +125,10 @@
line-height: 25px;
margin-bottom: 0px;
}
.normal-table .normal-btn.delete-btn {
background: rgb(221, 10, 10);
margin-left: 5px;
}
.layer-box .tabcon1711 input~.notice-text {
width: auto;
}
@ -234,7 +238,7 @@
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>押金付款方式:</td>
<td class="r">
<select name="pay_type" id="pay_type" class="select_gallery">
<select name="deposit[pay_type]" id="deposit-pay-type" class="select_gallery">
<option value="">押金付款方式</option>
<?php foreach($payTypes as $key => $name):?>
<option value="<?=$key?>"><?=$name?></option>
@ -244,10 +248,10 @@
</td>
</tr>
<tr class="need-amount">
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>押金付方式:</td>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>押金付方式:</td>
<td class="r">
<select name="pay_way" id="pay_way" class="select_gallery">
<option value="">押金付方式</option>
<select name="deposit[pay_way]" id="deposit-pay-way" class="select_gallery">
<option value="">押金付方式</option>
<?php foreach($payWays as $key => $name):?>
<option value="<?=$key?>"><?=$name?></option>
<?php endforeach;?>
@ -258,21 +262,21 @@
<tr class="need-amount">
<td class="l"><?php if($record):?><i class="mustmark">*</i><?php endif?>押金金额:</td>
<td class="r table_radio">
<input type="text" class="txt ratio" name="amount" id="amount" value="<?=$record?$record['amount']:''?>" placeholder="请输入押金金额">
<input type="text" class="txt ratio" name="deposit[amount]" id="deposit-amount" value="<?=$record?$record['amount']:''?>" placeholder="请输入押金金额">
<span class="notice-text"></span>
</td>
</tr>
<tr class="need-amount">
<td class="l">押金付款人:</td>
<td class="r table_radio">
<input type="text" class="txt ratio" name="payer" id="payer" value="<?=$record?$record['payer']:''?>" placeholder="请输入押金付款人">
<input type="text" class="txt ratio" name="deposit[payer]" id="deposit-payer" value="<?=$record?$record['payer']:''?>" placeholder="请输入押金付款人">
<span class="notice-text"></span>
</td>
</tr>
<tr class="need-amount">
<td class="l">押金付款账号:</td>
<td class="r table_radio">
<input type="text" class="txt ratio" name="pay_account" id="pay_account" value="<?=$record?$record['pay_account']:''?>" placeholder="请输入押金付款账号">
<input type="text" class="txt ratio" name="deposit[pay_account]" id="deposit-pay-account" value="<?=$record?$record['pay_account']:''?>" placeholder="请输入押金付款账号">
<span class="notice-text"></span>
</td>
</tr>
@ -355,6 +359,81 @@
<div id="tab2" class="tab-pane tab2 ">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>合作方式:</td>
<td class="r">
<select name="relation[collaborate_way]" id="collaborate_way" class="select_gallery">
<option value="1" >甲方</option>
<option value="2" selected>乙方</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>己方公司:</td>
<td class="r">
<select name="relation[self_company_id]" id="self_company" class="select_gallery">
<option value="0"></option>
<?php foreach($selfCompanies as $selfCompany):?>
<option value="<?=$selfCompany['id']?>"><?=$selfCompany['company_name']?></option>
<?php endforeach;?>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>结算周期:</td>
<td class="r">
<select name="relation[settlement_type]" id="settlement_type" class="select_gallery">
<option value="0"></option>
<option value="1" selected>周结</option>
<option value="2">月结</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>开票类型:</td>
<td class="r">
<select name="relation[invoice_type]" id="invoice_type" class="select_gallery">
<option value="0" selected></option>
<option value="1">专票</option>
<option value="2">普票</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">开票内容:</td>
<td class="r table_radio">
<input type="text" name="relation[invoice_content]" id="invoice_content" class="input" value="信息服务费"></textarea>
</td>
</tr>
<tr>
<td class="l">是否有打款流程:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label>
<input type="radio" value="1" name="relation[is_payment]" checked="checked">
</label>
<label>
<input type="radio" value="2" name="relation[is_payment]">
</label>
</span>
<span class="notice-text">选择否将不能进行线上打款</span>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark" style="margin-left:-7px">*</i>收款方:</td>
<td class="r">
<select name="relation[collection]" id="collection" class="select_gallery">
<option value="1" >甲方</option>
<option value="2" selected>乙方</option>
</select>
<span class="notice-text"></span>
</td>
</tr>
<tr>
<td class="l">结算生效期限:</td>
<td class="r">
@ -364,7 +443,6 @@
</td>
</tr>
<tr>
<td class="l">支付宝真实姓名:</td>
<td class="r" >
@ -573,10 +651,10 @@
<td class="r table_radio">
<span class="form_radio table_btn" style="width: 215px;">
<label >
<input type="radio" value="1" name="can_view_recharge" checked="checked"> 开启
<input type="radio" class="can_view_recharge" value="1" name="can_view_recharge" checked="checked"> 开启
</label >
<label >
<input type="radio" value="0" name="can_view_recharge"> 锁定
<input type="radio" class="can_view_recharge" value="0" name="can_view_recharge"> 锁定
</label>
</span>
</td>
@ -758,6 +836,9 @@
}
if(!flag) return false;
senddata.push({"name":"game_ids", "value":ids.join(",")});
senddata.push({'name': 'promotes', 'value': JSON.stringify(getPromotes())})
//添加
$.ajax({
url:"{:U('add')}",
@ -948,9 +1029,13 @@
content: $('#promote-box'),
area: ['800px', '460px'],
zIndex: 250,
cancel: function() {
clearPromoteBox()
}
})
}
})
$('#confirm-promote').on({
click: function () {
var box = $('#promote-box')
@ -962,36 +1047,108 @@
email: box.find('input[name=email]').val(),
can_view_recharge: box.find('input[name=can_view_recharge]:checked').val(),
}
if (promote.account == '') {
return layer.msg('请输入会长账号')
}
if (promote.password == '') {
return layer.msg('请输入登录密码')
}
if (promote.password.length < 6) {
return layer.msg('密码不能小于6位')
}
var canViewRecharge = promote.can_view_recharge == 1 ? '允许' : '禁止'
console.log(promote)
$('#promote-table').find('.no-record').remove()
var html = '<tr><td>' + promote.account + '</td>'
+ '<td>' + promote.real_name + '</td>'
+ '<td>' + promote.mobile_phone + '</td>'
+ '<td>' + promote.email + '</td>'
+ '<td>' + canViewRecharge + '</td>'
+ '<td><button class="normal-btn" type="button">删除</button></td>'
+ '</tr>'
console.log(html)
$('#promote-table').children('tbody').append(html)
var editTr = $('#promote-table').find('.edit')
if (editTr.length > 0) {
editTr.attr('data-post', JSON.stringify(promote))
var html = '<td>' + promote.account + '</td>'
+ '<td>' + promote.real_name + '</td>'
+ '<td>' + promote.mobile_phone + '</td>'
+ '<td>' + promote.email + '</td>'
+ '<td>' + canViewRecharge + '</td>'
+ '<td><button class="modify-btn normal-btn" type="button">编辑</button><button class="delete-btn normal-btn" type="button">删除</button></td>'
editTr.html(html)
editTr.removeClass('edit')
} else {
$('#promote-table').find('.no-record').remove()
var html = '<tr data-post=' + JSON.stringify(promote) + '><td>' + promote.account + '</td>'
+ '<td>' + promote.real_name + '</td>'
+ '<td>' + promote.mobile_phone + '</td>'
+ '<td>' + promote.email + '</td>'
+ '<td>' + canViewRecharge + '</td>'
+ '<td><button class="modify-btn normal-btn" type="button">编辑</button><button class="delete-btn normal-btn" type="button">删除</button></td>'
+ '</tr>'
$('#promote-table').children('tbody').append(html)
}
layer.closeAll()
clearPromoteBox()
}
})
$('#pay_type').change(function() {
function clearPromoteBox() {
var box = $('#promote-box')
box.find('input[name=account]').val('')
box.find('input[name=password]').val('')
box.find('input[name=realname]').val('')
box.find('input[name=mobile]').val('')
box.find('input[name=email]').val('')
box.find('.can_view_recharge[value=1]').click()
}
function initPromoteBox(promote) {
var box = $('#promote-box')
box.find('input[name=account]').val(promote.account)
box.find('input[name=password]').val(promote.password)
box.find('input[name=realname]').val(promote.real_name)
box.find('input[name=mobile]').val(promote.mobile_phone)
box.find('input[name=email]').val(promote.email)
box.find('.can_view_recharge[value=' + promote.can_view_recharge + ']').click()
}
$('#promote-table').on('click', '.delete-btn', function() {
$(this).parents('tr').eq(0).remove()
})
$('#promote-table').on('click', '.modify-btn', function() {
$(this).parents('tr').eq(0).addClass('edit')
var promote = JSON.parse($(this).parents('tr').eq(0).attr('data-post'))
layer.open({
title: '编辑会长',
type: 1,
content: $('#promote-box'),
area: ['800px', '460px'],
zIndex: 250,
cancel: function() {
clearPromoteBox()
}
})
initPromoteBox(promote)
})
function getPromotes() {
var promotes = []
$('#promote-table tbody tr').each(function(index, elem) {
promotes.push(JSON.parse($(elem).attr('data-post')))
})
return promotes
}
$('#deposit-pay-type').change(function() {
var val = $(this).val()
if (val == 2) {
$('.need-amount').show();
$("#pay_way option[value='4']").removeProp('disabled');
$('#pay_way').val('4')
$('#pay_way').attr('disabled', 'disabled')
$("#deposit-pay-way option[value='4']").removeProp('disabled');
$('#deposit-pay-way').val('4')
$('#deposit-pay-way').attr('disabled', 'disabled')
} else if(val == 3) {
$('.need-amount').hide();
} else {
$('.need-amount').show();
$('#pay_way').removeAttr('disabled');
$("#pay_way option[value='4']").prop('disabled', true);
$('#pay_way').val('')
$('#deposit-pay-way').removeAttr('disabled');
$("#deposit-pay-way option[value='4']").prop('disabled', true);
$('#deposit-pay-way').val('')
}
})
</script>

@ -31,12 +31,39 @@ class PresidentDepositService
1 => '已收到',
2 => '已退款',
];
public function checkBeforeSave($params, $record = null)
{
if ($params['pay_type'] == 0) {
throw new \Exception('请选择押金付款方式');
}
if ($params['pay_type'] != 2 && $params['pay_way'] == 0) {
throw new \Exception('请选择付款方式');
}
if ($record && $params['amount'] === '') {
throw new \Exception('请输入金额');
}
public function add($params)
if ($params['amount'] !== '') {
if (!is_numeric($params['amount'])) {
throw new \Exception('请输入正确金额');
}
if ($params['amount'] <= 0) {
throw new \Exception('金额必须大于0');
}
if ($params['amount'] > 100000000) {
throw new \Exception('金额过高');
}
}
}
public function save($params, $company)
{
$payWay = $params['pay_way'] ?? 0;
$payType = $params['pay_type'] ?? 0;
$promoteId = $params['id'] ?? 0;
$payAccount = $params['pay_account'] ?? '';
$amount = $params['amount'] ?? '';
$payer = $params['payer'] ?? '';
@ -46,68 +73,64 @@ class PresidentDepositService
$payAcceptTime = $payAcceptTime ? strtotime($payAcceptTime) : 0;
$refundTime = $refundTime ? strtotime($refundTime) : 0;
$record = M('president_deposit', 'tab_')->where(['company_id' => $company['id']])->find();
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
$promoteData = M('promote', 'tab_')->field('account')->where(['id' => $promoteId])->find();
// 市场部门无法操作押金退款和收到时间
if ((($record['pay_accept_time'] != $payAcceptTime) || ($record['refund_time'] != $refundTime)) && isMarketAdmin()) {
throw new \Exception('无法操作记录');
}
if ($payType == 0) {
throw new \Exception('请选择押金付款方式');
}
if ($payType == 3) {
return $this->handleNoDeposit($promoteId);
}
if ($payType != 2 && $payWay == 0) {
throw new \Exception('请选择付款方式');
}
if ($params['pay_type'] == 3) {
return $this->handleNoDeposit($company, $record);
}
if ($record) {
$this->update();
addOperationLog(['op_type'=>1,'key'=>$company['company_name'].'/'.$params['amount'],'op_name'=>'编辑会长押金','url'=>U('PresidentDeposit/edit',['id'=>$company['id']]),'menu'=>'推广员-结算单管理-会长押金管理-编辑会长押金']);
} else {
$this->add();
addOperationLog(['op_type'=>0,'key'=>$company['company_name'].'/'.$params['amount'],'op_name'=>'新增会长押金','url'=>U('PresidentDeposit/edit',['id'=>$company['id']]),'menu'=>'推广员-结算单管理-奖罚记录管理-新增会长押金']);
}
}
if (!$record) {
if ($amount !== '') {
if (!is_numeric($amount)) {
throw new \Exception('请输入正确金额');
}
if ($amount <= 0) {
throw new \Exception('金额必须大于0');
}
if ($amount > 100000000) {
throw new \Exception('金额过高');
}
}
private function add($params, $company)
{
$data = [];
$data['pay_way'] = $params['pay_type'] == 2 ? 4 : $params['pay_way'];
$data['pay_type'] = $params['pay_type'];
$data['company_id'] = $company['id'];
$data['pay_account'] = $params['pay_account'];
$data['amount'] = floatval($params['amount']);
$data['payer'] = $params['payer'];
$data['create_time'] = time();
$data['update_time'] = time();
M('president_deposit', 'tab_')->add($data);
}
$data = [];
private function update($params, $company, $record)
{
$payAcceptTime = $params['pay_accept_time'] == '' ? 0 : strtotime($params['pay_accept_time']);
$refundTime = $params['refund_time'] == '' ? 0 : strtotime($params['pay_accept_time']);
// 填写押金到账时间后自动变为押金已确认到账状态,并且状态在待确认时候
if ($record['pay_accept_time'] != $payAcceptTime && $record['status'] == 0) {
$data = ['status' => 1,
'pay_confirm_time' => time()];
}
$data = [];
$data['pay_way'] = $payType == 2 ? 4 : $payWay;
$data['pay_type'] = $payType;
$data['promote_id'] = $promoteId;
$data['pay_account'] = $payAccount;
$data['amount'] = floatval($amount);
$data['payer'] = $payer;
$data['create_time'] = time();
$data['update_time'] = time();
$status = null;
if ($payType != $record['pay_type']) {
$status = 0;
$data['refund_time'] = $data['pay_accept_time'] = $data['pay_confirm_time'] = 0;
} else {
$data['pay_accept_time'] = $payAcceptTime;
$data['refund_time'] = $refundTime;
}
M('president_deposit', 'tab_')->add($data);
$data['pay_way'] = $params['pay_type'] == 2 ? 4 : $params['pay_way'];
$data['pay_type'] = $params['pay_type'];
$data['pay_account'] = $params['pay_account'];
$data['amount'] = floatval($params['amount']);
$data['payer'] = $params['payer'];
$data['status'] = $status ?? $record['status'];
$data['update_time'] = time();
addOperationLog(['op_type'=>0,'key'=>$promoteData['account'].'/'.$amount,'op_name'=>'新增会长押金','url'=>U('PresidentDeposit/edit',['id'=>$promoteId]),'menu'=>'推广员-结算单管理-奖罚记录管理-新增会长押金']);
}
M('president_deposit', 'tab_')->where(['id' => $record['id']])->save($data);
}
public function handleNoDeposit($promoteId)
{
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
public function handleNoDeposit($company, $record = null)
{
$data = [];
$data['pay_way'] = 0;
$data['pay_type'] = self::PAY_TYPE_NONE;
@ -120,15 +143,90 @@ class PresidentDepositService
$data['update_time'] = time();
$data['status'] = 1;
$data['pay_accept_time'] = $data['refund_time'] = 0;
$data['promote_id'] = $promoteId;
if (!$record) {
$data['company_id'] = $company['id'];
M('president_deposit', 'tab_')->add($data);
} else {
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->save($data);
M('president_deposit', 'tab_')->where(['company_id' => $company['id']])->save($data);
}
addOperationLog(['op_type'=>1,'key'=>$company['company_name'],'op_name'=>'编辑无需押金','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-无需押金']);
}
public function batchRefund(array $companyIds)
{
if (isMarketAdmin()) {
throw new \Exception('无法操作记录');
}
$companyIds = I('ids', []);
if (count($companyIds) == 0) {
throw new \Exception('无选中项');
}
$checkStatus = true;
$records = M('president_deposit', 'tab_')->where(['company_id' => ['in', $companyIds]])->select();
foreach ($records as $record) {
if ($record['status'] != 1) {
$checkStatus = false;
break;
}
}
if (!$checkStatus) {
throw new \Exception('含有非已到账状态记录,不可批量操作');
}
M('president_deposit', 'tab_')->where(['company_id' => ['in', $companyIds]])->save([
'status' => 2,
'refund_time' => time(),
'update_time' => time(),
'pay_accept_time' => 0
]);
$companies = M('promote_company', 'tab_')->field(['company_name', 'id'])->where(['id' => ['in', $companyIds]])->select();
$companies = index_by_column('id', $companies);
foreach ($records as $record) {
$company = $companies[$record['company_id']] ?? null;
if ($record['amount']) {
addOperationLog(['op_type'=>1,'key'=>$company['company_name'].'/'.$record['amount'],'op_name'=>'编辑押金已退款','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-押金已退款']);
}
}
}
public function batchPayConfirm(array $companyIds)
{
if (isMarketAdmin()) {
throw new \Exception('无法操作记录');
}
if (count($companyIds) == 0) {
throw new \Exception('无选中项');
}
$checkStatus = true;
$records = M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->select();
foreach ($records as $record) {
if ($record['status'] != 0) {
$checkStatus = false;
break;
}
}
if (!$checkStatus) {
throw new \Exception('含有非待确认状态记录,不可批量操作');
}
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->save([
'status' => 1,
'pay_confirm_time' => time(),
'update_time' => time(),
'pay_accept_time' => strtotime(I('accept_time'))
]);
$companies = M('promote_company', 'tab_')->field(['company_name', 'id'])->where(['id' => ['in', $companyIds]])->select();
$companies = index_by_column('id', $companies);
foreach ($records as $record) {
$company = $companies[$record['company_id']] ?? null;
if ($record['amount']) {
addOperationLog(['op_type'=>1,'key'=>$company['company_name'].'/'.$record['amount'],'op_name'=>'编辑确认押金到账','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-确认押金到账']);
}
}
$promoteData = M('promote', 'tab_')->field('account')->where(['id' => $promoteId])->find();
addOperationLog(['op_type'=>1,'key'=>$promoteData['account'],'op_name'=>'编辑无需押金','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-无需押金']);
}
}

@ -50,4 +50,203 @@ class PromoteCompanyService
$rules = M('promote_company', 'tab_')->field($fields)->where($map)->select();
return index_by_column('id', $rules);
}
public function checkPromotes($promotes, $exceptId = 0)
{
foreach ($promotes as $promote) {
if (empty($promote['account'])) {
throw new \Exception('请输入会长账号');
}
if (strlen($promote['account']) > 15 || strlen($promote['account']) < 6) {
throw new \Exception('会长账号长度为6-15个字符');
}
if (!preg_match("/^[a-zA-Z0-9_\.]+$/", $promote['account'])) {
throw new \Exception('会长账号只能为数字,字母和下划线');
}
if (!empty($promote['mobile_phone'])) {
if (!preg_match("/^1[3456789]{1}\d{9}$/", $promote['mobile_phone'])) {
throw new \Exception('会长手机号格式错误');
}
}
if (!empty($promote['real_name'])) {
if (mb_strlen($promote['real_name']) < 2 || mb_strlen($promote['real_name']) > 4) {
throw new \Exception('会长姓名只能为2-4个字符');
}
}
}
$accounts = array_column($promotes, 'account');
$mobiles = array_column($promotes, 'mobile_phone');
if (count($accounts) != count(array_unique($accounts))) {
throw new \Exception('会长含有相同账号');
}
$mobiles = array_filter($mobiles, function ($key, $value) {
if ($value == '') {
return false;
} else {
return true;
}
});
if (count($mobiles) != count(array_unique($mobiles))) {
throw new \Exception('会长含有相同手机号');
}
$existPromote = M('promote', 'tab_')->field('id')->where(['account' => ['in', $accounts]])->find();
if ($existPromote) {
throw new \Exception('会长账号已存在');
}
if (count($mobiles) > 0) {
$existPromote = M('promote', 'tab_')->field('id')->where(['mobile_phone' => ['in', $mobiles]])->find();
if ($existPromote) {
throw new \Exception('会长手机号已存在');
}
}
$verifyingPromotes = $this->getVerifyingPromotes($exceptId);
if ($this->isExistVerifyingPromoteAccount($accounts, $verifyingPromotes)) {
throw new \Exception('会长账号已存在');
}
if ($this->isExistVerifyingPromoteAccount($mobiles, $verifyingPromotes)) {
throw new \Exception('会长手机号已存在');
}
}
public function isExistVerifyingPromoteAccount($accounts, $verifyingPromotes)
{
$verifyingAccounts = array_column($verifyingPromotes, 'account');
$sameAccounts = array_intersect($accounts, $verifyingAccounts);
return count($sameAccounts) > 0;
}
public function isExistVerifyingPromoteMobile($mobiles, $verifyingPromotes)
{
$verifyingMobiles = array_unique(array_column($verifyingPromotes, 'mobile'));
$sameMobiles = array_intersect($mobiles, $verifyingMobiles);
return count($sameMobiles) > 0;
}
public function getVerifyingPromotes($exceptId = 0)
{
$promotes = [];
$verifyCompanies = M('promote_company_verify', 'tab_')->field(['company_info'])->where(['status' => 0])->getField('company_info', true);
if ($verifyCompanies) {
foreach ($verifyCompanies as $item) {
$row = json_decode($item, true);
$promotes = array_merge($promotes, $row['promotes']);
}
}
return $promotes;
}
public function adminAgree($application)
{
$adminInfo = $_SESSION['onethink_admin']['user_auth'];
$application['verify_log'] = json_decode($application['verify_log'],true);
$application['verify_log']['admin_user'] = $adminInfo["username"];
$application['verify_log']['admin_time'] = date("Y-m-d H:i:s");
$application['verify_log'] = json_encode($application['verify_log']);
$application['verify_status'] = 2;
$companyInfo = json_decode($application['company_info'], true);
$deposit = $companyInfo['deposit'];
$bindRelation = $companyInfo['relation'];
$promotes = $companyInfo['promotes'];
unset($companyInfo['deposit']);
unset($companyInfo['relation']);
unset($companyInfo['promotes']);
if($application['company_id'] == 0){
//新增
$application['company_id'] = M('promote_company', 'tab_')->add($companyInfo);
}else{
//编辑
M('promote_company', 'tab_')->save($companyInfo);
$this->changePromote($companyInfo);
}
//业务逻辑
M('PromoteCompanyVerify', 'tab_')->save($application);
addOperationLog(['op_type'=>1, 'key' => $application['id'], 'op_name'=>'管理员审核', 'url'=>U('index')]);
}
protected function savePromoteCompanyRelation($company, $bindRelation)
{
$selfCompany = M('company_info', 'tab_')->where(['id' => $bindRelation['self_company_id']])->find();
$where = '(first_company_type=2 and first_company_id=' . $company['id'] .
') or (second_company_type=2 and second_company_id=' . $company['id'] . ')';
$relation = M('company_relation', 'tab_')->where($where)->find();
$data = [];
if ($bindRelation['collaborate_way'] == 1) {
$data['first_company_id'] = $company['id'];
$data['first_company_id'] = $company['company_name'];
$data['first_company_type'] = 2;
$data['second_company_id'] = $selfCompany['id'];
$data['second_company_name'] = $selfCompany['partner'];
$data['second_company_type'] = 0;
} else {
$data['first_company_id'] = $selfCompany['id'];
$data['first_company_id'] = $selfCompany['partner'];
$data['first_company_type'] = 2;
$data['second_company_id'] = $company['id'];
$data['second_company_name'] = $company['company_name'];
$data['second_company_type'] = 2;
}
$data['settlement_type'] = $bindRelation['settlement_type'];
$data['invoice_type'] = $bindRelation['invoice_type'];
$data['collection'] = $bindRelation['collection'];
$data['is_payment'] = $bindRelation['is_payment'];
$data['invoice_content'] = $bindRelation['invoice_content'];
if ($relation) {
M('company_relation', 'tab_')->where(['id' => $relation['id']])->save($data);
} else {
M('company_relation', 'tab_')->add($data);
}
}
protected function changePromote($companyInfo){
$isChangeBelong = false;
$isChangeRelation =false;
if(empty($companyInfo['id'])){
return;
}
$companyId = $companyInfo['id'];
$oldInfo = M('promote_company', 'tab_')->field('company_belong,develop_type,game_ids')->where(['id' => $companyId])->find();
if(isset($companyInfo['company_belong']) && ($oldInfo['company_belong'] != $companyInfo['company_belong'])){
$isChangeBelong = true;
}
if(isset($companyInfo['develop_type']) && ($oldInfo['develop_type'] != $companyInfo['develop_type'])){
$isChangeRelation = true;
}
//处理底下所有会长的公会属性
if($isChangeBelong || $isChangeRelation ){
$data = array(
'company_belong' => $save['company_belong'],
'company_relation' => $save['develop_type']
);
M('promote', 'tab_')->where(['company_id' => $companyId])->save($data);
// 权限跟随
if($isChangeBelong){
$authGroup = M('auth_group', 'sys_')->where(['title'=>'市场总监'])->find();
$subPromoteIds = M('promote', 'tab_')->where(['level' => 1, 'company_id' => $companyId])->getField('id', true);
$dataPresident = explode(',', $authGroup['data_president']);
if ($save['company_belong'] == 1 || $save['company_belong'] == 2) {
$dataPresident = array_unique(array_merge($dataPresident, $subPromoteIds));
} else {
$dataPresident = array_diff($dataPresident, $subPromoteIds);
}
M('auth_group', 'sys_')->where(['title' => '市场总监'])->save(['data_president' => implode(',', $dataPresident)]);
}
}
}
}
Loading…
Cancel
Save