|
|
@@ -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
|