RandDiscountController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\controllers;
  8. use app\models\Option;
  9. use app\models\Order;
  10. use app\models\User;
  11. use app\models\SaasUser;
  12. class RandDiscountController extends BaseController
  13. {
  14. public function actionOption()
  15. {
  16. $store_id = \get_store_id();
  17. $name = 'rand_discount_option';
  18. $group = 'saas';
  19. if (\Yii::$app->request->getIsPost()) {
  20. $value = \input_params_only(['is_open', 'start', 'end']);
  21. Option::set($name, json_encode($value), $store_id, $group);
  22. return $this->asJson([
  23. 'code' => 0,
  24. 'msg' => '保存成功',
  25. ]);
  26. }
  27. $option = Option::get($name, $store_id, $group, json_encode([
  28. 'is_open' => false,
  29. 'start' => 0,
  30. 'end' => 0.01,
  31. ]))['value'];
  32. return $this->asJson([
  33. 'code' => 0,
  34. 'data' => json_decode($option),
  35. ]);
  36. }
  37. public function actionList()
  38. {
  39. $orderNo = \get_params('order_no');
  40. $query = Order::find()->where([
  41. 'store_id' => \get_store_id(),
  42. 'is_delete' => 0,
  43. 'is_recycle' => 0,
  44. ])
  45. ->andWhere(['>', 'rand_discount', 0])
  46. ->select('id, order_no, total_price, pay_price, user_id, rand_discount, is_pay');
  47. if ($orderNo) {
  48. $query->andWhere(['like', 'order_no', $orderNo]);
  49. }
  50. $pagination = pagination_make($query, true, 'id DESC');
  51. foreach($pagination['list'] as &$item) {
  52. $user = User::findOne($item['user_id']);
  53. $saasUser = SaasUser::findOne(['mobile' => $user->binding]);
  54. $item['nickname'] = $saasUser->name;
  55. $item['mobile'] = $saasUser->mobile;
  56. $item['avatar'] = $saasUser->avatar;
  57. }
  58. return $this->asJson([
  59. 'code' => 0,
  60. 'data' => $pagination,
  61. ]);
  62. }
  63. }