|
|
|
@ -23,7 +23,7 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
'_string' => '1=1',
|
|
|
|
|
'company_belong' => ['in', [1, 2]]
|
|
|
|
|
];
|
|
|
|
|
if ($companyId != '') {
|
|
|
|
|
if ($companyId != 0) {
|
|
|
|
|
$where['id'] = $companyId;
|
|
|
|
|
}
|
|
|
|
|
if ($companyType !== '') {
|
|
|
|
@ -43,7 +43,6 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
$depositWhere['status'] = $status;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (I('pay_confirm_time_start', '') != '') {
|
|
|
|
|
$depositStrWhere .= ' and pay_confirm_time>=' . strtotime(I('pay_confirm_time_start') . ' 00:00:00');
|
|
|
|
|
}
|
|
|
|
@ -65,6 +64,7 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
$depositStrWhere .= ' and pay_accept_time<=' . strtotime(I('pay_accept_time_end') . ' 23:59:59');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$depositWhere['_string'] = $depositStrWhere;
|
|
|
|
|
if ($payType !== '') {
|
|
|
|
|
$depositWhere['pay_type'] = $payType;
|
|
|
|
|
}
|
|
|
|
@ -83,7 +83,7 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
$companies = [];
|
|
|
|
|
if (I('export', 0) == 1 || $row == 'all') {
|
|
|
|
|
$companies = $query->select();
|
|
|
|
|
$count = count($promotes);
|
|
|
|
|
$count = count($companies);
|
|
|
|
|
} else {
|
|
|
|
|
$countQuery = clone $query;
|
|
|
|
|
$companies = $query->page($page, $row)->select();
|
|
|
|
@ -92,7 +92,10 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
|
|
|
|
|
// 汇总金额
|
|
|
|
|
if (count($companies) > 0 || (isset($count) && $count > 0)) {
|
|
|
|
|
$total = M('president_deposit', 'tab_')->where(['promote_id'=>['in', $totalQuery->getField('id', true)]])->field('sum(amount) as totalAmount, sum(if(status = 1, amount, 0)) as confirmedAmount, sum(if(status = 2, amount, 0)) as refundedAmount')->find();
|
|
|
|
|
$total = M('president_deposit', 'tab_')
|
|
|
|
|
->field('sum(amount) as totalAmount, sum(if(status = 1, amount, 0)) as confirmedAmount, sum(if(status = 2, amount, 0)) as refundedAmount')
|
|
|
|
|
->where(['company_id'=>['in', $totalQuery->getField('id', true)]])
|
|
|
|
|
->find();
|
|
|
|
|
$total = [
|
|
|
|
|
'totalamount' => $total['totalamount'] ?? 0, 'confirmedamount' => $total['confirmedamount'] ?? 0, 'refundedamount' => $total['refundedamount'] ?? 0
|
|
|
|
|
];
|
|
|
|
@ -121,8 +124,8 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
'company_name' => $company['company_name'],
|
|
|
|
|
'company_belong_text' => $companyTypes[$company['company_belong']],
|
|
|
|
|
];
|
|
|
|
|
if ($promote['presidentDeposit']) {
|
|
|
|
|
$presidentDeposit = $promote['presidentDeposit'];
|
|
|
|
|
if ($company['presidentDeposit']) {
|
|
|
|
|
$presidentDeposit = $company['presidentDeposit'];
|
|
|
|
|
if ($presidentDeposit['pay_type'] == PresidentDepositService::PAY_TYPE_NONE) {
|
|
|
|
|
$record['payer'] = '--';
|
|
|
|
|
$record['pay_account'] = '--';
|
|
|
|
@ -228,11 +231,11 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
{
|
|
|
|
|
$this->meta_title = '编辑会长押金';
|
|
|
|
|
$id = I('id', 0);
|
|
|
|
|
$promote = M('promote', 'tab_')->field(['account', 'id'])->where(['id' => $id])->find();
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['promote_id' => $id])->find();
|
|
|
|
|
$company = M('promote_company', 'tab_')->field(['company_name', 'id'])->where(['id' => $id])->find();
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['company_id' => $id])->find();
|
|
|
|
|
$this->assign('payWays', PresidentDepositService::$payWays);
|
|
|
|
|
$this->assign('payTypes', PresidentDepositService::$payTypes);
|
|
|
|
|
$this->assign('promote', $promote);
|
|
|
|
|
$this->assign('company', $company);
|
|
|
|
|
$this->assign('record', $record);
|
|
|
|
|
$this->display('form');
|
|
|
|
|
}
|
|
|
|
@ -241,133 +244,26 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
{
|
|
|
|
|
$this->meta_title = '查看会长押金';
|
|
|
|
|
$id = I('id', 0);
|
|
|
|
|
$promote = M('promote', 'tab_')->field(['account', 'id'])->where(['id' => $id])->find();
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['promote_id' => $id])->find();
|
|
|
|
|
$company = M('promote_company', 'tab_')->field(['company_name', 'id'])->where(['id' => $id])->find();
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['company_id' => $id])->find();
|
|
|
|
|
$this->assign('payWays', PresidentDepositService::$payWays);
|
|
|
|
|
$this->assign('payTypes', PresidentDepositService::$payTypes);
|
|
|
|
|
$this->assign('promote', $promote);
|
|
|
|
|
$this->assign('company', $company);
|
|
|
|
|
$this->assign('record', $record);
|
|
|
|
|
$this->display('show');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function save()
|
|
|
|
|
{
|
|
|
|
|
$payWay = I('pay_way', 0);
|
|
|
|
|
$payType = I('pay_type', 0);
|
|
|
|
|
$promoteId = I('id', 0);
|
|
|
|
|
$payAccount = I('pay_account', '');
|
|
|
|
|
$amount = I('amount', '');
|
|
|
|
|
$payer = I('payer', '');
|
|
|
|
|
$payAcceptTime = I('pay_accept_time', 0) ? strtotime(I('pay_accept_time')): 0;
|
|
|
|
|
$refundTime = I('refund_time', 0) ? strtotime(I('refund_time')): 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$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()) {
|
|
|
|
|
return $this->error('无法操作记录');
|
|
|
|
|
$params = I('post.');
|
|
|
|
|
try {
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['company_id' => $id])->find();
|
|
|
|
|
$service = new PresidentDepositService();
|
|
|
|
|
$service->save($params);
|
|
|
|
|
$this->success('保存成功');
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$this->error($e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($payType == 0) {
|
|
|
|
|
return $this->error('请选择押金付款方式');
|
|
|
|
|
}
|
|
|
|
|
if ($payType == 3) {
|
|
|
|
|
$this->handleNoDeposit($promoteId);
|
|
|
|
|
return $this->success('保存成功', U('records'));
|
|
|
|
|
}
|
|
|
|
|
if ($payType != 2 && $payWay == 0) {
|
|
|
|
|
return $this->error('请选择付款方式');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!$record) {
|
|
|
|
|
if ($amount !== '') {
|
|
|
|
|
if (!is_numeric($amount)) {
|
|
|
|
|
return $this->error('请输入正确金额');
|
|
|
|
|
}
|
|
|
|
|
if ($amount <= 0) {
|
|
|
|
|
return $this->error('金额必须大于0');
|
|
|
|
|
}
|
|
|
|
|
if ($amount > 100000000) {
|
|
|
|
|
return $this->error('金额过高');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
|
|
|
|
|
|
// 填写押金到账时间后自动变为押金已确认到账状态,并且状态在待确认时候
|
|
|
|
|
if ($record['pay_accept_time'] != $payAcceptTime && $record['status'] == 0) {
|
|
|
|
|
$data = ['status' => 1,
|
|
|
|
|
'pay_confirm_time' => time()];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$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();
|
|
|
|
|
$data['pay_accept_time'] = $payAcceptTime;
|
|
|
|
|
$data['refund_time'] = $refundTime;
|
|
|
|
|
|
|
|
|
|
M('president_deposit', 'tab_')->add($data);
|
|
|
|
|
|
|
|
|
|
addOperationLog(['op_type'=>0,'key'=>$promoteData['account'].'/'.$amount,'op_name'=>'新增会长押金','url'=>U('PresidentDeposit/edit',['id'=>$promoteId]),'menu'=>'推广员-结算单管理-奖罚记录管理-新增会长押金']);
|
|
|
|
|
return $this->success('保存成功', U('records'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* if ($record['status'] != 0) {
|
|
|
|
|
return $this->error('该状态下不可编辑/修改');
|
|
|
|
|
} */
|
|
|
|
|
|
|
|
|
|
if ($amount === '') {
|
|
|
|
|
return $this->error('请输入金额');
|
|
|
|
|
}
|
|
|
|
|
if (!is_numeric($amount)) {
|
|
|
|
|
return $this->error('请输入正确金额');
|
|
|
|
|
}
|
|
|
|
|
if ($amount <= 0) {
|
|
|
|
|
return $this->error('金额必须大于0');
|
|
|
|
|
}
|
|
|
|
|
if ($amount > 100000000) {
|
|
|
|
|
return $this->error('金额过高');
|
|
|
|
|
}
|
|
|
|
|
/* if ($payer == '') {
|
|
|
|
|
return $this->error('请输入付款人');
|
|
|
|
|
}
|
|
|
|
|
if ($payAccount == '') {
|
|
|
|
|
return $this->error('请输入付款账号');
|
|
|
|
|
} */
|
|
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
|
|
|
|
|
|
// 切换类型
|
|
|
|
|
if ($payType != $record['pay_type']) {
|
|
|
|
|
$payStatus = 0;
|
|
|
|
|
$data['refund_time'] = $data['pay_accept_time'] = $data['pay_confirm_time'] = 0;
|
|
|
|
|
} else {
|
|
|
|
|
$data['pay_accept_time'] = $payAcceptTime;
|
|
|
|
|
$data['refund_time'] = $refundTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$data['pay_way'] = $payType == 2 ? 4 : $payWay;
|
|
|
|
|
$data['pay_type'] = $payType;
|
|
|
|
|
$data['pay_account'] = $payAccount;
|
|
|
|
|
$data['amount'] = floatval($amount);
|
|
|
|
|
$data['status'] = $payStatus ?? $record['status'];
|
|
|
|
|
$data['payer'] = $payer;
|
|
|
|
|
$data['update_time'] = time();
|
|
|
|
|
|
|
|
|
|
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->save($data);
|
|
|
|
|
|
|
|
|
|
addOperationLog(['op_type'=>1,'key'=>$promoteData['account'].'/'.$amount,'op_name'=>'编辑会长押金','url'=>U('PresidentDeposit/edit',['id'=>$promoteId]),'menu'=>'推广员-结算单管理-会长押金管理-编辑会长押金']);
|
|
|
|
|
|
|
|
|
|
return $this->success('保存成功', U('records'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function delete()
|
|
|
|
@ -389,163 +285,65 @@ class PresidentDepositController extends ThinkController
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理无需押金
|
|
|
|
|
*/
|
|
|
|
|
public function handleNoDeposit($promoteId)
|
|
|
|
|
{
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
|
|
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
|
$data['pay_way'] = 0;
|
|
|
|
|
$data['pay_type'] = PresidentDepositService::PAY_TYPE_NONE;
|
|
|
|
|
$data['pay_account'] = '';
|
|
|
|
|
$data['amount'] = 0;
|
|
|
|
|
$data['payer'] = '';
|
|
|
|
|
$data['status'] = 1;
|
|
|
|
|
$data['pay_confirm_time'] = time();
|
|
|
|
|
$data['create_time'] = time();
|
|
|
|
|
$data['update_time'] = time();
|
|
|
|
|
$data['status'] = 1;
|
|
|
|
|
$data['pay_accept_time'] = $data['refund_time'] = 0;
|
|
|
|
|
$data['promote_id'] = $promoteId;
|
|
|
|
|
|
|
|
|
|
if (!$record) {
|
|
|
|
|
M('president_deposit', 'tab_')->add($data);
|
|
|
|
|
} else {
|
|
|
|
|
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->save($data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$promoteData = M('promote', 'tab_')->field('account')->where(['id' => $promoteId])->find();
|
|
|
|
|
addOperationLog(['op_type'=>1,'key'=>$promoteData['account'],'op_name'=>'编辑无需押金','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-无需押金']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function noDeposit()
|
|
|
|
|
{
|
|
|
|
|
$promoteId = I('id', 0);
|
|
|
|
|
$this->handleNoDeposit($promoteId);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function refund()
|
|
|
|
|
{
|
|
|
|
|
if (isMarketAdmin()) {
|
|
|
|
|
return $this->error('无法操作记录');
|
|
|
|
|
}
|
|
|
|
|
$promoteIds = I('ids', []);
|
|
|
|
|
if (count($promoteIds) == 0) {
|
|
|
|
|
$id = I('id', 0);
|
|
|
|
|
$company = M('promote_company', 'tab_')->where(['id' => $id])->find();
|
|
|
|
|
if (is_null($company)) {
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'message' => '无选中项'
|
|
|
|
|
'message' => '推广公司不存在'
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$checkStatus = true;
|
|
|
|
|
$records = M('president_deposit', 'tab_')->field(['id', 'status'])->where(['promote_id' => ['in', $promoteIds]])->select();
|
|
|
|
|
foreach ($records as $record) {
|
|
|
|
|
if ($record['status'] != 1) {
|
|
|
|
|
$checkStatus = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!$checkStatus) {
|
|
|
|
|
try {
|
|
|
|
|
$record = M('president_deposit', 'tab_')->where(['company_id' => $id])->find();
|
|
|
|
|
$service = new PresidentDepositService();
|
|
|
|
|
$service->handleNoDeposit($company, $record);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'message' => '含有非已到账状态记录,不可批量操作'
|
|
|
|
|
'message' => $e->getMessage()
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$promoteData = M('promote','tab_')
|
|
|
|
|
->field('account,amount')
|
|
|
|
|
->join('left join tab_president_deposit on tab_president_deposit.promote_id=tab_promote.id')
|
|
|
|
|
->where(['tab_promote.id'=>['in', $promoteIds]])
|
|
|
|
|
->select();
|
|
|
|
|
|
|
|
|
|
// dump($promoteData);die();
|
|
|
|
|
|
|
|
|
|
foreach ($promoteData as $key => $value) {
|
|
|
|
|
if ($value['amount']) {
|
|
|
|
|
addOperationLog(['op_type'=>1,'key'=>$value['account'].'/'.$value['amount'],'op_name'=>'编辑押金已退款','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-押金已退款']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->save([
|
|
|
|
|
'status' => 2,
|
|
|
|
|
'refund_time' => time(),
|
|
|
|
|
'update_time' => time(),
|
|
|
|
|
'pay_accept_time' => 0
|
|
|
|
|
]);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function payConfirm()
|
|
|
|
|
public function refund()
|
|
|
|
|
{
|
|
|
|
|
if (isMarketAdmin()) {
|
|
|
|
|
$ids = I('ids', []);
|
|
|
|
|
try {
|
|
|
|
|
$service = new PresidentDepositService();
|
|
|
|
|
$service->batchRefund($ids);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'message' => '无权限操作记录'
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
$promoteIds = I('ids', []);
|
|
|
|
|
if (count($promoteIds) == 0) {
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'message' => '无选中项'
|
|
|
|
|
'message' => $e->getMessage()
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
$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 ($record['pay_type'] != PresidentDepositService::PAY_TYPE_NONE && empty($record['pay_accept_time'])) {
|
|
|
|
|
// $this->ajaxReturn([
|
|
|
|
|
// 'status' => 0,
|
|
|
|
|
// 'message' => '含有待确认收到押金时间记录,不可批量操作'
|
|
|
|
|
// ]);
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
if (!$checkStatus) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function payConfirm()
|
|
|
|
|
{
|
|
|
|
|
$ids = I('ids', []);
|
|
|
|
|
try {
|
|
|
|
|
$service = new PresidentDepositService();
|
|
|
|
|
$service->batchPayConfirm($ids);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'message' => '含有非待确认状态记录,不可批量操作'
|
|
|
|
|
'message' => $e->getMessage()
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$promoteData = M('promote','tab_')
|
|
|
|
|
->field('account,amount')
|
|
|
|
|
->join('left join tab_president_deposit on tab_president_deposit.promote_id=tab_promote.id')
|
|
|
|
|
->where(['tab_promote.id'=>['in', $promoteIds]])
|
|
|
|
|
->select();
|
|
|
|
|
|
|
|
|
|
// dump($promoteData);die();
|
|
|
|
|
|
|
|
|
|
foreach ($promoteData as $key => $value) {
|
|
|
|
|
if ($value['amount']) {
|
|
|
|
|
addOperationLog(['op_type'=>1,'key'=>$value['account'].'/'.$value['amount'],'op_name'=>'编辑确认押金到账','url'=>U('PresidentDeposit/records'),'menu'=>'推广员-结算单管理-会长押金管理-确认押金到账']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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'))
|
|
|
|
|
]);
|
|
|
|
|
$this->ajaxReturn([
|
|
|
|
|
'status' => 1,
|
|
|
|
|
'message' => '操作成功'
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|