| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace backend\modules\mall\controllers;
- use backend\controllers\MallController;
- use common\enums\DownloadEnum;
- use common\enums\StatusEnum;
- use common\enums\UserWalletEnum;
- use common\helpers\csv\CsvExportHelper;
- use common\models\common\CapitalLog;
- use common\models\common\GlobalVarMap;
- use common\models\order\Order;
- use common\models\user\DigitalLog;
- use common\models\user\UserDigital;
- /**
- *
- * Class DigitalController
- * @package backend\modules\mall\DigitalController
- */
- class DigitalController extends MallController
- {
- /**
- *
- * @return mixed|string|void
- */
- public function actionIndex()
- {
- date_default_timezone_set('PRC');
- if (\Yii::$app->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);
- }
- }
|