ShopMemberService.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace app\service\api\shop;
  3. use app\dict\shop\ShopMemberIsFollowDict;
  4. use app\model\shop\ShopMember;
  5. use app\service\core\shop\CoreShopMemberService;
  6. use core\base\BaseApiService;
  7. use core\exception\CommonException;
  8. /**
  9. * 店铺会员服务层
  10. * Class ShopApplyService
  11. * @package addon\mall\app\service\api\shop
  12. */
  13. class ShopMemberService extends BaseApiService
  14. {
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. $this->model = new ShopMember();
  19. }
  20. /**
  21. * 用户店铺收藏列表
  22. * @return array
  23. */
  24. public function getFollowList()
  25. {
  26. $field = 'id';
  27. $order = 'id desc';
  28. $search_model = $this->model->field($field)->where([['member_id', '=', $this->member_id], ['is_follow', '=', 1]])
  29. ->withJoin(['site' => ['site_id', 'site_name', 'logo', 'icon']])->order($order);
  30. return $this->pageQuery($search_model);
  31. }
  32. /**
  33. * 关注/取消关注店铺
  34. * @param array $data
  35. * @return mixed
  36. */
  37. public function follow(int $site_id, int $is_follow)
  38. {
  39. $follow_status_array = (new ShopMemberIsFollowDict())::getStatus();
  40. if (!array_key_exists($is_follow, $follow_status_array)) throw new CommonException('FOLLOW_STATUS_ERROR');
  41. $shop_member = (new CoreShopMemberService())->findShopMemberCreateIfcNotExist($site_id, $this->member_id);
  42. if ($is_follow == $shop_member['is_follow']) throw new CommonException('FOLLOW_STATUS_ERROR');
  43. $data[ 'is_follow' ] = $is_follow;
  44. $this->model->where([ ['member_id', '=', $this->member_id], ['site_id', '=', $site_id] ])->update($data);
  45. (new ShopService())->editFollowNumber($site_id, $is_follow);
  46. return true;
  47. }
  48. }