You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserServices.php 3.6KB

2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace app\services\cashier;
  3. use app\services\activity\coupon\StoreCouponUserServices;
  4. use app\services\BaseServices;
  5. use app\services\order\StoreOrderServices;
  6. use app\services\product\product\StoreProductLogServices;
  7. use app\services\user\UserBillServices;
  8. use app\services\user\UserFriendsServices;
  9. use app\services\user\UserMoneyServices;
  10. use app\services\user\UserSpreadServices;
  11. use app\services\user\UserWechatuserServices;
  12. use crmeb\exceptions\AdminException;
  13. /**
  14. * 收银台用户Services
  15. */
  16. class UserServices extends BaseServices
  17. {
  18. protected $userType = [
  19. 'wechat' => '公众号',
  20. 'routine' => '小程序',
  21. 'h5' => 'H5',
  22. 'pc' => 'PC',
  23. 'app' => 'APP'
  24. ];
  25. /**
  26. * 收银台选择用户列表
  27. * @param array $where
  28. * @return array
  29. */
  30. public function getUserList(array $where)
  31. {
  32. /** @var UserWechatuserServices $services */
  33. $services = app()->make(UserWechatuserServices::class);
  34. [$list, $count] = $services->getWhereUserList($where, 'u.uid,avatar,u.nickname,phone,u.user_type,now_money,integral');
  35. foreach ($list as &$item) {
  36. $item['user_type'] = $this->userType[$item['user_type']] ?? '其他';
  37. }
  38. return compact('list', 'count');
  39. }
  40. /**
  41. * 收银台用户记录
  42. * @param $uid
  43. * @param $type
  44. * @return array
  45. * @throws \think\db\exception\DataNotFoundException
  46. * @throws \think\db\exception\DbException
  47. * @throws \think\db\exception\ModelNotFoundException
  48. */
  49. public function userRecord($uid, $type)
  50. {
  51. switch ($type) {
  52. case 'spread':
  53. /** @var UserFriendsServices $services */
  54. $services = app()->make(UserFriendsServices::class);
  55. return $services->getFriendList($uid);
  56. case 'order':
  57. /** @var StoreOrderServices $services */
  58. $services = app()->make(StoreOrderServices::class);
  59. return $services->getUserOrderList($uid);
  60. case 'integral':
  61. /** @var UserBillServices $services */
  62. $services = app()->make(UserBillServices::class);
  63. return $services->getIntegralList($uid, [], 'title,number,balance,mark,add_time');
  64. case 'sign':
  65. /** @var UserBillServices $services */
  66. $services = app()->make(UserBillServices::class);
  67. return $services->getSignList($uid, [], 'title,number,mark,add_time');
  68. case 'coupon':
  69. /** @var StoreCouponUserServices $services */
  70. $services = app()->make(StoreCouponUserServices::class);
  71. return $services->getUserCouponList($uid, 0);
  72. case 'balance_change':
  73. /** @var UserMoneyServices $services */
  74. $services = app()->make(UserMoneyServices::class);
  75. return $services->getUserMoneyList($uid, [], 'title,type,number,balance,mark,pm,status,add_time');
  76. case 'visit':
  77. /** @var StoreProductLogServices $services */
  78. $services = app()->make(StoreProductLogServices::class);
  79. return $services->getList(['uid' => $uid, 'type' => 'visit'], 'product_id');
  80. case 'spread_change':
  81. /** @var UserSpreadServices $services */
  82. $services = app()->make(UserSpreadServices::class);
  83. return $services->getSpreadList(['store_id' => 0, 'staff_id' => 0, 'uid' => $uid], '*', ['spreadUser', 'admin'], false);
  84. default:
  85. throw new AdminException('type参数错误');
  86. }
  87. }
  88. }