BroadcastGoods.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\controller\merchant\store\broadcast;
  3. use app\common\repositories\store\broadcast\BroadcastGoodsRepository;
  4. use app\validate\merchant\BroadcastGoodsValidate;
  5. use ln\basic\BaseController;
  6. use think\App;
  7. class BroadcastGoods extends BaseController
  8. {
  9. protected $repository;
  10. public function __construct(App $app, BroadcastGoodsRepository $repository)
  11. {
  12. parent::__construct($app);
  13. $this->repository = $repository;
  14. }
  15. public function lst()
  16. {
  17. [$page, $limit] = $this->getPage();
  18. $where = $this->request->params(['status_tag', 'keyword', 'mer_valid','broadcast_goods_id']);
  19. return app('json')->success($this->repository->getList($this->request->merId(), $where, $page, $limit));
  20. }
  21. public function detail($id)
  22. {
  23. if (!$this->repository->merExists($id, $this->request->merId()))
  24. return app('json')->fail('数据不存在');
  25. return app('json')->success($this->repository->get($id)->append(['product'])->toArray());
  26. }
  27. public function createForm()
  28. {
  29. return app('json')->success(formToData($this->repository->createForm()));
  30. }
  31. protected function checkParams(BroadcastGoodsValidate $validate)
  32. {
  33. $data = $this->request->params(['name', 'cover_img', 'product_id', 'price']);
  34. $validate->check($data);
  35. $data['product_id'] = $data['product_id']['id'];
  36. return $data;
  37. }
  38. public function create(BroadcastGoodsValidate $validate)
  39. {
  40. $this->repository->create($this->request->merId(), $this->checkParams($validate));
  41. return app('json')->success('创建成功');
  42. }
  43. public function batchCreate(BroadcastGoodsValidate $validate)
  44. {
  45. $goods = $this->request->param('goods', []);
  46. if (!count($goods)) return app('json')->fail('请选中商品');
  47. $validate->isBatch();
  48. foreach ($goods as $item) {
  49. $validate->check((array)$item);
  50. }
  51. $this->repository->batchCreate($this->request->merId(), $goods);
  52. return app('json')->success('创建成功');
  53. }
  54. public function updateForm($id)
  55. {
  56. if (!$this->repository->merExists($id, $this->request->merId()))
  57. return app('json')->fail('数据不存在');
  58. return app('json')->success(formToData($this->repository->updateForm($id)));
  59. }
  60. public function update($id, BroadcastGoodsValidate $validate)
  61. {
  62. if (!$this->repository->merExists($id, $this->request->merId()))
  63. return app('json')->fail('数据不存在');
  64. $this->repository->update($id, $this->checkParams($validate));
  65. return app('json')->success('编辑成功');
  66. }
  67. public function mark($id)
  68. {
  69. $mark = (string)$this->request->param('mark');
  70. if (!$this->repository->merExists($id, $this->request->merId()))
  71. return app('json')->fail('数据不存在');
  72. $this->repository->mark($id, $mark);
  73. return app('json')->success('修改成功');
  74. }
  75. public function changeStatus($id)
  76. {
  77. $isShow = $this->request->param('is_show') == 1 ? 1 : 0;
  78. if (!$this->repository->merExists($id, $this->request->merId()))
  79. return app('json')->fail('数据不存在');
  80. $this->repository->isShow($id, $isShow);
  81. return app('json')->success('修改成功');
  82. }
  83. public function delete($id)
  84. {
  85. if (!$this->repository->merExists($id, $this->request->merId()))
  86. return app('json')->fail('数据不存在');
  87. $this->repository->merDelete((int)$id);
  88. return app('json')->success('删除成功');
  89. }
  90. }