Zory 3 週間 前
コミット
b6e7369f29

+ 11 - 2
app/controller/admin/Store.php

@@ -6,6 +6,7 @@ use app\extra\basic\Base;
 use app\extra\service\agent\StoreService;
 use app\extra\tools\CodeExtend;
 use app\middleware\AuthMiddleware;
+use app\model\saas\SaasAgent;
 use app\model\saas\SaasStore;
 use app\model\system\SystemUser;
 use app\validate\user\StoreValidate;
@@ -34,12 +35,14 @@ class Store extends Base
 
     protected string $scene = "edit";
 
+
+    #[Route(path: "list",methods: "get")]
     public function getStoreList(Request $request): Response
     {
         try {
             $param = $request->get();
             $list = $this->service->getList($param);
-            return successTrans(100010,pageFormat($list),200);
+            return successTrans("success.data",pageFormat($list),200);
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
         }
@@ -56,22 +59,28 @@ class Store extends Base
     {
         try {
             $param = $request->post();
+            $agent = (new SaasAgent)->where("agent_id",$param['agent_id'])->findOrEmpty();
+            if ($agent->isEmpty()) return errorTrans("error.agent-no-exist");
             if (!isset($param['id'])) {
                 $this->scene = "add";
                 $code = (new Codecheck)->mobile($param['mobile'])->scene($param['scene'])->code($param['yzm'])->check();
                 if (!$code) return errorTrans("error.sms-err");
-                $param['user_id'] = $param['agent_id'] = CodeExtend::random(16,1,date("md"));
+                $param['user_id'] = $param['store_id'] = CodeExtend::random(16,1,date("md"));
                 if (!empty($param['username'])) {
                     $userName = (new SystemUser)->where("username",$param['username'])->findOrEmpty();
                     if (!$userName->isEmpty()) return errorTrans("error.user-exist");
                 }
             }
+            $param['vip_at'] = $agent['vip_at'];
             if (!$this->validate->scene($this->scene)->check($request->post())) return error($this->validate->getError());
             $state = $this->model->setAutoData($param);
             if (!$state) return errorTrans("error.data");
             $this->sceneUser($param,3);
             return successTrans("success.data");
         } catch (\Throwable $throwable) {
+            echo $throwable->getMessage()."\n";
+            echo $throwable->getFile()."\n";
+            echo $throwable->getLine()."\n";
             return error($throwable->getMessage());
         }
     }

+ 0 - 1
app/controller/admin/User.php

@@ -66,7 +66,6 @@ class User extends Base
                 $this->scene = "add";
                 $code = (new Codecheck)->mobile($param['mobile'])->scene($param['scene'])->code($param['yzm'])->check();
                 if (!$code) return errorTrans("error.sms-err");
-                $param['type'] = 2;
                 $param['user_id'] = CodeExtend::random(16,1,date("md"));
             }
             $param['salt'] = strtoupper(CodeExtend::random(10,3));

+ 7 - 5
app/controller/common/Login.php

@@ -63,7 +63,7 @@ class Login extends Base
                 "scene.require"     => trans("empty.data"),
             ],"post");
             if (!is_array($param)) return error($param);
-            $code = (new Codecheck)->mobile($param['mobile'])->scene($param['scene'])->code($param['code'])->delafterok(true)->check();
+            $code = (new Codecheck)->mobile($param['mobile'])->scene($param['scene'])->code($param['code'])->check();
             if (!$code) return errorTrans("error.captcha");
             $map = ["is_deleted" => 0,"mobile" => $param['mobile']];
             [$state,$msg,$user] = $this->checkLogin($map);
@@ -87,10 +87,12 @@ class Login extends Base
         $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"),[]];
-        $typeUser = $this->getTypeUser($user['agent_id']);
-        if (empty($typeUser)) return [0,trans("empty.agent"),[]];
-        if ($typeUser['status'] <> 1) return [0,trans("error.agent"),[]];
-        if (time() > strtotime($typeUser['vip_at'])) return [0,trans("error.agent-out"),[]];
+        if ($user['type'] > 1) {
+            $typeUser = $this->getTypeUser($user['agent_id']);
+            if (empty($typeUser)) return [0,trans("empty.agent"),[]];
+            if ($typeUser['status'] <> 1) return [0,trans("error.agent"),[]];
+            if (time() > strtotime($typeUser['vip_at'])) return [0,trans("error.agent-out"),[]];
+        }
         if ($type == 2) {
             if (md5($param['password'].$user['salt']) <> $user['password']) return [0,trans("error.passwd"),[]];
         }

+ 5 - 1
app/controller/common/Menu.php

