AdController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: leo
  5. * Date: 2018/2/24
  6. * Time: 下午12:48
  7. */
  8. namespace backendApi\modules\v1\controllers;
  9. use backendApi\modules\v1\models\Admin;
  10. use common\helpers\Cache;
  11. use common\helpers\Form;
  12. use common\helpers\Log;
  13. use common\models\Ad;
  14. use common\models\AdLocation;
  15. use common\models\forms\AdForm;
  16. use common\models\forms\UploadForm;
  17. use Yii;
  18. use yii\web\UploadedFile;
  19. class AdController extends BaseController
  20. {
  21. public $modelClass = Ad::class;
  22. public function actions() {
  23. return parent::actions(); // TODO: Change the autogenerated stub
  24. }
  25. /**
  26. * 广告位列表
  27. * @return mixed
  28. * @throws \yii\web\HttpException
  29. */
  30. public function actionLocation(){
  31. $condition = '';
  32. $params = [];
  33. $data = AdLocation::lists($condition, $params, [
  34. 'select' => 'ADL.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME',
  35. 'from' => AdLocation::tableName().' AS ADL',
  36. 'join' => [
  37. ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=ADL.CREATE_ADMIN'],
  38. ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=ADL.UPDATE_ADMIN'],
  39. ],
  40. 'orderBy' => 'ADL.CREATED_AT ASC',
  41. ]);
  42. return static::notice($data);
  43. }
  44. /**
  45. * 列表
  46. * @return mixed
  47. * @throws \yii\web\HttpException
  48. */
  49. public function actionList(){
  50. $lid = Yii::$app->request->get('lid');
  51. $condition = ' AND AD.LID=:LID';
  52. $params[':LID']=$lid;
  53. $data = Ad::lists($condition, $params, [
  54. 'select' => 'AD.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME',
  55. 'from' => Ad::tableName().' AS AD',
  56. 'join' => [
  57. ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=AD.CREATE_ADMIN'],
  58. ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=AD.UPDATE_ADMIN'],
  59. ],
  60. 'orderBy' => 'AD.SORT DESC,AD.CREATED_AT ASC',
  61. ]);
  62. $data['allLocation'] = AdLocation::getAllLocation();
  63. return static::notice($data);
  64. }
  65. /**
  66. * 添加
  67. * @return mixed
  68. * @throws \yii\web\HttpException
  69. */
  70. public function actionAdd(){
  71. if(Yii::$app->request->isPost) {
  72. return parent::edit(AdForm::class, '添加广告成功', null, null, null, function($formModel, $result){
  73. // 添加操作日志
  74. // Log::adminHandle('添加广告:'.$result->TITLE);
  75. });
  76. }
  77. // 获取全部分类
  78. $allLocation = AdLocation::getAllLocation();
  79. return static::notice(['allLocation'=>$allLocation]);
  80. }
  81. /**
  82. * 编辑
  83. * @return mixed
  84. * @throws \yii\web\HttpException
  85. */
  86. public function actionEdit(){
  87. $id = Yii::$app->request->get('id');
  88. if(Yii::$app->request->isPost) {
  89. return parent::edit(AdForm::class, '编辑广告成功', null, null, null, function($formModel, $result){
  90. // 添加操作日志
  91. // Log::adminHandle('编辑广告:'.$result->TITLE);
  92. });
  93. }
  94. $oneData = Ad::findOneAsArray(['ID'=>$id]);
  95. // 获取全部分类
  96. $allLocation = AdLocation::getAllLocation();
  97. return static::notice(['oneData'=>$oneData, 'allLocation'=>$allLocation]);
  98. }
  99. /**
  100. * 删除
  101. * @return mixed
  102. * @throws \yii\db\Exception
  103. * @throws \yii\web\HttpException
  104. */
  105. public function actionAdDelete(){
  106. $adForm = new AdForm();
  107. $result = static::delete(Ad::class, function ($selected) use ($adForm) {
  108. $adForm->beforeDelete($selected);
  109. }, function ($selected) use ($adForm) {
  110. $adForm->delete($selected);
  111. }, true);
  112. return $result;
  113. }
  114. /**
  115. * 排序
  116. * @return mixed
  117. * @throws \yii\web\HttpException
  118. */
  119. public function actionSort(){
  120. if(Yii::$app->request->get('id')){
  121. $formModel = new AdForm();
  122. $formModel->scenario = 'sort';
  123. if($formModel->load(Yii::$app->request->get(), '') && $formModel->sortTo()){
  124. return static::notice('排序成功');
  125. } else {
  126. return static::notice('排序失败', 400);
  127. }
  128. }
  129. }
  130. /**
  131. * 状态
  132. * @return mixed
  133. * @throws \yii\web\HttpException
  134. */
  135. public function actionStatus(){
  136. if(Yii::$app->request->get('id')){
  137. $formModel = new AdForm();
  138. $formModel->scenario = 'status';
  139. if($formModel->load(Yii::$app->request->get(), '') && $formModel->statusTo()){
  140. return static::notice('排序成功');
  141. } else {
  142. return static::notice('排序失败', 400);
  143. }
  144. }
  145. }
  146. /**
  147. * 上传图片
  148. * @return mixed
  149. * @throws \yii\base\Exception
  150. * @throws \yii\db\Exception
  151. * @throws \yii\web\HttpException
  152. */
  153. public function actionUpload(){
  154. if(\Yii::$app->request->isPost){
  155. $formModel = new UploadForm();
  156. $formModel->scenario = 'ad';
  157. $formModel->file = UploadedFile::getInstanceByName('file');
  158. $formModel->token = \Yii::$app->request->request('uploadToken');;
  159. if($formModel->file && $uploader = $formModel->upload()){
  160. return static::notice($uploader->URL);
  161. } else {
  162. return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
  163. }
  164. } else {
  165. $token = Cache::setUploadToken();
  166. return static::notice($token);
  167. }
  168. }
  169. }