Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/YangHuCost

TonyKang 6 năm trước cách đây
mục cha
commit
74af52ac5e

+ 2 - 3
logs/online_logs.js

@@ -20,7 +20,7 @@ async function saveOnlineTime(req) {
         req.session.online_start_time = end;
         return
     }
-    if(!req.session.sessionUser&&!req.session.sessionCompilation) return;
+    if(!req.session.sessionUser||!req.session.sessionCompilation) return;
     let dataString = moment(end).format('YYYY-MM-DD');
     let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
     let record = await logs_model.findOne(condition);
@@ -29,9 +29,8 @@ async function saveOnlineTime(req) {
     }else {//如果没找到,则新增一条记录
         condition["online_times"] = online_times;
         let today = moment(dataString).toDate();
-        condition["dataTime"] = +today;
+        condition["dateTime"] = +today;
         await logs_model.create(condition);
     }
     req.session.online_start_time = end;
-    console.log(`登录时长累加-------${online_times}毫秒`);
 }

+ 1 - 1
modules/all_models/online_logs.js

@@ -11,7 +11,7 @@ let schema = {
     userID: String,
     compilationID: String,
     dateString: String,
-    dataTime:Number,//dateString转换回毫秒数对应的数值,方便查询
+    dateTime:Number,//dateString转换回毫秒数对应的数值,方便查询
     online_times: Number
 };
 mongoose.model("online_logs", new Schema(schema, {versionKey: false}),"online_logs");

+ 3 - 1
modules/all_models/user.js

@@ -83,6 +83,8 @@ let schema = {
     used_list: {
         type: [userdList],
         default: []
-    }
+    },
+    // 是否邮箱已通过验证
+    isUserActive: Number
 };
 mongoose.model(collectionName, new Schema(schema, {versionKey: false}));

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

@@ -53,6 +53,7 @@ class LoginController {
                     username: userData.username,
                     email: userData.useremail,
                     mobile: userData.mobile,
+                    isUserActive: userData.isUserActive,
                 };
 
                 request.session.sessionUser = sessionUser;
@@ -181,6 +182,7 @@ class LoginController {
                 username: userData.username,
                 email: userData.useremail,
                 mobile: userData.mobile,
+                isUserActive: userData.isUserActive,
             };
 
             request.session.sessionUser = sessionUser;

+ 2 - 1
modules/users/controllers/user_controller.js

@@ -101,7 +101,8 @@ class UserController extends BaseController {
             // 获取登录信息
             let logModel = new LogModel();
             let logCount = await logModel.count();
-            let pageSize = 3;
+            logCount = logCount > 30 ? 30 : logCount;
+            let pageSize = 10;
             logList = await logModel.getLog(sessionUser.id, LogType.LOGIN_LOG, page, pageSize);
 
             // 分页数据

+ 3 - 2
modules/users/models/log_model.js

@@ -63,7 +63,8 @@ class LogModel extends BaseModel {
         ip = ip.split(':');
         ip = ip[3] === undefined ? '' : ip[3];
 
-        let ipInfo = '127.0.0.1';//await this.getIpInfoFromApi(ip);
+        // let ipInfo = '127.0.0.1';//await this.getIpInfoFromApi(ip);
+        let ipInfo = await this.getIpInfoFromApi(ip);
 
         let userAgentObject = new UAParser(request.headers['user-agent']);
         let osInfo = userAgentObject.getOS();
@@ -153,4 +154,4 @@ class LogModel extends BaseModel {
     }
 }
 
-export default LogModel;
+export default LogModel;

+ 3 - 1
modules/users/models/user_model.js

@@ -137,7 +137,8 @@ class UserModel extends BaseModel {
                 email : userData.email,
                 mobile : userData.mobile,
                 ssoId : userData.ssoId,
-                latest_login:userData.latest_login
+                latest_login:userData.latest_login,
+                isUserActive: userData.isUserActive,
             };
             let updateResult = await this.updateUser(condition,UpdateData);
             if (updateResult.ok === 1) {
@@ -240,6 +241,7 @@ class UserModel extends BaseModel {
             mobile: userData.mobile,
             create_time: new Date().getTime(),
             latest_login: new Date().getTime(),
+            isUserActive: userData.isUserActive,
         };
         return this.db.create(insertData);
     }

+ 1 - 1
server.js

@@ -89,7 +89,7 @@ app.use(async function (req, res, next) {
             req.session.lastPage = url;
             return res.redirect('/login');
         }
-        //await online_logs.saveOnlineTime(req);//记录登录时长
+        await online_logs.saveOnlineTime(req);//记录登录时长
         next();
     }
 });

