zory před 2 měsíci
rodič
revize
88002c6d6b
52 změnil soubory, kde provedl 5 přidání a 4153 odebrání
  1. 1 1
      README.md
  2. 3 10
      app/controller/common/Login.php
  3. 0 110
      app/controller/exe/Login.php
  4. 0 155
      app/controller/exe/Prints.php
  5. 0 80
      app/controller/merchant/Dashboard.php
  6. 0 64
      app/controller/merchant/Detail.php
  7. 0 102
      app/controller/merchant/Discount.php
  8. 0 57
      app/controller/merchant/Member.php
  9. 0 163
      app/controller/merchant/Order.php
  10. 0 106
      app/controller/merchant/Price.php
  11. 0 160
      app/controller/merchant/Prints.php
  12. 0 67
      app/controller/merchant/Qrcode.php
  13. 0 104
      app/controller/merchant/Renew.php
  14. 0 165
      app/controller/merchant/Staff.php
  15. 0 74
      app/controller/merchant/Turnover.php
  16. 0 36
      app/controller/merchant/User.php
  17. 0 34
      app/controller/merchant/UserLog.php
  18. 0 89
      app/controller/notify/SfExpress.php
  19. 0 122
      app/controller/wap/Card.php
  20. 0 10
      app/controller/wap/Common.php
  21. 0 200
      app/controller/wap/Detail.php
  22. 0 104
      app/controller/wap/Discount.php
  23. 0 336
      app/controller/wap/Login.php
  24. 0 109
      app/controller/wap/Member.php
  25. 0 119
      app/controller/wap/Order.php
  26. 0 108
      app/controller/wap/Price.php
  27. 0 102
      app/controller/wap/Prints.php
  28. 0 70
      app/controller/wap/Turnover.php
  29. 0 68
      app/model/saas/SaasCart.php
  30. 0 50
      app/model/saas/SaasCombo.php
  31. 0 56
      app/model/saas/SaasComboLog.php
  32. 0 48
      app/model/saas/SaasDiscount.php
  33. 0 81
      app/model/saas/SaasOrder.php
  34. 0 78
      app/model/saas/SaasOrderDetail.php
  35. 0 47
      app/model/saas/SaasOrderPreview.php
  36. 0 56
      app/model/saas/SaasOrderQrcode.php
  37. 0 51
      app/model/saas/SaasOrderRefund.php
  38. 0 54
      app/model/saas/SaasPrice.php
  39. 0 53
      app/model/saas/SaasPrintClient.php
  40. 0 45
      app/model/saas/SaasPrintLog.php
  41. 0 78
      app/model/saas/SaasShop.php
  42. 0 49
      app/model/saas/SaasShopLog.php
  43. 0 45
      app/model/saas/SaasUpload.php
  44. 0 54
      app/model/saas/SaasUser.php
  45. 0 63
      app/model/saas/SaasUserBuy.php
  46. 0 53
      app/model/saas/SaasUserLog.php
  47. 0 53
      app/model/saas/SaasUserOpen.php
  48. 0 46
      app/model/saas/SaasWordChange.php
  49. 0 61
      app/model/system/SystemUserBankcard.php
  50. 0 57
      app/model/system/SystemUserMoney.php
  51. 0 49
      app/model/system/SystemUserOpen.php
  52. 1 1
      config/process.php

+ 1 - 1
README.md

@@ -1,4 +1,4 @@
-# hx-mini-api
+# 星川API
 
 ### 跨域
 

+ 3 - 10
app/controller/common/Login.php

@@ -110,7 +110,7 @@ class Login extends Base
      */
     protected function getTypeUser(int $agentId = 0): array
     {
-        return (new SaasShop)->where("shop_id",$agentId)->findOrEmpty()->toArray();
+        return [];
     }
 
     /**
@@ -122,20 +122,13 @@ class Login extends Base
         try {
             $userData = (new Auth)->guard("admin")->user()->toArray();
             if (isset($userData['password'])) unset($userData['password']);
-            $agent = (new SaasShop)->where("shop_id",$userData['agent_id'])->findOrEmpty();
-            if (empty($agent['vip_end']))
-            {
-                $userData['vip_end'] = 0;
-            } else {
-                $userData['vip_end'] = strtotime($agent['vip_end']);
-            }
             return successTrans("success.data",[
                 "username"  => $userData['username'],
                 "truename"  => $userData['truename'],
-                "vip_at"    => $userData['vip_end'],
+                "vip_at"    => "",
                 "agent_id"  => $userData['agent_id'],
                 "super"     => $userData['is_super'],
-                "shop"      => $agent['shop_name']??'',
+                "shop"      => '',
                 "type"      => $userData['type']
             ]);
         } catch (\Throwable $exception){

+ 0 - 110
app/controller/exe/Login.php

@@ -1,110 +0,0 @@
-<?php
-
-namespace app\controller\exe;
-
-use app\extra\basic\Base;
-use app\middleware\ExeMiddleware;
-use app\model\saas\SaasShop;
-use app\model\system\SystemUser;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Route;
-use Shopwwi\WebmanAuth\Auth;
-use support\Request;
-use support\Response;
-use think\facade\Db;
-use Tinywan\Captcha\Captcha;
-use LinFly\Annotation\Route\Middleware;
-
-
-#[Controller(prefix: "/exe/login")]
-class Login extends Base
-{
-
-    /**
-     * 登陆
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "user",methods: "post")]
-    public function setLogin(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "username.require"  => trans("empty.user"),
-                "password.require"  => trans("empty.passwd"),
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $map = ["is_deleted" => 0,"username" => $param['username']];
-            [$state,$msg,$user] = $this->checkLogin($map,2,$param);
-            print_r($msg);
-            if (!$state) return error($msg);
-            return successTrans("success.login",$user);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 登录验证处理
-     * @param array $map
-     * @param int $type
-     * @param array $param
-     * @return array
-     */
-    protected function checkLogin(array $map = [],int $type = 1,array $param = []): array
-    {
-        $user = (new SystemUser)->where($map)->findOrEmpty();
-        if ($user->isEmpty()) return [0,trans("error.user-empty"),[]];
-        if ($user['status'] <> 1) return [0,trans("error.user-status"),[]];
-        if ($user['type'] > 1) {
-            $typeUser = $this->getTypeUser($user['agent_id']);
-            if (empty($typeUser)) return [0,trans("empty.agent"),[]];
-            if ($typeUser['status'] <> 0) return [0,trans("error.agent"),[]];
-            if (time() > strtotime($typeUser['vip_end'])) return [0,trans("error.agent-out"),[]];
-            $user['shop_name'] = $typeUser['shop_name'];
-        }
-        if ($type == 2) {
-            if (md5(md5($param['password']).$user['salt']) <> $user['password']) return [0,trans("error.passwd"),[]];
-        }
-        $user->login_at = getDateFull();
-        $user->login_ip = request()->getRealIp();
-        $user->login_num = Db::raw("login_num+1");
-        $user->save();
-        return [1,'success',$user->toArray()];
-    }
-
-
-    /**
-     * 获取代理信息
-     * @param int $agentId
-     * @return array
-     */
-    protected function getTypeUser(int $agentId = 0): array
-    {
-        return (new SaasShop)->where("shop_id",$agentId)->findOrEmpty()->toArray();
-    }
-
-
-    /**
-     * @return Response
-     */
-    #[Route(path: "profile",methods: "get"),Middleware(ExeMiddleware::class)]
-    public function getLoginUser(Request $request): Response
-    {
-        try {
-            $agent = (new SaasShop)->where("shop_id",$request->uuid)->findOrEmpty();
-            return successTrans("success.data",[
-                "vip_at"    => empty($agent['vip_end'])?'无限期':date('Y-m-d',strtotime($agent['vip_end'])),
-                "agent_id"  => $agent['agent_id'],
-                "shop"      => $agent['shop_name']??'',
-                "address"   => $agent['shop_address']??'',
-                "sys"       => sConf("service.title"),
-                "logo"      => sConf("service.logo")
-            ]);
-        } catch (\Throwable $exception){
-            return error($exception->getMessage());
-        }
-    }
-
-
-}

+ 0 - 155
app/controller/exe/Prints.php

@@ -1,155 +0,0 @@
-<?php
-
-namespace app\controller\exe;
-
-use app\extra\basic\Base;
-use app\middleware\ExeMiddleware;
-use app\model\saas\SaasOrder;
-use app\model\saas\SaasOrderDetail;
-use app\model\saas\SaasPrintClient;
-use app\model\saas\SaasShop;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/exe/prints"),Middleware(ExeMiddleware::class)]
-class Prints extends Base
-{
-
-    protected array $noNeedLogin = ["getPrintData"];
-
-    /**
-     * 回传打印机信息
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "set",methods: "post")]
-    public function getPrintList(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            if (empty($param)) return errorTrans("empty.data");
-            $shopId = $request->uuid;
-            $mode = (new SaasPrintClient);
-            $printIn = [];
-            foreach ($param as $key=>$val)
-            {
-                $param[$key] = $val;
-                $printId = strToUniqueNumberV4(trim($val['name']));
-                $param[$key]['key'] = "{$printId}-{$shopId}";
-                $param[$key]['userKey'] = $printId;
-                $printData = $mode->where("code",$printId)->where("shop_id",$shopId)->findOrEmpty();
-                if ($printData->isEmpty()) {
-                    $printIn[$key] = [
-                        "shop_id"       => $shopId,
-                        "code"          => $printId,
-                        "name"          => $val['name'],
-                        "ipaddress"     => $val['ipAddress'],
-                        "print_status"  => $val['status'],
-                    ];
-                } else {
-                    $printData->ipaddress = $val['ipAddress'];
-                    $printData->print_status = $val['status'];
-                    $printData->save();
-                }
-            }
-            if (!empty($printIn)) {
-                $mode->insertAll(array_values($printIn));
-            }
-            (new SaasShop)->where("shop_id",$shopId)->update(['line_time' => getDateFull()]);
-            return success("ok",$param);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 打印识别
-     * @return Response
-     */
-    #[Route(path: "error",methods: "post")]
-    public function getPrintError(Request $request): Response
-    {
-        try {
-            echo getDateFull()."===打印出错\n";
-            print_r($request->all());
-            $param = $this->_valid([
-                "data.require"      => trans("empty.data"),
-                "param.require"     => trans("empty.data"),
-            ],$request->method());
-            if (!is_array($param)) return error($param);
-            echo getDateFull()."===打印出错\n";
-            print_r($param);
-            $orderId = $param['param']['jobId'];
-            
-            return success("ok");
-        }  catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 打印回传
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "status",methods: "post")]
-    public function getPrintData(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "data.require"      => trans("empty.data"),
-                "param.require"     => trans("empty.data"),
-            ],$request->method());
-            if (!is_array($param)) return error($param);
-            $orderId = $param['param']['jobId'];
-            $order = (new SaasOrderDetail)->where("id",$orderId)->with(['orders'])->findOrEmpty();
-            $total = ['t0' => 0, 't1' => 0, 't2' => 0, 't3' => 0, 'ta' => 0];
-            foreach ((new SaasOrderDetail)->where("id",$orderId)->field('create_at,status,count(1) total')->group('status,create_at')->cursor() as $vo)
-            {
-                [$total["t{$vo['status']}"] += $vo['total'], $total['ta'] += $vo['total']];
-            }
-            if (isset($param['data']['success'])) {
-                if ($param['data']['success']) { // 打印成功
-                    $order->status = 3;
-                    $order->save();
-                    if (($total['t3']+1) == $total['ta']) {
-                        (new SaasOrder)->where("order_sn",$order['order_sn'])->update(['status' => 3,'print_at' => getDateFull()]);
-                    }
-                } else { // 打印失败
-                    
-                }
-            }
-            
-            // $outPut = $param['data']['outputArray'];
-            // $logData = [];
-            // foreach ($outPut as $key=>$val) {
-            //     if ($val['type'] == 'stdout') {
-            //         $logData[$key] = [
-            //             "order_sn"  => $param['param']['customFileName'],
-            //             "msg"       => delNt($val['data'])
-            //         ];
-            //     } else if ($val['type'] == "exit") {
-            //         if ($val['code'] == 0) {
-            //             $order->status = 3;
-            //             $order->save();
-            //             if (($total['t3']+1) == $total['ta']) {
-            //                 (new SaasOrder)->where("order_sn",$order['order_sn'])->update(['status' => 3,'print_at' => getDateFull()]);
-            //             }
-            //         }
-            //     }
-            // }
-            // $logData = array_values($logData);
-            // if (!empty($logData)) {
-
-            // }
-            return success("ok");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 80
app/controller/merchant/Dashboard.php

