Bläddra i källkod

Z+登录建筑功能和接口

laiguoran 6 år sedan
förälder
incheckning
8a9162c4ac

+ 14 - 1
modules/users/controllers/cld_controller.js

@@ -148,6 +148,19 @@ class CLDController {
             response.json({error: 1, msg: err});
         }
     }
+
+    /**
+     * 获取编办列表
+     *
+     * @param request
+     * @param response
+     * @return {Promise.<void>}
+     */
+    async getCompilationList (request, response) {
+        let compilationModel = new CompilationModel();
+        const compilationList = await compilationModel.getList();
+        response.json({error: 0, msg: 'success', data: compilationList});
+    }
 }
 
-export default CLDController;
+export default CLDController;

+ 49 - 121
modules/users/controllers/login_controller.js

@@ -22,14 +22,12 @@ class LoginController {
      * @return {void}
      */
     async index(request, response) {
-        let sessionUser = request.session.sessionUser;
-        if (sessionUser !== undefined && sessionUser.ssoId >= 0) {
-            return response.redirect("/pm");
-        }
         // 判断是否有带token和ssoID参数
         if (request.query.ssoID !== undefined && request.query.token !== undefined) {
             let ssoID = request.query.ssoID;
             let token = request.query.token;
+            let preferenceSetting = {};
+            let compilationList = [];
             try {
                 let userModel = new UserModel();
                 // 调用接口验证登录信息
@@ -50,35 +48,63 @@ class LoginController {
                     throw '接口返回数据错误';
                 }
                 let userData = responseData[0];
-                //还要判断account是否是专业版用户
-                let isPro = false;
-                const userInfo = await userModel.findDataByAccount(userData.mobile);
-                if (userInfo && userInfo.upgrade_list !== undefined) {
-                    for (const ul of userInfo.upgrade_list) {
-                        if (ul.isUpgrade === true) {
-                            isPro = true;
-                            break;
-                        }
-                    }
+                let sessionUser = {
+                    ssoId: userData.id,
+                    username: userData.username,
+                    email: userData.useremail,
+                    mobile: userData.mobile,
+                };
+
+                request.session.sessionUser = sessionUser;
+                // 记录用户数据到数据库
+                let result = await userModel.markUser(sessionUser, request);
+
+                // 获取偏好设置
+                let settingModel = new SettingModel();
+                preferenceSetting = await settingModel.getPreferenceSetting(request.session.sessionUser.id);
+                if (!result) {
+                    throw '标记用户信息失败!';
+                }
+                let compilationModel = new CompilationModel();
+                if (preferenceSetting.login_ask === 1 || preferenceSetting.select_version === ''){
+                    preferenceSetting.login_ask = 1;
+                    compilationList = await  compilationModel.getList();
+                } else {
+                    compilationList = [];
+                }
+                // 获取编办信息
+                let sessionCompilation = request.session.sessionCompilation;
+
+                if (preferenceSetting.login_ask === 0 && !sessionCompilation &&
+                    preferenceSetting.select_version !== '') {
+                    let compilationData = await compilationModel.getCompilationById(preferenceSetting.select_version);
+                    // 判断当前用户的是使用免费版还是专业版
+                    let compilationVersion = await userModel.getVersionFromUpgrade(sessionUser.ssoId, preferenceSetting.select_version);
+                    request.session.compilationVersion = compilationVersion;
+                    request.session.sessionCompilation = compilationData;
+                    if(request.session.sessionUser.latest_used !== preferenceSetting.select_version) await userModel.updateLatestUsed(request.session.sessionUser.id,preferenceSetting.select_version);
                 }
-                if (isPro) {
+                console.log(`${request.session.sessionUser.real_name}--id:${request.session.sessionUser.id}--登录了系统`);
+                if (preferenceSetting.login_ask === 1 || preferenceSetting.select_version === '') {
                     let renderData = {
-                      ssoID: ssoID,
-                      token: token,
-                      mobile: userInfo.mobile,
-                      showMobile: userInfo.mobile.substr(0, 3) + '****' + userInfo.mobile.substr(7, 11)
+                        versionData: compilationList,
                     };
-                    response.render('users/html/login-sms', renderData);
-                    return
+                    response.render('users/html/login-ver', renderData);
                 } else {
-
+                    return response.redirect("/pm");
                 }
             } catch (error) {
                 console.log(error)
                 return response.redirect("/login");
             }
+        } else {
+            let sessionUser = request.session.sessionUser;
+            if (sessionUser !== undefined && sessionUser.ssoId >= 0) {
+                return response.redirect("/pm");
+            } else {
+                response.render('users/html/login', {});
+            }
         }
-        response.render('users/html/login', {});
     }
 
     /**
@@ -208,104 +234,6 @@ class LoginController {
     }
 
     /**
-     * Z+平台专业版用户登录方式
-     */
-    async startupLogin(request, response) {
-        let ssoID = request.body.ssoID;
-        let token = request.body.token;
-        let preferenceSetting = {};
-        let compilationList = [];
-        try {
-            let userModel = new UserModel();
-
-            // 调用接口验证登录信息
-            let responseData = await userModel.getInfoFromSSO2(ssoID, token);
-            if ( responseData === '-2') {
-                throw 'token已过期,请重新登录Z+获取';
-            }
-            responseData = JSON.parse(responseData);
-            if (typeof responseData !== 'object') {
-                throw 'ssoId错误或token过期';
-            }
-
-            if (responseData.length <= 0) {
-                throw '接口返回数据错误';
-            }
-
-            // 正确登录后 存入session
-            let userData = responseData[0];
-
-            if (userData.mobile === '') {
-                return response.json({error: 2,ssoId: userData.id});
-            }
-
-            // 专业版短信验证码验证
-            const codeMsg = request.session.code;
-            if (codeMsg !== undefined && request.body.code !== '') {
-                const code = codeMsg.split('_')[0];
-                const time = codeMsg.split('_')[1];
-                if (Date.parse(new Date())/1000 > time+60*5 || request.body.code !== code) {
-                    return response.json({error: 3, msg: '验证码错误。'});
-                } else {
-                    delete request.session.code;
-                }
-            } else {
-                return response.json({error: 3, msg: '验证码错误。'});
-            }
-
-            let sessionUser = {
-                ssoId: userData.id,
-                username: userData.username,
-                email: userData.useremail,
-                mobile: userData.mobile,
-            };
-
-            request.session.sessionUser = sessionUser;
-            // 记录用户数据到数据库
-            let result = await userModel.markUser(sessionUser, request);
-
-            // 获取偏好设置
-            let settingModel = new SettingModel();
-            preferenceSetting = await settingModel.getPreferenceSetting(request.session.sessionUser.id);
-            if (!result) {
-                throw '标记用户信息失败!';
-            }
-            let compilationModel = new CompilationModel();
-            if(preferenceSetting.login_ask === 1 || preferenceSetting.select_version === ''){
-                preferenceSetting.login_ask = 1;
-                compilationList = await  compilationModel.getList();
-            }
-            else{
-                compilationList = [];
-            }
-            // 获取编办信息
-            let sessionCompilation = request.session.sessionCompilation;
-
-            if (preferenceSetting.login_ask === 0 && !sessionCompilation &&
-                preferenceSetting.select_version !== '') {
-                let compilationData = await compilationModel.getCompilationById(preferenceSetting.select_version);
-                // 判断当前用户的是使用免费版还是专业版
-                let compilationVersion = await userModel.getVersionFromUpgrade(sessionUser.ssoId, preferenceSetting.select_version);
-                request.session.compilationVersion = compilationVersion;
-                request.session.sessionCompilation = compilationData;
-                if(request.session.sessionUser.latest_used !== preferenceSetting.select_version) await userModel.updateLatestUsed(request.session.sessionUser.id,preferenceSetting.select_version);
-            }
-
-        } catch (error) {
-            console.log(error);
-            return response.json({error: 1, msg: error});
-        }
-        console.log(`${request.session.sessionUser.real_name}--id:${request.session.sessionUser.id}--登录了系统`);
-        response.json({
-            error: 0,
-            msg: '',
-            login_ask: preferenceSetting.login_ask,
-            compilation_list: JSON.stringify(compilationList),
-            last_page: request.session.lastPage
-        });
-    }
-
-    /**
      * 验证码注册
      *
      * @param {object} request

+ 3 - 1
modules/users/routes/cld_route.js

@@ -20,7 +20,9 @@ module.exports = function (app) {
 
     router.get('/getUsersAndCompilation', cldController.getUsersAndCompilationList);
 
+    router.get('/getCompilationList', cldController.getCompilationList);
+
     router.post('/setUserUpgrade', cldController.setUsersUpgrade);
 
     app.use('/cld',router)
-};
+};

+ 0 - 2
modules/users/routes/login_route.js

@@ -18,8 +18,6 @@ module.exports = function (app) {
 
 // 登录操作
     router.post('/login', loginController.login);
-    // Z+平台专业版用户登录方式
-    router.post('/login/startup', loginController.startupLogin);
 
     // router.post('/accountIsPro', loginController.accountIsPro);
 

+ 10 - 8
server.js

@@ -62,23 +62,25 @@ app.use(function (req, res, next) {
         next();
     } else {
         try {
-            // 判断session
-            let sessionUser = req.session.sessionUser;
-            if (!sessionUser) {
-                if (req.query.ssoID !== undefined && req.query.ssoID !== null && req.query.token !== undefined && req.query.token !== null) {
-                    return res.redirect('/login' + url);
-                } else {
+            if (req.query.ssoID !== undefined && req.query.ssoID !== null && req.query.token !== undefined && req.query.token !== null) {
+                delete req.session.sessionUser;
+                delete req.session.sessionCompilation;
+                return res.redirect('/login' + url);
+            } else {
+                // 判断session
+                let sessionUser = req.session.sessionUser;
+                if (!sessionUser) {
                     //处理 ajax 请求 session 过期问题
                     if (req.headers["x-requested-with"] != null
                         && req.headers["x-requested-with"] == "XMLHttpRequest"
                         && req.url != "/login") {
                         return res.json({ret_code: 99, ret_msg: '登录信息失效,请您重新登录'});
-                    }else {
+                    } else {
                         throw 'session error';
                     }
                 }
+                res.locals.sessionUser = sessionUser;
             }
-            res.locals.sessionUser = sessionUser;
         } catch (error) {
             // 最后一个页面存入session
             req.session.lastPage = url;

+ 9 - 1
web/building_saas/css/main.css

@@ -36,6 +36,9 @@ a{
 .modal-footer{
     padding:.8rem 1rem;
 }
+.form-check .form-check-label,.form-radio .form-check-label{
+    cursor: pointer;
+}
 /*自定义css*/
 .login-body,.login-html{
     height:100%;
@@ -59,6 +62,10 @@ a{
     background:#fff;
     box-shadow:#333 1px 1px 5px
 }
+.ver-panel {
+    width:100%;
+    top:10%;
+}
 .header {
     border-bottom: 1px solid #ccc
 }
@@ -534,6 +541,7 @@ a{
 }
 .box-text-style {
     font-size: 12px;
+    font-family:"Microsoft YaHei"
 }
 .box-text-style p{
     margin:0 0 2px 0;
@@ -639,4 +647,4 @@ a{
         white-space: nowrap;
         max-width:80px;
     }
-}
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 82
web/users/html/login-sms.html


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 53 - 0
web/users/html/login-ver.html


+ 1 - 1
web/users/js/login.js

@@ -292,7 +292,7 @@ function validMobile(mobile) {
         showValidError('手机号不能为空!',$('#mobile'));
         return false;
     }
-    let mobileValid =  /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(14[0-9]{1}))+\d{8})$/;
+    let mobileValid = /^1[3456789]\d{9}$/;
     if(!mobileValid.test(mobile)){
         showValidError('手机号码格式有误!',$('#mobile'));
         return false;