+ 1 - 1
web/building_saas/main/html/main.html

@@ -71,7 +71,7 @@
                 <li class="nav-item"><a data-toggle="tab" href="#project_glj" id="tab_project_glj" data-name="tab_project_glj" role="tab">工料机汇总</a></li>
                 <li class="nav-item"><a data-toggle="tab" href="#fee_rates" id="tab_fee_rate" role="tab" >费率</a></li>
                 <li class="nav-item"><a data-toggle="tab" href="#calc_program_manage" id="tab_calc_program_manage" role="tab" style="display:none">总计算程序</a></li>
-                <li class="nav-item"><a data-toggle="tab" href="#tender_price" id="tab_tender_price" role="tab">调价</a></li>
+               <!-- <li class="nav-item"><a data-toggle="tab" href="#tender_price" id="tab_tender_price" role="tab">调价</a></li>-->
                 <li class="nav-item"><a data-toggle="tab" href="#reports" role="tab" id="tab_report" onclick="rptTplObj.iniPage();">报表</a></li>
             </ul>
         </div>

+ 7 - 5
web/building_saas/main/js/models/ration.js

@@ -415,7 +415,7 @@ var Ration = {
                        node.data.feesIndex = {};
                        //删除定额节点下的主材和设备节点
                        project.ration_glj.removeNodeByRation(recode.ration,projectObj.mainController);
-                       project.Ration.deleteSubListOfRation(recode.ration);//删除旧定额下的相关记录
+                       project.Ration.deleteSubListOfRation(recode.ration,cleanzmhs);//删除旧定额下的相关记录
                        //添加新的记录
                        project.Ration.addSubListOfRation(recode);
 
@@ -701,12 +701,14 @@ var Ration = {
             }
             else return null;
         };
