request->isAjax) { if (\Yii::$app->request->isPost) { $filename = '数字币明细-' . date('YmdHis') . '_' . rand(10000, 99999); $data = \Yii::$app->request->post(); $data['table'] = 'score'; $data['mall_id'] = $this->mall_id; $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('添加导出任务成功,任务完成后请在下载中心进行下载!'); } $get = \Yii::$app->request->get(); $params['alias'] = 'b'; $params['joinWith'] = ['user' => function ($query) { $query->select(['id', 'avatar_url', 'nickname', 'mobile']); }]; if (isset($get['keyword']) && !empty($get['keyword'])) $params['where'] = [['or', ['like', 'nickname', $get['keyword']], ['=', 'mobile', $get['keyword']]]]; if (isset($get['user_id']) && !empty($get['user_id'])) $params['where'][] = ['=', 'user_id', $get['user_id']]; if (!empty($get['order_no'])) { $order = Order::getOne([['order_no' => $get['order_no']], ['mall_id' => $this->mall_id]], true, ['detail']); $order_detail_ids = []; if (!empty($order)) { $order_detail_ids = array_column($order['detail'], 'id'); } $params['where'][] = ['b.source_table_id' => $order_detail_ids]; } if (isset($get['desc']) && !empty($get['desc'])) $params['where'][] = ['like', 'b.desc', $get['desc']]; if (isset($get['capital_type']) && !empty($get['capital_type'])) $params['where'][] = ['=', 'b.capital_type', $get['capital_type']]; if (!empty($get['date'])) { $start_time = strtotime($get['date'][0]); $end_time = strtotime($get['date'][1]); $params['where'][] = ['>=', 'b.created_at', $start_time]; $params['where'][] = ['<=', 'b.created_at', $end_time]; } $params['where'][] = ['=', 'b.mall_id', $this->mall_id]; if (!empty($get['status'])) { $params['where'][] = ['=', 'b.send_status', $get['status']]; } else { $params['where'][] = ['=', 'b.send_status', DigitalLog::SEND_STATUS_FROZEN]; } $params['order'] = 'b.created_at desc,b.id desc'; $params['limit'] = 20; $params['select'] = ['b.change_num', 'b.change_type', 'b.current_num', 'b.desc', 'b.capital_type', 'b.created_at', 'b.user_id', 'b.from_type']; $params['page'] = empty($get['page']) ? 1 : $get['page']; $pageData = DigitalLog::listPage($params, false); if ($pageData === false) return $this->error(DigitalLog::getStaticError()); $from_type_map = GlobalVarMap::getEnumMapByType('FromTypeMap'); $capital_type_map = GlobalVarMap::getEnumMapByType('CapitalTypeMap'); foreach ($pageData['list'] as &$val) { $val['source_text'] = ($from_type_map[$val['from_type']] ?? '') . ($capital_type_map[$val['capital_type']] ? '-' . $capital_type_map[$val['capital_type']] : ''); } $pageData['incomeCapitalTypeList'] = $capital_type_map; $pageData['date'] = $get['date']; //总发放金豆,待结算金豆 $total = UserDigital::find()->select('sum(digital) as digital,sum(frozen_digital) as frozen_digital')->where(['mall_id' => $this->mall_id,'status' => StatusEnum::ENABLED])->asArray()->one(); //已使用 $used = DigitalLog::find()->where(['mall_id' => $this->mall_id,'status' => StatusEnum::ENABLED,'change_type' => 'sub'])->andWhere(['!=','capital_type',UserWalletEnum::TRANSFER_GIVE])->sum('change_num') ?? 0; $transfer_charge = DigitalLog::find()->where(['mall_id' => $this->mall_id,'status' => StatusEnum::ENABLED,'change_type' => 'sub'])->andWhere(['=','capital_type',UserWalletEnum::TRANSFER_GIVE])->sum('contributor_money') ?? 0; $used =bcadd($used,$transfer_charge,2); $pageData['total'] = ['score' => $total['digital'] ?? 0, 'score_no_used' => $total['frozen_digital'] ?? 0, 'score_used' => $used ?? 0]; return $this->success('操作成功', $pageData); } return $this->render($this->action->id); } }