| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- namespace addons\Store\backend\controllers;
- use addons\Store\common\enums\StoreEnum;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreGoods;
- use common\enums\StatusEnum;
- use common\models\common\AddonsMarketingSetting;
- class DiyController extends BaseController
- {
- public function actionIndex()
- {
- if (!\Yii::$app->request->isAjax) {
- return $this->render('/diy/index');
- }
- if (\Yii::$app->request->isGet) {
- $params['mall_id'] = $this->mall_id;
- $params['addons_name'] = StoreEnum::ADDONS_NAME;
- $params['status'] = StatusEnum::ENABLED;
- $res = AddonsMarketingSetting::findOne($params);
- if ($res == false) return $this->success('操作成功', []);
- $data = $res->toArray();
- $content = json_decode($data['content'], true);
- if (!empty($content)) {
- if (!empty($content[2]['data']['defaultTabs'])) {
- $content[2]['data']['defaultTabs'][] = [
- 'name' => 'addons',
- 'children' => ['application']
- ];
- }
- if (empty($content['3']['data']['listType'])) {
- $store_data = array_pop($content);
- $store_ids = [];
- if (!empty($store_data['data']['goods'])) {
- foreach ($store_data['data']['goods'] as $item) {
- $store_ids[] = $item['params']['store_id'];
- }
- $list = Store::lists(
- ['where' => [
- ['id' => $store_ids],
- ['status' => StatusEnum::ENABLED],
- ['mall_id' => $this->mall_id]
- ], 'select' => 'id']
- );
- $list = [];
- $store_id_arr = array_column($list, 'id'); //没有被删除的活动id
- $goods_data = [];
- foreach ($store_data['data']['goods'] as $item) {
- if (in_array($item['params']['id'], $store_id_arr)) $goods_data[] = $item;
- }
- $store_data['data']['goods'] = $goods_data;
- $content[] = $store_data;
- }
- }
- $data['content'] = json_encode($content);
- }
- return $this->success('操作成功', $data);
- } else {
- $params = \Yii::$app->request->post();
- $res = \Yii::$app->services->validate->validate($params, [
- [['content'], 'required'],
- ]);
- if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
- $params['mall_id'] = $this->mall_id;
- $params['addons_name'] = StoreEnum::ADDONS_NAME;
- $res = AddonsMarketingSetting::setData($params);
- if ($res == false) return $this->error(AddonsMarketingSetting::getStaticError());
- return $this->success('操作成功', []);
- }
- }
- public function actionStoreList()
- {
- if (!\Yii::$app->request->isGet) {
- return $this->error('请求方式错误');
- }
- $store_ids = \Yii::$app->request->get('store_ids');
- $query = Store::find()
- ->select('id,mall_id,user_id,store_name,logo_img,store_name as title,logo_img as img')
- ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'check_status' => StoreEnum::CHECK_ADOPT])
- ->andWhere(['or', ['>', 'expire_time', time()], ['expire_time' => 0]]);
- if (!empty($store_ids)) {
- $query->andWhere(['id' => $store_ids]);
- }
- $stores = $query->asArray()->indexBy('id')->all();
- $data = [];
- foreach ($store_ids as $store_id){
- if(isset($stores[$store_id])){
- $data[]=$stores[$store_id];
- }
- }
- return $this->success('success', $data);
- }
- public function actionGoodList()
- {
- if (!\Yii::$app->request->isGet) {
- return $this->error('请求方式错误');
- }
- $good_ids = \Yii::$app->request->get('good_ids');
- $query = StoreGoods::find()
- ->alias('sg')
- ->join('INNER JOIN', Store::tableName() . ' as s', 'sg.store_id = s.id')
- ->select('sg.id,sg.goods_name,sg.sales_num,sg.cover_pic,sg.price,sg.original_price')
- ->where(['sg.mall_id' => $this->mall_id, 'sg.status' => StatusEnum::ENABLED, 'sg.check_status' => StoreEnum::CHECK_ADOPT, 'sg.is_on_sale' => 1, 's.status' => StatusEnum::ENABLED, 's.check_status' => StoreEnum::CHECK_ADOPT])
- ->andWhere(['or', ['>', 'expire_time', time()], ['expire_time' => 0]]);
- if (!empty($good_ids)) {
- $query->andWhere(['sg.id' => $good_ids]);
- }
- $goods = $query->asArray()->all();
- if (!empty($goods)) {
- foreach ($goods as &$good) {
- $good['img'] = $good['cover_pic'];
- $good['discount'] = bcsub($good['original_price'],$good['price'],2);
- if($good['discount']<0) $good['discount']= 0;
- }
- }
- return $this->success('success', $goods);
- }
- }
|