RedpackController.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2017/7/26
  6. * Time: 15:25
  7. */
  8. namespace backend\controllers;
  9. use common\models\ActivityReceive;
  10. use common\models\RedActivity;
  11. use common\models\RedRule;
  12. use yii;
  13. use yii\filters\AccessControl;
  14. use yii\web\HttpException;
  15. /**
  16. * 红包管理
  17. * @package backend\controllers
  18. */
  19. class RedpackController extends BaseController
  20. {
  21. public $layout = 'iframe';
  22. const PAGESIZE = 20;
  23. public function behaviors()
  24. {
  25. return [
  26. 'access' => [
  27. 'class' => AccessControl::className(),
  28. 'rules' => [
  29. [
  30. 'actions' => [],
  31. 'allow' => true,
  32. 'roles' => ['@'],
  33. ],
  34. ],
  35. ],
  36. ];
  37. }
  38. /**
  39. * 红包列表
  40. */
  41. public function actionIndex()
  42. {
  43. $mod =RedActivity::find();
  44. $pages = new yii\data\Pagination(["totalCount"=>$mod->count(),"pageSize"=>self::PAGESIZE]);
  45. $datas=$mod->offset($pages->offset)->limit($pages->limit)->addOrderBy(['id'=>SORT_DESC])->all();
  46. return $this->render('index',['datas'=>$datas,'pages'=>$pages]);
  47. }
  48. /**
  49. * 删除活动
  50. */
  51. public function actionDelete()
  52. {
  53. $result=['sign'=>1,'msg'=>'ok'];
  54. $id = Yii::$app->request->post('id');
  55. $model = RedActivity::find()->where('id=:id',[':id'=>$id])->one();
  56. if(!empty($model)){
  57. if(RedActivity::findOne($id)->delete()){
  58. $modRule = RedRule::find()->where(['red_id'=>$id])->one();
  59. $modRule->delete();
  60. $result=['sign'=>1,'msg'=>'ok'];
  61. }else{
  62. $result=['sign'=>0,'msg'=>'error'];
  63. }
  64. }else{
  65. $result=['sign'=>0,'msg'=>'找不到该活动'];
  66. }
  67. return json_encode($result);
  68. }
  69. /**
  70. * 添加活动
  71. */
  72. public function actionAdd(){
  73. if(YII::$app->request->isAjax)
  74. {
  75. $title = YII::$app->request->post('title');
  76. $province = YII::$app->request->post('province');
  77. $city = YII::$app->request->post('city');
  78. $area = YII::$app->request->post('area');
  79. $type = YII::$app->request->post('type');
  80. $number = YII::$app->request->post('number');
  81. $start_price = YII::$app->request->post('start_price');
  82. $end_price = YII::$app->request->post('end_price');
  83. $joincount = YII::$app->request->post('joincount');
  84. $valid_at = YII::$app->request->post('valid_at');
  85. $modRed = new RedActivity();
  86. $modRed->title = $title;
  87. $modRed->created_at = time();
  88. $modRed->province = $province;
  89. $modRed->city = $city;
  90. $modRed->area = $area;
  91. $modRed->type = $type;
  92. $modRed->number = $number;
  93. $modRed->valid_at = strtotime($valid_at);
  94. $modRed->price_interval =$start_price."~".$end_price;
  95. if($modRed->validate()&&$modRed->save())
  96. {
  97. $red_id = $modRed->getAttribute('id');
  98. $modRule = new RedRule();
  99. $modRule->red_id =$red_id;
  100. $modRule->usecount =0;
  101. $modRule->created_at =time();
  102. $modRule->start_price =$start_price;
  103. $modRule->end_price = $end_price;
  104. $modRule->joincount = $joincount;
  105. if($modRule->validate()&&$modRule->save())
  106. {
  107. $modRed = RedActivity::findOne($red_id);
  108. $modRed->rule_id = $modRule->getAttribute('id');
  109. if($modRed->save()){
  110. $result=['sign'=>1,'msg'=>'添加成功'];
  111. exit(json_encode($result));
  112. //Yii::$app->getSession()->setFlash('success','添加成功');
  113. }else{
  114. $result=['sign'=>0,'msg'=>'添加失败'];
  115. exit(json_encode($result));
  116. //Yii::$app->getSession()->setFlash('error','添加失败');
  117. }
  118. }else{
  119. $result=['sign'=>0,'msg'=>'添加失败'];
  120. exit(json_encode($result));
  121. //var_dump($modRule->getErrors());return false;
  122. }
  123. }else{
  124. $result=['sign'=>0,'msg'=>'添加失败'];
  125. exit(json_encode($result));
  126. //var_dump($modRed->getErrors());return false;
  127. //\Yii::$app->getSession()->setFlash('error',$modRed->getErrors());
  128. }
  129. }
  130. return $this->render('add');
  131. }
  132. /**
  133. * 查看修改活动
  134. * @return string
  135. */
  136. public function actionEdit()
  137. {
  138. $id =Yii::$app->request->post('id');
  139. if(empty($id))
  140. {
  141. $id = Yii::$app->request->get('id');
  142. }
  143. if(Yii::$app->request->isAjax)
  144. {
  145. $result=['sign'=>1,'msg'=>'ok'];
  146. //$id = Yii::$app->request->post('id');
  147. $title = Yii::$app->request->post('title');
  148. $province = Yii::$app->request->post('province');
  149. $city = Yii::$app->request->post('city');
  150. $area = Yii::$app->request->post('area');
  151. $type = Yii::$app->request->post('type');
  152. $number = Yii::$app->request->post('number');
  153. $start_price = Yii::$app->request->post('start_price');
  154. $end_price = Yii::$app->request->post('end_price');
  155. $joincount = Yii::$app->request->post('joincount');
  156. $valid_at = Yii::$app->request->post('valid_at');
  157. $modRed = RedActivity::findOne($id);
  158. $modRed->title = $title;
  159. $modRed->province = $province;
  160. $modRed->city = $city;
  161. $modRed->area = $area;
  162. $modRed->type = $type;
  163. $modRed->number = $number;
  164. $modRed->valid_at = strtotime($valid_at);
  165. $modRed->price_interval = $start_price."~".$end_price;
  166. if($modRed->save() && $modRed->validate())
  167. {
  168. $modRule = RedRule::findOne($modRed->getAttribute('rule_id'));
  169. $modRule->joincount = $joincount;
  170. $modRule->start_price = $start_price;
  171. $modRule->end_price = $end_price;
  172. $modRule->save();
  173. //Yii::$app->getSession()->setFlash('success','修改成功!');
  174. $result=['sign'=>1,'msg'=>'修改成功'];
  175. exit(json_encode($result));
  176. }else{
  177. $result=['sign'=>0,'msg'=>'修改失败'];
  178. exit(json_encode($result));
  179. }
  180. }
  181. //$id = Yii::$app->request->get('id');
  182. $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 ";
  183. $info = Yii::$app->db->createCommand($msql)->bindValues([':id'=>$id])->queryOne();
  184. $province = Yii::$app->db->createCommand('SELECT area FROM {{%area}} WHERE `area_id` = :area_id AND `type` = 1 ')->bindValue(':area_id',$info['province'])->queryOne();
  185. $city = Yii::$app->db->createCommand('SELECT area FROM {{%area}} WHERE `area_id` = :area_id AND `type` = 2 ')->bindValue(':area_id',$info['city'])->queryOne();
  186. $info['province'] = $province['area'];
  187. $info['city'] = $city['area'];
  188. return $this->render('edit',['info'=>$info]);
  189. }
  190. /**
  191. * 红包记录
  192. */
  193. public function actionReceive()
  194. {
  195. $id = Yii::$app->request->get('id');
  196. $pages = new yii\data\Pagination(["totalCount"=>ActivityReceive::find()->where(['activity_id'=>$id])->count(),"pageSize"=>self::PAGESIZE]);
  197. $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;
  198. $list = Yii::$app->db->createCommand($mysql)->bindValues([':activity_id'=>$id])->queryAll();
  199. return $this->render('receive',['list'=>$list,'pages'=>$pages]);
  200. }
  201. }