@@ -33,7 +33,11 @@ class Menu extends Base
                 "form.default"  => $request->user['type'],
                 "type.default"  => 1
             ]);
-            $menu = $this->service->getMenuList($request->user['is_super'],$param['form']);
+            $hide = 0;
+            if ($request->user['type'] == 3) { // 门店
+
+            }
+            $menu = $this->service->getMenuList($request->user['is_super'],$hide,$param['form']);
             $permissionsData = [];
             foreach ($menu as $val) {
                 if ($val['type'] == 'button') {

+ 26 - 0
app/controller/store/Detail.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace app\controller\store;
+
+use app\extra\basic\Base;
+use app\middleware\AuthMiddleware;
+use LinFly\Annotation\Route\Controller;
+use LinFly\Annotation\Route\Route;
+use Webman\Annotation\Middleware;
+
+
+#[Controller(prefix: "/api/store/detail"),Middleware(AuthMiddleware::class)]
+class Detail extends Base
+{
+
+
+    /**
+     * 门店详情
+     */
+    #[Route(path: "data",methods: "get")]
+    public function getDetail()
+    {
+
+    }
+
+}

+ 1 - 1
app/extra/basic/Service.php

@@ -18,7 +18,7 @@ class Service
      * 白名单
      * @var array|string[]
      */
-    protected array $mobileWhite = ["18665619195","18665619196","18665619198","18665619199"];
+    protected array $mobileWhite = ["18665619195","18665619196","18665619198","18665619199","18665619191","18665619192","18665619193","18665619194"];
 
 
     /**

+ 1 - 1
app/extra/service/system/MenuService.php

@@ -13,7 +13,7 @@ class MenuService extends Service
      * @param int $type
      * @return array
      */
-    public function getMenuList(int $super = 0,int $type = 1): array
+    public function getMenuList(int $super = 0,int $hide = 0,int $type = 1): array
     {
         $model = new SystemMenu();
         try {

+ 7 - 2
app/model/saas/SaasStore.php

@@ -6,8 +6,8 @@ use app\extra\basic\Model;
 
 
 /**
- * @property integer $id (主键)
- * @property integer $store_id 
+ * @property integer $id (主键)
+ * @property integer $store_id 
  * @property mixed $create_at
  */
 class SaasStore extends Model
@@ -41,4 +41,9 @@ class SaasStore extends Model
     public bool $timestamps = false;
 
 
+    public function user()
+    {
+        return $this->hasOne("app\model\system\SystemUser","user_id","store_id");
+    }
+
 }

+ 5 - 10
app/validate/user/StoreValidate.php

@@ -13,30 +13,25 @@ class StoreValidate extends Validate
         "truename"          => "require",
         "store_mch"         => "require",
         "store_type"        => "require",
-        "wash_type"         => "require|date",
+        "wash_type"         => "require",
         "store_address"     => "require",
         "license"           => "require",
-        "store_status"      => "require",
-        "store_goods"       => "require",
-        "store_system"      => "require",
-        "store_order"       => "require",
         "mobile"            => "require|mobile",
-        "yzm"               => "requir|number",
+        "yzm"               => "require|number",
         "password"          => "require"
     ];
 
 
     protected $message = [
-        "truename.require"  => "请输入代理名称",
-        "contact.require"   => "请输入联系人",
+        "truename.require"  => "请输入门店名称",
         "mobile.require"    => "请输入手机号码",
         "mobile.mobile"     => "手机号码格式错误",
         "yzm.require"       => "请输入短信验证码",
         "yzm.number"        => "短信验证码为纯数字",
-        "vip_at.require"    => "请选择到期时间",
+        "license.require"   => "请上传营业职照",
         "vip_at.date"       => "到期时间格式错误",
-        "mall_type.require" => "请选择商城小程序类型",
         "password.require"  => "请输入密码",
+        "store_type.require"  => "请选择门店类型",
         "scene.require"     => "存在遗漏参数",
     ];
 

+ 2 - 1
resource/translations/zh_CN/messages.php

@@ -28,7 +28,8 @@ return [
         "login"         => "登录已过期,请重新登录",
         "sms-err"       => "短信验证码错误",
         "agent"         => "代理状态异常,请联系管理员",
-        "agent-out"     => "权限已到期,请联系管理员"
+        "agent-out"     => "权限已到期,请联系管理员",
+        "agent-no-exist"   => "代理不存在",
     ],
     "success"   => [
         "data"  => "操作成功",

+ 4 - 1
vendor/autoload.php

@@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
             echo $err;
         }
     }
-    throw new RuntimeException($err);
+    trigger_error(
+        $err,
+        E_USER_ERROR
+    );
 }
 
 require_once __DIR__ . '/composer/autoload_real.php';

