Skip to content

Commit

Permalink
update commission app module
Browse files Browse the repository at this point in the history
  • Loading branch information
王正东 committed Jan 28, 2021
1 parent 5fbdd2a commit 9bab8ca
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 49 deletions.
129 changes: 97 additions & 32 deletions content/apps/commission/model/store_bill_detail_model.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ public function add_bill_detail($data) {
$data['order_sn'] = $order_info['order_sn'];
} else if($data['order_type'] == 'refund') {
$order_info = RC_DB::table('refund_order')->where('refund_id', $data['order_id'])->first();
RC_Loader::load_app_func('admin_order', 'orders');
$order = order_info($order_info['order_id']);
$order_info['shipping_status'] = $order['shipping_status'];
$data['order_sn'] = $order_info['refund_sn'];//退款单号
} else if($data['order_type'] == 'buy') {
RC_Loader::load_app_func('admin_order', 'orders');
Expand Down Expand Up @@ -143,16 +146,12 @@ public function add_bill_detail($data) {
} else {
$data['order_amount'] = $order_info['money_paid'] + $order_info['surplus'] + $order_info['integral_money'];
}

}

if ($data['order_type'] == 'buy') {
//堂食使用单独分成比例
if($order_info['extension_code'] == 'storebuy') {
$StoreFranchiseeModel = StoreFranchiseeModel::where('store_id', $order_info['store_id'])->first();
$data['percent_value'] = $StoreFranchiseeModel->getMeta('storebuy_percent');
if(empty($data['percent_value'])) {
$data['percent_value'] = ecjia::config('storebuy_percent');
}
$data['percent_value'] = ecjia::config('storebuy_percent');
} else {
$data['percent_value'] = RC_Model::model('commission/store_franchisee_model')->get_store_commission_percent($data['store_id']);
}
Expand Down Expand Up @@ -195,33 +194,61 @@ public function add_bill_detail($data) {
// $data['brokerage_amount'] *= -1;
// }
} else {
$datail = $this->get_bill_detail($order_info['order_id']);
if (empty($datail)) {
//删除队列表数据
RC_DB::table('store_bill_queue')->where('order_type', $data['order_type'])->where('order_id', $data['order_id'])->delete();
RC_Logger::getLogger('bill_order')->info('退款refund_id:'.$data['order_id'].',未收货,未入账,结算无需退款');
return false;
}
$back_money_total = RC_DB::table('refund_payrecord')->where('refund_id', $data['order_id'])->value('back_money_total');
$back_money_total = $back_money_total > 0 ? $back_money_total : $back_money_total * -1;
$data['percent_value'] = $datail['percent_value'];
//退款结算:平台得-用户退=商家得
//退款时,商家扣除退款金额 @update 20190410
// $data['brokerage_amount'] = $datail['platform_profit'] - $back_money_total;
$temp_brokerage_amount = $back_money_total * $datail['percent_value'] / 100;
if(abs($temp_brokerage_amount) > abs($datail['brokerage_amount'])) {
$temp_brokerage_amount = abs($datail['brokerage_amount']);
}
$data['brokerage_amount'] = $temp_brokerage_amount * -1;

$data['platform_profit'] = $datail['platform_profit'] * -1;
// $datail = $this->get_bill_detail($order_info['order_id']);
// if (empty($datail)) {
// //删除队列表数据
// RC_DB::table('store_bill_queue')->where('order_type', $data['order_type'])->where('order_id', $data['order_id'])->delete();
// RC_Logger::getLogger('bill_order')->info('退款refund_id:'.$data['order_id'].',未收货,未入账,结算无需退款');
// return false;
// }
// $back_money_total = RC_DB::table('refund_payrecord')->where('refund_id', $data['order_id'])->value('back_money_total');
// $back_money_total = $back_money_total > 0 ? $back_money_total : $back_money_total * -1;
// $data['percent_value'] = $datail['percent_value'];
// //退款结算:平台得-用户退=商家得
// //退款时,商家扣除退款金额 @update 20190410
// // $data['brokerage_amount'] = $datail['platform_profit'] - $back_money_total;
// $temp_brokerage_amount = $back_money_total * $datail['percent_value'] / 100;
// if(abs($temp_brokerage_amount) > abs($datail['brokerage_amount'])) {
// $temp_brokerage_amount = abs($datail['brokerage_amount']);
// }
// $data['brokerage_amount'] = $temp_brokerage_amount * -1;

// $data['platform_profit'] = $datail['platform_profit'] * -1;

$datail = $this->get_bill_detail($order_info['order_id']);
//判断订单用户有没确认收货,没有删除队列表数据
if (empty($datail)) {
if ($order_info['shipping_status'] != SS_RECEIVED) {
RC_DB::table('store_bill_queue')->where('order_type', $data['order_type'])->where('order_id', $data['order_id'])->delete();
RC_Logger::getLogger('bill_order')->info('退款refund_id:'.$data['order_id'].',未收货,未入账,结算无需退款');
return false;
} else {
$datail = [];
list($brokerage_amount, $platform_profit, $percent_value) = $this->get_brokerage_amount($order_info, $data);
$datail['percent_value'] = $percent_value;
$datail['brokerage_amount'] = abs($brokerage_amount);
$datail['platform_profit'] = abs($platform_profit);
}
}
$back_money_total = RC_DB::table('refund_payrecord')->where('refund_id', $data['order_id'])->value('back_money_total');
$back_money_total = $back_money_total > 0 ? $back_money_total : $back_money_total * -1;
$data['percent_value'] = $datail['percent_value'];
//退款结算:平台得-用户退=商家得
//退款时,商家扣除退款金额 @update 20190410
//$data['brokerage_amount'] = $datail['platform_profit'] - $back_money_total;
$temp_brokerage_amount = $back_money_total * $data['percent_value'] / 100;
if(abs($temp_brokerage_amount) > abs($datail['brokerage_amount'])) {
$temp_brokerage_amount = abs($datail['brokerage_amount']);
}
$data['brokerage_amount'] = $temp_brokerage_amount * -1;
$data['platform_profit'] = $datail['platform_profit'] * -1;
}
} else if ($data['order_type'] == 'quickpay') {
// $data['percent_value'] = 100 - ecjia::config('quickpay_fee');
$data['percent_value'] = 100 - ecjia::config('quickpay_fee');

//判断当前订单是否参与买单送积分活动,返回结算比例
$quickpay_fee = Ecjia\App\Quickpay\QuickpayIntegralActivity::getCommissionPercentByOrder($order_info);
$data['percent_value'] = 100 - $quickpay_fee;
//$quickpay_fee = Ecjia\App\Quickpay\QuickpayIntegralActivity::getCommissionPercentByOrder($order_info);
//$data['percent_value'] = 100 - $quickpay_fee;
if ($data['percent_value'] > 100) {
RC_Logger::getLogger('bill_order_error')->error('quickpay_fee超出范围:');
RC_Logger::getLogger('bill_order_error')->error($data);
Expand Down Expand Up @@ -264,8 +291,8 @@ public function add_bill_detail($data) {
//结算后代理分佣
$datail_id = RC_DB::table('store_bill_detail')->insertGetId($data);
if($datail_id) {
//买单积分分成
with(new AffiliateStoreCommissionIntegral($data['order_type'], $data['store_id'], $order_info))->run();
//买单积分分成(客户二开东西,标准产品并没此逻辑)
//with(new AffiliateStoreCommissionIntegral($data['order_type'], $data['store_id'], $order_info))->run();

//结算后代理分佣
// $affiliate = array_merge($data, ['agencysale_store_id' => $order_info['agencysale_store_id']]);
Expand Down Expand Up @@ -313,7 +340,7 @@ public function count_bill_day($options) {

$day_time = RC_Time::local_strtotime($options['day']);

$rs_order = RC_DB::table('store_bill_detail')->select("store_id", RC_DB::raw("'".$options['day']."' as day"), RC_DB::raw('COUNT(store_id) as order_count'), RC_DB::raw('SUM(brokerage_amount) as order_amount'),
$rs_order = RC_DB::table('store_bill_detail')->select("store_id", RC_DB::raw("'".$options['day']."' as day"), RC_DB::raw('COUNT(store_id) as order_count'), RC_DB::raw('SUM(order_amount) as order_amount'),
RC_DB::raw('0 as refund_count'), RC_DB::raw('0.00 as refund_amount'), 'percent_value')
->whereBetween('add_time', array($day_time, $day_time + 86399))
->where(function ($query) {
Expand Down Expand Up @@ -497,6 +524,44 @@ private function get_user_name($user_id)

return $name;
}

private function get_brokerage_amount($order_info, $data)
{
$brokerage_amount = $platform_profit = 0;

//堂食使用单独分成比例
if($order_info['extension_code'] == 'storebuy') {
$percent_value = ecjia::config('storebuy_percent');
} else {
$percent_value = RC_Model::model('commission/store_franchisee_model')->get_store_commission_percent($data['store_id']);
}
if (empty($percent_value)) {
$percent_value = 100; //未设置分成比例,默认100
}

//众包配送,运费不参与商家结算 @update 20180606
//支付手续费平台收取 @update 20190410
if($order_info['shipping_code'] == 'ship_ecjia_express') {
if(in_array($data['pay_code'], array('pay_cod', 'pay_cash', 'pay_wxpay_merchant'))) {
$brokerage_amount = ($data['order_amount']- $data['pay_fee']) * (100 - $percent_value) / 100 * -1 ;
$platform_profit = $brokerage_amount * -1;
} else {
$brokerage_amount = ($data['order_amount']- $data['pay_fee']) * $percent_value / 100 ;
$platform_profit = $data['order_amount'] - $brokerage_amount;
}
} else {
//运费不参与分佣 @update 20181210
if(in_array($data['pay_code'], array('pay_cod', 'pay_cash', 'pay_wxpay_merchant'))) {
$brokerage_amount = (($data['order_amount'] - $data['shipping_fee'] - $data['insure_fee'] - $data['pay_fee']) * (100 - $percent_value) / 100 + $data['shipping_fee'] + $data['insure_fee']) * -1;
$platform_profit = $brokerage_amount * -1;
} else {
$brokerage_amount = ($data['order_amount'] - $data['shipping_fee'] - $data['insure_fee'] - $data['pay_fee']) * $percent_value / 100 + $data['shipping_fee'] + $data['insure_fee'];
$platform_profit = $data['order_amount'] - $brokerage_amount;
}
}

return [$brokerage_amount, $platform_profit, $percent_value];
}
}

// end
8 changes: 1 addition & 7 deletions content/apps/commission/templates/admin/bill_detail.dwt.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
<th>{t domain="commission"}账单日期{/t}</th>
<th>{t domain="commission"}入账金额{/t}</th>
<th>{t domain="commission"}退款金额{/t}</th>
<th>{t domain="commission"}佣金比例{/t}</th>
<th>{t domain="commission"}商家有效佣金{/t}</th>
</tr>
</thead>
Expand All @@ -83,15 +82,10 @@
</td>
<td class="ecjiaf-tar">{$commission.order_amount_formatted}</td>
<td class="">{$commission.refund_amount_formatted}</td>
<!-- {if $commission.percent_value} -->
<td>{$commission.percent_value}%</td>
<!-- {else} -->
<td>100%</td>
<!-- {/if} -->
<td>{$commission.brokerage_amount_formatted}</td>
</tr>
<!-- {foreachelse} -->
<tr><td class="no-records" colspan="7">{t domain="commission"}没有找到任何记录{/t}</td></tr>
<tr><td class="no-records" colspan="4">{t domain="commission"}没有找到任何记录{/t}</td></tr>
<!-- {/foreach} -->
</tbody>
</table>
Expand Down
9 changes: 6 additions & 3 deletions content/apps/commission/templates/admin/bill_list.dwt.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,12 @@
</div> -->
</td>
{if $smarty.get.refer neq 'store'}
<td> {assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$commission.store_id}")}
<a href='{RC_Uri::url("commission/admin/init", "store_id={$commission.store_id}")}' title="{t domain="commission"}查看此商家账单{/t}">{$commission.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
<td>
{if $commission.merchants_name}
{assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$commission.store_id}")}
<a href='{RC_Uri::url("commission/admin/init", "store_id={$commission.store_id}")}' title="{t domain="commission"}查看此商家账单{/t}">{$commission.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
{/if}
</td>
{/if}
<td>{$commission.order_count}</td>
Expand Down
9 changes: 6 additions & 3 deletions content/apps/commission/templates/admin/bill_list_day.dwt.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,12 @@
</div> -->
</td>
{if $smarty.get.refer neq 'store'}
<td> {assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$commission.store_id}")}
<a href='{RC_Uri::url("commission/admin/day", "store_id={$commission.store_id}")}' title="{t domain="commission"}查看此商家账单{/t}">{$commission.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
<td>
{if $commission.merchants_name}
{assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$commission.store_id}")}
<a href='{RC_Uri::url("commission/admin/day", "store_id={$commission.store_id}")}' title="{t domain="commission"}查看此商家账单{/t}">{$commission.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
{/if}
</td>
{/if}
<td>{$commission.order_count}</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
<div class="control-group formSep">
<label class="control-label">{t domain="commission"}操作备注:{/t}</label>
<div class="controls">
<textarea name="admin_note" class="span7 select-link-content" placeholder='{t domain="commission"}请输入退款备注{/t}'></textarea>
<textarea name="admin_note" class="span7 select-link-content" placeholder='{t domain="commission"}请输入充值备注{/t}'></textarea>
<span class="input-must">*</span>
</div>
<div class="controls">
Expand Down
8 changes: 5 additions & 3 deletions content/apps/commission/templates/admin/order_list.dwt.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,11 @@
<a href="{$order_url}" target="_blank">{$list.order_sn}</a>
</td>
<td>
{assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$list.store_id}")}
<a href='{RC_Uri::url("commission/admin/order","store_id={$list.store_id}")}' title="{t domain="commission"}查看此商家订单结算{/t}">{$list.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
{if $list.merchants_name}
{assign var=store_url value=RC_Uri::url('store/admin/preview',"store_id={$list.store_id}")}
<a href='{RC_Uri::url("commission/admin/order","store_id={$list.store_id}")}' title="{t domain="commission"}查看此商家订单结算{/t}">{$list.merchants_name}</a>
<a href='{$store_url}' title="{t domain="commission"}查看商家资料{/t}" target="_blank"><i class="fontello-icon-info-circled"></i></a>
{/if}
</td>
<td>{$list.total_fee_formatted}</td>
<td>{$list.commission_fee_formatted}</td>
Expand Down

0 comments on commit 9bab8ca

Please sign in to comment.