@@ -1,80 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasOrder;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/dashboard"),Middleware(AuthMiddleware::class)]
-class Dashboard extends Base
-{
-
-
-    #[Route(path: "data",methods: "get")]
-    public function getData(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "money.default" => 7,
-                "hide.default"  => 0,
-                "order.default"  => 7
-            ],$request->method());
-            $moneyDay = $param['money'];
-            $data = $moneys = $orders = [];
-            $orderDay = $param['order'];
-            $shopId = $request->user['agent_id'];
-            $mode = (new SaasOrder);
-            if ($param['hide'] == 1) {
-                $data = [
-                    "userNum"   => $mode->whereDay("create_at")->where("shop_id",$shopId)->where('status','in',[1,3])->sum("money"), // 今日营业额
-                    "rechargeNum"   => $mode->whereDay("create_at")->where("shop_id",$shopId)->where('status','in',[1,3])->count(), // 今日订单数
-                    "rechargeMoney"   => $mode->whereDay("create_at")->where("shop_id",$shopId)->where('status',1)->count(), // 手机自助打印待处理
-                ];
-                $fields = ['ROUND(sum(money)/100,2)' => 'total','substr(create_at,1,10)' => 'mday'];
-                $orderMoney = $mode->field($fields)->where("shop_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-'.$moneyDay.' days')->group('mday')->select()->column(null, 'mday');
-                for ($i = $moneyDay; $i >= 0; $i--) {
-                    $date = date('Y-m-d', strtotime("-{$i}days"));
-                    $moneys[] = [
-                        '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
-                        '订单金额' => ($orderMoney[$date] ?? [])['total'] ?? 0,
-                    ];
-                }
-                $field = ['count(1)' => 'count', 'substr(create_at,1,10)' => 'mday'];
-                $orderNum = $mode->field($field)->where("shop_id",$shopId)->where('status','in',[1,3])->whereTime('create_at', '-'.$orderDay.' days')->group('mday')->select()->column(null, 'mday');
-                for ($i = $orderDay; $i >= 0; $i--) {
-                    $date = date('Y-m-d', strtotime("-{$i}days"));
-                    $orders[] = [
-                        '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
-                        '订单数量' => ($orderNum[$date] ?? [])['count'] ?? 0,
-                    ];
-                }
-            } else {
-                for ($i = $moneyDay; $i >= 0; $i--) {
-                    $date = date('Y-m-d', strtotime("-{$i}days"));
-                    $moneys[] = [
-                        '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
-                        '订单金额' => 888,
-                    ];
-                }
-                for ($i = $orderDay; $i >= 0; $i--) {
-                    $date = date('Y-m-d', strtotime("-{$i}days"));
-                    $orders[] = [
-                        '当天日期' => date('Y-m-d', strtotime("-{$i}days")),
-                        '订单数量' => 888,
-                    ];
-                }
-            }
-            return success("ok",compact("data","orders","moneys"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 64
app/controller/merchant/Detail.php

@@ -1,64 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\weMini\Link;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasShop;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/shop"),Middleware(AuthMiddleware::class)]
-class Detail extends Base
-{
-
-    #[Inject]
-    protected SaasShop $model;
-
-
-    #[Route(path: "detail",methods: "get")]
-    public function getDetail(Request $request): Response
-    {
-        try {
-            $qrcodePath = "/uploads/card/{$request->user['agent_id']}-pay.jpg";
-            if (!is_file(public_path().$qrcodePath)) {
-                (new Link([
-                    "appid"     => sConf("wechat.mini_appid"),
-                    "appsecret" => sConf("wechat.mini_secret")
-                ]))->createQrcodeWx("/pages/shop/pay","shop={$request->user['agent_id']}",$qrcodePath);
-            }
-            $qrcode = 'data:image/png;base64,'.base64_encode(file_get_contents(public_path().$qrcodePath));
-            $shop = $this->model->where("shop_id",$request->user['agent_id'])->field("shop_name,shop_mobile,start_at,end_at,vip_end,shop_status,shop_notice,line_time,status,shop_address")->withAttr(['vip_end'  => function($query,$data) {
-                return date("Y-m-d",strtotime($data['vip_end']));
-            },'qrcode' => function () use ($qrcode){
-                return $qrcode;
-            }])->findOrEmpty();
-            if ($shop->isEmpty()) return errorTrans("empty.data");
-            return success("ok",$shop->toArray());
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    #[Route(path: "save",methods: "post")]
-    public function setData(Request $request)
-    {
-        try {
-            $param = $request->post();
-            $shop = $this->model->where("shop_id",$request->user['agent_id'])->findOrEmpty();
-            if ($shop->isEmpty()) return errorTrans("empty.data");
-            $state = $shop->save($param);
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 102
app/controller/merchant/Discount.php

@@ -1,102 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\DisCountService;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasDiscount;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/discount"),Middleware(AuthMiddleware::class)]
-class Discount extends Base
-{
-
-    #[Inject]
-    protected SaasDiscount $model;
-
-    #[Inject]
-    protected DisCountService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.default"        => 0,
-                "color.require"     => trans("empty.require"),
-                "duplex.require"    => trans("empty.require"),
-                "number.require"    => trans("empty.require"),
-                "rate.require"      => trans("empty.require"),
-                "shop_id.default"   => $request->user['agent_id'],
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $param['keys'] = $param['color']."_".$param['duplex']."_1";
-            $price = $this->model->where("id",$param["id"])->findOrEmpty();
-            if ($price->isEmpty())
-            {
-                $priceType = $this->model->where([
-                    "shop_id"   => $param["shop_id"],
-                    "keys"      => $param["keys"]
-                ])->findOrEmpty();
-                if (!$priceType->isEmpty()) return errorTrans("error.exist");
-                $state = $price->insertGetId($param);
-            } else {
-                $state = $price->save($param);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "del",methods: "post")]
-    public function delPrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require"),
-                "type.default"  => ""
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param["type"] == "batch") {
-                $state = $this->model->whereIn("id",$param["id"])->delete();
-            } else {
-                $price = $this->model->where("id",$param["id"])->findOrEmpty();
-                if ($price->isEmpty()) return errorTrans("empty.data");
-                if ($price['shop_id'] <> $request->user["agent_id"]) return errorTrans("empty.data");
-                $state = $price->delete();
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 57
app/controller/merchant/Member.php

@@ -1,57 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasCombo;
-use app\model\saas\SaasShop;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/member"),Middleware(AuthMiddleware::class)]
-class Member extends Base
-{
-
-
-    #[Route(path: "combo",methods: "get")]
-    public function getComboDetail(Request $request): Response
-    {
-        try {
-            $shop = (new SaasShop)->where("shop_id",$request->user['agent_id'])->findOrEmpty();
-            $combo = (new SaasCombo)->where("type",2)->where("status",1)->field("id,name,ROUND(money/100,2) as money,ROUND(old_money/100,2) as old_money,is_first")->select();
-            $param = [
-                "state"     => $shop['user_card'], // 1 默认 2 自定义 3关闭
-                "system"    => $combo,
-                "shop"      => empty($shop['user_card_price']) ? $combo :$shop['user_card_price']
-            ];
-            return success("ok",$param);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "combo",methods: "post")]
-    public function setCombo(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            $shop = (new SaasShop)->where("shop_id",$request->user['agent_id'])->findOrEmpty();
-            $shop->user_card = $param['state'];
-            if (isset($param['shop'])) {
-                $shop->user_card_price = json_encode($param['shop']);
-            }
-            $state = $shop->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 163
app/controller/merchant/Order.php

@@ -1,163 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\OrderService;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasOrder;
-use app\model\saas\SaasOrderDetail;
-use app\model\saas\SaasUser;
-use app\model\saas\SaasUserLog;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-use think\facade\Db;
-
-
-#[Controller(prefix: "/api/mer/order"),Middleware(AuthMiddleware::class)]
-class Order extends Base
-{
-
-    #[Inject]
-    protected OrderService $service;
-
-    #[Inject]
-    protected SaasOrder $model;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['agent_id'];
-            }
-            if (empty($param['status'])) $param['statusGt'] = 1;
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 返回统计结果
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "fail",methods: "post")]
-    public function setOrderFail(Request $request): Response
-    {
-        try {
-            $param = $this->_valid(['order.require' => "error"],$request->method());
-            if (!is_array($param)) return error($param);
-            $order = $this->model->where("order_sn",$param['order'])->findOrEmpty();
-            if ($order->isEmpty()) return errorTrans("empty.data");
-            $order->status = 2;
-            $order->save();
-            (new SaasOrderDetail)->where("order_sn",$param['order'])->update(['status' => 3]);
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 返回统计结果
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "total",methods: "get")]
-    public function getTotalData(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['agent_id'];
-            }
-            $total = $this->service->getTotal($param);
-            return successTrans("success.data",compact("total"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 申请退款
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "refund",methods: "post")]
-    public function setRefund(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require")
-            ],$request->method());
-            if (!is_array($param)) return error($param);
-            $order = $this->model->where("id",$param['id'])->where("shop_id",$request->user['agent_id'])->findOrEmpty();
-            if ($order->isEmpty()) return errorTrans("empty.data");
-            if ($order['pay_type'] == 1) { // 微信退款
-                $wechat = new \WeChat\Pay($this->getWxConfig());
-                $resp = $wechat->createRefund([
-                    "transaction_id"    => $order['transaction_id'],
-                    "out_refund_no"     => $order['order_sn']."-".date("is"),
-                    "total_fee"         => $order['discount'],
-                    "refund_fee"        => $order['discount'],
-                    "notify_url"        => 'https://panel.huiyinduo.cn/notify/refund',
-                ]);
-                $order->status = 4;
-                $state = $order->save();
-                (new SaasOrderDetail)->where("shop_id",$request->user['agent_id'])->where("order_sn",$order['order_sn'])->update(['status' => 4]);
-            } else { // 会员卡退款
-                $card = (new SaasUser)->where("card_no",md5($order['openid'].$request->user['agent_id']))->findOrEmpty();
-                if ($card->isEmpty()) return error("会员不存在");
-                $card->balance = Db::raw("balance+".$order['discount']);
-                $card->total_consume = Db::raw("total_consume-".$order['discount']);
-                $card->save();
-                (new SaasUserLog)->insertGetId([
-                    "order_sn"  => $order['order_sn'],
-                    "openid"    => $order['openid'],
-                    "shop_id"   => $order['shop_id'],
-                    "card_no"   => md5($order['openid'].$order['shop_id']),
-                    "money"     => $order['discount'],
-                    "type"      => 2,
-                    "balance"   => $card->balance,
-                    "remark"    => "订单退款"
-                ]);
-                $order->status = 6;
-                $state = $order->save();
-                (new SaasOrderDetail)->where("shop_id",$request->user['agent_id'])->where("order_sn",$order['order_sn'])->update(['status' => 6]);
-            }
-            if (!$state) return error("申请失败");
-            return success("申请成功");
-        } catch (\Throwable $throwable) {
-            echo $throwable->getLine()."\n";
-            echo $throwable->getFile()."\n";
-            return error($throwable->getMessage());
-        }
-    }
-
-
-
-    protected function getWxConfig(): array
-    {
-        return [
-            'token'          => 'test',
-            'appid'          => sConf("wechat.mini_appid"),
-            'appsecret'      => sConf("wechat.mini_secret"),
-            'encodingaeskey' => 'BJIUzE0gqlWy0GxfPp4J1oPTBmOrNDIGPNav1YFH5Z5',
-            // 配置商户支付参数(可选,在使用支付功能时需要)
-            'mch_id'         => sConf("wechat.mch_id"),
-            'mch_key'        => sConf("wechat.mch_key"),
-            "ssl_cer"       => public_path().sConf("wechat.mch_ssl_cer"),
-            "ssl_key"       => public_path().sConf("wechat.mch_ssl_key"),
-        ];
-    }
-
-}

+ 0 - 106
app/controller/merchant/Price.php

@@ -1,106 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\PriceService;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasPrice;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/price"),Middleware(AuthMiddleware::class)]
-class Price extends Base
-{
-
-    #[Inject]
-    protected SaasPrice $model;
-
-    #[Inject]
-    protected PriceService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.default"        => 0,
-                "type.require"      => trans("empty.require"),
-                "color.require"     => trans("empty.require"),
-                "paper_size.require"=> trans("empty.require"),
-                "duplex.require"    => trans("empty.require"),
-                "price.require"     => trans("empty.require"),
-                "shop_id.default"   => $request->user['agent_id'],
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $param['price'] = $param['price'] * 100;
-            $price = $this->model->where("id",$param["id"])->findOrEmpty();
-            if ($price->isEmpty())
-            {
-                $priceType = $this->model->where([
-                    "type"      => $param["type"],
-                    "shop_id"   => $param["shop_id"],
-                    "color"     => $param["color"],
-                    "duplex"    => $param["duplex"],
-                    "paper_size"=> $param["paper_size"],
-                ])->findOrEmpty();
-                if (!$priceType->isEmpty()) return errorTrans("error.exist");
-                $state = $price->insertGetId($param);
-            } else {
-                $state = $price->save($param);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "del",methods: "post")]
-    public function delPrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require"),
-                "type.default"  => ""
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param["type"] == "batch") {
-                $state = $this->model->whereIn("id",$param["id"])->delete();
-            } else {
-                $price = $this->model->where("id",$param["id"])->findOrEmpty();
-                if ($price->isEmpty()) return errorTrans("empty.data");
-                if ($price['shop_id'] <> $request->user["agent_id"]) return errorTrans("empty.data");
-                $state = $price->delete();
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 160
app/controller/merchant/Prints.php

@@ -1,160 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\PrintService;
-use app\extra\weMini\Link;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasPrice;
-use app\model\saas\SaasPrintClient;
-use DI\Attribute\Inject;
-use Kkokk\Poster\Facades\Poster;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/prints"),Middleware(AuthMiddleware::class)]
-class Prints extends Base
-{
-
-    #[Inject]
-    protected PrintService $service;
-
-    #[Inject]
-    protected SaasPrintClient $model;
-
-
-    #[Route(path: "list",methods: "get")]
-    public function getPrintList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 保存配置
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrint(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"            => trans(20010),
-                "is_price.require"      => trans(20010),
-                "paper_size.require"    => trans(20010),
-                "color.require"         => trans(20010),
-                "direction.require"     => trans(20010),
-                "duplex.require"        => trans(20010),
-                "package.require"       => trans(20010),
-                "type.require"          => trans(20010)
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $printId = $param['id'];
-            $is_price = $param['is_price'];
-            unset($param['id'],$param['is_price']);
-            $print = (new SaasPrintClient)->where("id",$printId)->findOrEmpty();
-            if ($print->isEmpty()) return errorTrans("empty.data");
-            $print->is_price = $is_price;
-            $print->rule = json_encode($param);
-            $state = $print->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-
-    /**
-     * 保存配置
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "single",methods: "post")]
-    public function savePrintSingle(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            if (empty($param['id'])) return errorTrans("empty.require");
-            $print = (new SaasPrintClient)->where("id",$param['id'])->findOrEmpty();
-            if ($print->isEmpty()) return errorTrans("empty.data");
-            if (isset($param['status'])) {
-                $param['status'] = $print['status'] == 1 ? 2 : 1;
-            }
-            $state = $print->save($param);
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 二维码
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "qrcode",methods: "post")]
-    public function printQrcode(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            if (empty($param['id'])) return errorTrans("empty.require");
-            $print = (new SaasPrintClient)->where("id",$param['id'])->findOrEmpty();
-            if ($print->isEmpty()) return errorTrans("empty.data");
-            if ($print['status'] <> 1) return errorTrans("error.status-qrcode");
-            $qrcodePath = public_path()."/uploads/card/{$print['shop_id']}-print-{$print['code']}.jpg";
-            if (!is_file($qrcodePath)) {
-                $pathBase = "/uploads/qrcode/".$print['shop_id']."-".$print['code'].".jpg";
-                $path = (new Link([
-                    "appid"     => sConf("wechat.mini_appid"),
-                    "appsecret" => sConf("wechat.mini_secret")
-                ]))->createQrcodeWx("/pages/index/index","shop={$print['shop_id']}&code={$print['code']}",$pathBase);
-                $bg = base_path()."/resource/img/store-qrcode.jpg";
-                $fontPath = base_path()."/resource/font/msyh.ttc";
-                if (!is_file($qrcodePath)) {
-                    Poster::config([
-                        "path"  => $qrcodePath
-                    ])->buildImDst($bg,425,578)
-                        // ->buildText(isset($print['shop']['shop_name'])?$print['shop']['shop_name']:'印美自助打印','center',390,18,[0,0,0,1],180,$fontPath)
-//                ->buildQr($link,105,160,0,0,217,217)
-                        // ->buildImage($qrcodeminiPath,105,180,0,0,217,217)
-                        ->buildImage($path,105,170,0,0,217,247)
-                        ->getPoster();;
-                }
-            }
-            return successTrans("success.data",['img' => 'data:image/png;base64,'.base64_encode(file_get_contents($qrcodePath))]);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "price",methods: "get")]
-    public function getPrintPrice(Request $request): Response
-    {
-        try {
-            $price = (new SaasPrice)->where("shop_id",$request->user['agent_id'])->where("type",1)->field("id,paper_size,duplex,color")->select();
-            if ($price->isEmpty()) return errorTrans("empty.data");
-            return successTrans("success.data",$price->toArray());
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 67
app/controller/merchant/Qrcode.php

@@ -1,67 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\QrcodeService;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasOrderQrcode;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/qrcode"),Middleware(AuthMiddleware::class)]
-class Qrcode extends Base
-{
-
-
-    #[Inject]
-    protected QrcodeService $service;
-
-    #[Inject]
-    protected SaasOrderQrcode $model;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['agent_id'];
-            }
-            if (empty($param['status'])) $param['statusGt'] = 1;
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            echo $throwable->getLine()."\n";
-            echo $throwable->getFile()."\n";
-            echo $throwable->getMessage()."\n";
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 返回统计结果
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "total",methods: "get")]
-    public function getTotalData(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['agent_id'];
-            }
-            $total = $this->service->getTotal($param);
-            return successTrans("success.data",compact("total"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 104
app/controller/merchant/Renew.php

@@ -1,104 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\ComboLogService;
-use app\extra\tools\CodeExtend;
-use app\extra\weMini\Link;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasCombo;
-use app\model\saas\SaasComboLog;
-use app\model\saas\SaasShop;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/renew"),Middleware(AuthMiddleware::class)]
-class Renew extends Base
-{
-
-
-    #[Inject]
-    protected ComboLogService $service;
-
-
-    /**
-     *
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "detail",methods: "get")]
-    public function getRenewDetail(Request $request): Response
-    {
-        try {
-            $shop = (new SaasShop)->where("shop_id",$request->user['agent_id'])->field("shop_name,shop_mobile,start_at,end_at,vip_end,shop_status,shop_notice,line_time,status,shop_address")->withAttr(['vip_end'  => function($query,$data) {
-                return date("Y-m-d",strtotime($data['vip_end']));
-            }])->findOrEmpty();
-            if ($shop->isEmpty()) return errorTrans("empty.data");
-            $combo = (new SaasCombo)->where("type",1)->where("status",1)->order("sort",'desc')->field("ROUND(money/100,2) as f_money,ROUND(old_money/100,2) as f_old_money,id,unit,time,name")
-                ->append(['diff'])
-                ->withAttr(['diff' => function($query,$data){
-                    return $data['f_old_money'] - $data['f_money'];
-                }])->select();
-            $privacy = htmlspecialchars_decode(sConf("service.privacy"));
-            return success('ok',compact("shop",'combo','privacy'));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "qrcode",methods: "post")]
-    public function getPayQrcode(Request $request)
-    {
-        try {
-            $param = $this->_valid([
-                "comboId.require"   => trans("empty.require")
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $combo = (new SaasCombo)->where("id",$param['comboId'])->where("status",1)->findOrEmpty();
-            if ($combo->isEmpty()) return errorTrans("empty.data");
-            $orderSn = CodeExtend::createNoncestr();
-            $state = (new SaasComboLog)->insertGetId([
-                "shop_id"   => $request->user['agent_id'],
-                "order_sn"  => $orderSn,
-                "time"      => $combo['unit']==1?$combo['time']:($combo['time']*365),
-                "money"     => $combo['money']
-            ]);
-            if (!$state) return errorTrans("error.data");
-            // 生成二维码
-            $qrcodePath = "/uploads/card/{$request->user['agent_id']}-renew-{$orderSn}.jpg";
-            (new Link([
-                "appid"     => sConf("wechat.mini_appid"),
-                "appsecret" => sConf("wechat.mini_secret")
-            ]))->createQrcodeWx("/pages/shop/renew","shop={$request->user['agent_id']}&order={$orderSn}",$qrcodePath);
-            $qrcode = 'data:image/png;base64,'.base64_encode(file_get_contents(public_path().$qrcodePath));
-            return successTrans("success.data",compact("qrcode"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    #[Route(path: "list",methods: "get")]
-    public function getRenewList(Request $request)
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 165
app/controller/merchant/Staff.php

@@ -1,165 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\system\UserService;
-use app\extra\tools\CodeExtend;
-use app\middleware\AuthMiddleware;
-use app\model\system\SystemUser;
-use app\validate\saas\UserValidate;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/staff"),Middleware(AuthMiddleware::class)]
-class Staff extends Base
-{
-
-
-    #[Inject]
-    protected SystemUser $model;
-
-
-    #[Inject]
-    protected UserService $service;
-
-
-    #[Inject]
-    protected UserValidate $validate;
-
-
-
-    #[Route(path: "list",methods: "get")]
-    public function getPrintList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['agent'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-
-
-    /**
-     * 修改密码
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "passwd",methods: "post")]
-    public function setUserPasswd(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"        => trans(20010),
-                "password.require"  => trans(20010)
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $user = $this->model->where("id",$param['id'])->findOrEmpty();
-            if ($user->isEmpty()) return errorTrans("empty.error");
-            $user->password = md5($param['password'].$user['salt']);
-            $state = $user->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-    /**
-     * 新增/编辑用户
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function save(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            $param['agent_id'] = $request->user['agent_id'];
-            $param['type'] = 2;
-            $param['salt'] = strtoupper(CodeExtend::random(10,3));
-            $param['password'] = md5($param['password'].$param['salt']);
-            $param['create_ip'] = request()->getRealIp();
-            if (!$this->validate->check($param)) return error($this->validate->getError());
-            $user = $this->model->where("username",$param['username'])->findOrEmpty();
-            if (!$user->isEmpty()) return errorTrans("error.user-exist");
-            $state = $this->model->setAutoData($param);
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            echo $throwable->getMessage()."\n";
-            echo $throwable->getFile()."\n";
-            echo $throwable->getLine()."\n";
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 删除
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "del",methods: "post")]
-    public function delUser(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require"),
-                "type.default"  => "one",
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param['type'] == "batch") {
-                $state = $this->model->where("id","in",$param['id'])->delete();
-            } else {
-                $data = $this->model->where("id",$param['id'])->findOrEmpty();
-                if ($data->isEmpty()) return errorTrans("empty.data");
-                if ($data['agent_id'] <> $request->user['agent_id']) return errorTrans("empty.data");
-                // 删除其他相关数据
-                $state = $data->delete();
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "batch",methods: "post")]
-    public function setBatchData(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"        => trans("empty.require"),
-                "value.require"     => trans("empty.require"),
-                "field.require"     => trans("empty.require"),
-                "type.require"      => trans("empty.require"),
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param['type'] == "batch") {
-                $state = $this->model->where("id","in",$param['id'])->save([$param['field'] => $param['value']]);
-            } else {
-                $state = $this->model->where("id",$param['id'])->save([$param['field'] => $param['value']]);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 74
app/controller/merchant/Turnover.php

@@ -1,74 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\OrderService;
-use app\middleware\AuthMiddleware;
-use app\model\saas\SaasOrderQrcode;
-use app\model\saas\SaasUserBuy;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/turnover"),Middleware(AuthMiddleware::class)]
-class Turnover extends Base
-{
-
-
-    /**
-     *
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "today",methods: "get")]
-    public function getToday(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "shop.default"  => $request->user['agent_id']
-            ]);
-            $data = (new OrderService)->getTotalToday(['shop' => $param['shop']]);
-            $qrcode = (new SaasOrderQrcode)->whereDay("create_at")->where(["shop_id" => $param['shop'],'status' => 1])->field("sum(money) as money,count(1) as total")->find();
-            $card = (new SaasUserBuy)->whereDay("create_at")->where(["shop_id" => $param['shop'],'status' => 1])->field("sum(money) as money,count(1) as total")->find();
-            $total = [
-                [
-                    "name"  => "小程序订单",
-                    "type"  => "线上支付",
-                    "order" => $data['p1'],
-                    "money" => $data['p1m']
-                ],
-                [
-                    "name"  => "收款码",
-                    "type"  => "线上支付",
-                    "order" => $qrcode['total'],
-                    "money" => $qrcode['money']
-                ],
-                [
-                    "name"  => "会员卡充值",
-                    "type"  => "线上支付",
-                    "order" => $card['total'],
-                    "money" => $card['money']
-                ],
-                [
-                    "name"  => "会员卡支付",
-                    "type"  => "线上支付",
-                    "order" => $data['p2'],
-                    "money" => $data['p2m']
-                ]
-            ];
-            $today = [
-                "money"     => $data['p1m'],
-                "user"      => $data['p2m'],
-                "qrcode"    => $qrcode['money'],
-            ];
-            return success("ok",compact("total","today"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 36
app/controller/merchant/User.php

@@ -1,36 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\MemberService;
-use app\middleware\AuthMiddleware;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/api/mer/user"),Middleware(AuthMiddleware::class)]
-class User extends Base
-{
-
-    #[Inject]
-    protected MemberService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 34
app/controller/merchant/UserLog.php

@@ -1,34 +0,0 @@
-<?php
-
-namespace app\controller\merchant;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\MemberLogService;
-use app\middleware\AuthMiddleware;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-#[Controller(prefix: "/api/mer/userLog"),Middleware(AuthMiddleware::class)]
-class UserLog extends Base
-{
-    #[Inject]
-    protected MemberLogService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['agent_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 89
app/controller/notify/SfExpress.php

@@ -1,89 +0,0 @@
-<?php
-
-namespace app\controller\notify;
-
-use app\extra\basic\Base;
-use app\model\saas\SaasOrder;
-use app\model\saas\SaasOrderExpress;
-use app\model\saas\SaasOrderLog;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/sf")]
-class SfExpress extends Base
-{
-
-    protected array $opCode = [
-        50 => "已揽件",
-        30 => "运输中",
-        31 => "运输中",
-        44 => "运输中",
-        80 => "已签收"
-    ];
-
-
-    /**
-     *
-     * @param Request $request
-     * @param $id
-     * @return Response
-     */
-    #[Route(path: "hook/{id}",methods: ['get','post'])]
-    public function getHook(Request $request,$id): Response
-    {
-        try {
-            if ($request->method() == "GET") {
-                $data = $request->get();
-            } else {
-                $data = $request->post();
-            }
-            if (!empty($data['orderState'])){
-                foreach ($data['orderState'] as $val) {
-                    $order = (new SaasOrder)->where("express_id",$val['waybillNo'])->findOrEmpty();
-                    if ($order->isEmpty()) return json(['code' => 0,"success" => true,"msg" => ""]);
-                    if ($val['empCode'] == 500963) {
-                        (new SaasOrderExpress)->insertGetId(['order_id' => $order['order_sn'],'express_id' => $val['waybillNo'],'content' => "顺丰快递",'title' => "系统已接收"]);
-                        (new SaasOrderLog)->insertGetId(['order_id' => $order['order_sn'],'remark' => "顺丰快递",'title' => "系统已接收"]);
-                    }
-
-                }
-            }
-            if (!empty($data['Body']['WaybillRoute'])){
-                foreach ($data['Body']['WaybillRoute'] as $val) {
-                    $order = (new SaasOrder)->where("express_id",$val['mailno'])->with(['store' => function($query){
-                        $query->field('store_id,store_name,appid,secret,express_time,order_end');
-                    }])->findOrEmpty();
-                    if ($order->isEmpty()) return json(['code' => 0,"success" => true,"msg" => ""]);
-                    if ($order['status'] >= 2) return json(['code' => 0,"success" => true,"msg" => ""]);
-                    (new SaasOrderExpress)->insertGetId(['order_id' => $order['order_sn'],'express_id' => $val['mailno'],'content' => $val['remark'],'title' => $this->opCode[$val['opCode']]??'']);
-                    (new SaasOrderLog)->insertGetId(['order_id' => $order['order_sn'],'remark' => $val['remark'],'title' => $this->opCode[$val['opCode']]??'' ]);
-                    if ($val['opCode'] == 50 && $order['store']['order_end'] == "2") { // 已揽收,发起核销
-                        // $val['acceptAddress'] 发货地址
-                        $this->orderDone($order->toArray(),1);
-                        $order->status = 2;
-                        $order->save();
-                    }
-                    if ($val['opCode'] == 80 && $order['store']['order_end'] == "3") { // 已签收
-                        // $val['acceptAddress'] 发货地址
-                        $this->orderDone($order->toArray(),2);
-                        $order->status = 2;
-                        $order->save();
-                    }
-                }
-            }
-            return json(['code' => 0,"success" => true,"msg" => ""]);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    protected function orderDone(array $data = [],int $type = 1)
-    {
-
-    }
-
-}

+ 0 - 122
app/controller/wap/Card.php

@@ -1,122 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\jhfPay\Pay;
-use app\extra\service\system\MoneyLogService;
-use app\extra\tools\CodeExtend;
-use app\middleware\WxMiddleware;
-use app\model\system\SystemUserBankcard;
-use app\validate\saas\CardValidate;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/card"),Middleware(WxMiddleware::class)]
-class Card extends Base
-{
-
-    #[Inject]
-    protected SystemUserBankcard $model;
-
-    #[Inject]
-    protected MoneyLogService $service;
-
-    #[Inject]
-    protected CardValidate $validate;
-
-    #[Route(path: "list",methods: "get")]
-    public function getCardList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $data = $this->model->where("agent_id",$request->user['shop_id'])->findOrEmpty();
-            if ($data->isEmpty())
-            {
-                $data = null;
-            } else {
-                $data['logo'] = "https://apimg.alipay.com/combo.png?d=cashier&t={$data['bank']}";
-                $data['user_name_hide'] = hide_str($data['user_name'],1);
-                $data['card_id_hide'] = hide_str($data['card_id'],3,10);
-            }
-            $city = json_decode(file_get_contents(public_path()."/city.json"),true);
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['shop_id'];
-            }
-            $list = $this->service->getList($param);
-            $list = pageFormat($list);
-            return success("ok",compact("data",'city','list'));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 新增银行卡
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function setUserCard(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            $card = $this->model->where("agent_id",$request->user['shop_id'])->findOrEmpty();
-            if (!$card->isEmpty()) return error("请勿重复添加");
-            if ($param['type'] == 2) {
-                $memberId = $this->model->where("member_id",$param['data_id'])->field("member_id,user_name,cert_id,tel_no,bank,card_id,valid_from,valid_until,card_prov_code,card_area_code,card_city_name")->findOrEmpty();
-                if ($memberId->isEmpty()) return errorTrans("empty.data");
-                $memberId['agent_id'] = $request->user['shop_id'];
-                $state = $card->strict(false)->insertGetId($memberId->toArray());
-            } else {
-                if (empty($param['card_city'])) return error("请选择开户地区");
-                $param['card_prov_code'] = $param['card_city'][0];
-                $param['card_area_code'] = $param['card_city'][1];
-                $param['card_city'] = json_encode($param['card_city']);
-                $resp = $this->validate->scene("add")->check($param);
-                if (!$resp) return error($this->validate->getError());
-                $bankAli = json_decode(file_get_contents("https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo={$param['card_id']}&cardBinCheck=true"),true);
-                if (!$bankAli['validated']) return error("银行卡号有误");
-                if ($param['valid_from'] >= $param['valid_until']) return error("身份证有效期有误");
-                $param['bank'] = $bankAli['bank'];
-                $param['agent_id'] = $request->user['shop_id'];
-                $param['member_id'] = CodeExtend::random(18);
-                $respJhf = (new Pay)->config([
-                    "appid"  => sConf("wechat.jhf_appid"),
-                    "mch_id" => sConf("wechat.jhf_mch_id"),
-                    "aeskey" => sConf("wechat.jhf_aeskey"),
-                    "pubkey" => sConf("wechat.jhf_pubkey"),
-                    "prikey" => sConf("wechat.jhf_prikey"),
-                ])->createMember([
-                    "app_id"    => sConf("wechat.jhf_appid"),
-                    "member_id" => $param['member_id'],
-                    "member_type"   => "01",
-                    "member_p"  => [
-                        "user_name"     => $param['user_name'],
-                        "cert_id"       => $param['cert_id'],
-                        "tel_no"        => $param['tel_no'],
-                        "card_id"       => $param['card_id'],
-                        "valid_from"    => $param['valid_from'],
-                        "valid_until"   => $param['valid_until'],
-                        "card_prov_code"    => $param['card_prov_code'],
-                        "card_area_code"    => $param['card_area_code']
-                    ]
-                ]);
-                if (isset($respJhf['code'])) return error($respJhf['error_msg']);
-                // 推送绑定
-                $state = $card->strict(false)->insertGetId($param);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 10
app/controller/wap/Common.php

@@ -1,10 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-
-class Common extends Base
-{
-
-}

+ 0 - 200
app/controller/wap/Detail.php

@@ -1,200 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-
-use app\extra\basic\Base;
-use app\extra\service\saas\ShopLogService;
-use app\extra\weMini\Link;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasShop;
-use app\model\system\SystemUser;
-use app\model\system\SystemUserOpen;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use Shopwwi\WebmanAuth\Auth;
-use support\Request;
-use support\Response;
-
-#[Controller(prefix: "/wap/shop"),Middleware(WxMiddleware::class)]
-class Detail extends Base
-{
-
-
-    #[Inject]
-    protected SaasShop $model;
-
-    #[Inject]
-    protected ShopLogService $service;
-
-
-    #[Route(path: "detail",methods: "get")]
-    public function getDetail(Request $request): Response
-    {
-        try {
-            $shop = $this->model->where("shop_id",$request->user['shop_id'])->field("shop_name,shop_mobile,start_at,end_at,vip_end,shop_status,shop_notice,line_time,status,shop_address")->withAttr(['vip_end'  => function($query,$data) {
-                return date("Y-m-d",strtotime($data['vip_end']));
-            }])->findOrEmpty();
-            if ($shop->isEmpty()) return errorTrans("empty.data");
-            return success("ok",$shop->toArray());
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    #[Route(path: "save",methods: "post")]
-    public function setData(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            $shop = $this->model->where("shop_id",$request->user['shop_id'])->findOrEmpty();
-            if ($shop->isEmpty()) return errorTrans("empty.data");
-            $state = $shop->save($param);
-            if (!$state) return errorTrans("error.data");
-            // 更新店铺名称到账号信息
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "msg",methods: ['post','get'])]
-    public function getMsgType(Request $request): Response
-    {
-        try {
-            if ($request->method() == "GET") {
-                $msg = (new SystemUserOpen)->where("id",$request->user['id'])->value("is_msg");
-                return success("ok",compact('msg'));
-            }
-            $param = $this->_valid([
-                "msg.require"   => trans("empty.require")
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $msg = (new SystemUserOpen)->where("id",$request->user['id'])->findOrEmpty();
-            if ($msg->isEmpty()) return errorTrans("error.data");
-            $msg->is_msg = $param['msg'];
-            $state = $msg->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 绑定新门店
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "bind",methods: "post")]
-    public function bindUser(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "username.require"  => trans("empty.user"),
-                "password.require"  => trans("empty.passwd"),
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $map = ["is_deleted" => 0,"username" => $param['username']];
-            $user = (new SystemUser)->where($map)->with(['account'])->findOrEmpty();
-            if ($user->isEmpty()) return errorTrans("error.user-empty");
-            if ($user['status'] <> 1) return errorTrans("error.user-status");
-            if (md5($param['password'].$user['salt']) <> $user['password']) return errorTrans("error.passwd");
-            $userOpen = (new SystemUserOpen)->where(['openid' => $request->user['openid'],'shop_id' => $user['agent_id']])->findOrEmpty();
-            if (!$userOpen->isEmpty()) return error("请勿重复绑定");
-            $state = $userOpen->insertGetId([
-                "uid"       => $user['id'],
-                "openid"    => $request->user['openid'],
-                "shop_id"   => $user['agent_id'],
-                "shop_name" => $user['account']['shop_name']??'',
-                'is_msg'    => 1
-            ]);
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 解绑
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "unbind",methods: "post")]
-    public function unbindUser(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"  => trans("empty.data")
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $user = (new SystemUserOpen)->where("id",$param['id'])->findOrEmpty();
-            if ($user->isEmpty()) return errorTrans("empty.data");
-            if ($user['openid'] <> $request->user['openid']) return errorTrans("error.request");
-            $state = $user->delete();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "change",methods: ['post','get'])]
-    public function changeAuth(Request $request): Response
-    {
-        try {
-            if ($request->method() == "GET") {
-                $data = (new SystemUserOpen)->where("openid",$request->user['openid'])->select();
-                $shop = $request->user['shop_id'];
-                return success("ok",compact("data","shop"));
-            }
-            $param = $this->_valid([
-                "id.require"    => trans("empty.data")
-            ],'post');
-            if (!is_array($param)) return error($param);
-            $user = (new SystemUserOpen)->where("id",$param['id'])->findOrEmpty();
-            if ($user->isEmpty()) return errorTrans("empty.data");
-            if ($user['openid'] <> $request->user['openid']) return errorTrans("error.request");
-            $loginUser = (new SystemUser)->where(['id' => $user['uid']])->with(['account' => function($query){
-                $query->field("shop_id,shop_name");
-            }])->findOrEmpty();
-            return success("ok",['shop_name' => $loginUser['account']['shop_name'],'token' => get_object_vars((new Auth)->guard("mp")->login($user->toArray()))]); // 正常登陆进入
-
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 钱包记录
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "walletLog",methods: "get")]
-    public function walletLog(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['shop_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 104
app/controller/wap/Discount.php

@@ -1,104 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-
-use app\extra\basic\Base;
-use app\extra\service\saas\DisCountService;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasDiscount;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-#[Controller(prefix: "/wap/discount"),Middleware(WxMiddleware::class)]
-class Discount extends Base
-{
-
-
-
-    #[Inject]
-    protected SaasDiscount $model;
-
-    #[Inject]
-    protected DisCountService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['shop_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.default"        => 0,
-                "color.require"     => trans("empty.require"),
-                "duplex.require"    => trans("empty.require"),
-                "number.require"    => trans("empty.require"),
-                "rate.require"      => trans("empty.require"),
-                "shop_id.default"   => $request->user['agent_id'],
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $param['keys'] = $param['color']."_".$param['duplex']."_1";
-            $price = $this->model->where("id",$param["id"])->findOrEmpty();
-            if ($price->isEmpty())
-            {
-                $priceType = $this->model->where([
-                    "shop_id"   => $param["shop_id"],
-                    "keys"      => $param["keys"]
-                ])->findOrEmpty();
-                if (!$priceType->isEmpty()) return errorTrans("error.exist");
-                $state = $price->insertGetId($param);
-            } else {
-                $state = $price->save($param);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "del",methods: "post")]
-    public function delPrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require"),
-                "type.default"  => ""
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param["type"] == "batch") {
-                $state = $this->model->whereIn("id",$param["id"])->delete();
-            } else {
-                $price = $this->model->where("id",$param["id"])->findOrEmpty();
-                if ($price->isEmpty()) return errorTrans("empty.data");
-                if ($price['shop_id'] <> $request->user["agent_id"]) return errorTrans("empty.data");
-                $state = $price->delete();
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 336
app/controller/wap/Login.php

@@ -1,336 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\wechat\WechatService;
-use app\middleware\WxMiddleware;
-use app\model\system\SystemConfig;
-use app\model\system\SystemUser;
-use app\model\system\SystemUserOpen;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use Shopwwi\WebmanAuth\Auth;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/login"),Middleware(WxMiddleware::class)]
-class Login extends Base
-{
-
-    protected array $noNeedLogin = ["checkLogin","bindLogin"];
-
-
-    #[Route(path: "check",methods: "post")]
-    public function checkLogin(Request $request): Response
-    {
-        try {
-            $postData = $request->all();
-            if (empty($postData)) {
-                $source = $request->header("referer")."login";
-            } else {
-                $source = $request->header("referer")."login?".http_build_query($postData);
-            }
-            $userInfo = WechatService::getWebOauthInfo($source,1,false);
-//            $userInfo['openid'] = "otdgy3S5ZzPUD5DYOsHacX5KhZ9I";
-//            $userInfo['openid'] = "omf322AlD9wFjm5Ucix9uKmRXd4I";
-            if (empty($userInfo['openid'])) {
-                return success("ok",['url' => $userInfo['url'],'type' => 1]); // 跳转
-            } else {
-                $service = (new SystemConfig)->where("type","service")->column("value","name");
-                $user = (new SystemUserOpen)->where(['openid' => $userInfo['openid']])->findOrEmpty();
-                if ($user->isEmpty())
-                {
-                    return success("ok",['url' => '','shop_name' => "",'type' => 2,'service' => $service,'token' => ['access_token' => $userInfo['openid']]]); // 跳到绑定用户
-                }
-                $loginUser = (new SystemUser)->where(['id' => $user['uid']])->with(['account' => function($query){
-                    $query->field("shop_id,shop_name");
-                }])->findOrEmpty();
-                return success("ok",['url' => '','shop_name' => $loginUser['account']['shop_name'],'type' => 3,'service' => $service,'menu' => $this->getMenu(),'token' => get_object_vars((new Auth)->guard("mp")->login($user->toArray()))]); // 正常登陆进入
-            }
-        } catch (\Throwable $th) {
-            return error($th->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "bind",methods: "post")]
-    public function bindLogin(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "username.require"  => trans("empty.user"),
-                "password.require"  => trans("empty.passwd"),
-                "open.require"      => trans("empty.passwd"),
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $map = ["is_deleted" => 0,"username" => $param['username']];
-            $user = (new SystemUser)->where($map)->with(['account' => function($query){
-                $query->field("shop_id,shop_name");
-            }])->findOrEmpty();
-            if ($user->isEmpty()) return errorTrans("error.user-empty");
-            if ($user['status'] <> 1) return errorTrans("error.user-status");
-            if (md5($param['password'].$user['salt']) <> $user['password']) return errorTrans("error.passwd");
-            $userOpen = (new SystemUserOpen)->where(['openid' => $param['open'],'shop_id' => $user['agent_id']])->findOrEmpty();
-            if (!$userOpen->isEmpty()) return error("请勿重复授权");
-            $openData = [
-                "uid"       => $user['id'],
-                "openid"    => $param['open'],
-                "shop_id"   => $user['agent_id'],
-                "shop_name" => $user['account']['shop_name']??'',
-                'is_msg'    => 1
-            ];
-            $state = $userOpen->insertGetId($openData);
-            $openData['id'] = $state;
-            if (!$state) return errorTrans("error.data");
-            return success("ok",['shop_name' => $user['account']['shop_name'],'menu' => $this->getMenu(),'token' => get_object_vars((new Auth)->guard("mp")->login($openData))]); // 正常登陆进入
-        } catch (\Throwable $th) {
-            return error($th->getMessage());
-        }
-    }
-
-    /**
-     * @return array[]
-     */
-    protected function getMenu(): array
-    {
-        return [
-            [
-                "path"  => "/dashboard",
-                "name"  => "dashboard",
-                "component" => "dashboard",
-                "meta"  => [
-                    "icon"  => "",
-                    "title" => "总揽",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/shop/detail",
-                "name"  => "shop/detail",
-                "component" => "shop/detail",
-                "meta"  => [
-                    "icon"  => "",
-                    "title" => "店铺详情",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/shop/change",
-                "name"  => "shop/change",
-                "component" => "shop/change",
-                "meta"  => [
-                    "icon"  => "",
-                    "title" => "切换店铺",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/print",
-                "name"  => "print/index",
-                "component" => "print/index",
-                "meta"  => [
-                    "icon"  => "el-icon-printer",
-                    "title" => "打印机",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/print/price",
-                "name"  => "print/price",
-                "component" => "print/price",
-                "meta"  => [
-                    "icon"  => "el-icon-shopping-bag",
-                    "title" => "价格设置",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/print/discount",
-                "name"  => "print/discount",
-                "component" => "print/discount",
-                "meta"  => [
-                    "icon"  => "el-icon-price-tag",
-                    "title" => "折扣设置",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/order",
-                "name"  => "order/index",
-                "component" => "order/index",
-                "meta"  => [
-                    "icon"  => "el-icon-tickets",
-                    "title" => "实时订单",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/order/detail",
-                "name"  => "order/detail",
-                "component" => "order/detail",
-                "meta"  => [
-                    "icon"  => "el-icon-tickets",
-                    "title" => "订单详情",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/turnover/index",
-                "name"  => "turnover/index",
-                "component" => "turnover/index",
-                "meta"  => [
-                    "icon"  => "el-icon-money",
-                    "title" => "营业额",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/member/index",
-                "name"  => "member/index",
-                "component" => "member/index",
-                "meta"  => [
-                    "icon"  => "el-icon-credit-card",
-                    "title" => "会员卡",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/member/list",
-                "name"  => "member/list",
-                "component" => "member/list",
-                "meta"  => [
-                    "icon"  => "el-icon-credit-card",
-                    "title" => "会员列表",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/member/recharge",
-                "name"  => "member/recharge",
-                "component" => "member/recharge",
-                "meta"  => [
-                    "icon"  => "el-icon-credit-card",
-                    "title" => "充值套餐",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/wallet/index",
-                "name"  => "wallet/index",
-                "component" => "wallet/index",
-                "meta"  => [
-                    "icon"  => "el-icon-wallet",
-                    "title" => "我的钱包",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/wallet/log",
-                "name"  => "wallet/log",
-                "component" => "wallet/log",
-                "meta"  => [
-                    "icon"  => "el-icon-wallet",
-                    "title" => "钱包记录",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 1
-            ],[
-                "path"  => "/wallet/card",
-                "name"  => "wallet/card",
-                "component" => "wallet/card",
-                "meta"  => [
-                    "icon"  => "el-icon-postcard",
-                    "title" => "结算卡",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/shop/bind",
-                "name"  => "shop/bind",
-                "component" => "shop/bind",
-                "meta"  => [
-                    "icon"  => "el-icon-connection",
-                    "title" => "绑定门店",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ],[
-                "path"  => "/shop/msg",
-                "name"  => "shop/msg",
-                "component" => "shop/msg",
-                "meta"  => [
-                    "icon"  => "el-icon-notification",
-                    "title" => "消息开关",
-                    "type"  => "menu",
-                    "color" => "#333"
-                ],
-                "hide"  => 0
-            ]
-        ];
-    }
-
-    /**
-     * 获取当前请求的完整 URL
-     * @param bool $withQuery 是否包含查询参数
-     * @return string
-     */
-    protected function getFullUrl($withQuery = true) {
-        // 1. 获取协议(支持代理)
-        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
-        || (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)
-            ? 'https' : 'http';
-
-        // 2. 获取主机名(支持代理)
-        $host = $_SERVER['HTTP_X_FORWARDED_HOST']
-            ?? $_SERVER['HTTP_HOST']
-            ?? $_SERVER['SERVER_NAME']
-            ?? 'localhost';
-
-        // 3. 获取端口(支持代理)
-        $port = $_SERVER['HTTP_X_FORWARDED_PORT']
-            ?? $_SERVER['SERVER_PORT']
-            ?? 80;
-
-        // 4. 获取请求URI(包含路径和查询参数)
-        $requestUri = $_SERVER['REQUEST_URI'] ?? '/';
-
-        // 5. 构建基础URL
-        $baseUrl = $protocol . '://' . $host;
-
-        // 6. 如果不是标准端口,添加端口号
-        $isStandardPort = ($protocol === 'http' && $port == 80)
-            || ($protocol === 'https' && $port == 443);
-
-        if (!$isStandardPort) {
-            $baseUrl .= ':' . $port;
-        }
-
-        // 7. 返回完整URL
-        return $baseUrl . $requestUri;
-    }
-
-
-
-}

+ 0 - 109
app/controller/wap/Member.php

@@ -1,109 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\MemberService;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasCombo;
-use app\model\saas\SaasShop;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/member"),Middleware(WxMiddleware::class)]
-class Member extends Base
-{
-
-    #[Inject]
-    protected MemberService $service;
-
-    #[Route(path: "total",methods: "get")]
-    public function getMemberTotal(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['shop_id'];
-            $data = $this->service->getMpTotal($param);
-            return success("ok",$data);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "list",methods: "get")]
-    public function getMemberList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['shop_id'];
-            }
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "combo",methods: "get")]
-    public function getComboDetail(Request $request): Response
-    {
-        try {
-            $shop = (new SaasShop)->where("shop_id",$request->user['shop_id'])->findOrEmpty();
-            $combo = (new SaasCombo)->where("type",2)->where("status",1)->field("id,name,ROUND(money/100,2) as money,ROUND(old_money/100,2) as old_money,is_first")->select();
-            $param = [
-                "state"     => $shop['user_card'], // 1 默认 2 自定义 3关闭
-                "system"    => $combo,
-                "shop"      => empty($shop['user_card_price']) ? $combo :$shop['user_card_price']
-            ];
-            return success("ok",$param);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "combo",methods: "post")]
-    public function setCombo(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            $shop = (new SaasShop)->where("shop_id",$request->user['shop_id'])->findOrEmpty();
-            $shop->user_card = $param['state'];
-            if (isset($param['shop'])) {
-                $shop->user_card_price = json_encode($param['shop']);
-            }
-            $state = $shop->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 钱包余额
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "wallet",methods: "get")]
-    public function getWalletData(Request $request): Response
-    {
-        try {
-            $detail = (new SaasShop)->where("shop_id",$request->user['shop_id'])->column("balance,total_balance");
-            if (!isset($detail[0])) return errorTrans("empty.data");
-            return success("ok",$detail[0]);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 119
app/controller/wap/Order.php

@@ -1,119 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\jhfPay\Pay;
-use app\extra\service\saas\OrderService;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasOrder;
-use app\model\saas\SaasOrderDetail;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-#[Controller(prefix: "/wap/order"),Middleware(WxMiddleware::class)]
-class Order extends Base
-{
-
-    #[Inject]
-    protected OrderService $service;
-
-    #[Inject]
-    protected SaasOrder $model;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop'])) {
-                $param['shop'] = $request->user['shop_id'];
-            }
-            if (!empty($param['order'])) {
-                $orderType = explode("-",$param['order']);
-                if (count($orderType)>1) { // 搜索取件码
-                    $param['sn'] = $param['order'];
-                } else {
-                    $param['orderid'] = $param['order'];
-                }
-            }
-            if (empty($param['status'])) $param['statusGt'] = 1;
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "detail",methods: "get")]
-    public function getOrderDetail(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require")
-            ],$request->method());
-            if (!is_array($param)) return error($param);
-            $detail = $this->model->where("id",$param['id'])->with(['detail','shop' => function($query){
-                $query->field("shop_id,shop_name");
-            }])->findOrEmpty();
-            if ($detail->isEmpty()) return errorTrans("error.data");
-            if ($detail['shop_id'] <> $request->user['shop_id']) return errorTrans("error.data");
-            $startTime = strtotime(date('Y-m-d 00:00:00'));
-            $endTime = strtotime(date('Y-m-d 23:59:58'));
-            $orderTime = strtotime($detail['create_at']);
-            $detail['today'] = (($orderTime > $startTime && $orderTime < $endTime) ? 1 : 0);
-            return success("ok",$detail->toArray());
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "refund",methods: "post")]
-    public function orderRefund(Request $request)
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require")
-            ],$request->method());
-            if (!is_array($param)) return error($param);
-            $detail = $this->model->where("id",$param['id'])->findOrEmpty();
-            if ($detail->isEmpty()) return errorTrans("error.data");
-            if ($detail['shop_id'] <> $request->user['shop_id']) return errorTrans("error.data");
-            if (!in_array($detail['status'],[1,2,3])) return error("该订单不支持退款");
-            if ($detail['pay_type'] == 2) {
-                return error("会员卡退款暂时停用");
-            }
-            $respJhf = (new Pay)->config([
-                "appid"  => sConf("wechat.jhf_appid"),
-                "mch_id" => sConf("wechat.jhf_mch_id"),
-                "aeskey" => sConf("wechat.jhf_aeskey"),
-                "pubkey" => sConf("wechat.jhf_pubkey"),
-                "prikey" => sConf("wechat.jhf_prikey"),
-            ])->createRefund([
-                "payment_id"    => $detail['payment_id'],
-                "order_no"      => $detail['order_sn'],
-                "notify_url"    => "https://panel.huiyinduo.cn/notify/refund",
-                "refund_amt"    => format_money($detail['money']/100,2)
-            ]);
-            if (isset($respJhf['code'])) {
-                return error("发起退款失败");
-            }
-            $detail->status = 4;
-            $state = $detail->save();
-            if (!$state) return errorTrans("error.data");
-            (new SaasOrderDetail)->where("order_sn",$detail['order_sn'])->update(['status' => 4]);
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-
-}

+ 0 - 108
app/controller/wap/Price.php

@@ -1,108 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\PriceService;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasPrice;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/price"),Middleware(WxMiddleware::class)]
-class Price extends Base
-{
-
-
-
-    #[Inject]
-    protected SaasPrice $model;
-
-    #[Inject]
-    protected PriceService $service;
-
-    #[Route(path: "list",methods: "get")]
-    public function getPriceList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['shop_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.default"        => 0,
-                "type.require"      => trans("empty.require"),
-                "color.require"     => trans("empty.require"),
-                "paper_size.require"=> trans("empty.require"),
-                "duplex.require"    => trans("empty.require"),
-                "price.require"     => trans("empty.require"),
-                "shop_id.default"   => $request->user['agent_id'],
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $param['price'] = $param['price'] * 100;
-            $price = $this->model->where("id",$param["id"])->findOrEmpty();
-            if ($price->isEmpty())
-            {
-                $priceType = $this->model->where([
-                    "type"      => $param["type"],
-                    "shop_id"   => $param["shop_id"],
-                    "color"     => $param["color"],
-                    "duplex"    => $param["duplex"],
-                    "paper_size"=> $param["paper_size"],
-                ])->findOrEmpty();
-                if (!$priceType->isEmpty()) return errorTrans("error.exist");
-                $state = $price->insertGetId($param);
-            } else {
-                $state = $price->save($param);
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    #[Route(path: "del",methods: "post")]
-    public function delPrice(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"    => trans("empty.require"),
-                "type.default"  => ""
-            ],"post");
-            if (!is_array($param)) return error($param);
-            if ($param["type"] == "batch") {
-                $state = $this->model->whereIn("id",$param["id"])->delete();
-            } else {
-                $price = $this->model->where("id",$param["id"])->findOrEmpty();
-                if ($price->isEmpty()) return errorTrans("empty.data");
-                if ($price['shop_id'] <> $request->user["agent_id"]) return errorTrans("empty.data");
-                $state = $price->delete();
-            }
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 102
app/controller/wap/Prints.php

@@ -1,102 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\PrintService;
-use app\middleware\WxMiddleware;
-use app\model\saas\SaasPrintClient;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/prints"),Middleware(WxMiddleware::class)]
-class Prints extends Base
-{
-
-
-    #[Inject]
-    protected PrintService $service;
-
-    #[Inject]
-    protected SaasPrintClient $model;
-
-
-    #[Route(path: "list",methods: "get")]
-    public function getPrintList(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            $param['shop'] = $request->user['shop_id'];
-            $list = $this->service->getList($param);
-            return successTrans("success.data",pageFormat($list),200);
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-    /**
-     * 保存配置
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "save",methods: "post")]
-    public function savePrint(Request $request): Response
-    {
-        try {
-            $param = $this->_valid([
-                "id.require"            => trans(20010),
-                "is_price.require"      => trans(20010),
-                "paper_size.require"    => trans(20010),
-                "color.require"         => trans(20010),
-                "direction.require"     => trans(20010),
-                "duplex.require"        => trans(20010),
-                "package.require"       => trans(20010),
-                "type.require"          => trans(20010)
-            ],"post");
-            if (!is_array($param)) return error($param);
-            $printId = $param['id'];
-            $is_price = $param['is_price'];
-            unset($param['id'],$param['is_price']);
-            $print = (new SaasPrintClient)->where("id",$printId)->findOrEmpty();
-            if ($print->isEmpty()) return errorTrans("empty.data");
-            $print->is_price = $is_price;
-            $print->rule = json_encode($param);
-            $state = $print->save();
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-
-    /**
-     * 保存配置
-     * @param Request $request
-     * @return Response
-     */
-    #[Route(path: "single",methods: "post")]
-    public function savePrintSingle(Request $request): Response
-    {
-        try {
-            $param = $request->post();
-            if (empty($param['id'])) return errorTrans("empty.require");
-            $print = (new SaasPrintClient)->where("id",$param['id'])->findOrEmpty();
-            if ($print->isEmpty()) return errorTrans("empty.data");
-            if (isset($param['status'])) {
-                $param['status'] = $print['status'] == 1 ? 2 : 1;
-            }
-            $state = $print->save($param);
-            if (!$state) return errorTrans("error.data");
-            return successTrans("success.data");
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 70
app/controller/wap/Turnover.php

@@ -1,70 +0,0 @@
-<?php
-
-namespace app\controller\wap;
-
-use app\extra\basic\Base;
-use app\extra\service\saas\OrderService;
-use app\middleware\WxMiddleware;
-use DI\Attribute\Inject;
-use LinFly\Annotation\Route\Controller;
-use LinFly\Annotation\Route\Middleware;
-use LinFly\Annotation\Route\Route;
-use support\Request;
-use support\Response;
-
-
-#[Controller(prefix: "/wap/turnover"),Middleware(WxMiddleware::class)]
-class Turnover extends Base
-{
-
-    #[Inject]
-    protected OrderService $service;
-
-    #[Route(path: "total",methods: "get")]
-    public function getTotal(Request $request): Response
-    {
-        try {
-            $param = $request->get();
-            if (empty($param['shop']))
-            {
-                $param['shop'] = $request->user['shop_id'];
-            }
-            $data = $this->service->getTotalDate($param);
-            $total = [
-                [
-                    "name"  => "小程序订单",
-                    "type"  => "线上支付",
-                    "order" => $data['total']['p1'],
-                    "money" => $data['total']['p1m']
-                ],
-                [
-                    "name"  => "收款码",
-                    "type"  => "线上支付",
-                    "order" => $data['qrcode']['total'],
-                    "money" => $data['qrcode']['money']
-                ],
-                [
-                    "name"  => "会员卡充值",
-                    "type"  => "线上支付",
-                    "order" => $data['card']['total'],
-                    "money" => $data['card']['money']
-                ],
-                [
-                    "name"  => "会员卡支付",
-                    "type"  => "线上支付",
-                    "order" => $data['total']['p2'],
-                    "money" => $data['total']['p2m']
-                ]
-            ];
-            $today = [
-                "money"     => $data['total']['p1m'],
-                "user"      => $data['total']['p2m'],
-                "qrcode"    => $data['qrcode']['money'],
-            ];
-            return success("ok",compact("today","total"));
-        } catch (\Throwable $throwable) {
-            return error($throwable->getMessage());
-        }
-    }
-
-}

+ 0 - 68
app/model/saas/SaasCart.php

@@ -1,68 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $uuid 
- * @property integer $shop_id 
- * @property string $name 文件名称
- * @property integer $total_page 总页数
- * @property integer $page 页数
- * @property integer $end_page 结束页
- * @property integer $start_page 起始页
- * @property integer $color 颜色
- * @property string $paper_size 纸张
- * @property integer $duplex 单双面1单面2双面
- * @property integer $direction 1
- * @property integer $number 打印份数
- * @property integer $money 金额
- * @property string $path 文件
- * @property string $old_path 原始路径
- * @property string $extension 
- * @property float $discount 折扣
- * @property integer $source 1文档2复印
- * @property integer $extra_money 额外加价
- * @property integer $single_money 单价
- * @property integer $single_id 单价ID
- * @property string $icon 
- * @property string $print_name 打印机名称
- * @property string $view_key 预览id
- * @property string $job 
- * @property mixed $create_at
- */
-class SaasCart extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_cart";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 50
app/model/saas/SaasCombo.php

@@ -1,50 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property string $name 
- * @property integer $sort 
- * @property integer $time 
- * @property integer $unit 1天2年
- * @property integer $money 金额
- * @property integer $old_money 原价
- * @property integer $status 
- * @property mixed $create_at
- */
-class SaasCombo extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_combo";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 56
app/model/saas/SaasComboLog.php

@@ -1,56 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property integer $shop_id 
- * @property mixed $order_sn 
- * @property integer $time 续费时长-天
- * @property integer $money 金额
- * @property integer $status 0待付款1已支付
- * @property mixed $pay_at 支付时间
- * @property string $transaction_id 交易编号wx
- * @property mixed $create_at
- */
-class SaasComboLog extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_combo_log";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function getMoneyAttr($val): string
-    {
-        return format_money($val/100,2);
-    }
-
-}

+ 0 - 48
app/model/saas/SaasDiscount.php

@@ -1,48 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $shop_id 
- * @property integer $duplex 1单面2双面
- * @property integer $color 1彩色2黑白
- * @property integer $number 
- * @property float $rate 折扣
- * @property mixed $create_at
- */
-class SaasDiscount extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_discount";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 81
app/model/saas/SaasOrder.php

@@ -1,81 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasMany;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $shop_id 所属店铺
- * @property string $parent_id 消费店铺
- * @property string $order_sn 
- * @property integer $money 
- * @property integer $status 0待付款1已支付
- * @property integer $uuid 
- * @property integer $pay_type 支付方式1微信2会员卡
- * @property string $print_name 打印机名称
- * @property integer $coupon_money 优惠券金额
- * @property integer $coupon_id 
- * @property integer $notify_status 通知状态1已通知
- * @property mixed $pay_at 支付时间
- * @property string $transaction_id 交易编号wx
- * @property mixed $refund_at 
- * @property integer $refund_status 
- * @property integer $package 1店内打印2远程自取3商家配送
- * @property string $package_sn 取件号
- * @property integer $package_type 0无1店内打印2远程自取3商家配送
- * @property string $package_local 装订位置
- * @property integer $extra_money 额外加价
- * @property integer $express_money 配送费
- * @property integer $staple_money 装订费
- * @property float $discount 折扣
- * @property mixed $print_at 打印时间
- * @property string $remark 备注
- * @property string $reason 失败原因
- * @property mixed $create_at
- */
-class SaasOrder extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_order";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function shop(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasShop","shop_id","shop_id");
-    }
-
-    public function detail(): HasMany
-    {
-        return $this->hasMany("app\model\saas\SaasOrderDetail","order_sn",'order_sn');
-    }
-
-}

+ 0 - 78
app/model/saas/SaasOrderDetail.php

@@ -1,78 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property string $order_sn 
- * @property integer $uuid 
- * @property integer $shop_id 
- * @property string $name 文件名称
- * @property integer $total_page 
- * @property integer $page 页数
- * @property integer $start_page 起始页
- * @property integer $end_page 结束页面
- * @property integer $color 颜色
- * @property string $paper_size 纸张
- * @property integer $duplex 单双面1单面2双面
- * @property integer $direction 1
- * @property integer $number 打印份数
- * @property integer $money 金额
- * @property string $path 文件
- * @property string $old_path 
- * @property string $extension 
- * @property float $discount 折扣
- * @property integer $source 1文档2复印
- * @property integer $extra_money 额外加价
- * @property integer $single_money 单价
- * @property integer $single_id 单价ID
- * @property string $icon 
- * @property integer $status 
- * @property integer $pay_status 支付状态
- * @property integer $refund_status 退款状态
- * @property mixed $refund_at 
- * @property string $print_name 
- * @property string $view_key 
- * @property string $job 
- * @property mixed $create_at
- */
-class SaasOrderDetail extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_order_detail";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-    public function orders(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasOrder","order_sn",'order_sn');
-    }
-
-}

+ 0 - 47
app/model/saas/SaasOrderPreview.php

@@ -1,47 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $uuid 
- * @property string $key 
- * @property string $path 
- * @property integer $type 
- * @property mixed $create_at
- */
-class SaasOrderPreview extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_order_preview";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 56
app/model/saas/SaasOrderQrcode.php

@@ -1,56 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $order_sn 
- * @property integer $agent_id 
- * @property integer $shop_id 
- * @property integer $money 
- * @property integer $status 0待支付1已支付
- * @property integer $is_order 1跟随订单
- * @property mixed $create_at
- */
-class SaasOrderQrcode extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_order_qrcode";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function shop(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasShop","shop_id","shop_id");
-    }
-
-
-}

+ 0 - 51
app/model/saas/SaasOrderRefund.php

@@ -1,51 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $source 1微信2会员卡
- * @property string $order_sn 退款编号
- * @property string $old_order 订单编号
- * @property integer $money 
- * @property integer $type 1单笔打印2整笔订单
- * @property integer $status 
- * @property integer $order_id 1为打印ID2订单ID
- * @property mixed $refund_at 
- * @property mixed $create_at
- */
-class SaasOrderRefund extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_order_refund";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 54
app/model/saas/SaasPrice.php

@@ -1,54 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $shop_id 
- * @property integer $source 1文档2复印
- * @property integer $type 1普通纸张
- * @property string $paper_size 纸张类型
- * @property integer $duplex 1单面2双面
- * @property integer $color 1彩色2黑白
- * @property integer $price 价格
- * @property mixed $create_at
- */
-class SaasPrice extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_price";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-    public function getPriceAttr($value): string
-    {
-        return format_money($value / 100);
-    }
-
-}

+ 0 - 53
app/model/saas/SaasPrintClient.php

@@ -1,53 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property integer $shop_id 
- * @property mixed $code 
- * @property string $name 
- * @property string $ipaddress 
- * @property mixed $rule 打印机配置
- * @property integer $status 1正常2禁用
- * @property string $print_status 打印机状态
- * @property integer $is_price 1不启用2启用
- * @property mixed $price 额外收费规则
- * @property mixed $create_at
- */
-class SaasPrintClient extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_print_client";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 45
app/model/saas/SaasPrintLog.php

@@ -1,45 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $order_sn 
- * @property string $msg 
- * @property mixed $create_at
- */
-class SaasPrintLog extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_print_log";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 78
app/model/saas/SaasShop.php

@@ -1,78 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasMany;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property string $shop_name 
- * @property string $start_at 
- * @property string $end_at 营业时间-结束
- * @property string $shop_address 地址
- * @property mixed $rule 收费规则
- * @property integer $rate_type 
- * @property integer $rate_radio 
- * @property integer $rate_money 
- * @property mixed $vip_end VIP到期时间
- * @property string $shop_notice 公告
- * @property integer $is_deleted 
- * @property integer $shop_status 1营业2休息
- * @property string $shop_contact 联系人
- * @property string $shop_mobile 联系电话
- * @property integer $user_card 充值套餐0默认1自定义
- * @property mixed $user_card_price 会员卡充值套餐自定义金额
- * @property integer $balance 
- * @property integer $total_balance 
- * @property float $cash_rate 提现费率
- * @property integer $status 0正常1到期2冻结
- * @property mixed $line_time 最后在线时间
- * @property mixed $create_at
- */
-class SaasShop extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_shop";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function wx(): HasMany
-    {
-        return $this->hasMany("app\model\system\SystemUserOpen","shop_id","shop_id");
-    }
-
-
-    public function card(): HasOne
-    {
-        return $this->hasOne("app\model\system\SystemUserBankcard","agent_id","shop_id");
-    }
-
-}

+ 0 - 49
app/model/saas/SaasShopLog.php

@@ -1,49 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $shop_id 
- * @property integer $money 
- * @property integer $balance 
- * @property integer $type 1收入2支出
- * @property string $remark 
- * @property integer $status 1到账0待入账
- * @property mixed $create_at
- */
-class SaasShopLog extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_shop_log";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 45
app/model/saas/SaasUpload.php

@@ -1,45 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property string $path 
- * @property mixed $create_at
- */
-class SaasUpload extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_upload";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 54
app/model/saas/SaasUser.php

@@ -1,54 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $openid 
- * @property integer $agent_id 
- * @property integer $shop_id 
- * @property integer $balance 余额
- * @property integer $total_balance 累计充值
- * @property integer $total_consume 累计消费
- * @property mixed $create_at
- */
-class SaasUser extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_user";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function shop(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasShop","shop_id","shop_id");
-    }
-}

+ 0 - 63
app/model/saas/SaasUserBuy.php

@@ -1,63 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property integer $uid 
- * @property integer $shop_id 
- * @property mixed $order_sn 
- * @property integer $money 金额
- * @property integer $status 0待付款1已支付
- * @property mixed $pay_at 支付时间
- * @property string $transaction_id 交易编号wx
- * @property mixed $create_at
- */
-class SaasUserBuy extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_user_buy";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function card(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasUser","card_no","card_no");
-    }
-
-
-    public function orders(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasOrder","order_sn","order_sn");
-    }
-
-}

+ 0 - 53
app/model/saas/SaasUserLog.php

@@ -1,53 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property integer $uid 
- * @property integer $shop_id 
- * @property integer $money 金额
- * @property integer $type 1出2进
- * @property mixed $create_at
- */
-class SaasUserLog extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_user_log";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function getMoneyAttr($data)
-    {
-        return format_money($data/100);
-    }
-
-}

+ 0 - 53
app/model/saas/SaasUserOpen.php

@@ -1,53 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property string $nickname 
- * @property mixed $openid 
- * @property string $headimg 
- * @property mixed $create_at
- */
-class SaasUserOpen extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_user_open";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-    public function vip(): HasOne
-    {
-        return $this->hasOne("app\model\saas\SaasUser","openid","openid");
-    }
-
-
-}

+ 0 - 46
app/model/saas/SaasWordChange.php

@@ -1,46 +0,0 @@
-<?php
-
-namespace app\model\saas;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $key 
- * @property string $path 
- * @property integer $status 
- * @property mixed $create_at
- */
-class SaasWordChange extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "saas_word_change";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 0 - 61
app/model/system/SystemUserBankcard.php

@@ -1,61 +0,0 @@
-<?php
-
-namespace app\model\system;
-
-use app\extra\basic\Model;
-use app\model\saas\SaasShop;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property integer $agent_id 代理ID
- * @property mixed $member_id 
- * @property string $user_name 姓名
- * @property mixed $cert_id 身份证
- * @property mixed $tel_no 电话
- * @property mixed $bank 银行代码
- * @property mixed $card_id 银行卡号
- * @property string $valid_from 身份证有效期
- * @property string $valid_until 身份证有效期结束
- * @property string $card_prov_code 开户银行省
- * @property string $card_area_code 开户银行市
- * @property string $card_city_name·
- */
-class SystemUserBankcard extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "system_user_bankcard";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-    public function shop(): HasOne
-    {
-        return $this->hasOne(SaasShop::class,"agent_id","shop_id");
-    }
-
-
-}

+ 0 - 57
app/model/system/SystemUserMoney.php

@@ -1,57 +0,0 @@
-<?php
-
-namespace app\model\system;
-
-use app\extra\basic\Model;
-use app\model\saas\SaasShop;
-use think\model\relation\HasOne;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $order_sn 结算编号
- * @property mixed $agent_id 
- * @property integer $money 
- * @property mixed $day 
- * @property integer $status 1已结算0待结算
- * @property mixed $member_id 银行卡id
- * @property mixed $create_at
- */
-class SystemUserMoney extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "system_user_money";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-
-    public function shop(): HasOne
-    {
-        return $this->hasOne(SaasShop::class,"shop_id","agent_id");
-    }
-
-}

+ 0 - 49
app/model/system/SystemUserOpen.php

@@ -1,49 +0,0 @@
-<?php
-
-namespace app\model\system;
-
-use app\extra\basic\Model;
-
-
-/**
- * @property integer $id (主键)
- * @property mixed $openid 
- * @property string $shop_name 
- * @property string $nickname 
- * @property string $headimg 
- * @property integer $shop_id 门店ID
- * @property integer $is_msg 1接收
- * @property mixed $create_at
- */
-class SystemUserOpen extends Model
-{
-    /**
-     * The connection name for the model.
-     *
-     * @var string|null
-     */
-    protected $connection = 'mysql';
-    
-    /**
-     * The table associated with the model.
-     *
-     * @var string
-     */
-    protected string $table = "system_user_open";
-    
-    /**
-     * The primary key associated with the table.
-     *
-     * @var string
-     */
-    protected string $primaryKey = "id";
-    
-    /**
-     * Indicates if the model should be timestamped.
-     *
-     * @var bool
-     */
-    public bool $timestamps = false;
-
-
-}

+ 1 - 1
config/process.php

@@ -8,7 +8,7 @@ global $argv;
 return [
     'wash' => [
         'handler' => Http::class,
-        'listen' => 'http://0.0.0.0:8890',
+        'listen' => 'http://0.0.0.0:'.getenv('PORT'),
         'count' => cpu_count() * 4,
         'user' => '',
         'group' => '',