User.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace app\controller\api;
  3. use app\extra\basic\Base;
  4. use app\middleware\WxMiddleware;
  5. use app\model\saas\SaasPrice;
  6. use app\model\saas\SaasUser;
  7. use app\model\saas\SaasUserOpen;
  8. use LinFly\Annotation\Route\Controller;
  9. use LinFly\Annotation\Route\Route;
  10. use LinFly\Annotation\Route\Middleware;
  11. use support\Request;
  12. use support\Response;
  13. #[Controller(prefix: "/wx_api/user"),Middleware(WxMiddleware::class)]
  14. class User extends Base
  15. {
  16. protected array $color = ["1" => "彩色", "2" => "黑白"];
  17. protected array $duplex = ["1" => "单面", "2" => "双面"];
  18. protected array $type = ["1" => "文档", "2" => "复印"];
  19. #[Route(path: "data",methods: "get")]
  20. public function getUserData(Request $request): Response
  21. {
  22. try {
  23. $param = $this->_valid([
  24. "shop.require" => trans("empty.require"),
  25. ],$request->method());
  26. if (!is_array($param)) return error($param);
  27. $user = $request->user;
  28. if (empty($user)) return errorTrans("empty.data");
  29. $member = (new SaasUserOpen)->where("openid",$user['openid'])->field("openid,headimg,nickname")->append(["coupon"])->withAttr(['coupon' => function(){
  30. return 0;
  31. }])->findOrEmpty();
  32. $memberUser = (new SaasUser)->where(['shop_id' => $param['shop'],'openid' => $user['openid']])->field("openid,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")->findOrEmpty();
  33. $member['vip'] = [
  34. "f_balance" => $memberUser['f_balance']??'0.00',
  35. "f_total_consume" => $memberUser['f_total_balance']??'0.00',
  36. ];
  37. return success("ok",$member->toArray());
  38. } catch (\Throwable $th) {
  39. return error($th->getMessage());
  40. }
  41. }
  42. /**
  43. * 价目表
  44. */
  45. #[Route(path: "price",methods: "get")]
  46. public function getPriceData(): Response
  47. {
  48. try {
  49. $param = $this->_valid([
  50. "shop.require" => "参数错误"
  51. ]);
  52. if (!is_array($param)) return error($param);
  53. $data = (new SaasPrice)->where("shop_id",$param['shop'])->field("paper_size,source,duplex,price,color,type")->select();
  54. if ($data->isEmpty()) return error("尚未配置价目表");
  55. $resp = [];
  56. foreach ($data as $key=>$val)
  57. {
  58. $color = $this->color[$val['color']];
  59. $type = $this->type[$val['type']];
  60. $duplex = $this->duplex[$val['duplex']];
  61. $resp[$val['paper_size']]['id'] = $val['paper_size'];
  62. $resp[$val['paper_size']]['child'][$key]['name'] = $type.$color.$duplex;
  63. $resp[$val['paper_size']]['child'][$key]['price'] = $val['price'];
  64. }
  65. return success("ok",$resp);
  66. } catch (\Throwable $exception) {
  67. return error($exception->getMessage());
  68. }
  69. }
  70. }