AdvertisementController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2018/10/15
  6. * Time: 13:46
  7. */
  8. namespace app\backend\modules\finance\controllers;
  9. use app\backend\modules\finance\models\Advertisement;
  10. use app\backend\modules\uploadVerificate\UploadVerificationBaseController;
  11. use app\common\components\BaseController;
  12. use app\common\exceptions\ShopException;
  13. use app\common\helpers\PaginationHelper;
  14. use app\common\helpers\Url;
  15. class AdvertisementController extends UploadVerificationBaseController
  16. {
  17. public function index()
  18. {
  19. $search = request()->input('search');
  20. $list = Advertisement::getList($search)->paginate(15);
  21. $pager = PaginationHelper::show($list->total(), $list->currentPage(), $list->perPage());
  22. return view('finance.advertisement.adv_list', [
  23. 'list' => $list,
  24. 'pager'=> $pager,
  25. 'search' => $search,
  26. ])->render();
  27. }
  28. public function add()
  29. {
  30. $adv = request()->input('adv');
  31. if (request()->isMethod('post')) {
  32. $adv_model = new Advertisement();
  33. if($adv['area_open'] == 1){
  34. if(!$adv['lng'] || !$adv['lat']) throw new ShopException('若需开启投放区域,请选择详细地址');
  35. }
  36. $adv['longitude'] = trim($adv['lng']);
  37. $adv['latitude'] = trim($adv['lat']);
  38. unset($adv['lng']);
  39. unset($adv['lat']);
  40. $adv_model->setRawAttributes($adv);
  41. $validator = $adv_model->validator($adv_model->getAttributes());
  42. if ($validator->fails()) {
  43. $this->error($validator->messages());
  44. } else {
  45. //其他字段赋值
  46. $adv_model->uniacid = \YunShop::app()->uniacid;
  47. if ($adv_model->save()) {
  48. //显示信息并跳转
  49. return $this->message('添加成功', Url::absoluteWeb('finance.advertisement.index'));
  50. } else {
  51. $this->error('添加失败');
  52. }
  53. }
  54. }
  55. return view('finance.advertisement.adv_form', [
  56. 'adv' => $adv,
  57. ])->render();
  58. }
  59. public function edit()
  60. {
  61. $id = intval(\Yunshop::request()->id);
  62. $adv_model = Advertisement::find($id);
  63. if (!$adv_model) {
  64. return $this->message('无记录或已被删除', '', 'error');
  65. }
  66. $requestData = \Yunshop::request()->adv;
  67. if ($requestData) {
  68. if($requestData['area_open'] == 1){
  69. if(!$requestData['lng'] || !$requestData['lat']) throw new ShopException('若需开启投放区域,请选择详细地址');
  70. }
  71. $requestData['longitude'] = trim($requestData['lng']);
  72. $requestData['latitude'] = trim($requestData['lat']);
  73. unset($requestData['lng']);
  74. unset($requestData['lat']);
  75. //数据保存
  76. $adv_model->setRawAttributes($requestData);
  77. $validator = $adv_model->validator($adv_model->getAttributes());
  78. if ($validator->fails()) {
  79. $this->error($validator->messages());
  80. } else {
  81. if ($adv_model->save()) {
  82. //显示信息并跳转
  83. return $this->message('修改成功', Url::absoluteWeb('finance.advertisement.index'));
  84. } else {
  85. $this->error('修改失败');
  86. }
  87. }
  88. }
  89. return view('finance.advertisement.adv_form', [
  90. 'adv' => $adv_model,
  91. 'id' => $id,
  92. ])->render();
  93. }
  94. public function del()
  95. {
  96. $id = intval(\Yunshop::request()->id);
  97. $adv_model = Advertisement::find($id);
  98. if (!$adv_model) {
  99. return $this->message('无记录或已被删除', '', 'error');
  100. }
  101. if ($adv_model->delete()) {
  102. return $this->message('删除成功', Url::absoluteWeb('finance.advertisement.index'));
  103. }
  104. return $this->message('删除失败', '', 'error');
  105. }
  106. public function setStatus()
  107. {
  108. $id = \YunShop::request()->id;
  109. $adv_model = Advertisement::find($id);
  110. $type = $adv_model->status == 1 ? 0:1;
  111. $adv_model->status = $type;
  112. $adv_model->save();
  113. echo json_encode(["status" => $type, "result" => 1]);
  114. }
  115. }