| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- namespace addons\Course\backend\controllers;
- use addons\Course\common\enums\CourseEnum;
- use addons\Course\common\logic\OrderRefuseLogic;
- use addons\Course\common\models\AddonsCourse;
- use addons\Course\common\models\AddonsCourseOrders;
- use addons\Course\common\services\CourseService;
- use common\enums\PayTypeEnum;
- use common\enums\StatusEnum;
- use common\models\user\User;
- use Exception;
- use Yii;
- class OrderController extends BaseController
- {
- 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[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- if (!empty($params['course_name'])) {
- $course_list = AddonsCourse::lists(['where' => [['like', 'name', $params['course_name'] . '%', false]], 'select' => 'id']);
- $cid = array_column($course_list, 'id');
- $where[] = ['course_id' => $cid];
- }
- if (!empty($params['user_id'])) $where[] = ['user_id' => $params['user_id']];
- if (!empty($params['user_info'])) {
- $user_list = User::lists([
- 'where' => [
- [
- 'or',
- ['like', 'nickname', $params['user_info'] . '%', false],
- ['like', 'mobile', $params['user_info'] . '%', false],
- ]
- ],
- 'select' => 'id'
- ]);
- $user_id_arr = array_column($user_list, 'id');
- $where[] = ['user_id' => $user_id_arr];
- }
- if (!empty($params['order_no'])) $where[] = ['order_no' => $params['order_no']];
- if (!empty($params['start_time'])) {
- $where[] = ['>=', 'created_at', strtotime($params['start_time'] . ' 00:00:00')];
- }
- if (!empty($params['end_time'])) {
- $where[] = ['<=', 'created_at', strtotime($params['end_time'] . ' 23:59:59')];
- }
- $params = [
- 'where' => $where,
- 'order' => 'created_at desc',
- ];
- $page_data = AddonsCourseOrders::listPage($params);
- if (!empty($page_data['list'])) {
- $user_id_arr = array_column($page_data['list'], 'user_id');
- $course_id = array_column($page_data['list'], 'course_id');
- $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
- $course_list = AddonsCourse::lists(['where' => [['id' => $course_id]], 'index' => 'id', 'select' => 'id,name,logo']);
- foreach ($page_data['list'] as &$item) {
- $item['course_name'] = '';
- $item['course_picture'] = '';
- $item['nickname'] = '';
- $item['avatar_url'] = '';
- $item['mobile'] = '';
- if (isset($course_list[$item['course_id']])) {
- $item['course_name'] = $course_list[$item['course_id']]['name'];
- $item['course_picture'] = $course_list[$item['course_id']]['logo'];
- }
- 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['show_refund_botton'] = 0;
- //判断订单是否为课程订单
- if (substr($item['order_no'], 0, 1) == 'C' && is_numeric(substr($item['order_no'], 1, 1))) {
- if (strtotime("+3 months", $item['created_at']) > time()) {
- $item['show_refund_botton'] = 1;
- }
- }
- }
- }
- $page_data['payment_type_list'] = PayTypeEnum::getMap();
- $page_data['order_status_map'] = CourseEnum::getOrderStatusMap();
- return $this->success('success', $page_data);
- } else {
- return $this->error('请求方式错误');
- }
- } else {
- return $this->render('index');
- }
- }
- public function actionGetCourseCommissionList()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isGet) {
- try {
- $get = $request->get();
- $res = Yii::$app->services->validate->validate($get, [
- [['order_id'], 'integer'],
- [['wallet_type'], 'string'],
- ]);
- if (!$res) throw new Exception(Yii::$app->services->validate->getErrorMessage());
- $list = (new CourseService(['mall_id' => $this->mall_id]))->getCourseCommissionList($get);
- return $this->success('操作成功', ['list' => $list]);
- } catch (\Exception $e) {
- throw new Exception($e->getMessage());
- }
- }
- }
- public function actionDoRefundSubmit()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- try {
- $post = $request->post();
- $res = Yii::$app->services->validate->validate($post, [
- [['user_id', 'order_id', 'id', 'balance_pre'], 'integer'],
- [['refund_price'], 'number'],
- [['remark'], 'string']
- ]);
- if (!$res) throw new Exception(Yii::$app->services->validate->getErrorMessage());
- $res = (new CourseService(['mall_id' => $this->mall_id]))->doRefundSubmit($post);
- return $this->success('退款成功');
- } catch (\Exception $e) {
- return $this->error($e->getMessage());
- }
- }
- }
- }
|