| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- namespace addons\BossThree\backend\controllers;
- use addons\BossThree\common\enums\BossThreeEnum;
- use common\enums\DownloadEnum;
- use common\enums\StatusEnum;
- use common\helpers\csv\CsvExportHelper;
- use common\models\common\CapitalLog;
- use common\models\common\CapitalStatistics;
- use common\models\common\CommissionLog;
- use common\models\goods\Goods;
- use common\models\user\User;
- use Yii;
- use common\controllers\AddonsController;
- use common\enums\UserWalletEnum;
- /**
- * 佣金明细控制器
- *
- * Class CommissionController
- * @package addons\BossThree\backend\controllers
- */
- class CommissionController extends BaseController
- {
- public $enableCsrfValidation = false;
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- CapitalLog::$capitalType = 'commission';
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $filename = '佣金列表-' . date('YmdHis').'_'.rand(10000,99999);
- $data = \Yii::$app->request->post();
- $data['mall_id'] = $this->mall_id;
- $data['from_type'] = BossThreeEnum::ADDONS_NAME;
- $data['table'] = CapitalLog::$capitalType;
- if (!empty($data['date'])) {
- $date = date($data['date'] . '-01');
- $end_time = date('Y-m-d H:i:s',strtotime($date . '+1 month -1 day 23:59:59'));
- $data['date'] = [$date,$end_time];
- }
- $res = CsvExportHelper::exportDownLoadCenter($this->mall_id,$filename,DownloadEnum::TYPE_ASSETS,CapitalLog::class,'exportAssets',$data);
- if ($res === false) return $this->error('加入导出任务失败'.CsvExportHelper::getStaticError());
- return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
- }
- $page = \Yii::$app->request->get('page') ?? 1;
- $limit = \Yii::$app->request->get('page_size') ?? $this->pageSize;
- $get = \Yii::$app->request->get();
- $params[] = ['log.mall_id' => $this->mall_id];
- $params[] = ['log.from_type' => BossThreeEnum::ADDONS_NAME];
- if (!empty($get['user_id'])) $params[] = ['log.user_id' => $get['user_id']];
- if (!empty($get['capital_type'])) $params[] = ['log.capital_type' => $get['capital_type']];
- if (!empty($get['remark'])) $params[] = ['like', 'log.desc', $get['remark']];
- if (!empty($get['keyword'])) $params[] = ['or', ['like', 'user.nickname', $get['keyword']], ['like', 'user.mobile', $get['keyword']]];
- if (!empty($get['date'])) {
- $date = date($get['date'] . '-01');
- $start_time = strtotime($date);
- $end_time = strtotime($date . '+1 month -1 day 23:59:59');
- $params[] = ['>=', 'log.created_at', $start_time];
- $params[] = ['<=', 'log.created_at', $end_time];
- }
- $join = [
- ['LEFT JOIN', User::tableName() . ' as user', 'user.id = log.user_id and log.mall_id = user.mall_id'],
- ];
- $params = [
- 'alias' => 'log',
- 'select' => 'log.id,log.mall_id,log.user_id,log.change_type,log.change_num,log.current_num,log.desc,log.from_type,log.capital_type,log.created_at,user.nickname,user.avatar_url,user.mobile,user.username,log.order_no',
- 'join' => $join,
- 'where' => $params,
- 'order' => 'id desc',
- 'page' => $page,
- 'limit' => $limit,
- ];
- $list = CapitalLog::listPage($params, false, true);
- $commission_map = UserWalletEnum::getCommissionMap();
- $list['date'] = explode('-',$date)[0] . '-' . explode('-', $date)[1];
- $capital_type_map = UserWalletEnum::getCapitalTypeMapByCommission();
- if (!empty($list['list'])) {
- foreach ($list['list'] as &$lv) {
- $lv['source_text'] = ($commission_map[$lv['from_type']] ?? '').($capital_type_map[$lv['capital_type']]?'-'.$capital_type_map[$lv['capital_type']]:'');
- $lv['created_at'] = date('Y-m-d H:i:s', $lv['created_at']);
- if($lv['order_no']){
- $lv['desc'] = $lv['desc'].',订单号:'.$lv['order_no'];
- }
- }
- }
- // 业务类型
- $list['commissionFromTypeList'] = $commission_map;//来源类型
- // 导出字段列表
- $list['export_list'] = CommissionLog::EXPORT_FIELD_LIST;
- $where['where'] = [['=', 'mall_id', $this->mall_id], ['=', 'type', CapitalStatistics::COMMISSIOIN]];
- $total = CapitalStatistics::statistics($where,
- ['sum(capital_total) capital_total', //总额
- 'sum(invalid_capital_total) invalid_capital_total']);//无效额
- $statistics_data['commission_total'] = $total[0]['capital_total'] ? round($total[0]['capital_total'], 2) : 0;
- $statistics_data['invalid_capital_total'] = $total[0]['invalid_capital_total'] ? round($total[0]['invalid_capital_total'], 2) : 0;
- CapitalLog::$capitalType = 'commission_frozen';
- $statistics_list = CapitalLog::find()->where(['mall_id' => $this->mall_id, 'status' => 0])->asArray()->all();
- if (empty($statistics_list)) {
- $statistics_data['frozen_capital_total'] = 0;
- } else {
- foreach ($statistics_list as $val) {
- if ($val['change_type'] == 'add') $statistics_data['frozen_capital_total'] += $val['change_num'];
- if ($val['change_type'] == 'sub') $statistics_data['frozen_capital_total'] -= $val['change_num'];
- }
- $statistics_data['frozen_capital_total'] = round($statistics_data['frozen_capital_total'], 2);
- }
- $list['statistics_data'] = $statistics_data;
- $list['export_list'] = CapitalLog::exportFieldsList();
- return $this->success('操作成功', $list);
- } else {
- $flag = \Yii::$app->request->post('flag');
- if (empty($flag)) {
- return $this->render('index');
- } else {
- // 导出数据
- }
- }
- }
- }
|