You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
4.9 KiB
PHTML

5 years ago
<?php
namespace Admin\Controller;
use User\Api\UserApi as UserApi;
use Base\Service\PresidentDepositService;
/**
* 会长押金管理
*/
class PresidentDepositController extends ThinkController
{
public function records() {
$promotes = M('promote', 'tab_')->where(['company_belong' => 1, 'level' => 1])->select();
$relationQuery = M('promote_company', 'tab_')->field(['id', 'company_name']);
$promotes = $this->mergeOneReletions('company', $promotes, $relationQuery, 'company_id', 'id');
$relationQuery = M('president_deposit', 'tab_');
$promotes = $this->mergeOneReletions('presidentDeposit', $promotes, $relationQuery, 'id', 'promote_id');
/*echo '<pre>';
var_dump($promotes);
echo '</pre>';
die();*/
$this->assign('payWays', PresidentDepositService::$payWays);
$this->assign('payTypes', PresidentDepositService::$payTypes);
$this->assign('statusList', PresidentDepositService::$statusList);
$this->assign('promotes', $promotes);
$this->display();
}
private function mergeOneReletions($name, $records, $relationQuery, $selfColumn, $relationColumn = 'id')
{
$values = array_column($records, $selfColumn);
$rows = $relationQuery->where([$relationColumn => ['in', $values]])->select();
foreach ($records as &$record) {
$record[$name] = null;
}
foreach ($records as &$record) {
foreach ($rows as $row) {
if ($record[$selfColumn] == $row[$relationColumn]) {
$record[$name] = $row;
}
}
}
return $records;
}
public function edit()
{
$id = I('id', 0);
$promote = M('promote', 'tab_')->field(['account', 'id'])->where(['id' => $id])->find();
$this->assign('payWays', PresidentDepositService::$payWays);
$this->assign('payTypes', PresidentDepositService::$payTypes);
$this->assign('promote', $promote);
$this->display('form');
}
public function save()
{
$payWay = I('pay_way', 0);
$payType = I('pay_type', 0);
$promoteId = I('id', 0);
$payAccount = I('pay_account', 0);
$amount = I('amount', 0);
$payer = I('payer', 0);
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
if (!$record) {
$data = [];
$data['pay_way'] = $payWay;
$data['pay_type'] = $payType;
$data['promote_id'] = $promoteId;
$data['pay_account'] = $payAccount;
$data['amount'] = $amount;
$data['payer'] = $payer;
M('president_deposit', 'tab_')->add($data);
}
}
public function delete()
{
$promoteId = I('id', 0);
M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->delete();
$this->ajaxReturn([
'status' => 1,
'message' => '删除成功'
]);
}
public function noDeposit()
{
$promoteId = I('id', 0);
$record = M('president_deposit', 'tab_')->where(['promote_id' => $promoteId])->find();
if (!$record) {
$data = [];
$data['pay_way'] = 0;
$data['pay_type'] = PresidentDepositService::PAY_TYPE_NONE;
$data['promote_id'] = $promoteId;
$data['pay_account'] = '';
$data['amount'] = 0;
$data['payer'] = '';
$data['create_time'] = time();
$data['update_time'] = time();
M('president_deposit', 'tab_')->add($data);
}
$this->ajaxReturn([
'status' => 1,
'message' => '操作成功'
]);
}
public function refund()
{
$promoteIds = I('ids', []);
if (count($promoteIds) == 0) {
$this->ajaxReturn([
'status' => 0,
'message' => '无选中项'
]);
}
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->update([
'status' => $payType,
'refund_time' => time()
]);
$this->ajaxReturn([
'status' => 1,
'message' => '操作成功'
]);
}
public function payConfirm()
{
$promoteIds = I('ids', []);
if (count($promoteIds) == 0) {
$this->ajaxReturn([
'status' => 0,
'message' => '无选中项'
]);
}
M('president_deposit', 'tab_')->where(['promote_id' => ['in', $promoteIds]])->update([
'status' => $payType,
'pay_confirm_time' => time()
]);
$this->ajaxReturn([
'status' => 1,
'message' => '操作成功'
]);
}
}