services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic'); $pool_user = CloudStockBonusPoolUser::findOne(['mall_id' => $this->mall_id, 'user_id' => $this->user_id, 'status' => StatusEnum::ENABLED]); if (empty($pool_user)) return $this->success('', []); $where = [ ['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED], ]; if (empty($configs['is_superposition'])) { $where[] = ['level' => $pool_user['level']]; } else { $where[] = ['<=', 'level', $pool_user['level']]; } $list = CloudStockBonusPoolLevel::lists([ 'where' => $where, 'order' => 'level desc' ]); if (empty($list)) return $this->success('', []); $level_arr = array_column($list, 'level'); $pool_user_list = CloudStockBonusPoolUser::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED], ['level' => $level_arr], ], 'group' => 'level', 'select' => 'count(*) as counts,level', 'index' => 'level' ]); $data = []; foreach ($list as $item) { $row = [ 'name' => $item['name'], 'money' => $item['money'], 'people_nums' => 0, ]; if (isset($pool_user_list[$item['level']])) { $row['people_nums'] = $pool_user_list[$item['level']]['counts']; } $data[] = $row; } return $this->success('', $data); } public function actionPriceDifferenceGiftPackageList() { if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->list($params); return $this->success('操作成功', $data); } } public function actionPriceDifferenceGiftPackageDetail() { if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->info($params); return $this->success('操作成功', $data); } } public function actionPriceDifferenceGiftPackageAddCart() { try { $params = \Yii::$app->request->post(); $rules = [ [['goods_id', 'num', 'type', 'price_difference_gift_package_id'], 'required'], ]; $res = \Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->addCart($params); return $this->success('操作成功', $data); } catch (\Exception $e) { return $this->error($e->getMessage()); } } public function actionPriceDifferenceGiftPackageDelCart() { $params = \Yii::$app->request->post(); $rules = [ [['goods_id', 'price_difference_gift_package_id'], 'required'], ]; $res = \Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->delCart($params); return $this->success('操作成功', $data); } public function actionPriceDifferenceGiftPackageIndexCart() { $params = \Yii::$app->request->get(); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->indexCart($params); return $this->success('操作成功', $data); } public function actionPriceDifferenceGiftPackageOrderPreview() { try { $params = \Yii::$app->request->post(); $rules = [ [['goods_ids', 'price_difference_gift_package_id'], 'required'], [['address_id'], 'safe'], ]; $res = \Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->orderPreview($params); return $this->success('操作成功', $data); } catch (\Exception $e) { return $this->error($e->getMessage()); } } public function actionPriceDifferenceGiftPackageOrderCreate() { try { $params = \Yii::$app->request->post(); $rules = [ [['goods_ids', 'price_difference_gift_package_id'], 'required'], [['address_id', 'remark', 'receiver_name', 'receiver_mobile'], 'safe'], ]; $res = \Yii::$app->services->validate->validate($params, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $data = (new CloudStockPriceDifferenceGiftPackageOrderService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->orderCreate($params); return $this->success('操作成功', $data); } catch (\Exception $e) { return $this->error($e->getMessage()); } } }