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 { // 导出数据 } } } }