UserService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace app\extra\service\user;
  3. use app\extra\basic\Service;
  4. use app\extra\dao\user\UserDao;
  5. use app\extra\service\cutter\CutterOrderService;
  6. use support\exception\BusinessException;
  7. class UserService extends Service
  8. {
  9. /**
  10. * 设置模型
  11. * @return string
  12. */
  13. public function __construct()
  14. {
  15. $this->dao = new UserDao();
  16. }
  17. /**
  18. * 列表
  19. * @param array $param
  20. */
  21. public function getList(array $param = [],string $field = '*', int $page = 0,int $limit = 0,string $order = 'id desc')
  22. {
  23. $list = $this->dao->getList($this->searchFilter($param),$field,$page,$limit,$order);
  24. $count = $this->dao->count($this->searchFilter($param));
  25. return compact('list','count');
  26. }
  27. protected function searchFilter(array $param = []): array
  28. {
  29. $filter = [];
  30. !empty($param['status']) && $filter[] = ["status", '=', $param['status']];
  31. !empty($param['is_del']) && $filter[] = ["is_del", '=', $param['is_del']];
  32. return $filter;
  33. }
  34. public function getUserInfo(array $data):array
  35. {
  36. $user = $this->dao->getOne(['openid'=>$data['openid'],'is_del'=>0]);
  37. if($user->isEmpty()){
  38. $user = $this->dao->save(['openid'=>$data['openid'],'nickname'=>'wx'.time().rand(1000,9999),'login_ip'=>$data['login_ip'],'login_at'=>$data['login_at']]);
  39. }else if($user['status'] == 0){
  40. throw new BusinessException('用户已被封禁');
  41. }
  42. return $user->toArray();
  43. }
  44. public function getUserProfile(array $user)
  45. {
  46. if($user['is_del'])
  47. throw new BusinessException('用户已注销');
  48. if(!$user['status'])
  49. throw new BusinessException('用户已被封禁');
  50. $cutterOrderService = new CutterOrderService();
  51. $userBrokerageService = new UserBrokerageService();
  52. $user['order_count'] = $cutterOrderService->count(['uid'=>$user['uid']]);
  53. $user['brokerage_sum'] = $userBrokerageService->sum(['uid'=>$user['uid'],'pm'=>1],'number');
  54. return $user;
  55. }
  56. }