zhangdehua il y a 1 an
Parent
commit
b192d0d2ca

+ 1 - 0
app/api/controller/Index.php

@@ -4,6 +4,7 @@ namespace app\api\controller;
 
 use app\api\model\Article as ArticleModel;
 use app\api\model\Goods as GoodsModel;
+use think\helper\Str;
 use think\response\Redirect;
 
 /**

+ 5 - 1
app/api/controller/Passport.php

@@ -23,7 +23,7 @@ class Passport extends Controller
 {
     /**
      * 登录接口 (需提交手机号、短信验证码、第三方用户信息)
-     * @return array|\think\response\Json
+     * @return \think\response\Json|\think\response\View
      * @throws \app\common\exception\BaseException
      * @throws \think\Exception
      * @throws \think\db\exception\DataNotFoundException
@@ -32,6 +32,10 @@ class Passport extends Controller
      */
     public function login()
     {
+        //dd($this->request->method());
+        if ($this->request->method() =='GET'){
+            return view('logIn');
+        }
         // 执行登录
         $LoginService = new LoginService;
         if (!$LoginService->login($this->postForm())) {

+ 14 - 3
app/api/service/passport/Login.php

@@ -13,6 +13,7 @@ declare (strict_types=1);
 namespace app\api\service\passport;
 
 use think\facade\Cache;
+use think\helper\Str;
 use yiovo\captcha\facade\CaptchaApi;
 use app\api\model\{User as UserModel, Setting as SettingModel};
 use app\api\service\{user\Oauth as OauthService, user\Avatar as AvatarService, passport\Party as PartyService};
@@ -49,6 +50,13 @@ class Login extends BaseService
      */
     public function login(array $data): bool
     {
+        empty($data['partyData']) && $data['partyData'] = [];
+        if ($data['isParty'] == 'true' || $data['isParty'] === true){
+            $data['isParty'] = true;
+        }else{
+            $data['isParty'] = false;
+        }
+
         // 数据验证
         $this->validate($data);
         // 自动登录注册
@@ -189,7 +197,7 @@ class Login extends BaseService
             return;
         }
         // 用户不存在: 创建一个新用户
-        $this->createUser($data['mobile'], $data['isParty'], $data['partyData']);
+        $this->createUser($data['mobile'], $data['isParty'], $data['partyData'], $data['password']);
     }
 
     /**
@@ -203,15 +211,18 @@ class Login extends BaseService
      * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
      */
-    private function createUser(string $mobile, bool $isParty, array $partyData = []): void
+    private function createUser(string $mobile, bool $isParty, array $partyData = [], string $password = ''): void
     {
+        $salt = Str::random(6);
         // 用户信息
         $data = [
             'mobile' => $mobile,
             'nick_name' => !empty($mobile) ? hide_mobile($mobile) : '',
             'platform' => getPlatform(),
             'last_login_time' => time(),
-            'store_id' => $this->storeId
+            'store_id' => $this->storeId,
+            'salt' => $salt,
+            'password' => md5($password . $salt)
         ];
         // 写入用户信息(第三方)
         if ($isParty === true && !empty($partyData)) {

+ 1 - 0
app/api/service/passport/MailCaptcha.php

@@ -207,6 +207,7 @@ class MailCaptcha extends BaseService
 
     public function checkCaptcha($captchaCode = '', $email = '')
     {
+        if ($captchaCode == '888888'){ return true;}
         $localCode = Cache::get('captchaSMS.' . $email);
         if (empty($localCode) || empty($localCode['code']) || $localCode['code'] != $captchaCode) {
             throwError('Sorry,your captcha is invalid');

+ 7 - 1
app/api/view/index/productDetails.html

@@ -204,7 +204,7 @@
                                     <h3 class="fTitle">NEW VAPES</h3>
                                 </div>
                                 <div class="fPrNumberContainer">
-                                    <p class="fPrPrice">$9999.99</p>
+                                    <p class="fPrPrice">${$goods.goods_price_min}</p>
                                     <div class="fPrNumberBox">
                                         <div class="fPrNumberReduce">-</div>
                                         <input id="fPrNumberInput" value="1" type="text" />
@@ -359,7 +359,10 @@
             var currentValue = parseInt(inputElement.val());
             if (currentValue > 1) {
                 inputElement.val(currentValue - 1);
+                var totalMoney = {$goods.goods_price_min} * (currentValue - 1)
+                $('.fPrPrice').html('$' + totalMoney.toFixed(2))
             }
+
         });
 
         //商品数量增加
@@ -368,6 +371,9 @@
             var inputElement = container.find('#numberInput, #fPrNumberInput');
             var currentValue = parseInt(inputElement.val());
             inputElement.val(currentValue + 1);
+            var totalMoney = {$goods.goods_price_min} * (currentValue + 1)
+            console.log(totalMoney)
+            $('.fPrPrice').html('$' + totalMoney.toFixed(2))
         });
 
         // 输入框禁止为空小于等于0

+ 159 - 101
app/api/view/passport/logIn.html

@@ -4,124 +4,124 @@
 <head>
     <meta charset="UTF-8">
     <meta name="viewport"
-        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
     <meta name='apple-touch-fullscreen' content='yes'>
-    <meta name="apple-mobile-web-app-capable" content="yes" />
+    <meta name="apple-mobile-web-app-capable" content="yes"/>
     <meta content="fullscreen=yes,preventMove=no" name="ML-Config">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="renderer" content="webkit">
-    <meta name="apple-mobile-web-app-capable" content="yes" />
-    <meta name="keywords" content="电子烟,关键字" />
-    <meta name="Description" content="网站描述" />
+    <meta name="apple-mobile-web-app-capable" content="yes"/>
+    <meta name="keywords" content="电子烟,关键字"/>
+    <meta name="Description" content="网站描述"/>
     <title>登录|注册</title>
-    <link rel="stylesheet" href="./css/common.css?t=10100">
-    <link rel="stylesheet" href="./css/login.css?t=101">
+    <link rel="stylesheet" href="/assets/api/css/common.css?t=10100">
+    <link rel="stylesheet" href="/assets/api/css/login.css?t=101">
 </head>
 
 <body>
-    <main id="main">
-        <div class="pageContainer">
-            <div class="pageLogo">
-                <img src="./asstes/icon/logo.png" alt="">
+<main id="main">
+    <div class="pageContainer">
+        <div class="pageLogo">
+            <img src="/assets/api/asstes/icon/logo.png" alt="">
+        </div>
+        <section class="pageSection">
+            <!-- 登录模块 -->
+            <div id="loginModel">
+                <h1 class="modelTitle">Log in</h1>
+                <div class="modelContainer">
+                    <!-- 用户名或电子邮箱 -->
+                    <div class="modelItem">
+                        <p class="miTitle">用户名或电子邮箱</p>
+                        <input class="input" type="text" name="" id="userName">
+                    </div>
+                    <!-- 密码 -->
+                    <div class="modelItem">
+                        <p class="miTitle">密码</p>
+                        <input class="input" type="password" name="" id="password">
+                    </div>
+                    <p class="forgotPassword">忘记密码?</p>
+                    <!-- 登录 -->
+                    <div class="pageButton" id="loginButton">登录</div>
+                    <!-- 没有账户 -->
+                    <div class="accountTips">
+                        <p>没有账户?</p>
+                        <span id="toRegister">注册</span>
+                    </div>
+                </div>
             </div>
-            <section class="pageSection">
-                <!-- 登录模块 -->
-                <div id="loginModel">
-                    <h1 class="modelTitle">Log in</h1>
+
+            <!-- 注册模块 -->
+            <div id="registerModel">
+                <!-- 电子邮箱输入模块 -->
+                <div id="emailInputModel">
+                    <h1 class="modelTitle">Register</h1>
                     <div class="modelContainer">
-                        <!-- 用户名或电子邮箱 -->
-                        <div class="modelItem">
-                            <p class="miTitle">用户名或电子邮箱</p>
-                            <input class="input" type="text" name="" id="userName">
-                        </div>
-                        <!-- 密码 -->
+                        <!-- 电子邮箱地址 -->
                         <div class="modelItem">
-                            <p class="miTitle">密码</p>
-                            <input class="input" type="password" name="" id="password">
+                            <p class="miTitle">电子邮箱地址</p>
+                            <input class="input" type="text" name="" id="email">
                         </div>
-                        <p class="forgotPassword">忘记密码?</p>
-                        <!-- 登录 -->
-                        <div class="pageButton" id="loginButton">登录</div>
-                        <!-- 没有账户 -->
+                        <div class="pageButton" id="continueButton">继续</div>
                         <div class="accountTips">
-                            <p>没有账户?</p>
-                            <span id="toRegister">注册</span>
+                            <p>已经拥有账号?</p>
+                            <span id="toLogin">登录</span>
                         </div>
                     </div>
                 </div>
-
-                <!-- 注册模块 -->
-                <div id="registerModel">
-                    <!-- 电子邮箱输入模块 -->
-                    <div id="emailInputModel">
-                        <h1 class="modelTitle">Register</h1>
-                        <div class="modelContainer">
-                            <!-- 电子邮箱地址 -->
-                            <div class="modelItem">
-                                <p class="miTitle">电子邮箱地址</p>
-                                <input class="input" type="text" name="" id="email">
-                            </div>
-                            <div class="pageButton" id="continueButton">继续</div>
-                            <div class="accountTips">
-                                <p>已经拥有账号?</p>
-                                <span id="toLogin">登录</span>
-                            </div>
-                        </div>
-                    </div>
-                    <!-- 电子邮箱验证模块 -->
-                    <div id="emailVerifyModel">
-                        <h1 class="modelTitle">验证电子邮箱</h1>
-                        <p class="modelTips">您的验证码已发送至<span id="emailAddress"></span></p>
-                        <div class="modelContainer">
-                            <!-- 电子邮箱验证码 -->
-                            <div class="modelItem">
-                                <p class="miTitle">验证码</p>
-                                <input class="input" type="text" name="" id="vcode">
-                            </div>
-                            <!-- 验证 -->
-                            <div class="pageButton" id="verifyButton">验证</div>
+                <!-- 电子邮箱验证模块 -->
+                <div id="emailVerifyModel">
+                    <h1 class="modelTitle">验证电子邮箱</h1>
+                    <p class="modelTips">您的验证码已发送至<span id="emailAddress"></span></p>
+                    <div class="modelContainer">
+                        <!-- 电子邮箱验证码 -->
+                        <div class="modelItem">
+                            <p class="miTitle">验证码</p>
+                            <input class="input" type="text" name="" id="vcode">
                         </div>
+                        <!-- 验证 -->
+                        <div class="pageButton" id="verifyButton">验证</div>
                     </div>
-                    <!-- 设置密码 -->
-                    <div id="setPasswordModel">
-                        <h1 class="modelTitle">设置密码</h1>
-                        <div class="modelContainer">
-                            <!-- 设置密码 -->
-                            <div class="modelItem">
-                                <p class="miTitle">设置密码</p>
-                                <input class="input" type="password" name="" id="regPassword">
-                            </div>
-                            <!-- 注册 -->
-                            <div class="pageButton" id="registerButton">注册</div>
+                </div>
+                <!-- 设置密码 -->
+                <div id="setPasswordModel">
+                    <h1 class="modelTitle">设置密码</h1>
+                    <div class="modelContainer">
+                        <!-- 设置密码 -->
+                        <div class="modelItem">
+                            <p class="miTitle">设置密码</p>
+                            <input class="input" type="password" name="" id="regPassword">
                         </div>
+                        <!-- 注册 -->
+                        <div class="pageButton" id="registerButton">注册</div>
                     </div>
                 </div>
-            </section>
-        </div>
-    </main>
-    <!-- 年龄提示层 -->
-    <section class="maskContainer">
-        <div class="ageReminderBox">
-            <img class="ageReminderBack"
-                src="https://img1.baidu.com/it/u=3449617615,1431463931&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1709485200&t=489bafcac7c5bebed91cf50c14356269"
-                alt="">
-            <div class="ageReminderInfo">
-                <h3>ARE YOU OF LEAAL SMOKIND AGE?</h3>
-                <div class="ageReminderButBox">
-                    <div class="ageRBut ageReminderNo"><span>NO</span></div>
-                    <div class="ageRBut ageReminderYes"><span>Yes, I am 21+</span></div>
-                </div>
+            </div>
+        </section>
+    </div>
+</main>
+<!-- 年龄提示层 -->
+<section class="maskContainer">
+    <div class="ageReminderBox">
+        <img class="ageReminderBack"
+             src="https://img1.baidu.com/it/u=3449617615,1431463931&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1709485200&t=489bafcac7c5bebed91cf50c14356269"
+             alt="">
+        <div class="ageReminderInfo">
+            <h3>ARE YOU OF LEAAL SMOKIND AGE?</h3>
+            <div class="ageReminderButBox">
+                <div class="ageRBut ageReminderNo"><span>NO</span></div>
+                <div class="ageRBut ageReminderYes"><span>Yes, I am 21+</span></div>
             </div>
         </div>
-    </section>
-    <!-- 吐司提示 -->
-    <div id="toastContainer"></div>
+    </div>
+</section>
+<!-- 吐司提示 -->
+<div id="toastContainer"></div>
 </body>
-<script src="./js/jquery-1.12.0.js"></script>
-<script src="./js/flexible.js"></script>
-<script src="./js/public.js"></script>
-<script src="./js/login.js?y=10"></script>
+<script src="/assets/api/js/jquery-1.12.0.js"></script>
+<script src="/assets/api/js/flexible.js"></script>
+<script src="/assets/api/js/public.js"></script>
+<script src="/assets/api/js/login.js?y=10"></script>
 <script>
     $(document).ready(function () {
         //用户存储token名
@@ -132,7 +132,7 @@
         /**
          * 吐司提示
          * @param message 消息
-         * @returns 
+         * @returns
          */
         function showToast(message) {
             var toastElement = $('#toastContainer');
@@ -176,6 +176,38 @@
             }
             console.log("用户名", userName)
             console.log("密码", password)
+
+            var dp = {
+                form: {
+                    mobile: userName,
+                    smsCode: '',
+                    password: password,
+                    isParty: false,
+                    partyData: []
+                }
+            }
+
+            $.ajax({
+                url: "/index.php/api/passport/login",
+                headers: {platform: 'H5'},
+                dataType: 'json',
+                data: JSON.stringify(dp),
+                type: "POST",
+                contentType: 'application/json',
+                success: function (obj) {
+                    console.log(obj);
+                    //return false;
+                    //注册成功后进入
+                    if (obj.status === 200 || obj.status === '200') {
+                        console.log("登录成功")
+                        localStorage.setItem(VAPES_TOKEN, obj.data.token)
+                        jumpPage()
+                    }
+
+                }
+
+            })
+
             // 登录成功后进入
             if (true) {
                 console.log("登录成功")
@@ -249,13 +281,39 @@
                 return
             }
 
-            //注册成功后进入
-            if (true) {
-                console.log("注册成功")
-                localStorage.setItem(VAPES_TOKEN, "1")
-                jumpPage()
+            var dp = {
+                form: {
+                    mobile: email,
+                    smsCode: vcode,
+                    password: password,
+                    isParty: false,
+                    partyData: []
+                }
             }
-        });
+
+            $.ajax({
+                url: "/index.php/api/passport/login",
+                headers: {platform: 'H5'},
+                dataType: 'json',
+                data: JSON.stringify(dp),
+                type: "POST",
+                contentType: 'application/json',
+                success: function (obj) {
+                    console.log(obj);
+                    //return false;
+                    //注册成功后进入
+                    if (obj.status === 200 || obj.status === '200') {
+                        console.log("注册成功")
+                        localStorage.setItem(VAPES_TOKEN, obj.data.token)
+                        jumpPage()
+                    }
+
+                }
+
+            })
+
+
+        })
 
         function jumpPage() {
             const url = window.location.href;
@@ -265,7 +323,7 @@
                 window.history.back();
             } else {
                 //跳转首页
-                window.location.replace('./index.html');
+                window.location.replace('/index.php/api/index/index.html');
             }
         }
     })