+ 4 - 41
vendor/composer/InstalledVersions.php

@@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
  */
 class InstalledVersions
 {
-    /**
-     * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
-     * @internal
-     */
-    private static $selfDir = null;
-
     /**
      * @var mixed[]|null
      * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
      */
     private static $installed;
 
-    /**
-     * @var bool
-     */
-    private static $installedIsLocalDir;
-
     /**
      * @var bool|null
      */
@@ -320,24 +309,6 @@ class InstalledVersions
     {
         self::$installed = $data;
         self::$installedByVendor = array();
-
-        // when using reload, we disable the duplicate protection to ensure that self::$installed data is
-        // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
-        // so we have to assume it does not, and that may result in duplicate data being returned when listing
-        // all installed packages for example
-        self::$installedIsLocalDir = false;
-    }
-
-    /**
-     * @return string
-     */
-    private static function getSelfDir()
-    {
-        if (self::$selfDir === null) {
-            self::$selfDir = strtr(__DIR__, '\\', '/');
-        }
-
-        return self::$selfDir;
     }
 
     /**
@@ -351,27 +322,19 @@ class InstalledVersions
         }
 
         $installed = array();
-        $copiedLocalDir = false;
 
         if (self::$canGetVendors) {
-            $selfDir = self::getSelfDir();
             foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
-                $vendorDir = strtr($vendorDir, '\\', '/');
                 if (isset(self::$installedByVendor[$vendorDir])) {
                     $installed[] = self::$installedByVendor[$vendorDir];
                 } elseif (is_file($vendorDir.'/composer/installed.php')) {
                     /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
                     $required = require $vendorDir.'/composer/installed.php';
-                    self::$installedByVendor[$vendorDir] = $required;
-                    $installed[] = $required;
-                    if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
-                        self::$installed = $required;
-                        self::$installedIsLocalDir = true;
+                    $installed[] = self::$installedByVendor[$vendorDir] = $required;
+                    if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+                        self::$installed = $installed[count($installed) - 1];
                     }
                 }
-                if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
-                    $copiedLocalDir = true;
-                }
             }
         }
 
@@ -387,7 +350,7 @@ class InstalledVersions
             }
         }
 
-        if (self::$installed !== array() && !$copiedLocalDir) {
+        if (self::$installed !== array()) {
             $installed[] = self::$installed;
         }
 

+ 4 - 4
vendor/composer/autoload_psr4.php

@@ -8,8 +8,8 @@ $baseDir = dirname($vendorDir);
 return array(
     'yzh52521\\EasyHttp\\' => array($vendorDir . '/yzh52521/easyhttp/src'),
     'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku'),
-    'think\\' => array($vendorDir . '/topthink/think-template/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-validate/src', $vendorDir . '/topthink/think-container/src', $vendorDir . '/topthink/think-helper/src'),
-    'support\\' => array($vendorDir . '/webman/think-orm/src/support', $vendorDir . '/webman/think-cache/src/support', $vendorDir . '/webman/redis/src/support', $vendorDir . '/workerman/webman-framework/src/support'),
+    'think\\' => array($vendorDir . '/topthink/think-container/src', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src', $vendorDir . '/topthink/think-validate/src'),
+    'support\\' => array($vendorDir . '/webman/redis/src/support', $vendorDir . '/webman/think-cache/src/support', $vendorDir . '/webman/think-orm/src/support', $vendorDir . '/workerman/webman-framework/src/support'),
     'app\\View\\Components\\' => array($baseDir . '/app/view/components'),
     'app\\' => array($baseDir . '/app'),
     'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
@@ -18,7 +18,7 @@ return array(
     'Workerman\\RedisQueue\\' => array($vendorDir . '/workerman/redis-queue/src'),
     'Workerman\\Crontab\\' => array($vendorDir . '/workerman/crontab/src'),
     'Workerman\\Coroutine\\' => array($vendorDir . '/workerman/coroutine/src'),
-    'Workerman\\' => array($vendorDir . '/workerman/workerman/src', $vendorDir . '/workerman/coroutine/src'),
+    'Workerman\\' => array($vendorDir . '/workerman/coroutine/src', $vendorDir . '/workerman/workerman/src'),
     'Webman\\ThinkOrm\\' => array($vendorDir . '/webman/think-orm/src'),
     'Webman\\ThinkCache\\' => array($vendorDir . '/webman/think-cache/src'),
     'Webman\\Redis\\' => array($vendorDir . '/webman/redis/src'),
@@ -70,7 +70,7 @@ return array(
     'Invoker\\' => array($vendorDir . '/php-di/invoker/src'),
     'Intervention\\Image\\' => array($vendorDir . '/intervention/image/src'),
     'Intervention\\Gif\\' => array($vendorDir . '/intervention/gif/src'),
-    'Illuminate\\Support\\' => array($vendorDir . '/illuminate/support', $vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/macroable'),
+    'Illuminate\\Support\\' => array($vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/support'),
     'Illuminate\\Redis\\' => array($vendorDir . '/illuminate/redis'),
     'Illuminate\\Pipeline\\' => array($vendorDir . '/illuminate/pipeline'),
     'Illuminate\\Events\\' => array($vendorDir . '/illuminate/events'),

+ 13 - 13
vendor/composer/autoload_static.php

@@ -224,17 +224,17 @@ class ComposerStaticInit691f538563ac6695008ddc51b7722c80
         ),
         'think\\' => 
         array (
-            0 => __DIR__ . '/..' . '/topthink/think-template/src',
-            1 => __DIR__ . '/..' . '/topthink/think-orm/src',
-            2 => __DIR__ . '/..' . '/topthink/think-validate/src',
-            3 => __DIR__ . '/..' . '/topthink/think-container/src',
-            4 => __DIR__ . '/..' . '/topthink/think-helper/src',
+            0 => __DIR__ . '/..' . '/topthink/think-container/src',
+            1 => __DIR__ . '/..' . '/topthink/think-helper/src',
+            2 => __DIR__ . '/..' . '/topthink/think-orm/src',
+            3 => __DIR__ . '/..' . '/topthink/think-template/src',
+            4 => __DIR__ . '/..' . '/topthink/think-validate/src',
         ),
         'support\\' => 
         array (
-            0 => __DIR__ . '/..' . '/webman/think-orm/src/support',
+            0 => __DIR__ . '/..' . '/webman/redis/src/support',
             1 => __DIR__ . '/..' . '/webman/think-cache/src/support',
-            2 => __DIR__ . '/..' . '/webman/redis/src/support',
+            2 => __DIR__ . '/..' . '/webman/think-orm/src/support',
             3 => __DIR__ . '/..' . '/workerman/webman-framework/src/support',
         ),
         'app\\View\\Components\\' => 
@@ -271,8 +271,8 @@ class ComposerStaticInit691f538563ac6695008ddc51b7722c80
         ),
         'Workerman\\' => 
         array (
-            0 => __DIR__ . '/..' . '/workerman/workerman/src',
-            1 => __DIR__ . '/..' . '/workerman/coroutine/src',
+            0 => __DIR__ . '/..' . '/workerman/coroutine/src',
+            1 => __DIR__ . '/..' . '/workerman/workerman/src',
         ),
         'Webman\\ThinkOrm\\' => 
         array (
@@ -481,10 +481,10 @@ class ComposerStaticInit691f538563ac6695008ddc51b7722c80
         ),
         'Illuminate\\Support\\' => 
         array (
-            0 => __DIR__ . '/..' . '/illuminate/support',
-            1 => __DIR__ . '/..' . '/illuminate/collections',
-            2 => __DIR__ . '/..' . '/illuminate/conditionable',
-            3 => __DIR__ . '/..' . '/illuminate/macroable',
+            0 => __DIR__ . '/..' . '/illuminate/collections',
+            1 => __DIR__ . '/..' . '/illuminate/conditionable',
+            2 => __DIR__ . '/..' . '/illuminate/macroable',
+            3 => __DIR__ . '/..' . '/illuminate/support',
         ),
         'Illuminate\\Redis\\' => 
         array (

+ 2 - 2
vendor/composer/installed.php

@@ -3,7 +3,7 @@
         'name' => 'workerman/webman',
         'pretty_version' => 'dev-master',
         'version' => 'dev-master',
-        'reference' => 'e8bf7c27fd47cc24b0cd339dcd51e296dae18ef2',
+        'reference' => '39acf81af255e15fcbe3a909b8200fc8cfc7a39d',
         'type' => 'project',
         'install_path' => __DIR__ . '/../../',
         'aliases' => array(),
@@ -915,7 +915,7 @@
         'workerman/webman' => array(
             'pretty_version' => 'dev-master',
             'version' => 'dev-master',
-            'reference' => 'e8bf7c27fd47cc24b0cd339dcd51e296dae18ef2',
+            'reference' => '39acf81af255e15fcbe3a909b8200fc8cfc7a39d',
             'type' => 'project',
             'install_path' => __DIR__ . '/../../',
             'aliases' => array(),