Your Name 8 kuukautta sitten
vanhempi
commit
c67d06da9b

+ 2 - 2
UCore/DcatAdmin/Metrics/User/Online.php

@@ -2,8 +2,8 @@
 
 namespace UCore\DcatAdmin\Metrics\User;
 
-use UCore\DcatAdmin\Metrics\Examples\Number;
 use Illuminate\Http\Request;
+use UCore\DcatAdmin\Metrics\Examples\Number;
 
 class Online extends Number
 {
@@ -12,6 +12,6 @@ class Online extends Number
 
         public function handle(Request $request)
         {
-            $this->withContent(\App\Module\User\Online::count());
+            $this->withContent(\App\Module\User\Services\Online::count());
         }
 }

+ 2 - 7
app/Module/System/AdminLazyRenderable/UserInfo.php

@@ -5,18 +5,13 @@ namespace App\Module\System\AdminLazyRenderable;
 
 
 
-use UCore\DcatAdmin\Metrics\Examples\Link;
-use App\Module\User\Services\UserService;
-use UCore\DcatAdmin\Metrics\Image;
 use App\Module\File\Img;
 use App\Module\Merchant\Merchant;
-use App\Module\User\User;
-use Dcat\Admin\Layout\Column;
-use Dcat\Admin\Layout\Row;
+use App\Module\User\Services\UserService;
 use Dcat\Admin\Widgets\Box;
 use Dcat\Admin\Widgets\Card;
-use Dcat\Admin\Widgets\Markdown;
 use Dcat\Admin\Widgets\Table;
+use UCore\DcatAdmin\Metrics\Image;
 
 class UserInfo extends \UCore\DcatAdmin\Support\LazyRenderable
 {

+ 2 - 2
app/Module/Ulogic/Models/Internal.php

@@ -2,10 +2,10 @@
 
 namespace App\Module\Ulogic\Model;
 
-use UCore\ModelCore;
 use App\Module\Ulogic\Enum\INTERNAL_TYPE;
-use App\Module\User\User;
+use App\Module\User\Services\User;
 use Illuminate\Database\Eloquent\SoftDeletes;
+use UCore\ModelCore;
 
 /**
  * 站内信

+ 3 - 5
app/Module/Ulogic/Punish.php

@@ -7,10 +7,8 @@ use App\Module\Ulogic\Enum\PUNISH_TYPE;
 use App\Module\Ulogic\logic\PunishGroup;
 use App\Module\Ulogic\logic\PunishLevel;
 use App\Module\Ulogic\Model\UserPunish;
-use App\Module\User\Action;
-use Dcat\Admin\Http\Middleware\Session;
+use App\Module\User\Services\ActionService;
 use UCore\Helper\Logger;
-use Illuminate\Support\Facades\DB;
 
 /**
  * 违规记录
@@ -85,7 +83,7 @@ class Punish
         Logger::info('Punish-call_user1',[$groupCount,$user_id,$levelCount,$admin_id,$desc]);
         if($groupCount >= 3 ){
             // 三次普通违规,封号
-            Action::ban($admin_id,$user_id,$desc,'0','Punish');
+            ActionService::ban($admin_id, $user_id, $desc, '0', 'Punish');
 
         }
 
@@ -106,7 +104,7 @@ class Punish
 
         if ($groupCount >= 1) {
             // 1次违规,封号
-            Action::ban($admin_id, $user_id, $desc, '0', 'Punish',3153600000);
+            ActionService::ban($admin_id, $user_id, $desc, '0', 'Punish', 3153600000);
             SessionApp::removeUKeys($user_id);
         }
     }

+ 1 - 2
app/Module/User/Enums/PHONE_STATUS.php

@@ -4,7 +4,6 @@ namespace App\Module\User\Enums;
 
 use UCore\Enum\EnumCore;
 use UCore\Enum\EnumExpression;
-use UCore\Enum\EnumName;
 use UCore\Enum\EnumToInt;
 use Illuminate\Contracts\Database\Query\Expression;
 
@@ -29,4 +28,4 @@ enum PHONE_STATUS: int implements Expression
      * 等待验证
      */
     case WAIT_CHECK = 1;
-}
+}

+ 4 - 7
app/Module/User/Action.php → app/Module/User/Services/ActionService.php

