| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <?php
- namespace addons\BlindBox\backend\controllers;
- use addons\BlindBox\common\enums\BlindBoxEnum;
- use addons\BlindBox\common\models\BlindBoxBonusLog;
- use addons\BlindBox\common\models\BlindBoxBonusLogDetail;
- use addons\BlindBox\common\models\BlindBoxCate;
- use addons\BlindBox\common\models\BlindBoxRecommendUserLog;
- use common\enums\StatusEnum;
- use common\models\order\Order;
- use common\models\order\OrderDetail;
- use common\models\user\User;
- use Yii;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\BlindBox\backend\controllers
- */
- class BonusLogController extends BaseController
- {
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- if (!empty($params['name'])) $where[] = ['order_no' => trim($params['name'])];
- if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])];
- if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])];
- $params['where'] = $where;
- $params['limit'] = 10;
- $params['order'] = 'id DESC';
- $params['select'] = 'id,mall_id,user_id,order_no,total_times,divided_times,divided_money,created_at,is_feedback,contribution';
- $pageData = BlindBoxBonusLog::listPage($params, false);
- if ($pageData === false) return $this->error(BlindBoxCate::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id = array_column($pageData['list'], 'user_id');
- $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
- foreach ($pageData['list'] as &$item) {
- $item['nickname'] = $item['avatar_url'] = $item['mobile'] = '';
- if (isset($user_list[$item['user_id']])) {
- $item['nickname'] = $user_list[$item['user_id']]['nickname'];
- $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
- $item['mobile'] = $user_list[$item['user_id']]['mobile'];
- }
- $item['type'] = $item['order_no']['0'];
- }
- }
- $pageData['is_feedback_map'] = BlindBoxEnum::getIsFeedbackMap();
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('index', [
- ]);
- }
- //详情
- public function actionDetail()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $res = Yii::$app->services->validate->validate($params, [
- [['bonus_log_id'], 'required', 'message' => '请选择具体分红记录'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- if (!empty($params['order_no'])) $params['where'][] = ['order_no' => trim($params['order_no'])];
- if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])];
- if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])];
- if (isset($params['is_settlement'])) $where[] = ['is_settlement' => $params['is_settlement']];
- $params['where'][] = ['mall_id' => $this->mall_id];
- $params['where'][] = ['bonus_log_id' => $params['bonus_log_id']];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- $params['limit'] = 10;
- $params['order'] = 'id DESC';
- $params['select'] = 'id,mall_id,user_id,order_no,bonus_log_id,total_contribution,contribution,total_bonus,order_bonus,is_settlement,created_at,money,is_feedback';
- $pageData = BlindBoxBonusLogDetail::listPage($params, false);
- if ($pageData === false) return $this->error(BlindBoxCate::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id = array_column($pageData['list'], 'user_id');
- $user_list = User::lists(['where' => [['id' => $user_id]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
- foreach ($pageData['list'] as &$item) {
- $item['nickname'] = $item['avatar_url'] = $item['mobile'] = '';
- if (isset($user_list[$item['user_id']])) {
- $item['nickname'] = $user_list[$item['user_id']]['nickname'];
- $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
- $item['mobile'] = $user_list[$item['user_id']]['mobile'];
- }
- }
- }
- $pageData['is_settlement_map'] = BlindBoxEnum::getIsSettlementMap();
- $pageData['is_feedback_map'] = BlindBoxEnum::getIsFeedbackMap();
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('detail', []);
- }
- //推荐来源
- public function actionSource(){
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $params = \Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['bonus_log_id'], 'required', 'message' => '请选择具体分红记录'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $params['where']=[
- ['mall_id'=>$this->mall_id],
- ['bonus_log_id'=>$params['bonus_log_id']],
- ['status'=>StatusEnum::DISABLED]
- ];
- $params['select'] = 'user_id';
- $list = BlindBoxRecommendUserLog::lists($params);
- $user_ids = array_column($list,'user_id');
- $user_list = User::lists(['where'=>[['id'=>$user_ids]],'select'=>'id,nickname,mobile,avatar_url']);
- return $this->success('操作成功', $user_list);
- }
- }
- }
- public function actionSourceGoods(){
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $params = \Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['order_no'], 'required', 'message' => '请选择具体分红记录'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $order = Order::findOne(['order_no'=>$params['order_no']]);
- if(empty($order)) return $this->success('操作成功', []);
- $order_detail_list = OrderDetail::lists(['where'=>[['order_id'=>$order['id']]],'select'=>'id,goods_name,pic_url,price,num,goods_attr_name']);
- return $this->success('操作成功', $order_detail_list);
- }
- }
- }
- }
|