User.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace app\controller\api;
  3. use app\extra\basic\Base;
  4. use app\middleware\WxMiddleware;
  5. use app\model\saas\SaasUserOpen;
  6. use LinFly\Annotation\Route\Controller;
  7. use LinFly\Annotation\Route\Route;
  8. use LinFly\Annotation\Route\Middleware;
  9. use support\Request;
  10. use support\Response;
  11. #[Controller(prefix: "/wx_api/user"),Middleware(WxMiddleware::class)]
  12. class User extends Base
  13. {
  14. #[Route(path: "data",methods: "get")]
  15. public function getUserData(Request $request): Response
  16. {
  17. try {
  18. $param = $this->_valid([
  19. "shop.require" => trans("empty.require"),
  20. ],$request->method());
  21. if (!is_array($param)) return error($param);
  22. $user = $request->user;
  23. if (empty($user)) return errorTrans("empty.data");
  24. $member = (new SaasUserOpen)->where("openid",$user['openid'])->with(['vip' => function($query) use($param){
  25. $query->where("shop_id",$param['shop'])->field("openid,shop_id,ROUND(balance/100,2) as f_balance,ROUND(total_balance/100,2) as f_total_balance,ROUND(total_consume/100,2) as f_total_consume,card_no");
  26. }])->field("openid,headimg,nickname")->append(["coupon"])->withAttr(['coupon' => function(){
  27. return 0;
  28. }])->findOrEmpty();
  29. return success("ok",$member->toArray());
  30. } catch (\Throwable $th) {
  31. return error($th->getMessage());
  32. }
  33. }
  34. }