@@ -1,24 +1,21 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
 use App\Module\App\SessionApp;
 use App\Module\User\Enums\ACTION_STATUS;
 use App\Module\User\Enums\ACTION_TYPE;
 use App\Module\User\Enums\STATUS2;
 use App\Module\User\Models\UserAction;
-use App\Module\User\Unit\UserPublic;
-use Dcore\Db\Arr;
-use Dcore\Db\Helper;
-use Dcore\Helper\Logger;
-use Illuminate\Database\Query\Builder;
 use Illuminate\Support\Facades\DB;
+use UCore\Db\Helper;
+use UCore\Helper\Logger;
 
 /**
  * 用户操作
  *
  */
-class Action
+class ActionService
 {
 
     /**

+ 3 - 4
app/Module/User/Google2Fa.php → app/Module/User/Services/Google2Fa.php

@@ -1,9 +1,8 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
-use App\Module\Sys\Config;
-use App\Module\Sys\Key;
+use App\Module\System\Services\ConfigService;
 use App\Module\User\Models\UserInfo;
 
 class Google2Fa
@@ -18,7 +17,7 @@ class Google2Fa
      */
     static public function must_check(UserInfo $info,$scene = 'vorder_add')
     {
-        $authArray = Config::getValueDefault('auth_'.$scene);
+        $authArray = ConfigService::getValueDefault('auth_'.$scene);
         if(!$authArray['open_password2fa']){
             return false;
         }

+ 1 - 1
app/Module/User/Online.php → app/Module/User/Services/Online.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
 use Illuminate\Support\Facades\Redis;
 

+ 2 - 1
app/Module/User/Phone.php → app/Module/User/Services/Phone.php

@@ -1,10 +1,11 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
 use App\Module\User\Enums\PHONE_STATUS;
 use App\Module\User\Enums\PHONE_TYPE;
 use App\Module\User\Models\UserPhone;
+use App\Module\User\PhoneType;
 
 class Phone
 {

+ 2 - 3
app/Module/User/SecurityPassword.php → app/Module/User/Services/SecurityPassword.php

@@ -1,13 +1,12 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
 use App\Module\User\Enums\SECRET_PASSWORD_STATUS;
-
-
 use App\Module\User\Models\UserSecretPassword;
 use Carbon\Carbon;
 
+
 class SecurityPassword
 {
 

+ 2 - 2
app/Module/User/User.php → app/Module/User/Services/User.php

@@ -1,13 +1,13 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
 use App\Module\User\Enums\STATUS2;
+use App\Module\User\Models;
 use App\Module\User\Unit\UserPublic;
 use Dcore\Db\Arr;
 use Dcore\Exception\LogicException;
 use Illuminate\Support\Facades\Hash;
-use function Symfony\Component\Translation\t;
 
 class User
 {

+ 2 - 3
app/Module/User/UserOInfo.php → app/Module/User/Services/UserOInfo.php

@@ -1,13 +1,12 @@
 <?php
 
-namespace App\Module\User;
+namespace App\Module\User\Services;
 
-use App\Module\User\Enums\STATUS2;
 use App\Module\User\Models\UserInfo;
+use App\Module\User\Unit;
 use App\Module\User\Unit\UserPublic;
 use Dcore\Db\Arr;
 use Dcore\Exception\LogicException;
-use Illuminate\Support\Facades\Hash;
 
 class UserOInfo
 {

+ 15 - 258
app/Module/User/Services/UserService.php

@@ -2,289 +2,46 @@
 
 namespace App\Module\User\Services;
 
-use App\Module\App\Mnemon;
 use App\Module\App\SessionApp;
-use App\Module\Ulogic\Model\UserBans;
-use App\Module\Ulogic\Model\UserWord;
-use App\Module\User\Models\User;
-use Illuminate\Support\Facades\Cache;
-use Illuminate\Support\Facades\DB;
-
 
 class UserService
 {
-    // 默认头像
-    const AVATAR = 'https://www.api.xuyoo.cc/images/default_avatar.jpg';
-
-    // 登录错误次数key
-    const LOGIN_ERROR_NUM = 'LOGIN_ERROR_NUM_';
 
-    // 登录错误次数最大值
-    const ERROR_NUM = 5;
-
-    /**
-     * @param $mobile
-     * @return bool
-     * 查询用户信息
-     */
-    public static function getUserByMobile($mobile)
+    public function getToken()
     {
-        $data = User::query()->where('mobile', $mobile)->first();
-        if (!$data || !$data->password) {
-            return false;
-        }
-
-        return true;
+        return SessionApp::$session_id;
     }
 
-    /**
-     * @param $mobile
-     * @return \App\Module\Ulogic\Unit\User|array|false
-     * @throws \\Exception\LogicException
-     * 注册
-     */
-    public static function register($mobile)
-    {
-
-        // 判断手机号是否已存在
-        $model = User::getUserInfoByCondition('mobile', $mobile);
-        if (!$model) {
-            // user表插入数据,返回token
-            $model = User::createUser($mobile, self::AVATAR);
-            if (!$model) {
-                return false;
-            }
-        }
-
-        // 生成token
-        $data = SessionApp::setLogin($model, true);
-
-        return $data;
-    }
-
-    /**
-     * @param $inviteCode
-     * @return array|false
-     * 获取邀请信息
-     */
-    public static function getInviteInfo($inviteCode)
+    public function __construct(protected int $user_id)
     {
-        $data = User::getUserInfoByCondition('invite_code', $inviteCode);
-        if (empty($data)) {
-            return false;
-        }
 
-        return [
-            'nickname' => $data['nickname'],
-            'avatar' => $data['avatar'],
-        ];
     }
 
     /**
-     * @param $mobile
-     * @param $password
-     * @return \App\Module\Ulogic\Unit\User|array|false
-     * @throws \FurqanSiddiqui\BIP39\Exception\Bip39MnemonicException
-     * @throws \\Exception\LogicException
-     * 登录
+     * @return static
      */
-    public static function login($data)
+    static public function newBySession()
     {
-        $mobile = $data['mobile'];
-        $password = $data['password'];
-        $userData = User::getUserInfoByCondition('mobile', $mobile);
-        if (empty($userData)) {
-            throw new ValidateException(null, '用户不存在');
-        }
-
-        // 验证封禁状态
-        if ($userData->is_prohibit != 0) {
-            return [
-                'isProhibit' => 1,
-                'token' => ''
-            ];
-        }
-
-        $check = self::checkPassword($userData, $password);
-
-        $key = self::LOGIN_ERROR_NUM.$userData->user_id;
-        if (!$check) {
-            // 记录用户错误次数
-            if (Cache::has($key)) {
-                Cache::increment($key);
-                // 错误达到5次封号
-                $errorNum = Cache::get($key);
-                if ($errorNum >= self::ERROR_NUM) {
-                    DB::beginTransaction();
-                    try {
-                        // 封号
-                        UserBans::create($userData->user_id, 1, 0, time() + 86400);
-                        // 修改用户窗台
-                        User::updateByUserId($userData->user_id, 'is_prohibit', '1');
-                        DB::commit();
-                        throw new ValidateException(null, '助记词错误,已临时冻结,请在24小时后尝试');
-                    } catch (\Exception $e) {
-                        DB::rollBack();
-                        throw new ValidateException(null, $e->getMessage());
-                    }
-
-
-                }
-            } else {
-                Cache::put($key, 1);
-            }
-            throw new ValidateException(null, '登录失败');
-        }
-
-        // 设置token
-        Cache::delete($key);
-        return SessionApp::setLogin($userData, true);
+        return new static(SessionApp::getUserId());
     }
 
-    /**
-     * 根据UserId登陆
-     *
-     * @param $user_id
-     * @return \App\Module\Ulogic\Unit\User|array
-     * @throws \\Exception\LogicException
-     */
-    public static function loginById($user_id)
-    {
-        $userData = User::query()->find($user_id);
-
-        return SessionApp::setLogin($userData, true);
-
-    }
 
     /**
+     * 传入数据处理
      * @param $data
-     * @return array
-     * @throws ValidateException
-     * 获取封禁信息
+     * @return array|int[]
      */
-    public static function getBanInfo($data)
+    public function callData($data)
     {
-        $userData = User::getUserInfoByCondition('mobile', $data['mobile']);
-        $check = self::checkPassword($userData, $data['password']);
-        if (!$check) {
-            throw new ValidateException(null, '助记词错误');
-        }
-        if ($userData->is_prohibit == 0) {
-            throw new ValidateException(null, '该用户状态正常');
-        }
-
-        $banInfo = UserBans::getRow($userData->user_id, $userData->is_prohibit);
-        $diff = $banInfo->end_time - time();
-        $endTime = 0;
-        if ($diff > 0) {
-            $endTime = gmdate('h:i:s', $diff);
-        }
+        $page = $data['page'] ?? 1;
+        $limit = $data['limit'] ?? 10;
+        unset($data['page']);
+        unset($data['limit']);
+        $where = $data;
         return [
-            'type' => $banInfo->type,
-            'ban_time' => $banInfo->created_at->toDateTimeString(),
-            'end_time' => $endTime,
+            $page, $limit, $where,
         ];
-    }
 
-    /**
-     * @param $userData
-     * @param $password
-     * @return bool|\FurqanSiddiqui\BIP39\Mnemonic|string
-     * 验证助记词
-     */
-    private static function checkPassword($userData, $password)
-    {
-        // 判断新老用户(user_word表里有没有记录)
-        $userWord = UserWord::getData($userData->user_id);
-        if (empty($userWord)) {
-            // 新用户 BIP39验证
-            $check = Mnemon::wordsToMnemonic($password, $userData->user_id, false);
-        } else {
-            // 老用户 md5验证
-            $password = strtolower($password);
-            $password = str_replace(",", '","', $password);
-            $password = '["'.$password.'"]';
-            $password = md5(md5($password));
-            $check = false;
-            if ($password === $userData->password) {
-                $check = true;
-            }
-        }
-        return $check;
     }
 
-    /**
-     * @param $userId
-     * @return User|false
-     * 获取用户信息(user-id)
-     */
-    public static function getInfoByUserId($userId)
-    {
-        $data = User::query()->where('user_id', $userId)->first();
-        if (!$data || !$data->password) {
-            return false;
-        }
-
-        return $data;
-    }
-
-    /**
-     * @param $userId
-     * @param $password
-     * @return mixed
-     * 修改安全密码
-     */
-    public static function resetSecretPassword($userId, $password)
-    {
-        // 定义查询条件(唯一标识字段)
-        $conditions = ['user_id' => $userId];
-        // 需要更新或插入的数据
-        $data = [
-            'secret_password' => password_hash($password, PASSWORD_DEFAULT)
-        ];
-
-        $res = UserPassword::updateOrCreate($conditions,$data);
-        // 输出结果
-        if ($res->id) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * @param $userId
-     * @return bool
-     * 查询用户是否绑定谷歌验证器
-     */
-    public static function isBindGoogle($userId)
-    {
-        $userPasswordData =  UserPassword::query()->where('user_id', $userId)->first();
-        if (!$userPasswordData->google2fa_secret) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * @param $userId
-     * @param $password
-     * @return bool
-     * 验证用户安全密码
-     */
-    public static function checkSecretPassword($userId, $password)
-    {
-        $userPasswordData =  UserPassword::query()
-            ->where('user_id', $userId)
-            ->first();
-        if (!$userPasswordData) {
-            return false;
-        }
-
-        if (!password_verify($password, $userPasswordData->secret_password)) {
-            return false;
-        }
-
-        return true;
-    }
 }

+ 0 - 47
app/Module/User/UserService.php

@@ -1,47 +0,0 @@
-<?php
-
-namespace App\Module\User;
-
-use App\Module\App\SessionApp;
-
-class UserService
-{
-
-    public function getToken()
-    {
-        return SessionApp::$session_id;
-    }
-
-    public function __construct(protected int $user_id)
-    {
-
-    }
-
-    /**
-     * @return static
-     */
-    static public function newBySession()
-    {
-        return new static(SessionApp::getUserId());
-    }
-
-
-    /**
-     * 传入数据处理
-     * @param $data
-     * @return array|int[]
-     */
-    public function callData($data)
-    {
-        $page = $data['page'] ?? 1;
-        $limit = $data['limit'] ?? 10;
-        unset($data['page']);
-        unset($data['limit']);
-        $where = $data;
-        return [
-            $page, $limit, $where,
-        ];
-
-    }
-
-}

+ 2 - 3
app/Module/User/Validation/SPasswordCheck.php

@@ -4,9 +4,8 @@ namespace App\Module\User\Validation;
 
 use App\Module\App\SessionApp;
 use App\Module\Sys\Config;
-use App\Module\User\Google2Fa;
-use App\Module\User\User;
-use App\Module\User\Validator\AuthPassword;
+use App\Module\User\Services\Google2Fa;
+use App\Module\User\Services\User;
 use App\Module\User\Validator\AuthPasswordApp;
 use UCore\ValidationCore;
 

+ 1 - 3
app/Module/User/Validator/AutoRegPhone.php

@@ -5,11 +5,9 @@ namespace App\Module\User\Validator;
 
 
 use App\Module\User\Models\UserPhone;
-use App\Module\User\User;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
-use function _\uniq;
-
 /**
  *  手机自动注册
  */

+ 2 - 4
app/Module/User/Validator/Google2FA.php

@@ -3,10 +3,8 @@
 namespace App\Module\User\Validator;
 
 
-use App\Module\App\SessionApp;
 use App\Module\Sys\Config;
-use App\Module\Sys\Key;
-use App\Module\User\User;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
 class Google2FA extends Validator
@@ -45,7 +43,7 @@ class Google2FA extends Validator
                 }
             }
         }
-        $check = \App\Module\User\Google2Fa::must_check($info,$scene);
+        $check = \App\Module\User\Services\Google2Fa::must_check($info, $scene);
 
         if($check){
             $f = true;

+ 0 - 2
app/Module/User/Validator/Google2FAApp.php

@@ -5,8 +5,6 @@ namespace App\Module\User\Validator;
 
 use App\Module\App\SessionApp;
 use App\Module\Sys\Config;
-use App\Module\Sys\Key;
-use App\Module\User\User;
 use UCore\Validator;
 
 /**

+ 1 - 1
app/Module/User/Validator/NotMe.php

@@ -2,7 +2,7 @@
 
 namespace App\Module\User\Validator;
 
-use App\Module\User\User;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
 /**

+ 1 - 1
app/Module/User/Validator/UserIdExsit.php

@@ -2,7 +2,7 @@
 
 namespace App\Module\User\Validator;
 
-use App\Module\User\User;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
 /**

+ 1 - 2
app/Module/User/Validator/UserIdInfo.php

@@ -4,8 +4,7 @@ namespace App\Module\User\Validator;
 
 use App\Module\App\H;
 use App\Module\App\SessionApp;
-use App\Module\User\User;
-use UCore\Exception\LogicException;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
 /**

+ 1 - 2
app/Module/User/Validator/UserIdInfo2.php

@@ -4,8 +4,7 @@ namespace App\Module\User\Validator;
 
 use App\Module\App\H;
 use App\Module\App\SessionApp;
-use App\Module\User\User;
-use UCore\Exception\LogicException;
+use App\Module\User\Services\User;
 use UCore\Validator;
 
 /**

+ 2 - 0
composer.json

@@ -13,6 +13,7 @@
         "ext-gmp": "*",
         "ext-mbstring": "*",
         "ext-pdo": "*",
+        "ext-redis": "*",
         "dcat/laravel-admin": "2.0.x-dev",
         "google/protobuf": "^3.25",
         "guzzlehttp/guzzle": "^7.9",
@@ -29,6 +30,7 @@
         "solution9th/laravel-file-cache-gc": "^0.0.2",
         "spatie/laravel-route-attributes": "^1.25",
         "symfony/cache": "^7.2"
+
     },
     "require-dev": {
         "fakerphp/faker": "^1.23",

+ 1 - 2
config/app.php

@@ -186,8 +186,7 @@ return [
         App\Module\China\Providers\ChinaServiceProvider::class,
         # Oauth
         App\Module\OAuth\OAuthServiceProvider::class,
-        # Blockchain 模块
-        App\Module\Blockchain\Providers\BlockchainServiceProvider::class,
+
 
         //Transaction 模块  TransactionServiceProvider
         \App\Module\Transaction\Providers\TransactionServiceProvider::class,