Ajax.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace addons\shop\controller;
  3. use addons\shop\model\Collect;
  4. use addons\shop\model\Goods;
  5. /**
  6. * Ajax控制器
  7. * Class Ajax
  8. * @package addons\shop\controller
  9. */
  10. class Ajax extends Base
  11. {
  12. protected $noNeedLogin = ["share"];
  13. /**
  14. * 添加取消收藏
  15. */
  16. public function collect()
  17. {
  18. if (!$this->auth->isLogin()) {
  19. $this->error("请登录后操作");
  20. }
  21. $goods_id = $this->request->post('goods_id');
  22. if (!$this->request->isPost()) {
  23. $this->error('请求错误');
  24. }
  25. if (!$goods_id) {
  26. $this->error('缺少参数!');
  27. }
  28. $data = (new Goods())->get($goods_id);
  29. if (!$data || $data['status'] != 'normal') {
  30. $this->error('收藏的商品已失效!');
  31. }
  32. $data = Collect::where('user_id', $this->auth->id)->where('goods_id', $goods_id)->find();
  33. //不存在,添加收藏
  34. if (!$data) {
  35. (new Collect())->save([
  36. 'user_id' => $this->auth->id,
  37. 'goods_id' => $goods_id
  38. ]);
  39. $this->success('收藏成功');
  40. } else {
  41. $this->error('请勿重复收藏');
  42. }
  43. }
  44. /**
  45. * 微信公众号内分享
  46. */
  47. public function share()
  48. {
  49. $url = $this->request->param('url', '', 'trim');
  50. $js_sdk = new \addons\shop\library\Jssdk();
  51. $data = $js_sdk->getSignedPackage($url);
  52. $this->success('', '', $data);
  53. }
  54. }