zhangweicheng 5 vuotta sitten
vanhempi
commit
3cba594c3a

+ 2 - 1
modules/all_models/user.js

@@ -104,7 +104,8 @@ let schema = {
     isLoginValid: {
         type: Number,
         default: 0
-    }
+    },
+    welcomeShowTime:String
 
 };
 mongoose.model(collectionName, new Schema(schema, {versionKey: false}));

+ 19 - 0
modules/all_models/welcome_setting.js

@@ -0,0 +1,19 @@
+/**
+ * Created by zhang on 2020/2/14.
+ */
+
+let mongoose = require("mongoose");
+
+let Schema = mongoose.Schema;
+let collectionName = 'welcome_setting';
+let modelSchema = {
+    // ID
+    ID: {
+        type: String,
+        index: true
+    },
+    compilationId: String,
+    showType:{type:Number,default:0},// 1 每天一次 2 每次登录显示,0 关闭
+    context:String
+};
+mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 4 - 0
modules/pm/controllers/pm_controller.js

@@ -329,8 +329,12 @@ module.exports = {
         rationValuation = await engineeringLibModel.getLib(rationValuation);
         let absoluteUrl = compilationData.overWriteUrl ? request.app.locals.rootDir + compilationData.overWriteUrl : request.app.locals.rootDir;
         let overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilationData.overWriteUrl : null;
+        //欢迎页显示控制
+        let [isShow,context] = await pm_facade.getWelcomeInfo(sessionCompilation._id,request.session.sessionUser);
         let renderData = {
             isFirst: isFirst,
+            isShow:isShow,
+            context:context,
             userAccount: request.session.userAccount,
             userID: request.session.sessionUser.id,
             compilationData: JSON.stringify(sessionCompilation),

+ 29 - 1
modules/pm/facade/pm_facade.js

@@ -44,7 +44,8 @@ module.exports={
     downLoadProjectFile:downLoadProjectFile,
     importProcessChecking:importProcessChecking,
     importInterface,
-    isTenderOverrun
+    isTenderOverrun,
+    getWelcomeInfo:getWelcomeInfo
 };
 
 
@@ -92,6 +93,8 @@ let featureLibModel =  mongoose.model("std_project_feature_lib");
 let importLogsModel = mongoose.model("import_logs");
 const overHeightLibModel = mongoose.model('std_over_height_lib');
 const shareListModel = mongoose.model('share_list');
+let welcomeModel = mongoose.model("welcome_setting");
+
 let scMathUtil = require('../../../public/scMathUtil').getUtil();
 let counter = require('../../../public/counter/counter');
 import SectionTreeDao from '../../complementary_ration_lib/models/sectionTreeModel';
@@ -2292,4 +2295,29 @@ async function isTenderOverrun(tenderCount, session) {
     const limit = systemSetting[type].project;
     const curTenderCount = await projectModel.count({userID, compilation, projType: 'Tender', '$or':[{deleteInfo: null}, {'deleteInfo.completeDeleted': false}]});
     return tenderCount + curTenderCount > limit;
+}
+
+async function getWelcomeInfo(compilationId,sessionUser) {
+    let setting = await welcomeModel.findOne({compilationId:compilationId});
+    let isShow = false;
+    let context = "";
+    if(setting){
+        if(setting.showType == 0) return [false,""];//关闭
+        context = setting.context;
+        if(setting.showType == 1){//每天一次
+            let dataString =moment(Date.now()).tz("Asia/Shanghai").format('YYYY-MM-DD');//今天的日期字符串
+            let userInfo =await userModel.findOne({_id: mongoose.Types.ObjectId(sessionUser.id)});
+            if (dataString != userInfo.welcomeShowTime){//今天没登录过
+                isShow = true;
+                await userModel.update({_id: mongoose.Types.ObjectId(sessionUser.id)},{welcomeShowTime:dataString})
+            }
+        }else if(setting.showType == 2){//每次登录显示
+            isShow = sessionUser.newLogin?true:false;
+            sessionUser.newLogin = false
+        }
+
+    }
+
+    return [isShow,context]
+
 }

+ 1 - 0
modules/users/controllers/login_controller.js

@@ -260,6 +260,7 @@ class LoginController {
                 mobile: userData.mobile,
                 qq: userData.qq,
                 isUserActive: userData.isUserActive,
+                newLogin:true
             };
 
             request.session.sessionUser = sessionUser;

+ 1 - 1
modules/users/routes/login_route.js

@@ -27,7 +27,7 @@ module.exports = function (app) {
     router.get("/logout", function (req, res) {
         delete req.session.sessionUser;
         delete req.session.sessionCompilation;
-        res.redirect("/");
+        res.redirect("/login");
     });
     app.use('/',router)
 };

+ 3 - 1
web/building_saas/pm/html/project-management.html

@@ -22,6 +22,8 @@
         var userAccount = '<%- userAccount %>';
         var userID = '<%- userID %>';
         let isFirst = JSON.parse('<%- isFirst %>');
+        let isShow = JSON.parse('<%- isShow %>');
+
     </script>
     <style type="text/css">
         .hidden-area{
@@ -972,7 +974,7 @@
                 <h5 class="modal-title">欢迎使用大司空云计价</h5>
             </div>
             <div class="modal-body" id="welcomeBody">
-
+                <%- context %>
             </div>
             <div class="modal-footer text-xs-center">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>

+ 4 - 0
web/building_saas/pm/js/pm_newMain.js

@@ -5039,3 +5039,7 @@ function refreshProjSummary(project, summaryInfo) {
     }
     projTreeObj.refreshNodeData(refreshNodes);
 }
+
+$(function () {
+    if(isShow)  $('#welcomePage').modal('show');//是否显示欢迎页
+});