diff --git a/Application/Admin/Controller/PresidentDepositController.class.php b/Application/Admin/Controller/PresidentDepositController.class.php
index e0ae9920f..4fc4d139d 100644
--- a/Application/Admin/Controller/PresidentDepositController.class.php
+++ b/Application/Admin/Controller/PresidentDepositController.class.php
@@ -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' => '操作成功'
- ]);
}
}
diff --git a/Application/Admin/Controller/PromoteCompanyController.class.php b/Application/Admin/Controller/PromoteCompanyController.class.php
index 8c9b3e8cc..a169f52e0 100644
--- a/Application/Admin/Controller/PromoteCompanyController.class.php
+++ b/Application/Admin/Controller/PromoteCompanyController.class.php
@@ -402,7 +402,6 @@ class PromoteCompanyController extends ThinkController
'info' => $e->getMessage()
));
}
-
$save['create_time'] = $time;
$save['turnover_ratio'] = $this->setTurnoverRatio($save);
$res = D("PromoteCompanyVerify")->add_db($save);
diff --git a/Application/Admin/View/PresidentDeposit/form.html b/Application/Admin/View/PresidentDeposit/form.html
index b6a496a7a..3bf23e540 100644
--- a/Application/Admin/View/PresidentDeposit/form.html
+++ b/Application/Admin/View/PresidentDeposit/form.html
@@ -82,9 +82,9 @@
- *会长账号: |
+ *推广公司: |
- {$promote.account}
+ {$company.company_name}
|
@@ -148,7 +148,7 @@
-
+
-
diff --git a/Application/Admin/View/PresidentDeposit/show.html b/Application/Admin/View/PresidentDeposit/show.html
index 3389fd62c..38094e376 100644
--- a/Application/Admin/View/PresidentDeposit/show.html
+++ b/Application/Admin/View/PresidentDeposit/show.html
@@ -81,9 +81,9 @@
- 会长账号: |
+ 推广公司: |
- {$promote.account}
+ {$company.company_name}
|
@@ -94,6 +94,7 @@
+
付款方式: |
@@ -136,6 +137,7 @@
|
+
diff --git a/Application/Base/Service/PresidentDepositService.class.php b/Application/Base/Service/PresidentDepositService.class.php
index 592e940a6..f2cb9d733 100644
--- a/Application/Base/Service/PresidentDepositService.class.php
+++ b/Application/Base/Service/PresidentDepositService.class.php
@@ -62,8 +62,9 @@ class PresidentDepositService
}
}
- public function save($params, $company)
+ public function save($params, $company = null)
{
+ $companyId = $params['company_id'] ?? 0;
$payWay = $params['pay_way'] ?? 0;
$payType = $params['pay_type'] ?? 0;
$payAccount = $params['pay_account'] ?? '';
@@ -75,17 +76,25 @@ class PresidentDepositService
$payAcceptTime = $payAcceptTime ? strtotime($payAcceptTime) : 0;
$refundTime = $refundTime ? strtotime($refundTime) : 0;
+ if (is_null($company)) {
+ $company = M('promote_company', 'tab_')->where(['id' => $companyId, 'company_belong' => ['in', [1, 2]]])->find();
+ if (is_null($company)) {
+ throw new \Exception('推广公司不存在');
+ }
+ }
+
$record = M('president_deposit', 'tab_')->where(['company_id' => $company['id']])->find();
+ $this->checkBeforeSave($params, $record);
if ($params['pay_type'] == 3) {
return $this->handleNoDeposit($company, $record);
}
if ($record) {
- $this->update();
+ $this->update($params, $company, $record);
addOperationLog(['op_type'=>1,'key'=>$company['company_name'].'/'.$params['amount'],'op_name'=>'编辑会长押金','url'=>U('PresidentDeposit/edit',['id'=>$company['id']]),'menu'=>'推广员-结算单管理-会长押金管理-编辑会长押金']);
} else {
- $this->add();
+ $this->add($params, $company);
addOperationLog(['op_type'=>0,'key'=>$company['company_name'].'/'.$params['amount'],'op_name'=>'新增会长押金','url'=>U('PresidentDeposit/edit',['id'=>$company['id']]),'menu'=>'推广员-结算单管理-奖罚记录管理-新增会长押金']);
}
}
diff --git a/Application/Base/Service/PromoteCompanyService.class.php b/Application/Base/Service/PromoteCompanyService.class.php
index 7149b78f0..df4ec23bd 100644
--- a/Application/Base/Service/PromoteCompanyService.class.php
+++ b/Application/Base/Service/PromoteCompanyService.class.php
@@ -130,11 +130,13 @@ class PromoteCompanyService
public function getVerifyingPromotes($exceptId = 0)
{
$promotes = [];
- $verifyCompanies = M('promote_company_verify', 'tab_')->field(['company_info'])->where(['status' => 0])->getField('company_info', true);
+ $verifyCompanies = M('promote_company_verify', 'tab_')->field(['company_info'])->where(['verify_status' => ['in', [0, 1]]])->getField('company_info', true);
if ($verifyCompanies) {
foreach ($verifyCompanies as $item) {
$row = json_decode($item, true);
- $promotes = array_merge($promotes, $row['promotes']);
+ if (isset($row['promotes'])) {
+ $promotes = array_merge($promotes, $row['promotes']);
+ }
}
}
return $promotes;
@@ -195,14 +197,14 @@ class PromoteCompanyService
$data = [];
if ($bindRelation['collaborate_way'] == 1) {
$data['first_company_id'] = $company['id'];
- $data['first_company_id'] = $company['company_name'];
+ $data['first_company_name'] = $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_name'] = $selfCompany['partner'];
$data['first_company_type'] = 0;
$data['second_company_id'] = $company['id'];
$data['second_company_name'] = $company['company_name'];
diff --git a/Application/Base/Service/PromoteService.class.php b/Application/Base/Service/PromoteService.class.php
index f61253769..7d3ead135 100644
--- a/Application/Base/Service/PromoteService.class.php
+++ b/Application/Base/Service/PromoteService.class.php
@@ -1041,9 +1041,9 @@ class PromoteService {
public function isPresidentAccess($promote)
{
- $topPromote = $this->getTopPromote($promote);
- if (in_array($topPromote['company_belong'], [1, 2])) {
- $record = M('president_deposit', 'tab_')->where(['promote_id' => $topPromote['id']])->find();
+ $company = M('promote_company', 'tab_')->field(['id', 'company_belong'])->where(['id' => $promote['company_id']])->find();
+ if (in_array($company['company_belong'], [1, 2])) {
+ $record = M('president_deposit', 'tab_')->where(['company_id' => $company['id']])->find();
if (!$record) {
return false;
}