DefaultController.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace addons\Community\backend\controllers;
  3. use addons\Community\common\enums\CommunityEnum;
  4. use addons\Community\common\service\SettingService;
  5. use addons\Community\common\listeners\OrderPaidListener;
  6. use common\enums\OrderStatusEnum;
  7. use Yii;
  8. use yii\helpers\Json;
  9. /**
  10. * 默认控制器
  11. *
  12. * Class DefaultController
  13. * @package addons\Community\backend\controllers
  14. */
  15. class DefaultController extends BaseController
  16. {
  17. public $enableCsrfValidation = false;
  18. /**
  19. * 首页
  20. *
  21. * @return string
  22. */
  23. public function actionIndex()
  24. {
  25. if (Yii::$app->request->isAjax) {
  26. $service = new SettingService();
  27. if (Yii::$app->request->isGet) {
  28. $ret = $service->get($this->mall_id);
  29. if (empty($ret)) {
  30. $ret = [
  31. 'position_range' => 1,
  32. 'can_receive_day' => 1,
  33. 'pick_up_time_range_type' => 0,
  34. 'settlement_type' => 1,
  35. 'calculate_type' => 0,
  36. 'head_commission_type' => 0,
  37. 'commission' => '',
  38. 'pick_up_time_range_custom' => [],
  39. 'pick_up_time_range_custom_at' => [],
  40. 'area' => [],
  41. 'not_area' => [],
  42. 'apply_pic' => '',
  43. 'protocol_content' => '',
  44. 'protocol_title' => '',
  45. 'is_enable_reward' => 0,
  46. 'is_enable' => 0,
  47. 'sms' => [],
  48. 'is_enable_write_off' => 0,
  49. 'is_platform_distribution' => 0,
  50. 'is_force_free_shipping' => 0,
  51. ];
  52. } else {
  53. if (!empty($ret['area']))
  54. {
  55. $ret['area'] = Json::decode($ret['area']);
  56. } else {
  57. $ret['area'] = [];
  58. }
  59. if (!empty($ret['not_area']) && !empty($ret['area'])) {
  60. // 因为区域如果只选择第三级。但是area中因为需求要存一、二级ID。 所以返回前段时要去掉一、二级ID。
  61. $ret['not_area'] = Json::decode($ret['not_area']);
  62. $ret['area'] = array_filter($ret['area'], function ($item) use ($ret) {
  63. return !in_array($item, $ret['not_area']);
  64. });
  65. $ret['all_area'] = array_values($ret['not_area']);
  66. unset($ret['not_area']);
  67. } else {
  68. $ret['not_area'] = [];
  69. }
  70. if (!empty($ret['sms'])) {
  71. $ret['sms'] = Json::decode($ret['sms']);
  72. } else {
  73. $ret['sms'] = [];
  74. }
  75. if (!empty($ret['pick_up_time_range_custom'])) {
  76. $ret['pick_up_time_range_custom'] = Json::decode($ret['pick_up_time_range_custom']);
  77. $ret['pick_up_time_range_custom_at'] = Json::decode($ret['pick_up_time_range_custom_at']);
  78. foreach ($ret['pick_up_time_range_custom_at'] as &$item) {
  79. $item = sprintf("%s %s", date('Y-m-d'), $item);
  80. }
  81. }
  82. }
  83. return $this->success('获取成功', $ret);
  84. } else if(Yii::$app->request->isPost) {
  85. $data = Yii::$app->request->post('body');
  86. $data = Json::decode($data);
  87. $valid = Yii::$app->services->validate->validate($data, [
  88. [['position_range', 'can_receive_day', 'pick_up_time_range_type',
  89. 'settlement_type', 'calculate_type', 'head_commission_type', 'commission'], 'number'],
  90. [['pick_up_time_range_custom', 'pick_up_time_range_custom_at', 'area', 'protocol_title', 'sms', 'not_area'], 'safe'],
  91. [['apply_pic', 'protocol_content'], 'string'],
  92. [['is_enable_reward', 'is_enable', 'is_enable_write_off', 'is_force_free_shipping', 'is_platform_distribution'], 'integer']
  93. ]);
  94. if ($valid === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  95. $data['area'] = !empty($data['area']) ? Json::encode(array_unique($data['area'])) : '';
  96. $data['not_area'] = !empty($data['not_area']) ? Json::encode(array_unique($data['not_area'])) : '';
  97. $data['sms'] = !empty($data['sms']) ? Json::encode($data['sms']) : Json::encode([]);
  98. if (!empty($data['pick_up_time_range_custom_at'])) {
  99. foreach ($data['pick_up_time_range_custom_at'] as &$datum) {
  100. $d = strtotime($datum);
  101. $datum = date('H:i:s', $d);
  102. }
  103. }
  104. $data['pick_up_time_range_custom_at'] = !empty($data['pick_up_time_range_custom_at']) ?
  105. Json::encode($data['pick_up_time_range_custom_at']) : Json::encode([]);
  106. $data['pick_up_time_range_custom'] = !empty($data['pick_up_time_range_custom']) ?
  107. Json::encode($data['pick_up_time_range_custom']) : Json::encode([]);
  108. return $service->save($this->mall_id, $data) ? $this->success() : $this->error();
  109. }
  110. }
  111. return $this->render('index',[]);
  112. }
  113. public function actionSmsKeys()
  114. {
  115. // 订单
  116. // 团长
  117. // 买家
  118. return $this->success('获取成功', CommunityEnum::SMS_KEYS);
  119. }
  120. public function actionTest()
  121. {
  122. $data = [
  123. 'id' => 42670,
  124. ];
  125. $order_paid_listener = new OrderPaidListener();
  126. $res = $order_paid_listener->exec($data);
  127. print_r($res);exit;
  128. }
  129. }