Commit 0407dd27 authored by hujun's avatar hujun

成交报告计算总数

parent ed868571
......@@ -23,9 +23,17 @@ use app\model\OPartialCommission;
use app\model\OPayLogModel;
use app\model\ORefundModel;
use app\task\controller\ResultsSummaryNewTask;
use think\Request;
class Finance extends Basic
{
private $m_bargain;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->m_bargain = new OBargainModel();
}
/**
* 成交报告
*
......@@ -71,10 +79,10 @@ class Finance extends Basic
a.order_id,content,house_number,a.is_open,a.agent_id,a.submit_agent_name,
a.price,a.audit_level,';
$fields .= 'e.id as partial_commission_id';
$where['a.father_id'] = 0;
$where['a.status'] = 11;
$order = 'a.id desc';
$is_show = 1;
if (!empty($this->params['create_time']) && empty($this->params['end_time'])) {
$where['a.create_time'] = [ '> time', $this->params['create_time'] . ' 00:00:00' ];
......@@ -130,29 +138,35 @@ class Finance extends Basic
//成交报告列表-待撤销
$where['a.status'] = 20;
$where['a.audit_level'] = 0;
$is_show = 0;
break;
case 6 :
//成交报告列表-已撤销
$where['a.status'] = 21;
$is_show = 0;
break;
case 7 :
//成交报告列表-待撤销-第一级审核
$where['a.status'] = 20;
$where['a.audit_level'] = 1;
$is_show = 0;
break;
case 8 :
//成交报告列表-待撤销-第二级审核
$where['a.status'] = 20;
$where['a.audit_level'] = 2;
$is_show = 0;
break;
case 9 :
//成交报告列表-待撤销-第三级审核
$where['a.status'] = 20;
$where['a.audit_level'] = 3;
$is_show = 0;
break;
case 10 :
//成交报告列表-待撤销-第三级审核
$where['a.status'] = ['IN','10,11,13'];
$is_show = 0;
break;
default :
//成交报告列表-第一级审核
......@@ -166,8 +180,6 @@ class Finance extends Basic
}
try {
$bargain = new OBargainModel();
if (!empty($this->params['district_id'])) {
$agent_where['a.district_id'] = $this->params['district_id'];
}
......@@ -223,9 +235,25 @@ class Finance extends Basic
}
}
$data['data']['list'] = $bargain->getBargainList($pageNo, $pageSize, $order, $fields, $where);
$data['data']['total'] = $bargain->getBargainTotal($where);
$list_data = $this->m_bargain->getBargainList($pageNo, $pageSize, $order, $fields, $where);
$m_real = new ORealIncome();
foreach ($list_data as $k=>$v) {
$list_data[$k]['income_money'] = $m_real->sumField('money',['bargain_id'=>$v['id'], 'is_del'=>0]);
}
$data['data']['list'] = $list_data;
$data['data']['total'] = $this->m_bargain->getBargainTotal($where);
$data['data']['step'] = $check_status;
if ($is_show) {
$data['data']['total_commission'] = $this->m_bargain->getBargainListSum('commission', $where);
$data['data']['total_income_money'] = $m_real->getIncomeListSum('money', $where);
} else {
$data['data']['total_commission'] = 0;
$data['data']['total_income_money'] = 0;
}
} catch (\Exception $e) {
return $this->response(101, '内部错误,获取列表失败!请联系运营。' . $e->getMessage());
}
......@@ -244,8 +272,6 @@ class Finance extends Basic
$data['msg'] = "";
$data['data'] = [];
$bargain = new OBargainModel();
if (empty($this->params['id']) || empty($this->params['source']) || empty($this->params['status'])) {
$data['code'] = 101;
$data['msg'] = 'Id is null';
......@@ -257,7 +283,7 @@ class Finance extends Basic
$params['remark'] = $this->params['remark'];
try {
$status = $bargain->addCheckBargain($this->params['id'], $params, $this->params['source'], $this->params['status']);
$status = $this->m_bargain->addCheckBargain($this->params['id'], $params, $this->params['source'], $this->params['status']);
} catch (\Exception $e) {
return $this->response(101, '内部错误,审核失败!请联系运营。');
}
......@@ -288,13 +314,11 @@ class Finance extends Basic
$data['code'] = 101;
$data['msg'] = 'Id is null.';
} else {
$bargain = new OBargainModel();
$fields = 'a.id,a.create_time,b.user_phone,b.user_name,d.internal_title,d.internal_address,a.is_open,a.order_id,';
$fields .= 'a.trade_type,a.house_number,a.commission,a.content,d.shop_type,a.industry_type,a.price,a.estimated_receipt_date,';
$fields .= 'e.id as partial_commission_id,';
$fields .= 'b.user_id,d.id as house_id';
$where['a.id'] = $this->params['id'];
$data['data'] = $bargain->getBargainInfo($fields, $where);
$data['data'] = $this->m_bargain->getBargainInfo($fields, $where);
}
return $this->response($data['code'], $data['msg'], $data['data']);
......@@ -365,10 +389,10 @@ class Finance extends Basic
$update_data['estimated_receipt_date'] = $this->params['estimated_receipt_date']; //预计收款时间
$m_bargain = new OBargainModel();
$m_real = new ORealIncome();
$data['data'] = $m_bargain->updateBargainById($this->params['id'], $update_data);
$data['data'] = $this->m_bargain->updateBargainById($this->params['id'], $update_data);
if ($data['data'] == 1) {
//新增实收佣金 array 5 todo feel_id 大于0 的表示新增 否则修改
......@@ -440,10 +464,8 @@ class Finance extends Basic
$data['code'] = 101;
$data['msg'] = '提交信息错误!';
} else {
$bargain = new OBargainModel();
try {
$data['data'] = $bargain->addBargainCommission($this->params['id'], $this->userId, $this->params['agent_id'],
$data['data'] = $this->m_bargain->addBargainCommission($this->params['id'], $this->userId, $this->params['agent_id'],
$this->params['role'], $this->params['scale_fee'], $this->params['scale'], 1);
$this->updatePerformance((int)$this->params['bargain_id'], (int)$this->params['agent_id']);
......@@ -478,12 +500,11 @@ class Finance extends Basic
$data['code'] = 101;
$data['msg'] = 'Id is null.';
} else {
$m_comm = new OBargainModel();
$fields = 'a.id,a.role,a.agent_id,a.scale,a.scale_fee,a.father_id';
$fields .= ',e.id as partial_commission_id';
$where[0] = [ 'EXP', "a.id = {$this->params['id']} or a.father_id = {$this->params['id']}" ];
$where['a.status'] = [ '<>', 30 ];
$data['data'] = $m_comm->getBargainPartial(1, 100, 'a.id desc', $fields, $where, $this->params['id']);
$data['data'] = $this->m_bargain->getBargainPartial(1, 100, 'a.id desc', $fields, $where, $this->params['id']);
}
return $this->response($data['code'], $data['msg'], $data['data']);
......@@ -579,20 +600,19 @@ class Finance extends Basic
return $this->response("101", "请求参数错误");
}
$bargain = new OBargainModel();
$is = $bargain->ifBargainNumByOrderId([ 'id' => $this->params['id'] ]);
$is = $this->m_bargain->ifBargainNumByOrderId([ 'id' => $this->params['id'] ]);
if ($is < 1) {
return $this->response("101", "没有成交报告信息");
}
$bargain->updateBargainById($this->params['id'], [ 'status' => 12 ]);
$this->m_bargain->updateBargainById($this->params['id'], [ 'status' => 12 ]);
$params['audit_id'] = $this->userId;
$params['audit_name'] = $this->userName;
$params['audit_id'] = $this->userId;
$params['audit_level'] = $this->params['check_status'];
$params['remark'] = $this->params['remark'];
$status = $bargain->addCheckBargain($this->params['id'], $params, 2, 2);
$status = $this->m_bargain->addCheckBargain($this->params['id'], $params, 2, 2);
if ($status) {
$data['code'] = 200;
......@@ -844,8 +864,7 @@ class Finance extends Basic
return $this->response(101, '请求参数错误');
}
$m_bargain = new OBargainModel();
$bargain_data = $m_bargain->getCheckBargain('a.id,a.agent_id,a.role,a.create_time,d.store_id,d.district_id', $this->params['bargain_id']);
$bargain_data = $this->m_bargain->getCheckBargain('a.id,a.agent_id,a.role,a.create_time,d.store_id,d.district_id', $this->params['bargain_id']);
//排除成交报告其它状态
if (empty($bargain_data['id'])) {
......@@ -960,7 +979,7 @@ class Finance extends Basic
$update_data['scale_fee'] = $v['scale_fee'];
$update_data['scale'] = $v['scale'];
$update_data['agent_id'] = $v['agent_id'];
$m_bargain->updateBargainById($v['bargain_id'], $update_data);
$this->m_bargain->updateBargainById($v['bargain_id'], $update_data);
$this->updatePerformanceData($v['agent_id'], $v['create_time'], $v['store_id'], $v['district_id']);
}
}
......@@ -1020,8 +1039,7 @@ class Finance extends Basic
return $this->response(101, '分佣方角色为空');
}
$m_bargain = new OBargainModel();
$bargain_data = $m_bargain->getCheckBargain('a.id', $this->params['bargain_id']);
$bargain_data = $this->m_bargain->getCheckBargain('a.id', $this->params['bargain_id']);
//排除成交报告其它状态
if (empty($bargain_data['id'])) {
......@@ -1078,8 +1096,7 @@ class Finance extends Basic
if (empty($this->params['bargain_id'])) {
return $this->response(101, '请求参数错误!');
}
$bargain = new OBargainModel();
$data = $bargain->getAgentTypeByBargainId($this->params['bargain_id']);
$data = $this->m_bargain->getAgentTypeByBargainId($this->params['bargain_id']);
return $this->response(200, "", $data);
}
......@@ -1540,12 +1557,11 @@ class Finance extends Basic
$data['is_del'] = 1; //去除之前的审核记录
$data = $m_financial->editData($data, $this->params['bargain_id'], 'bargain_id');
$m_bargain = new OBargainModel();
$update_data['status'] = 10;
$update_data['audit_level'] = 0;
$where[] = [ 'EXP', 'id=' . $this->params['bargain_id'] . ' or father_id=' . $this->params['bargain_id'] ];
$where['status'] = [ '<>', 30 ];
$m_bargain->updateBargainByWhere($update_data, $where);
$this->m_bargain->updateBargainByWhere($update_data, $where);
$msg = '';
if ($data > 0) {
$code = 200;
......@@ -1571,7 +1587,6 @@ class Finance extends Basic
return $this->response(101, '参数错误');
}
$m_bargain = new OBargainModel();
$m_partial_commission = new OPartialCommission();
$confirm_status = $m_partial_commission->checkConfirmStatus($this->params['bargain_id']);
......@@ -1583,7 +1598,7 @@ class Finance extends Basic
$insert_data['audit_id'] = $this->userId;
$insert_data['audit_name'] = $this->userName;
$insert_data['audit_level'] = 3;
$data = $m_bargain->addCheckBargain($this->params['bargain_id'], $insert_data, 1, 11);
$data = $this->m_bargain->addCheckBargain($this->params['bargain_id'], $insert_data, 1, 11);
$code = 200;
$msg = "";
......@@ -1674,8 +1689,7 @@ class Finance extends Basic
*/
public function editRecordLog(int $bargain_id, string $step_content = '', int $type = 1, string $house_number = '', int $is_open = 0)
{
$m_bargain = new OBargainModel();
$house_number_table = $m_bargain->getCheckBargain('a.house_number,c.internal_address', (int)$bargain_id, '10,11,12,13,20,21,30');
$house_number_table = $this->m_bargain->getCheckBargain('a.house_number,c.internal_address', (int)$bargain_id, '10,11,12,13,20,21,30');
$step_content .= "[{$house_number_table['internal_address']}]";
if (empty($house_number)) {
......@@ -1720,9 +1734,8 @@ class Finance extends Basic
return $this->response(101, '参数错误');
$partial_id = $this->params['partial_id'];
$m_partial = new OBargainModel();
$data['status'] = 30;
$num = $m_partial->updateBargainById($partial_id, $data);
$num = $this->m_bargain->updateBargainById($partial_id, $data);
if ($num > 0) {
$this->updatePerformance($this->params['partial_id']);
......@@ -1773,11 +1786,9 @@ class Finance extends Basic
return $this->response(101, '成交报告id为空');
}
$m_bargain = new OBargainModel();
if ($this->request->isGet()) {
$field = 'a.id,a.scale,a.agent_id,a.role,a.scale_fee,b.scale as new_scale,b.should_commission';
$data = $m_bargain->getBargainPartialDetail($field, [ 'id' => $this->params['bargain_id'] ]);
$data = $this->m_bargain->getBargainPartialDetail($field, [ 'id' => $this->params['bargain_id'] ]);
return $this->response(200, '', $data);
}
......@@ -1790,7 +1801,7 @@ class Finance extends Basic
}
//检查成交报告是否存在
$data_arr = $m_bargain->getBargainPartialDetail('a.id,a.agent_id,a.create_time', [ 'id' => $this->params['bargain_id'] ]);
$data_arr = $this->m_bargain->getBargainPartialDetail('a.id,a.agent_id,a.create_time', [ 'id' => $this->params['bargain_id'] ]);
if (empty($data_arr['id'])) {
return $this->response(101, '没有成交报告信息');
......@@ -1801,7 +1812,7 @@ class Finance extends Basic
$update['role'] = $this->params['role'];
$update['scale_fee'] = $this->params['scale_fee'];
$data = $m_bargain->updateBargainById($this->params['bargain_id'], $update); //更改分佣方
$data = $this->m_bargain->updateBargainById($this->params['bargain_id'], $update); //更改分佣方
$comm = new OPartialCommission();
$partial_data['scale'] = $this->params['scale'];
......@@ -1811,7 +1822,7 @@ class Finance extends Basic
$this->updatePerformance(0, $data_arr['agent_id']);
/*记录日志 start*/
$bargain_data = $m_bargain->selectBargainByOrderNo('agent_id,father_id', [ 'id' => $this->params['bargain_id'] ]);
$bargain_data = $this->m_bargain->selectBargainByOrderNo('agent_id,father_id', [ 'id' => $this->params['bargain_id'] ]);
$father_id = $this->params['bargain_id'];
if ($bargain_data[0]['father_id'] != 0) {
$father_id = $bargain_data[0]['father_id'];
......@@ -1853,9 +1864,8 @@ class Finance extends Basic
$code = 200;
$this->editRecordLog($this->params['bargain_id'], '[撤销成交报告]', 3); //日志记录
$this->updatePerformance($this->params['bargain_id']);
$bargain = new OBargainModel();
$bargain_data = $bargain->getBargainDetail('order_id,order_no,agent_id', [ 'id' => $this->params['bargain_id'] ]);
$bargain_data = $this->m_bargain->getBargainDetail('order_id,order_no,agent_id', [ 'id' => $this->params['bargain_id'] ]);
$financial_data['bargain_id'] = $this->params['bargain_id'];
$financial_data['audit_name'] = $this->userName;
$financial_data['audit_id'] = $this->userId;
......@@ -1927,8 +1937,7 @@ class Finance extends Basic
$code = 200;
$msg = '';
$m_real_income = new ORealIncome();
$m_bargain = new OBargainModel();
$father_id = $m_bargain->getBargainDetail('father_id', ['id'=>$this->params['bargain_id']]);
$father_id = $this->m_bargain->getBargainDetail('father_id', ['id'=>$this->params['bargain_id']]);
if (empty($father_id[0]['father_id'])) {
$bargain_id = $this->params['bargain_id'];
......
......@@ -371,6 +371,22 @@ class OBargainModel extends Model
->select();
}
/**
* @param string $field
* @param string $params
* @return float|int
*/
public function getBargainListSum($field = '', $params = '')
{
return $this->alias('a')
->join('o_report b', 'a.report_id = b.id', 'left')
->join('o_order c', 'a.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->where($params)
->group('a.id')
->sum($field);
}
/**
* 成交报告总数
*
......@@ -1514,4 +1530,19 @@ class OBargainModel extends Model
echo '--------------';*/
return $return;
}
/**
* @param $field
* @param $where
* @return float|int
*/
public function sumField($field, $where) {
return $this->field($field)->alias('a')
->join('o_report b', 'a.report_id = b.id', 'left')
->join('o_order c', 'a.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->where($where)
->group('a.id')
->sum($field);
}
}
\ No newline at end of file
......@@ -57,4 +57,30 @@ class ORealIncome extends BaseModel
return $result;
}
/**
* @param $field
* @param $where
* @return float|int
*/
public function sumField($field, $where) {
return $this->where($where)
->sum($field);
}
/**
* @param string $field
* @param string $params
* @return float|int
*/
public function getIncomeListSum($field = '', $params = '')
{
return $this->alias('e')
->join('o_bargain a', 'e.bargain_id = a.id', 'left')
->join('o_report b', 'a.report_id = b.id', 'left')
->join('o_order c', 'a.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->where($params)
->group('a.id')
->sum($field);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment