Commit db8627b3 authored by zhuwei's avatar zhuwei

后台罚款账单表

parent 1fc6ffe6
...@@ -201,18 +201,21 @@ class AmercementService ...@@ -201,18 +201,21 @@ class AmercementService
$redis_cache = new RedisCacheService(); $redis_cache = new RedisCacheService();
foreach ($result as $key => $val) { foreach ($result as $key => $val) {
$result[$key]['type_name'] = $this->getTypeName($val['type']); $result[$key]['type_name'] = $this->getTypeName($val['type']);
$agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']); $agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']);
$result[$key]['submit_agent_name'] = $agent_data['name']; $result[$key]['submit_agent_name'] = $agent_data['name'];
$result[$key]['submit_agent_phone'] = $agent_data['phone']; $result[$key]['submit_agent_phone'] = $agent_data['phone'];
if($status == 0){//待支付 if($status == 0){//待支付
$forfeit_penalty = 100; $now_time = date("Y-m-d H:i:s", time());
$forfeit_penalty = $this->updateForfeitPenalty($val['id'],$val['create_time'],$now_time,$val['money']);
$result[$key]['forfeit_penalty'] = $forfeit_penalty;//滞纳金 $result[$key]['forfeit_penalty'] = $forfeit_penalty;//滞纳金
$result[$key]['money_sum'] = $forfeit_penalty + $result[$key]['money'];//罚款总金额 $result[$key]['money_sum'] = $forfeit_penalty + $result[$key]['money'];//罚款总金额
}elseif($status == 1){//已支付 }elseif($status == 1){//已支付
$forfeit_penalty = 100; $forfeit_penalty = 100;
$result[$key]['forfeit_penalty'] = $forfeit_penalty; $result[$key]['forfeit_penalty'] = $val['forfeit_penalty'];
$result[$key]['money_sum'] = $forfeit_penalty + $result[$key]['money']; $result[$key]['money_sum'] = $forfeit_penalty + $result[$key]['money'];
$result[$key]['pay_time'] = ''; $result[$key]['pay_time'] = '';
} }
...@@ -222,6 +225,27 @@ class AmercementService ...@@ -222,6 +225,27 @@ class AmercementService
} }
/**
* 计算滞纳金
* @param $id
* @param $time
* @param $now_time
* @param $money
* @return int|number
*/
public function updateForfeitPenalty($id,$time,$now_time,$money)
{
$forfeit_penalty = 0;
$num = $this->diffBetweenTwoDays ($time, $now_time);
if(($num > 0) && ($money > 0)){
$money_every_day = $money * 0.2;
$forfeit_penalty = $num * $money_every_day;
}
$this->updateAmercement($id,['forfeit_penalty'=>$forfeit_penalty]);
return $forfeit_penalty;
}
/** /**
* 罚款图片 * 罚款图片
* @param $id * @param $id
...@@ -302,6 +326,7 @@ class AmercementService ...@@ -302,6 +326,7 @@ class AmercementService
/** /**
* 更新数据 编辑 * 更新数据 编辑
* @param $id * @param $id
* @param $params
* @return bool * @return bool
*/ */
public function updateAmercement($id,$params) public function updateAmercement($id,$params)
...@@ -310,6 +335,9 @@ class AmercementService ...@@ -310,6 +335,9 @@ class AmercementService
if ((isset($params['money'])) && ($params['money'] > 0)) if ((isset($params['money'])) && ($params['money'] > 0))
$data['money'] = $params['money']; $data['money'] = $params['money'];
if ((isset($params['forfeit_penalty'])) && ($params['forfeit_penalty'] > 0))
$data['forfeit_penalty'] = $params['forfeit_penalty'];
if ((isset($params['type'])) && (in_array($params['type'], [ 0, 1 ]))) if ((isset($params['type'])) && (in_array($params['type'], [ 0, 1 ])))
$data['type'] = $params['type']; $data['type'] = $params['type'];
...@@ -367,11 +395,16 @@ class AmercementService ...@@ -367,11 +395,16 @@ class AmercementService
public function getAmercementListPc($params,$page_no, $page_size) public function getAmercementListPc($params,$page_no, $page_size)
{ {
$conditions=$this->buildConditions($params); $conditions=$this->buildConditions($params);
$field = "id,status,type,money,submit_agent_id,agent_id,remarks,create_time"; $field = "id,status,type,money,submit_agent_id,agent_id,remarks,create_time,forfeit_penalty";
$result = $this->m_amercement->getAmercementList($conditions, $field, $page_no, $page_size); $result = $this->m_amercement->getAmercementList($conditions, $field, $page_no, $page_size);
$redis_cache = new RedisCacheService(); $redis_cache = new RedisCacheService();
foreach ($result as $key => $val) { foreach ($result as $key => $val) {
if($val['status'] == 0){
$now_time = date("Y-m-d H:i:s", time());
$forfeit_penalty = $this->updateForfeitPenalty($val['id'],$val['create_time'],$now_time,$val['money']);
$result[$key]['forfeit_penalty'] = $forfeit_penalty;
}
$result[$key]['type_name'] = $this->getTypeName($val['type']); $result[$key]['type_name'] = $this->getTypeName($val['type']);
$result[$key]['status_name'] = $this->getStatusName($val['status']); $result[$key]['status_name'] = $this->getStatusName($val['status']);
$agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']); $agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']);
...@@ -395,11 +428,16 @@ class AmercementService ...@@ -395,11 +428,16 @@ class AmercementService
public function getAmercementListExcel($params,$page_no, $page_size) public function getAmercementListExcel($params,$page_no, $page_size)
{ {
$conditions=$this->buildConditions($params); $conditions=$this->buildConditions($params);
$field = "id,status,type,money,submit_agent_id,agent_id,remarks,create_time"; $field = "id,status,type,money,submit_agent_id,agent_id,remarks,create_time,forfeit_penalty";
$result = $this->m_amercement->getAmercementList($conditions, $field, $page_no, $page_size); $result = $this->m_amercement->getAmercementListExcel($conditions, $field);
$redis_cache = new RedisCacheService(); $redis_cache = new RedisCacheService();
foreach ($result as $key => $val) { foreach ($result as $key => $val) {
if($val['status'] == 0){
$now_time = date("Y-m-d H:i:s", time());
$forfeit_penalty = $this->updateForfeitPenalty($val['id'],$val['create_time'],$now_time,$val['money']);
$result[$key]['forfeit_penalty'] = $forfeit_penalty;
}
$result[$key]['type_name'] = $this->getTypeName($val['type']); $result[$key]['type_name'] = $this->getTypeName($val['type']);
$result[$key]['status_name'] = $this->getStatusName($val['status']); $result[$key]['status_name'] = $this->getStatusName($val['status']);
$agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']); $agent_data = $redis_cache->getRedisCache(2, $val['submit_agent_id']);
...@@ -417,11 +455,12 @@ class AmercementService ...@@ -417,11 +455,12 @@ class AmercementService
$e_data_old['5'] = $v['money']; $e_data_old['5'] = $v['money'];
$e_data_old['6'] = $v['agent_name']; $e_data_old['6'] = $v['agent_name'];
$e_data_old['7'] = $v['status_name']; $e_data_old['7'] = $v['status_name'];
$e_data_old['8'] = $v['forfeit_penalty'];
$e_data_new[] = $e_data_old; $e_data_new[] = $e_data_old;
} }
$field_num = 7; $field_num = 7;
$title = [ '罚款ID', '罚款项目', '提交时间', '提交人', '罚款金额', '被罚款人', '状态']; $title = [ '罚款ID', '罚款项目', '提交时间', '提交人', '罚款金额', '被罚款人', '状态', '滞纳金'];
$title2 = '罚款账单表'; $title2 = '罚款账单表';
$export->exportTable('罚款账单表', $e_data_new, $field_num, $title2, $title); $export->exportTable('罚款账单表', $e_data_new, $field_num, $title2, $title);
...@@ -474,4 +513,26 @@ class AmercementService ...@@ -474,4 +513,26 @@ class AmercementService
/**
* 求两个日期之间相差的天数
* (针对1970年1月1日之后,求之前可以采用泰勒公式)
* @param string $day1
* @param string $day2
* @return number
*/
function diffBetweenTwoDays ($day1, $day2)
{
$second1 = strtotime($day1);
$second2 = strtotime($day2);
if ($second1 < $second2) {
$tmp = $second2;
$second2 = $second1;
$second1 = $tmp;
}
return floor(($second1 - $second2) / 86400);
}
} }
\ No newline at end of file
...@@ -56,6 +56,16 @@ class OAmercementModel extends Model ...@@ -56,6 +56,16 @@ class OAmercementModel extends Model
return $result; return $result;
} }
public function getAmercementListExcel($params, $field)
{
$result = $this->db_
->field($field)
->where($params)
->order('id desc')
->select();
return $result;
}
/**更新数据 /**更新数据
* @param $params * @param $params
......
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