123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2017/7/26
- * Time: 15:25
- */
- namespace backend\controllers;
- use common\models\ActivityReceive;
- use common\models\RedActivity;
- use common\models\RedRule;
- use yii;
- use yii\filters\AccessControl;
- use yii\web\HttpException;
- /**
- * 红包管理
- * @package backend\controllers
- */
- class RedpackController extends BaseController
- {
- public $layout = 'iframe';
- const PAGESIZE = 20;
- public function behaviors()
- {
- return [
- 'access' => [
- 'class' => AccessControl::className(),
- 'rules' => [
- [
- 'actions' => [],
- 'allow' => true,
- 'roles' => ['@'],
- ],
- ],
- ],
- ];
- }
- /**
- * 红包列表
- */
- public function actionIndex()
- {
- $mod =RedActivity::find();
- $pages = new yii\data\Pagination(["totalCount"=>$mod->count(),"pageSize"=>self::PAGESIZE]);
- $datas=$mod->offset($pages->offset)->limit($pages->limit)->addOrderBy(['id'=>SORT_DESC])->all();
- return $this->render('index',['datas'=>$datas,'pages'=>$pages]);
- }
- /**
- * 删除活动
- */
- public function actionDelete()
- {
- $result=['sign'=>1,'msg'=>'ok'];
- $id = Yii::$app->request->post('id');
- $model = RedActivity::find()->where('id=:id',[':id'=>$id])->one();
- if(!empty($model)){
- if(RedActivity::findOne($id)->delete()){
- $modRule = RedRule::find()->where(['red_id'=>$id])->one();
- $modRule->delete();
- $result=['sign'=>1,'msg'=>'ok'];
- }else{
- $result=['sign'=>0,'msg'=>'error'];
- }
- }else{
- $result=['sign'=>0,'msg'=>'找不到该活动'];
- }
- return json_encode($result);
- }
- /**
- * 添加活动
- */
- public function actionAdd(){
- if(YII::$app->request->isAjax)
- {
- $title = YII::$app->request->post('title');
- $province = YII::$app->request->post('province');
- $city = YII::$app->request->post('city');
- $area = YII::$app->request->post('area');
- $type = YII::$app->request->post('type');
- $number = YII::$app->request->post('number');
- $start_price = YII::$app->request->post('start_price');
- $end_price = YII::$app->request->post('end_price');
- $joincount = YII::$app->request->post('joincount');
- $valid_at = YII::$app->request->post('valid_at');
- $modRed = new RedActivity();
- $modRed->title = $title;
- $modRed->created_at = time();
- $modRed->province = $province;
- $modRed->city = $city;
- $modRed->area = $area;
- $modRed->type = $type;
- $modRed->number = $number;
- $modRed->valid_at = strtotime($valid_at);
- $modRed->price_interval =$start_price."~".$end_price;
- if($modRed->validate()&&$modRed->save())
- {
- $red_id = $modRed->getAttribute('id');
- $modRule = new RedRule();
- $modRule->red_id =$red_id;
- $modRule->usecount =0;
- $modRule->created_at =time();
- $modRule->start_price =$start_price;
- $modRule->end_price = $end_price;
- $modRule->joincount = $joincount;
- if($modRule->validate()&&$modRule->save())
- {
- $modRed = RedActivity::findOne($red_id);
- $modRed->rule_id = $modRule->getAttribute('id');
- if($modRed->save()){
- $result=['sign'=>1,'msg'=>'添加成功'];
- exit(json_encode($result));
- //Yii::$app->getSession()->setFlash('success','添加成功');
- }else{
- $result=['sign'=>0,'msg'=>'添加失败'];
- exit(json_encode($result));
- //Yii::$app->getSession()->setFlash('error','添加失败');
- }
- }else{
- $result=['sign'=>0,'msg'=>'添加失败'];
- exit(json_encode($result));
- //var_dump($modRule->getErrors());return false;
- }
- }else{
- $result=['sign'=>0,'msg'=>'添加失败'];
- exit(json_encode($result));
- //var_dump($modRed->getErrors());return false;
- //\Yii::$app->getSession()->setFlash('error',$modRed->getErrors());
- }
- }
- return $this->render('add');
- }
- /**
- * 查看修改活动
- * @return string
- */
- public function actionEdit()
- {
- $id =Yii::$app->request->post('id');
- if(empty($id))
- {
- $id = Yii::$app->request->get('id');
- }
- if(Yii::$app->request->isAjax)
- {
- $result=['sign'=>1,'msg'=>'ok'];
- //$id = Yii::$app->request->post('id');
- $title = Yii::$app->request->post('title');
- $province = Yii::$app->request->post('province');
- $city = Yii::$app->request->post('city');
- $area = Yii::$app->request->post('area');
- $type = Yii::$app->request->post('type');
- $number = Yii::$app->request->post('number');
- $start_price = Yii::$app->request->post('start_price');
- $end_price = Yii::$app->request->post('end_price');
- $joincount = Yii::$app->request->post('joincount');
- $valid_at = Yii::$app->request->post('valid_at');
- $modRed = RedActivity::findOne($id);
- $modRed->title = $title;
- $modRed->province = $province;
- $modRed->city = $city;
- $modRed->area = $area;
- $modRed->type = $type;
- $modRed->number = $number;
- $modRed->valid_at = strtotime($valid_at);
- $modRed->price_interval = $start_price."~".$end_price;
- if($modRed->save() && $modRed->validate())
- {
- $modRule = RedRule::findOne($modRed->getAttribute('rule_id'));
- $modRule->joincount = $joincount;
- $modRule->start_price = $start_price;
- $modRule->end_price = $end_price;
- $modRule->save();
- //Yii::$app->getSession()->setFlash('success','修改成功!');
- $result=['sign'=>1,'msg'=>'修改成功'];
- exit(json_encode($result));
- }else{
- $result=['sign'=>0,'msg'=>'修改失败'];
- exit(json_encode($result));
- }
- }
- //$id = Yii::$app->request->get('id');
- $msql = "SELECT a.*,b.`joincount`,b.`start_price`,b.`end_price` FROM {{%red_activity}} AS a LEFT JOIN {{%red_rule}} AS b ON a.`id` = b.`red_id` WHERE a.`id` =:id ";
- $info = Yii::$app->db->createCommand($msql)->bindValues([':id'=>$id])->queryOne();
- $province = Yii::$app->db->createCommand('SELECT area FROM {{%area}} WHERE `area_id` = :area_id AND `type` = 1 ')->bindValue(':area_id',$info['province'])->queryOne();
- $city = Yii::$app->db->createCommand('SELECT area FROM {{%area}} WHERE `area_id` = :area_id AND `type` = 2 ')->bindValue(':area_id',$info['city'])->queryOne();
- $info['province'] = $province['area'];
- $info['city'] = $city['area'];
- return $this->render('edit',['info'=>$info]);
- }
- /**
- * 红包记录
- */
- public function actionReceive()
- {
- $id = Yii::$app->request->get('id');
- $pages = new yii\data\Pagination(["totalCount"=>ActivityReceive::find()->where(['activity_id'=>$id])->count(),"pageSize"=>self::PAGESIZE]);
- $mysql ="SELECT a.*,b.`name` FROM {{%activity_receive}} AS a LEFT JOIN {{%building}} AS b ON a.source_id = b.id WHERE a.activity_id = :activity_id ORDER BY a.`id` DESC LIMIT ".$pages->offset.",".$pages->limit;
- $list = Yii::$app->db->createCommand($mysql)->bindValues([':activity_id'=>$id])->queryAll();
- return $this->render('receive',['list'=>$list,'pages'=>$pages]);
- }
- }
|