-        ration.prototype.deleteSubListOfRation = function(ration){
+        ration.prototype.deleteSubListOfRation = function(ration,cleanzmhs = false){
             projectObj.project.ration_glj.deleteByRation(ration);
             projectObj.project.ration_coe.deleteByRation(ration);
-            projectObj.project.quantity_detail.deleteByRation(ration);
-            projectObj.project.ration_installation.deleteByRation(ration);
-            projectObj.project.ration_template.deleteByRation(ration);
+            if(cleanzmhs == false){
+                projectObj.project.quantity_detail.deleteByRation(ration);
+                projectObj.project.ration_installation.deleteByRation(ration);
+                projectObj.project.ration_template.deleteByRation(ration);
+            }
         };
         ration.prototype.addSubListOfRation = function (data) {
              project.ration_glj.addDatasToList(data.ration_gljs);

+ 37 - 26
web/users/html/user-safe.html

@@ -11,9 +11,6 @@
     <link rel="stylesheet" href="/lib/font-awesome/font-awesome.min.css">
     <link rel="shortcut icon" href="/web/building_saas/css/favicon.ico">
     <link rel="icon" type="image/gif" href="/web/building_saas/css/animated_favicon1.gif">
-    <!-- JS. -->
-    <!--<script type="text/javascript" src="/lib/bootstrap/bootstrap-paginator.js"></script>-->
-    <!--<script src="/web/building_saas/js/global.js"></script>-->
 </head>
 
 <body>
@@ -41,48 +38,60 @@
                     </ul>
                 </div>
             </div>
-            <div class="col-lg-10">
+            <div class="col-lg-10 side-content">
                 <div class="col-lg-4">
                     <legend class="my-3">账号安全</legend>
                     <from>
                         <div class="form-group">
                             <label class="form-control-label">登录密码</label>
                             <div class="form-control-static">
-                                <button class="btn btn-secondary btn-sm">修改密码</button>
+                                <a class="btn btn-outline-primary btn-sm" href="https://sso.smartcost.com.cn/chpasswd" target="_blank">修改密码</a>
                             </div>
                         </div>
                         <div class="form-group">
                             <label class="form-control-label">邮箱地址</label>
-                            <p class="form-control-static mb-0"><%= userData.email %><span
-                                    class="badge badge-default">未验证</span></p>
-                            <button class="btn btn-secondary btn-sm">验证邮箱</button>
-                            <button class="btn btn-secondary btn-sm">更换邮箱</button>
-                            <p class="form-control-static mb-0"><%= userData.email %><span
-                                    class="badge badge-success">已验证</span></p>
-                            <button class="btn btn-secondary btn-sm">更换邮箱</button>
+                            <% if (userData.email !== '') { %>
+                            <p class="form-control-static mb-0"><%= userData.email %><% if (userData.isUserActive === 0) { %><span
+                                    class="badge badge-default">未验证</span><% } else { %><span
+                                    class="badge badge-success">已验证</span><% } %></p>
+                            <% if (userData.isUserActive === 0) { %><a class="btn btn-outline-primary btn-sm" target="_blank" href="https://sso.smartcost.com.cn/profile">验证邮箱</a>
+                            <a class="btn btn-outline-primary btn-sm" target="_blank" href="https://sso.smartcost.com.cn/nactchm">更换邮箱</a>
+                            <% } else { %>
+                            <a class="btn btn-outline-primary btn-sm" href="https://sso.smartcost.com.cn/changeMail" target="_blank">更换邮箱</a>
+                            <% } %>
+                            <% } else { %>
+                            <a class="btn btn-outline-primary btn-sm" href="https://sso.smartcost.com.cn/addMail" target="_blank">添加邮箱</a>
+                            <% } %>
                         </div>
                         <div class="form-group">
                             <label class="form-control-label">手机号码</label>
-                            <p class="form-control-static mb-0"><%= userData.mobile %></p>
-                            <button class="btn btn-secondary btn-sm">更换手机</button>
-                            <div class="form-control-static">
-                                <button class="btn btn-secondary btn-sm">添加手机</button>
-                            </div>
+                            <p class="form-control-static mb-0"><%= userData.mobile %> <span class="badge badge-success">已验证</span></p>
+                            <a class="btn btn-outline-primary btn-sm" href="https://sso.smartcost.com.cn/changeMobile" target="_blank">更换手机</a>
                         </div>
                         <div class="form-group">
                             <label class="form-control-label">异常登录提醒</label>
                             <div class="form-control-static">
-                                <label class="custom-control custom-checkbox" data-toggle="modal"
-                                       data-target="#phoneTips">
-                                    <input type="checkbox" class="custom-control-input">
-                                    <span class="custom-control-indicator"></span>
-                                    <span class="custom-control-description">开启</span>
-                                </label>
+                                <div class="custom-control custom-checkbox" >
+                                    <input type="checkbox" class="custom-control-input" id="customCheck1">
+                                    <label class="custom-control-label" for="customCheck1" >开启</label>
+                                </div>
                                 <p class="text-muted">
                                     账号出现异常登录时将给你的手机号码发送通知。
                                 </p>
                             </div>
                         </div>
+                        <div class="form-group">
+                            <label class="form-control-label">关闭账号登录</label>
+                            <div class="form-control-static">
+                                <div class="custom-control custom-checkbox" >
+                                    <input type="checkbox" class="custom-control-input" id="customCheck2">
+                                    <label class="custom-control-label" for="customCheck2" >关闭</label>
+                                </div>
+                                <p class="text-muted">
+                                    关闭账号登录后,只能通过短信验证码方式登录。
+                                </p>
+                            </div>
+                        </div>
                     </from>
                 </div>
                 <div class="mt-5">
@@ -128,8 +137,10 @@
     </div>
 </div>
 </body>
-<!--<script type="text/javascript">-->
-    <!--autoFlashHeight();-->
-<!--</script>-->
+<script src="/web/building_saas/js/global.js"></script>
+<script src="/web/users/js/user.js"></script>
+<script type="text/javascript">
+    autoFlashHeight();
+</script>
 
 </html>