DefaultController.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace addons\CloudStock\api\modules\v1\controllers;
  3. use addons\CloudStock\common\models\CloudStockBonusPoolLevel;
  4. use addons\CloudStock\common\models\CloudStockBonusPoolUser;
  5. use addons\CloudStock\common\services\CloudStockPriceDifferenceGiftPackageOrderService;
  6. use addons\CloudStock\common\services\CloudStockPriceDifferenceGiftPackageService;
  7. use common\enums\AddonsEnum;
  8. use common\enums\StatusEnum;
  9. /**
  10. * 默认控制器
  11. *
  12. * Class DefaultController
  13. * @package addons\CloudStock\api\modules\v1\controllers
  14. */
  15. class DefaultController extends BaseController
  16. {
  17. public $modelClass = '';
  18. /**
  19. * 不用进行登录验证的方法
  20. *
  21. * 例如: ['index', 'update', 'create', 'view', 'delete']
  22. * 默认全部需要验证
  23. *
  24. * @var array
  25. */
  26. protected $authOptional = ['index'];
  27. /**
  28. * 首页
  29. *
  30. * @return string
  31. */
  32. public function actionIndex()
  33. {
  34. return 'Hello world';
  35. }
  36. public function actionPoolLevelList()
  37. {
  38. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic');
  39. $pool_user = CloudStockBonusPoolUser::findOne(['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED]);
  40. if (empty($pool_user)) return $this->success('', []);
  41. $where = [
  42. ['mall_id' => $this->mall_id],
  43. ['status' => StatusEnum::ENABLED],
  44. ];
  45. if (empty($configs['is_superposition'])) {
  46. $where[] = ['level' => $pool_user['level']];
  47. } else {
  48. $where[] = ['<=', 'level', $pool_user['level']];
  49. }
  50. $list = CloudStockBonusPoolLevel::lists([
  51. 'where' => $where,
  52. 'order' => 'level desc'
  53. ]);
  54. if (empty($list)) return $this->success('', []);
  55. $level_arr = array_column($list, 'level');
  56. $pool_user_list = CloudStockBonusPoolUser::lists([
  57. 'where' => [
  58. ['mall_id' => $this->mall_id],
  59. ['status' => StatusEnum::ENABLED],
  60. ['level' => $level_arr],
  61. ],
  62. 'group' => 'level',
  63. 'select' => 'count(*) as counts,level',
  64. 'index' => 'level'
  65. ]);
  66. $data = [];
  67. foreach ($list as $item) {
  68. $row = [
  69. 'name' => $item['name'],
  70. 'money' => $item['money'],
  71. 'people_nums' => 0,
  72. ];
  73. if (isset($pool_user_list[$item['level']])) {
  74. $row['people_nums'] = $pool_user_list[$item['level']]['counts'];
  75. }
  76. $data[] = $row;
  77. }
  78. return $this->success('', $data);
  79. }
  80. public function actionPriceDifferenceGiftPackageList()
  81. {
  82. if (\Yii::$app->request->isGet) {
  83. $params = \Yii::$app->request->get();
  84. $params['mall_id'] = $this->mall_id;
  85. $data = (new CloudStockPriceDifferenceGiftPackageService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->list($params);
  86. return $this->success('操作成功', $data);
  87. }
  88. }
  89. public function actionPriceDifferenceGiftPackageDetail()
  90. {
  91. if (\Yii::$app->request->isGet) {
  92. $params = \Yii::$app->request->get();
  93. $params['mall_id'] = $this->mall_id;
  94. $data = (new CloudStockPriceDifferenceGiftPackageService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->info($params);
  95. return $this->success('操作成功', $data);
  96. }
  97. }
  98. public function actionPriceDifferenceGiftPackageAddCart()
  99. {
  100. try {
  101. $params = \Yii::$app->request->post();
  102. $rules = [
  103. [['goods_id', 'num', 'type', 'price_difference_gift_package_id'], 'required'],
  104. ];
  105. $res = \Yii::$app->services->validate->validate($params, $rules);
  106. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  107. $params['mall_id'] = $this->mall_id;
  108. $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->addCart($params);
  109. return $this->success('操作成功', $data);
  110. } catch (\Exception $e) {
  111. return $this->error($e->getMessage());
  112. }
  113. }
  114. public function actionPriceDifferenceGiftPackageDelCart()
  115. {
  116. $params = \Yii::$app->request->post();
  117. $rules = [
  118. [['goods_id', 'price_difference_gift_package_id'], 'required'],
  119. ];
  120. $res = \Yii::$app->services->validate->validate($params, $rules);
  121. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  122. $params['mall_id'] = $this->mall_id;
  123. $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->delCart($params);
  124. return $this->success('操作成功', $data);
  125. }
  126. public function actionPriceDifferenceGiftPackageIndexCart()
  127. {
  128. $params = \Yii::$app->request->get();
  129. $params['mall_id'] = $this->mall_id;
  130. $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->indexCart($params);
  131. return $this->success('操作成功', $data);
  132. }
  133. public function actionPriceDifferenceGiftPackageOrderPreview()
  134. {
  135. try {
  136. $params = \Yii::$app->request->post();
  137. $rules = [
  138. [['goods_ids', 'price_difference_gift_package_id'], 'required'],
  139. [['address_id'], 'safe'],
  140. ];
  141. $res = \Yii::$app->services->validate->validate($params, $rules);
  142. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  143. $params['mall_id'] = $this->mall_id;
  144. $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->orderPreview($params);
  145. return $this->success('操作成功', $data);
  146. } catch (\Exception $e) {
  147. return $this->error($e->getMessage());
  148. }
  149. }
  150. public function actionPriceDifferenceGiftPackageOrderCreate()
  151. {
  152. try {
  153. $params = \Yii::$app->request->post();
  154. $rules = [
  155. [['goods_ids', 'price_difference_gift_package_id'], 'required'],
  156. [['address_id', 'remark', 'receiver_name', 'receiver_mobile'], 'safe'],
  157. ];
  158. $res = \Yii::$app->services->validate->validate($params, $rules);
  159. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  160. $params['mall_id'] = $this->mall_id;
  161. $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->orderCreate($params);
  162. return $this->success('操作成功', $data);
  163. } catch (\Exception $e) {
  164. return $this->error($e->getMessage());
  165. }
  166. }
  167. }