request->isAjax) { if (Yii::$app->request->isPost) { $params = Yii::$app->request->post(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($get,[ [['activities_number', 'reward_type'], 'integer'], [['activities_name'], 'string'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $time = time(); $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['<>', 'status', StatusEnum::DELETE]; !empty($params['activities_number']) && $where[] = ['=', 'activities_number', $params['activities_number']]; !empty($params['activities_name']) && $where[] = ['like', 'activities_name', $params['activities_name']]; !empty($params['reward_type']) && $where[] = ['=', 'reward_type', $params['reward_type']]; if(!empty($params['status'])) {// 状态条件筛选 switch($params['status']) { case 1:// 进行中 $where[] = ['<', 'start_at', $time]; $where[] = ['>', 'end_at', $time]; $where[] = ['=', 'status', StatusEnum::ENABLED]; break; case 2:// 已过期 $where[] = ['<', 'end_at', $time]; break; case 3:// 已失效 $where[] = ['=', 'status', StatusEnum::DISABLED]; break; case 4:// 未开始 $where[] = ['>', 'start_at', $time]; break; } } // $with = ['statistics' => function($query){ // $query->select("r_id,join_num,pay_num,pay_money"); // }]; $order = 'created_at desc'; $select = "id,activities_name,activities_number,reward_type,get_number,created_at,status,start_at,end_at"; $params = compact('where','order','select'); $list = RandomRedPacket::listPage($params, false, true); $this->success('获取成功', ['list' => $list, 'now_time' => $time]); } } else { return $this->render($this->action->id); } } public function actionEdit() { if(\Yii::$app->request->isAjax){ if(\Yii::$app->request->isPost){ $params = \Yii::$app->request->post(); $res = RandomRedPacket::setData($this->mall_id, $params); if($res == false) return $this->error("保存失败"); return $this->success("保存成功"); }else{ $params = Yii::$app->request->get(); //检查提交的参数 $res = Yii::$app->services->validate->validate($get,[[['id'], 'integer']]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); if(!empty($params['id'])){ $detail = RandomRedPacket::getOne([['id' => $params['id']]],true); $detail['goods'] = []; if($detail){ $sort = 'id DESC'; $select = "id, goods_name, cost_price, stock, cover_pic"; $relation_list = RandomRedPacketRelation::find()->where(['packet_id'=>$params['id']])->all(); $goods_ids = array_column($relation_list,'goods_id'); $where = [['id' => $goods_ids]]; $params = array('alias' => 'g', 'where' => $where, 'select'=>$select,'limit' => 10, 'order' => $sort ); $page_data = Goods::listPage($params, false, true); $goods = Goods::find()->where(['id'=>$goods_ids])->select($select)->asArray()->all(); $detail['goods'] = $goods; if ($page_data === false) return $this->error(Goods::getStaticError()); } $data['detail'] = $detail; // echo '
';print_r($detail);die;
                    return $this->success('操作成功', $data);
                }
            }
        }

        return $this->render($this->action->id,['has_coupon' => []]);
    }

    /**
     * 操作处理
     *
     * @return void
     */
    public function actionHandle()
    {
        $request = Yii::$app->request;
        if($request->isAjax && $request->isPost){
            $params = Yii::$app->request->post();
//            echo '
';print_r($params);die;
            //检查提交的参数
            $res = Yii::$app->services->validate->validate($get,[
                [['id', 'status'], 'integer']
            ]);
            if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
            // 修改数据
            $res = RandomRedPacket::setData($this->mall_id, $params);
            if($res == false) return $this->error("修改失败" . RandomRedPacket::getStaticError());

            return $this->success("修改成功");
        }
    }

    /**
     * @desc:获取商品列表,添加活动使用,不用验证权限
     * @Author: hua
     * @Date: 2021/12/13
     * @Time: 18:51
     * @Copyright: copyright (c) 2021 广东七件事集团
     * @return mixed|string|void
     */
    public function actionGoodsList()
    {
        $request = Yii::$app->request;
        if ($request->isAjax) {
            //商品列表筛选
            $get = Yii::$app->request->get();
            $where = [['mall_id' => $this->mall['id'], 'status' => [StatusEnum::ENABLED]], ['is_on_sale' => 1]];
            // 筛选
            if (isset($get['keyword'])) {
                isset($get['keyword']) && $where[] = ['or', ['like', 'goods_name', $get['keyword']], ['=', 'id', $get['keyword']]];
//                isset($get['keyword']) && $where[] = ['like', 'goods_name', trim($get['keyword']) . '%', false];
            }
            // 排序
            $packet_active_list = RandomRedPacket::find()->where(['mall_id'=>$this->mall_id,'status'=>StatusEnum::ENABLED])->andWhere(['>','end_at',time()])->all();
            $packet_id_arr = array_column($packet_active_list, 'id');
            $relation_list = RandomRedPacketRelation::find()->where(['packet_id'=>$packet_id_arr])->asArray()->all();
            $ids_arr = array_column($relation_list, 'goods_id');

            $ids_arr = array_unique($ids_arr);
            !empty($ids_arr) && $where[] = ['not in', 'id', $ids_arr];
//            $where[] = ['not in', 'id', $ids_arr];
            $sort = 'sort ASC,id DESC';
            $params = ['where' => $where, 'limit' => 20, 'order' => $sort];
            $page_data = Goods::listPage($params, false, true);
            if ($page_data === false) return $this->error(Goods::getStaticError());
            return $this->success('操作成功', $page_data);
        }
        return $this->render($this->action->id);
    }
}