BroadcastGoods.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\merchant\store\broadcast;
  12. use app\common\repositories\store\broadcast\BroadcastGoodsRepository;
  13. use app\validate\merchant\BroadcastGoodsValidate;
  14. use crmeb\basic\BaseController;
  15. use think\App;
  16. class BroadcastGoods extends BaseController
  17. {
  18. protected $repository;
  19. public function __construct(App $app, BroadcastGoodsRepository $repository)
  20. {
  21. parent::__construct($app);
  22. $this->repository = $repository;
  23. }
  24. public function lst()
  25. {
  26. [$page, $limit] = $this->getPage();
  27. $where = $this->request->params(['status_tag', 'keyword', 'mer_valid','broadcast_goods_id']);
  28. return app('json')->success($this->repository->getList($this->request->merId(), $where, $page, $limit));
  29. }
  30. public function detail($id)
  31. {
  32. if (!$this->repository->merExists($id, $this->request->merId()))
  33. return app('json')->fail('数据不存在');
  34. return app('json')->success($this->repository->get($id)->append(['product'])->toArray());
  35. }
  36. public function createForm()
  37. {
  38. return app('json')->success(formToData($this->repository->createForm()));
  39. }
  40. protected function checkParams(BroadcastGoodsValidate $validate)
  41. {
  42. $data = $this->request->params(['name', 'cover_img', 'product_id', 'price']);
  43. $validate->check($data);
  44. $data['product_id'] = $data['product_id']['id'];
  45. return $data;
  46. }
  47. public function create(BroadcastGoodsValidate $validate)
  48. {
  49. $this->repository->create($this->request->merId(), $this->checkParams($validate));
  50. return app('json')->success('创建成功');
  51. }
  52. public function batchCreate(BroadcastGoodsValidate $validate)
  53. {
  54. $goods = $this->request->param('goods', []);
  55. if (!count($goods)) return app('json')->fail('请选中商品');
  56. $validate->isBatch();
  57. foreach ($goods as $item) {
  58. $validate->check((array)$item);
  59. }
  60. $this->repository->batchCreate($this->request->merId(), $goods);
  61. return app('json')->success('创建成功');
  62. }
  63. public function updateForm($id)
  64. {
  65. if (!$this->repository->merExists($id, $this->request->merId()))
  66. return app('json')->fail('数据不存在');
  67. return app('json')->success(formToData($this->repository->updateForm($id)));
  68. }
  69. public function update($id, BroadcastGoodsValidate $validate)
  70. {
  71. if (!$this->repository->merExists($id, $this->request->merId()))
  72. return app('json')->fail('数据不存在');
  73. $this->repository->update($id, $this->checkParams($validate));
  74. return app('json')->success('编辑成功');
  75. }
  76. public function mark($id)
  77. {
  78. $mark = (string)$this->request->param('mark');
  79. if (!$this->repository->merExists($id, $this->request->merId()))
  80. return app('json')->fail('数据不存在');
  81. $this->repository->mark($id, $mark);
  82. return app('json')->success('修改成功');
  83. }
  84. public function changeStatus($id)
  85. {
  86. $isShow = $this->request->param('is_show') == 1 ? 1 : 0;
  87. if (!$this->repository->merExists($id, $this->request->merId()))
  88. return app('json')->fail('数据不存在');
  89. $this->repository->isShow($id, $isShow);
  90. return app('json')->success('修改成功');
  91. }
  92. public function delete($id)
  93. {
  94. if (!$this->repository->merExists($id, $this->request->merId()))
  95. return app('json')->fail('数据不存在');
  96. $this->repository->merDelete((int)$id);
  97. return app('json')->success('删除成功');
  98. }
  99. }