修复导出问题 修复显示金额问题

This commit is contained in:
mkm 2023-05-30 15:37:10 +08:00
parent a61a729ae3
commit 0126357d76
3 changed files with 241 additions and 165 deletions

View File

@ -45,7 +45,7 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 5/7/21
*/
public function getList(array $where,int $page,int $limit)
public function getList(array $where, int $page, int $limit)
{
$query = $this->dao->search($where)->order('create_time DESC');
$count = $query->count();
@ -61,7 +61,7 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 5/7/21
*/
public function getFiniancialTitle(?int $merId,array $where)
public function getFiniancialTitle(?int $merId, array $where)
{
/**
* 平台支出
@ -71,19 +71,19 @@ class FinancialRecordRepository extends BaseRepository
* 退回收入 refund_order + (佣金 brokerage_one,brokerage_two - 退回佣金 refund_brokerage_two,refund_brokerage_one + (手续费 order_charge + 预售手续费 presell_charge - 平台退给商户的手续费 refund_charge
*/
$where['is_mer'] = $merId;
if($merId){
if ($merId) {
//商户收入
$income = $this->dao->search($where)->where('financial_type','in',['order','mer_presell'])->sum('number');
$income = $this->dao->search($where)->where('financial_type', 'in', ['order', 'mer_presell'])->sum('number');
//商户支出
$expend_ = $this->dao->search($where)->where('financial_type','in',['refund_order','brokerage_one','brokerage_two','order_charge','presell_charge'])->sum('number');
$_expend = $this->dao->search($where)->where('financial_type','in',['refund_charge','refund_brokerage_two','refund_brokerage_one'])->sum('number');
$expend = bcsub($expend_,$_expend,2);
$expend_ = $this->dao->search($where)->where('financial_type', 'in', ['refund_order', 'brokerage_one', 'brokerage_two', 'order_charge', 'presell_charge'])->sum('number');
$_expend = $this->dao->search($where)->where('financial_type', 'in', ['refund_charge', 'refund_brokerage_two', 'refund_brokerage_one'])->sum('number');
$expend = bcsub($expend_, $_expend, 2);
$msg = '商户';
}else{
} else {
//平台收入
$income = $this->dao->search($where)->where('financial_type','in',['order','order_presell','presell'])->sum('number');
$income = $this->dao->search($where)->where('financial_type', 'in', ['order', 'order_presell', 'presell'])->sum('number');
//平台支出
$expend = $this->dao->search($where)->where('financial_type','in',['brokerage_one','brokerage_two','order_true','refund_charge','presell_true','order_platform_coupon','order_svip_coupon'])->sum('number');
$expend = $this->dao->search($where)->where('financial_type', 'in', ['brokerage_one', 'brokerage_two', 'order_true', 'refund_charge', 'presell_true', 'order_platform_coupon', 'order_svip_coupon'])->sum('number');
$msg = '平台';
}
$data = [
@ -91,13 +91,13 @@ class FinancialRecordRepository extends BaseRepository
'className' => 'el-icon-s-goods',
'count' => $income,
'field' => '元',
'name' => $msg.'收入'
'name' => $msg . '收入'
],
[
'className' => 'el-icon-s-order',
'count' => $expend,
'field' => '元',
'name' => $msg.'支出'
'name' => $msg . '支出'
],
];
return $data;
@ -113,26 +113,26 @@ class FinancialRecordRepository extends BaseRepository
public function getAdminTitle($where)
{
//订单收入总金额
$count = $this->dao->search($where)->where('financial_type','in',['order','order_presell','presell'])->sum('number');
$count = $this->dao->search($where)->where('financial_type', 'in', ['order', 'order_presell', 'presell'])->sum('number');
//退款支出金额
$refund_order = $this->dao->search($where)->where('financial_type','refund_order')->sum('number');
$refund_order = $this->dao->search($where)->where('financial_type', 'refund_order')->sum('number');
//佣金支出金额
$brokerage_ = $this->dao->search($where)->where('financial_type','in',['brokerage_one','brokerage_two'])->sum('number');
$_brokerage = $this->dao->search($where)->where('financial_type','in',['refund_brokerage_two','refund_brokerage_one'])->sum('number');
$brokerage = bcsub($brokerage_,$_brokerage,2);
$brokerage_ = $this->dao->search($where)->where('financial_type', 'in', ['brokerage_one', 'brokerage_two'])->sum('number');
$_brokerage = $this->dao->search($where)->where('financial_type', 'in', ['refund_brokerage_two', 'refund_brokerage_one'])->sum('number');
$brokerage = bcsub($brokerage_, $_brokerage, 2);
//平台手续费
$charge_ = $this->dao->search($where)->where('financial_type','in',['order_charge','presell_charge'])->sum('number');
$_charge = $this->dao->search($where)->where('financial_type','refund_charge')->sum('number');
$charge = bcsub($charge_,$_charge,2);
$charge_ = $this->dao->search($where)->where('financial_type', 'in', ['order_charge', 'presell_charge'])->sum('number');
$_charge = $this->dao->search($where)->where('financial_type', 'refund_charge')->sum('number');
$charge = bcsub($charge_, $_charge, 2);
//优惠券费用 ,'order_platform_coupon','order_svip_coupon'
$coupon = $this->dao->search($where)->where('financial_type','in',['order_platform_coupon','order_svip_coupon'])->sum('number');
$coupon = $this->dao->search($where)->where('financial_type', 'in', ['order_platform_coupon', 'order_svip_coupon'])->sum('number');
//充值金额
$bill_where = [
'status' => 1,
'date' => $where['date'],
'category' => 'now_money',
];
$bill = app()->make(UserBillRepository::class)->search($bill_where)->where('type','in',['sys_inc_money','recharge'])->sum('number');
$bill = app()->make(UserBillRepository::class)->search($bill_where)->where('type', 'in', ['sys_inc_money', 'recharge'])->sum('number');
//充值消费金额
$bill_where = [
'pm' => 0,
@ -140,7 +140,7 @@ class FinancialRecordRepository extends BaseRepository
'date' => $where['date'],
'category' => 'now_money',
];
$_bill = app()->make(UserBillRepository::class)->search($bill_where)->where('type','in',['presell','pay_product','sys_dec_money'])->sum('number');
$_bill = app()->make(UserBillRepository::class)->search($bill_where)->where('type', 'in', ['presell', 'pay_product', 'sys_dec_money'])->sum('number');
//产生交易的商户数
$mer_number = $this->dao->search($where)->group('mer_id')->count();
@ -194,7 +194,7 @@ class FinancialRecordRepository extends BaseRepository
'name' => '优惠券金额'
]
];
return compact('stat');
return compact('stat');
}
/**
@ -207,27 +207,27 @@ class FinancialRecordRepository extends BaseRepository
public function getMerchantTitle($where)
{
//商户收入
$count = $this->dao->search($where)->where('financial_type','in',['order','mer_presell'])->sum('number');
$count = $this->dao->search($where)->where('financial_type', 'in', ['order', 'mer_presell'])->sum('number');
//保证金
$auto_margin = $this->dao->search($where)->where('financial_type','auto_margin')->sum('number');
$auto_margin = $this->dao->search($where)->where('financial_type', 'auto_margin')->sum('number');
//平台优惠券
$coupon = $this->dao->search($where)->where('financial_type','in',['order_platform_coupon','order_svip_coupon'])->sum('number');
$coupon = $this->dao->search($where)->where('financial_type', 'in', ['order_platform_coupon', 'order_svip_coupon'])->sum('number');
//商户余额
$mer_money = app()->make(MerchantRepository::class)->search(['mer_id' => $where['is_mer']])->value('mer_money');
//最低提现额度
$extract_minimum_line = systemConfig('extract_minimum_line');
//商户可提现金额
$_line = bcsub($mer_money,$extract_minimum_line,2);
$_line = bcsub($mer_money, $extract_minimum_line, 2);
//退款支出金额
$refund_order = $this->dao->search($where)->where('financial_type','refund_order')->sum('number');
$refund_order = $this->dao->search($where)->where('financial_type', 'refund_order')->sum('number');
//佣金支出金额
$_brokerage = $this->dao->search($where)->where('financial_type','in',['brokerage_one','brokerage_two'])->sum('number');
$refund_brokerage = $this->dao->search($where)->where('financial_type','in',['refund_brokerage_one','refund_brokerage_two'])->sum('number');
$brokerage = bcsub($_brokerage,$refund_brokerage,2);
$_brokerage = $this->dao->search($where)->where('financial_type', 'in', ['brokerage_one', 'brokerage_two'])->sum('number');
$refund_brokerage = $this->dao->search($where)->where('financial_type', 'in', ['refund_brokerage_one', 'refund_brokerage_two'])->sum('number');
$brokerage = bcsub($_brokerage, $refund_brokerage, 2);
//平台手续费
$refund_true = $this->dao->search($where)->where('financial_type','in',['order_charge','presell_charge'])->sum('number');
$order_charge = $this->dao->search($where)->where('financial_type','refund_charge')->sum('number');
$charge = bcsub($refund_true,$order_charge,2);
$refund_true = $this->dao->search($where)->where('financial_type', 'in', ['order_charge', 'presell_charge'])->sum('number');
$order_charge = $this->dao->search($where)->where('financial_type', 'refund_charge')->sum('number');
$charge = bcsub($refund_true, $order_charge, 2);
//商户可提现金额
// $bill_order = app()->make(StoreOrderRepository::class)->search(['paid' => 1,'date' => $where['date'],'pay_type' => 0])->sum('pay_price');
$merLockMoney = app()->make(UserBillRepository::class)->merchantLickMoney($where['is_mer']);
@ -246,7 +246,7 @@ class FinancialRecordRepository extends BaseRepository
],
[
'className' => 'el-icon-s-cooperation',
'count' => ($_line < 0) ? 0 : $_line,
'count' => ($_line < 0) ? 0 : $_line,
'field' => '元',
'name' => '商户可提现金额'
],
@ -279,7 +279,7 @@ class FinancialRecordRepository extends BaseRepository
'count' => $merLockMoney,
'field' => '元',
'name' => '商户冻结金额'
], [
], [
'className' => 'el-icon-s-cooperation',
'count' => $auto_margin,
'field' => '元',
@ -298,19 +298,19 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/23/21
*/
public function getAdminList(array $where,int $page,int $limit)
public function getAdminList(array $where, int $page, int $limit, $merchant = [])
{
//日
if($where['type'] == 1){
if ($where['type'] == 1) {
$field = Db::raw('from_unixtime(unix_timestamp(create_time),\'%Y-%m-%d\') as time');
}else{
//月
if(!empty($where['date'])){
} else {
//月
if (!empty($where['date'])) {
list($startTime, $endTime) = explode('-', $where['date']);
$firstday = date('Y/m/01', strtotime($startTime));
$lastday_ = date('Y/m/01', strtotime($endTime));
$lastday = date('Y/m/d', strtotime("$lastday_ +1 month -1 day"));
$where['date'] = $firstday.'-'.$lastday;
$where['date'] = $firstday . '-' . $lastday;
}
$field = Db::raw('from_unixtime(unix_timestamp(create_time),\'%Y-%m\') as time');
}
@ -318,35 +318,34 @@ class FinancialRecordRepository extends BaseRepository
$query = $this->dao->search($where)->field($field)->group("time")->order('create_time DESC');
$count = $query->count();
$list = $query->page($page,$limit)->select()->each(function ($item) use($where){
$key = $where['is_mer'] ? $where['is_mer'].'_financial_record_list_'.$item['time'] : 'sys_financial_record_list_'.$item['time'];
if(($where['type'] == 1 && ($item['time'] == date('Y-m-d',time()))) || ($where['type'] == 2 && ($item['time'] == date('Y-m',time())))){
$income = ($this->countIncome($where['type'],$where,$item['time']))['number'] ;
$expend = ($this->countExpend($where['type'],$where,$item['time']))['number'] ;
$list = $query->page($page, $limit)->select()->each(function ($item) use ($where, $merchant) {
$key = $where['is_mer'] ? $where['is_mer'] . '_financial_record_list_' . $item['time'] : 'sys_financial_record_list_' . $item['time'];
if (($where['type'] == 1 && ($item['time'] == date('Y-m-d', time()))) || ($where['type'] == 2 && ($item['time'] == date('Y-m', time())))) {
$income = ($this->countIncome($where['type'], $where, $item['time'],$merchant))['number'];
$expend = ($this->countExpend($where['type'], $where, $item['time'],$merchant))['number'];
$ret = [
'income' => $income,
'expend' => $expend,
'charge' => bcsub($income, $expend, 2),
];
} else {
if (!$ret = Cache::get($key)) {
$income = ($this->countIncome($where['type'], $where, $item['time'],$merchant))['number'];
$expend = ($this->countExpend($where['type'], $where, $item['time'],$merchant))['number'];
$ret = [
'income' => $income,
'expend' => $expend ,
'charge' => bcsub($income,$expend,2),
'expend' => $expend,
'charge' => bcsub($income, $expend, 2),
];
}else{
if(!$ret = Cache::get($key)){
$income = ($this->countIncome($where['type'],$where,$item['time']))['number'] ;
$expend = ($this->countExpend($where['type'],$where,$item['time']))['number'] ;
$ret = [
'income' => $income,
'expend' => $expend ,
'charge' => bcsub($income,$expend,2),
];
Cache::tag('system')->set($key,$ret,24 * 3600);
}
Cache::tag('system')->set($key, $ret, 24 * 3600);
}
$item['income'] = $ret['income'];
$item['expend'] = $ret['expend'];
$item['charge'] = $ret['charge'];
});
}
$item['income'] = $ret['income'];
$item['expend'] = $ret['expend'];
$item['charge'] = $ret['charge'];
});
return compact('count','list');
return compact('count', 'list');
}
/**
@ -357,46 +356,47 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/23/21
*/
public function adminDetail(int $type,array $where)
public function adminDetail(int $type, array $where)
{
$date_ = strtotime($where['date']);unset($where['date']);
$date = ($type == 1) ? date('Y-m-d',$date_) : date('Y-m',$date_);
$income = $this->countIncome($type,$where,$date);
$bill = $this->countBill($type,$date);
$expend = $this->countExpend($type,$where,$date);
$charge = bcsub($income['number'],$expend['number'],2);
$data['date'] = $date;
$date_ = strtotime($where['date']);
unset($where['date']);
$date = ($type == 1) ? date('Y-m-d', $date_) : date('Y-m', $date_);
$income = $this->countIncome($type, $where, $date);
$bill = $this->countBill($type, $date);
$expend = $this->countExpend($type, $where, $date);
$charge = bcsub($income['number'], $expend['number'], 2);
$data['date'] = $date;
$data['income'] = [
'title' => '订单收入总金额',
'number' => $income['number'] ,
'count' => $income['count'].'笔',
'number' => $income['number'],
'count' => $income['count'] . '笔',
'data' => [
['订单支付', $income['number_order'].'元', $income['count_order'].'笔'],
['退回优惠券补贴', $income['number_coupon'].'元', $income['count_coupon'].'笔'],
['退回会员优惠券补贴', $income['number_svipcoupon'].'元', $income['count_svipcoupon'].'笔'],
['订单支付', $income['number_order'] . '元', $income['count_order'] . '笔'],
['退回优惠券补贴', $income['number_coupon'] . '元', $income['count_coupon'] . '笔'],
['退回会员优惠券补贴', $income['number_svipcoupon'] . '元', $income['count_svipcoupon'] . '笔'],
]
];
$data['bill'] = [
$data['bill'] = [
'title' => '充值金额',
'number' => $bill['number'] ,
'count' => $bill['count'].'笔',
'number' => $bill['number'],
'count' => $bill['count'] . '笔',
'data' => []
];
$data['expend'] = [
'title' => '支出总金额',
'number' => $expend['number'] ,
'count' => $expend['count'].'笔',
'number' => $expend['number'],
'count' => $expend['count'] . '笔',
'data' => [
['应付商户金额', $expend['number_order'] .'元', $expend['count_order'].'笔'],
['佣金', $expend['number_brokerage'] .'元', $expend['count_brokerage'].'笔'],
['返还手续费', $expend['number_charge'] .'元', $expend['count_charge'].'笔'],
['优惠券补贴',$expend['number_coupon'] .'元', $expend['count_coupon'].'笔'],
['会员优惠券补贴',$expend['number_svipcoupon'] .'元', $expend['count_svipcoupon'].'笔'],
['应付商户金额', $expend['number_order'] . '元', $expend['count_order'] . '笔'],
['佣金', $expend['number_brokerage'] . '元', $expend['count_brokerage'] . '笔'],
['返还手续费', $expend['number_charge'] . '元', $expend['count_charge'] . '笔'],
['优惠券补贴', $expend['number_coupon'] . '元', $expend['count_coupon'] . '笔'],
['会员优惠券补贴', $expend['number_svipcoupon'] . '元', $expend['count_svipcoupon'] . '笔'],
]
];
$data['charge'] = [
'title' => '平台手续费收入总金额',
'number' => $charge ,
'number' => $charge,
'count' => '',
'data' => []
];
@ -411,68 +411,69 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 5/6/21
*/
public function merDetail(int $type,array $where)
public function merDetail(int $type, array $where,$merchant=[])
{
$date_ = strtotime($where['date']); unset($where['date']);
$date = ($type == 1) ? date('Y-m-d',$date_) : date('Y-m',$date_);
$income = $this->countIncome($type,$where,$date);
$expend = $this->countExpend($type,$where,$date);
$charge = bcsub($income['number'],$expend['number'],2);
$date_ = strtotime($where['date']);
unset($where['date']);
$date = ($type == 1) ? date('Y-m-d', $date_) : date('Y-m', $date_);
$income = $this->countIncome($type, $where, $date,$merchant);
$expend = $this->countExpend($type, $where, $date,$merchant);
$charge = bcsub($income['number'], $expend['number'], 2);
$data['date'] = $date;
$data['date'] = $date;
$data['income'] = [
'title' => '订单收入总金额',
'number' => $income['number'] ,
'count' => $income['count'].'笔',
'number' => $income['number'],
'count' => $income['count'] . '笔',
'data' => [
['订单支付', $income['number_order'].'元', $income['count_order'].'笔'],
['优惠券补贴', $income['number_coupon'].'元', $income['count_coupon'].'笔'],
['会员优惠券补贴', $income['number_svipcoupon'].'元', $income['count_svipcoupon'].'笔'],
['订单支付', $income['number_order'] . '元', $income['count_order'] . '笔'],
['优惠券补贴', $income['number_coupon'] . '元', $income['count_coupon'] . '笔'],
['会员优惠券补贴', $income['number_svipcoupon'] . '元', $income['count_svipcoupon'] . '笔'],
]
];
$data['expend'] = [
'title' => '支出总金额',
'number' => $expend['number'] ,
'count' => $expend['count'].'笔',
'number' => $expend['number'],
'count' => $expend['count'] . '笔',
'data' => [
[
'平台手续费',
$expend['number_order_charge'] .'元',
$expend['count_order_charge'].'笔',
'退回'.$expend['number_order_charge'] .'元',
'退回'.$expend['count_charge'].'笔',
$expend['number_order_charge'] . '元',
$expend['count_order_charge'] . '笔',
'退回' . $expend['number_order_charge'] . '元',
'退回' . $expend['count_charge'] . '笔',
],
[
'店铺保证金',
$expend['number_auto_margin'] .'元',
$expend['count_auto_margin'].'笔'
$expend['number_auto_margin'] . '元',
$expend['count_auto_margin'] . '笔'
],
[
'佣金',
bcsub($expend['number_brokerage'],$expend['number_refund_brokerage'],2) .'元',
$expend['count_brokerage'] + $expend['count_refund_brokerage'].'笔'
bcsub($expend['number_brokerage'], $expend['number_refund_brokerage'], 2) . '元',
$expend['count_brokerage'] + $expend['count_refund_brokerage'] . '笔'
],
[
'商户退款',
$expend['number_refund'] .'元',
$expend['count_refund'].'笔'
$expend['number_refund'] . '元',
$expend['count_refund'] . '笔'
],
[
'退还优惠券补贴',
$expend['number_coupon'] .'元',
$expend['count_coupon'].'笔'
$expend['number_coupon'] . '元',
$expend['count_coupon'] . '笔'
],
[
'退还会员优惠券补贴',
$expend['number_svipcoupon'] .'元',
$expend['count_svipcoupon'].'笔'
$expend['number_svipcoupon'] . '元',
$expend['count_svipcoupon'] . '笔'
],
]
];
$data['charge'] = [
'title' => '应入账总金额',
'number' => $charge ,
'number' => $charge,
'count' => '',
'data' => []
];
@ -488,27 +489,50 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/23/21
*/
public function countIncome($type, $where, $date)
public function countIncome($type, $where, $date, $merchant = [])
{
$financialType = ['order','order_presell','presell','mer_presell'];
[$data['count_order'],$data['number_order']] = $this->dao->getDataByType($type, $where, $date, $financialType);
if ($where['is_mer']){
$financialType = ['order', 'order_presell', 'presell', 'mer_presell'];
if ($merchant){
switch ($merchant['type_id']) {
case 16:
$financialType1 = ['commission_to_town'];
break;
case 15:
$financialType1 = ['commission_to_village'];
break;
case 14:
$financialType1 = ['commission_to_service_team'];
break;
case 11:
$financialType1 = ['commission_to_cloud_warehouse'];
break;
case 10:
$financialType1 = ['commission_to_entry_merchant'];
break;
default:
$financialType1 = [];
}
$financialType = array_merge($financialType, $financialType1);
}
[$data['count_order'], $data['number_order']] = $this->dao->getDataByType($type, $where, $date, $financialType);
if ($where['is_mer']) {
$financialType = ['order_platform_coupon'];
} else {
$financialType = ['refund_platform_coupon'];
}
[ $data['count_coupon'], $data['number_coupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
[$data['count_coupon'], $data['number_coupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
if ($where['is_mer']){
if ($where['is_mer']) {
$financialType = ['order_svip_coupon'];
} else {
$financialType = ['refund_svip_coupon'];
}
[ $data['count_svipcoupon'], $data['number_svipcoupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$data['count'] = $data['count_order'];
$data['number'] = bcadd($data['number_coupon'],$data['number_order'],2);
[$data['count_svipcoupon'], $data['number_svipcoupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$data['count'] = $data['count_order'];
$data['number'] = bcadd($data['number_coupon'], $data['number_order'], 2);
return $data;
}
@ -527,15 +551,15 @@ class FinancialRecordRepository extends BaseRepository
'status' => 1,
'category' => 'now_money',
];
$query = app()->make(UserBillRepository::class)->search($bill_where)->where('type','in',['sys_inc_money','recharge']);
$query = app()->make(UserBillRepository::class)->search($bill_where)->where('type', 'in', ['sys_inc_money', 'recharge']);
//充值消费金额
if($type == 1) $query->whereDay('create_time', $date);
if($type == 2) $query->whereMonth('create_time',$date);
if ($type == 1) $query->whereDay('create_time', $date);
if ($type == 2) $query->whereMonth('create_time', $date);
$count = $query->count();
$number = $query->sum('number');
return compact('count','number');
return compact('count', 'number');
}
/**
@ -546,7 +570,7 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/23/21
*/
public function countExpend($type, $where, $date)
public function countExpend($type, $where, $date,$merchant=[])
{
/**
* 平台支出
@ -556,29 +580,58 @@ class FinancialRecordRepository extends BaseRepository
* 退回收入 refund_order + (佣金 brokerage_one,brokerage_two - 退回佣金 refund_brokerage_two,refund_brokerage_one + (手续费 order_charge + 预售手续费 presell_charge - 平台退给商户的手续费 refund_charge
*/
// 退回佣金
$financialType = ['brokerage_one','brokerage_two'];
[$data['count_brokerage'],$data['number_brokerage']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$financialType = ['brokerage_one', 'brokerage_two'];
[$data['count_brokerage'], $data['number_brokerage']] = $this->dao->getDataByType($type, $where, $date, $financialType);
// 退回 手续费
$financialType = ['refund_charge'];
[$data['count_charge'],$data['number_charge']] = $this->dao->getDataByType($type, $where, $date, $financialType);
[$data['count_charge'], $data['number_charge']] = $this->dao->getDataByType($type, $where, $date, $financialType);
if($where['is_mer']){ //商户的
if ($merchant){
switch ($merchant['type_id']) {
case 16:
$financialType1 = ['commission_to_town_refund'];
break;
case 15:
$financialType1 = ['commission_to_village_refund'];
break;
case 14:
$financialType1 = ['commission_to_service_team_refund'];
break;
case 11:
$financialType1 = ['commission_to_cloud_warehouse_refund'];
break;
case 10:
$financialType1 = ['commission_to_entry_merchant_refund'];
break;
default:
$financialType1 = [];
}
}else{
//退款的
$refund=['commission_to_town_refund','commission_to_village_refund','commission_to_service_team_refund','commission_to_cloud_warehouse_refund','commission_to_entry_merchant_refund'];
//分成的
$commission=['commission_to_town','commission_to_village','commission_to_service_team','commission_to_cloud_warehouse','commission_to_entry_merchant'];
}
if ($where['is_mer']) { //商户的
//退回 收入
$financialType = ['refund_order'];
[$data['count_refund'],$data['number_refund']] = $this->dao->getDataByType($type, $where, $date, $financialType);
[$data['count_refund'], $data['number_refund']] = $this->dao->getDataByType($type, $where, $date, $financialType);
//平台手续费
$financialType = ['order_charge','presell_charge'];
[$data['count_order_charge'],$data['number_order_charge']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$financialType = ['order_charge', 'presell_charge'];
[$data['count_order_charge'], $data['number_order_charge']] = $this->dao->getDataByType($type, $where, $date, $financialType);
//商户保证金
$financialType = ['auto_margin'];
[$data['count_auto_margin'],$data['number_auto_margin']] = $this->dao->getDataByType($type, $where, $date, $financialType);
[$data['count_auto_margin'], $data['number_auto_margin']] = $this->dao->getDataByType($type, $where, $date, $financialType);
//商户保证金退回
$financialType = ['auto_margin_refund'];
[$data['count_auto_margin_refund'], $data['number_auto_margin_refund']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$number3 = bcsub($data['number_auto_margin'], $data['number_auto_margin_refund'], 3);
//退回佣金
$financialType = ['refund_brokerage_two','refund_brokerage_one'];
[$data['count_refund_brokerage'],$data['number_refund_brokerage']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$financialType = ['refund_brokerage_two', 'refund_brokerage_one'];
[$data['count_refund_brokerage'], $data['number_refund_brokerage']] = $this->dao->getDataByType($type, $where, $date, $financialType);
//退回给平台的优惠券金额
$financialType = ['refund_platform_coupon'];
@ -587,22 +640,28 @@ class FinancialRecordRepository extends BaseRepository
$financialType = ['refund_svip_coupon'];
[$data['count_svipcoupon'], $data['number_svipcoupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
if (!empty($financialType1)){
[$data['count_commission'], $data['number_commission']] = $this->dao->getDataByType($type, $where, $date, $financialType1);
$data['count_brokerage']+=$data['count_commission'];
$data['number_brokerage']+=$data['number_commission'];
}
//佣金 brokerage_one,brokerage_two - 退回佣金 refund_brokerage_two,refund_brokerage_one
$number = bcsub($data['number_brokerage'],$data['number_refund_brokerage'],3);
$number = bcsub($data['number_brokerage'], $data['number_refund_brokerage'], 3);
//平台手续费 = order_charge + 预售手续费 presell_charge - 平台退给商户的手续费 refund_charge
$number_1 = bcsub($data['number_order_charge'],$data['number_charge'],3);
$number_1 = bcsub($data['number_order_charge'], $data['number_charge'], 3);
//退回收入 refund_order + 退回佣金
$number_2 = bcadd(bcadd($data['number_refund'],$data['number_coupon'],2),$data['number_svipcoupon'],2);
$data['count'] = $data['count_brokerage'] + $data['count_refund'] + $data['count_order_charge'] + $data['count_refund_brokerage'] + $data['count_svipcoupon']+$data['count_auto_margin'];
$data['number'] =bcadd(bcadd($number_2,$number,3),$number_1,2);
$number_2 = bcadd(bcadd($data['number_refund'], $data['number_coupon'], 2), $data['number_svipcoupon'], 2);
$data['count'] = $data['count_brokerage'] + $data['count_refund'] + $data['count_order_charge'] + $data['count_refund_brokerage'] + $data['count_svipcoupon'] + $data['count_auto_margin'];
$data['number'] = bcadd(bcadd($number3,bcadd($number_2, $number, 3),3), $number_1, 2);
}else{ //平台的
} else { //平台的
// 退回 订单实际获得金额
$financialType = ['order_true','presell_true'];
[$data['count_order'],$data['number_order']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$financialType = ['order_true', 'presell_true','auto_margin'];
[$data['count_order'], $data['number_order']] = $this->dao->getDataByType($type, $where, $date, $financialType);
//付给商户的优惠券抵扣金额
$financialType = ['order_platform_coupon'];
@ -612,11 +671,17 @@ class FinancialRecordRepository extends BaseRepository
$financialType = ['order_svip_coupon'];
[$data['count_svipcoupon'], $data['number_svipcoupon']] = $this->dao->getDataByType($type, $where, $date, $financialType);
$number = bcadd($data['number_brokerage'],$data['number_order'],2);
$number_1 = bcadd(bcadd($number,$data['number_coupon'],2),$data['number_svipcoupon'],2);
//付给服务团队和其他的佣金
[$data['count_refund'], $data['number_refund']] = $this->dao->getDataByType($type, $where, $date, $refund);
[$data['count_commission'], $data['number_commission']] = $this->dao->getDataByType($type, $where, $date, $commission);
$data['count_brokerage']+=$data['count_commission']-$data['count_refund'];
$data['number_brokerage']+=$data['number_commission']-$data['number_refund'];
$data['count'] = $data['count_brokerage'] + $data['count_order'] + $data['count_charge'];
$data['number'] = bcadd($number_1,$data['number_charge'],2);
$number = bcadd($data['number_brokerage'], $data['number_order'], 2);
$number_1 = bcadd(bcadd($number, $data['number_coupon'], 2), $data['number_svipcoupon'], 2);
$data['count'] = $data['count_brokerage'] + $data['count_order'] + $data['count_charge'];
$data['number'] = bcadd($number_1, $data['number_charge'], 2);
}
return $data;
}
@ -629,12 +694,12 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/24/21
*/
public function countCharge($type,$where,$date)
public function countCharge($type, $where, $date)
{
$financialType = ['order_charge'];
[$count, $number] = $this->dao->getDataByType($type, $where, $date, $financialType);
return compact('count','number');
return compact('count', 'number');
}
/**
@ -645,11 +710,11 @@ class FinancialRecordRepository extends BaseRepository
* @author Qinii
* @day 3/24/21
*/
public function countRefund($type,$where,$date)
public function countRefund($type, $where, $date)
{
$financialType = ['refund_order'];
[$count, $number] = $this->dao->getDataByType($type, $where, $date, $financialType);
return compact('count','number');
return compact('count', 'number');
}
}

View File

@ -96,7 +96,12 @@ class FinancialRecord extends BaseController
[$page, $limit] = $this->getPage();
$where = $this->request->params([['type',1],'date']);
$where['is_mer'] = $this->request->merId() ?? 0 ;
$data = $this->repository->getAdminList($where,$page, $limit);
try {
$merchant = $this->request->merchant();
}catch (\Exception $e){
$merchant = [];
}
$data = $this->repository->getAdminList($where,$page, $limit,$merchant);
return app('json')->success($data);
}
@ -114,7 +119,8 @@ class FinancialRecord extends BaseController
$where['date'] = empty($date) ? date('Y-m-d',time()) : $date ;
$where['is_mer'] = $this->request->merId() ?? 0 ;
if($this->request->merId()){
$data = $this->repository->merDetail($type,$where);
$merchant = $this->request->merchant();
$data = $this->repository->merDetail($type,$where,$merchant);
}else{
$data = $this->repository->adminDetail($type,$where);
}

View File

@ -352,6 +352,7 @@ class ExcelService
'order_presell' => '预售订单(定金)',
'refund_platform_coupon' => '退回优惠券补贴',
'order_platform_coupon' => '优惠券补贴',
'auto_margin'=> '保证金',
'commission_to_service_team'=>'订单平台佣金',
'commission_to_platform'=>'订单剩余平台手续费',
'commission_to_village'=>'订单平台佣金',
@ -360,6 +361,11 @@ class ExcelService
'commission_to_platform_refun'=>'退回剩余平台手续费',
'commission_to_village_refun'=>'退回平台佣金',
'commission_to_town_refun'=>'退回平台佣金',
'auto_margin_refun'=>'退回保证金',
'commission_to_entry_merchant'=>'订单平台佣金',
'commission_to_cloud_warehouse'=> '订单平台佣金',
'commission_to_entry_merchant_refund'=> '退回平台佣金',
'commission_to_cloud_warehouse_refund'=> '退回平台佣金',
];
$sys_pm_1 = ['order','presell','order_charge','order_presell','presell_charge','refund_brokerage_one','refund_brokerage_two'];
$mer_pm_1 = ['order','presell','refund_charge','refund_brokerage_one','refund_brokerage_two','mer_presell','order_platform_coupon'];
@ -438,7 +444,6 @@ class ExcelService
$i++;
$mer_name = $mer_name ? $mer_name : ($value['merchant']['mer_name'] ?? '');
}
$count_brokeage = $expend['count_brokerage'] + $expend['count_refund_brokerage'];
$number_brokeage = bcsub($expend['number_brokerage'],$expend['number_refund_brokerage'],2);
$count_charge = $expend['count_charge']+$expend['count_order_charge'];