| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- <?php
- namespace addons\Agent\backend\controllers;
- use addons\Agent\common\models\AgentLevel;
- use common\enums\StatusEnum;
- use common\helpers\csv\CsvExportHelper;
- use Yii;
- use addons\Agent\common\models\Agent;
- use addons\Agent\common\models\AgentCommissionDetails;
- use common\models\user\User;
- use common\enums\DownloadEnum;
- use common\enums\OrderStatusEnum;
- use common\models\order\Order;
- use common\models\order\OrderDetail;
- /**
- * 默认控制器
- *
- * Class DetailController
- * @package addons\Agent\backend\controllers
- */
- class DetailController extends BaseController
- {
- public $from_type = ['Agent'];
- public $enableCsrfValidation = false;
- /**
- * @Description: 分佣明细列表
- * @Author: zsan
- * @DateTime 2023-04-28 14:38:33
- * @return \yii\web\Response
- */
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
- $user_id_arr = [];
- if (isset($get['level']) && !empty($get['level'])){
- $params['where'][] = ['=', 'level', $get['level']];
- }else{
- $params['where'][] = ['>', 'level', 0];
- }
- if (!empty($get['keyword'])) {
- $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'nickname', $get['keyword']],
- ['like', 'mobile', $get['keyword']],
- ['id' => $get['keyword']]
- ]], 'select' => 'id']);
- $user_ids = array_column($user_list, 'id');
- if (!empty($user_id_arr)) {
- $user_id_arr = array_intersect($user_id_arr, $user_ids);
- } else {
- $user_id_arr = $user_ids;
- }
- $params['where'][] = ['in', 'user_id', $user_id_arr];
- }
- /** @var \addons\DouyinCps\common\models\DouyinCpsOrder $douyin_cps_class */
- $douyin_cps_class = \addons\DouyinCps\common\models\DouyinCpsOrder::class;
- if ($get['order_no']) {
- if(strpos($get['order_no'],'DYC') === false){
- $order_list = Order::lists([
- 'where' => [
- ['mall_id' => $get['mall_id']],
- ['like', 'order_no', $get['order_no']]
- ],
- 'select' => 'id'
- ]);
- }else{
- $order_list = $douyin_cps_class::lists([
- 'where' => [
- ['mall_id' => $get['mall_id']],
- ['like', 'order_no', $get['order_no']]
- ],
- 'select' => 'id'
- ]);
- }
-
- $params['where'][] = ['order_id' => array_column($order_list, 'id') ?? []];
- }
- if ($get['date_start']) $params['where'][] = ['>=', 'created_at', strtotime($get['date_start'])];
- if ($get['date_end']) $params['where'][] = ['<=', 'created_at', strtotime($get['date_end'])];
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- $params['limit'] = 10;
- $params['order'] = 'id DESC';
- $pageData = AgentCommissionDetails::listPage($params, false);
- if ($pageData === false) return $this->error(AgentCommissionDetails::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id_arr = array_column($pageData['list'], 'user_id');
- $user_list = $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']);
- $user_arr = [];
- foreach ($user_list as $item) {
- $user_arr[$item['id']] = $item;
- }
-
- $order_arr = [];
- $douyin_cps_order_arr = [];
- foreach($pageData['list'] as $item) {
- if($item['order_source'] == 'order'){
- $order_arr[] = $item['order_id'];
- }elseif ($item['order_source'] == $douyin_cps_class::tableName()){
- $douyin_cps_order_arr[] = $item['order_id'];
- }
- }
- $order_list = [];
- $order_details_list = [];
- if(!empty($order_arr)){
- $order_list = Order::lists([
- 'where' => [
- ['mall_id' => $get['mall_id']],
- ['id' => $order_arr]
- ],
- 'select' => 'id,order_status,order_no',
- 'index' => 'id'
- ]);
- $order_details_list = OrderDetail::lists([
- 'where' => [
- ['mall_id' => $get['mall_id']],
- ['order_id' => $order_arr],
- ],
- 'select' => 'order_id,goods_name,pic_url',
- 'index' => 'order_id'
- ]);
- }
- $douyin_cps_order_list = [];
- if(!empty($douyin_cps_order_arr)){
- $douyin_cps_order_list = $douyin_cps_class::lists([
- 'where' => [
- ['mall_id' => $get['mall_id']],
- ['id' => $douyin_cps_order_arr]
- ],
- 'select' => 'id,order_no,goods_name,cover_pic AS pic_url',
- 'index' => 'id'
- ]);
- }
-
- $order_status_map = OrderStatusEnum::getMap();
- foreach ($pageData['list'] as &$v) {
- $v['nickname'] = $v['avatar_url'] = $v['mobile'] = '';
- if (isset($user_arr[$v['user_id']])) {
- $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
- $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
- $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
- }
- $v['pic_url'] = $v['goods_name'] = '';
- $v['order_status_text'] = '--';
- if($v['order_source'] == 'order'){
- if (array_key_exists($v['order_id'], $order_details_list)) {
- $v['pic_url'] = $order_details_list[$v['order_id']]['pic_url'];
- $v['goods_name'] = $order_details_list[$v['order_id']]['goods_name'];
- $v['order_no'] = $order_list[$v['order_id']]['order_no'] ?? '';
- $v['order_status_text'] = $order_status_map[$order_list[$v['order_id']]['order_status']] ?? '';
- }
- }elseif ($v['order_source'] == $douyin_cps_class::tableName()){
- if (array_key_exists($v['order_id'], $douyin_cps_order_list)) {
- $v['pic_url'] = $douyin_cps_order_list[$v['order_id']]['pic_url'];
- $v['goods_name'] = $douyin_cps_order_list[$v['order_id']]['goods_name'];
- $v['order_no'] = $douyin_cps_order_list[$v['order_id']]['order_no'] ?? '';
- }
- }
- }
- unset($v);
- }
- $args = [];
- $args['where'] = [['mall_id' => $this->mall_id], ['<>', 'status', StatusEnum::DELETE]];
- $args['select'] = 'id,level,name';
- $args['order'] = 'level asc';
- $level_list = AgentLevel::lists($args, true);
- if (empty($level_list)) $level_list = [['id' => 0, 'level' => 0, 'name' => '默认等级']];
- $pageData['agentLevelList'] = $level_list;
- $pageData['export_list'] = AgentCommissionDetails::exportFieldsList();
- return $this->success('操作成功', $pageData);
- }
- }
- if (\Yii::$app->request->post('flag') == 'EXPORT') {
- $post = \Yii::$app->request->post();
- $post['mall_id'] = $this->mall_id;
- $filename = '经销商列表-' . date('YmdHis') . '_' . rand(10000, 99999);
- $res = CsvExportHelper::exportDownLoadCenter($this->mall_id, $filename, DownloadEnum::TYPE_AGENT, AgentCommissionDetails::class, 'exportHandle', $post);
- if ($res === false) return $this->error('加入导出任务失败' . CsvExportHelper::getStaticError());
- return $this->success('添加导出任务成功,任务完成后请在下载中心进行下载!');
- }
- return $this->render($this->action->id, []);
- }
- }
|