fs-danaus
2023-07-10 4849078e3450b8d3b3030a658a34dd58b0630fc5
提交 | 用户 | age
3aadab 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
X 2 <%@page import="com.yc.service.demo.DemoIfc" %>
3 <%@page import="com.yc.factory.FactoryBean" %>
4 <%@page import="java.util.List" %>
5 <%@page import="java.util.Map" %>
6 <%@page import="com.yc.service.impl.DBHelper" %>
7 <%@page import="com.yc.entity.SystemConfig" %>
8 <%@page import="java.util.ArrayList" %>
9 <%@page import="com.yc.utils.SessionKey" %>
10 <%@page import="com.yc.multiData.SpObserver" %>
11 <%@page import="me.chanjar.weixin.common.util.http.URIUtil" %>
12 <%@page import="com.yc.sdk.shopping.util.SettingKey" %>
13 <%@page import="com.yc.sdk.shopping.action.Maintaince" %>
14 <%@page import="com.yc.entity.DataSourceEntity" %>
15 <%@page import="com.yc.multiData.MultiDataSource" %>
16 <%@ page trimDirectiveWhitespaces="true" %>
17 <%@page import="java.io.File" %>
18 <%@page import="java.util.Calendar" %>
19 <%@page import="com.yc.entity.AttachmentConfig" %>
20 <%@page import="com.yc.action.panval.InvGet" %>
21 <%@page import="eu.bitwalker.useragentutils.UserAgent" %>
22 <%@page import="com.yc.sdk.weixinmp.util.UserAgentUtil" %>
4a551f 23 <!DOCTYPE html>
0cbf69 24 <%
e98f5c 25     //String msgType=request.getParameter("m");//停用系统webscoket返回的参数,用它作为是否需要刷新当前页面的标记 by danaus 2022/7/5 17:48
F 26     //String msgDbid=request.getParameter("d");//停用系统webscoket返回的参数,用它作为是否需要刷新当前页面的标记 by danaus 2022/7/5 17:48
3aadab 27     String dsPath = request.getServletContext().getRealPath("/") + "WEB-INF" + File.separator + "classes" + File.separator + "dataSource" + File.separator + "_dataSource.xml";
X 28     Calendar date = Calendar.getInstance();
29     int year = date.get(Calendar.YEAR);
30     File file = new File(dsPath);
31     if (!file.exists()) {
32         session.setAttribute(SessionKey.DEMO_REF, SessionKey.DEMO_REF);
33         out.print("<script>alert('请配置正确demo数据源!');window.location.href='/demo/update.jsp?demoConfig=demo';</script>");
34         return;
35     }
36     if (request.getProtocol().compareTo("HTTP/1.0") == 0) {
37         response.setHeader("Pragma", "no-cache");
38     }
39     if (request.getProtocol().compareTo("HTTP/1.1") == 0) {
40         response.setHeader("Cache-Control", "no-cache");
41     }
42     response.setDateHeader("Expires", 0);
43     //String URL = (request.getRequestURL()+"").replace(request.getRequestURI(),"") + request.getContextPath();
484907 44     //String dbId = MultiDataSource.getDatabaseId(request);
F 45     String dbId=request.getParameter("dbId");
3aadab 46     //DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap( request) ;
a6a76f 47
3aadab 48     String hostUrl = SettingKey.getHostUrl(request);
X 49     DemoIfc demoIfc = (DemoIfc) FactoryBean.getBean("demo");
50     //List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
51     //Map<String, DataSourceEntity> list = null ;
52     List<DataSourceEntity> list = null;
53     String domain = com.yc.utils.HtmlUtil.getDomain(hostUrl);
54
55     String meno = "Power By OnBus";
56     String menoUrl = "巴士软件";
57     String copyRight = "OnBus";
58     int iscltSN = 0;
59
60     try {
61         MultiDataSource multiDataSource = (MultiDataSource) FactoryBean.getBean("multiDataSource");
62         //multiDataSource.refreshDataSource(null, domain) ;  //先刷新本机的数据源(只刷新 domain 数据源,因为有时候新加了系统,要重启tomcat服务,非常耗时) ,added by johns wang,2018-12-03
63         list = MultiDataSource.getDataSourceMapsByDomainByShowInLoginPage(domain);
172ec5 64         //Integer expiredDays= 9999;   //正数表示已经过期天数
3aadab 65         String sysType = "";
172ec5 66         //boolean actived = true ;
3aadab 67         boolean isAllowLogin = true; //是否允许登录系统
X 68         if (list != null && list.size() > 0) {
172ec5 69             sysType = (String) list.get(0).getSystemType();
0cbf69 70             iscltSN = list.get(0).isSaas() ? 1 : 0;
3aadab 71             int stopCount = 0;   //判断当前域名 domain 列表下,是否全部系统已经被停用?
X 72             for (int i = 0; i < list.size(); i++) {
e98f5c 73                // Integer expiredDays = (list.get(i).getExpiredDays() == null ? null : (Integer) list.get(i).getExpiredDays());//过期天数:null或负数表示未过期,正数表示已过期
F 74                 //Integer expiredMinute = (list.get(i).getExpiredMinute() == null ? null : (Integer) list.get(i).getExpiredMinute());//过期天数:null或负数表示未过期,正数表示已过期
7c0d2b 75                 //System.out.println("expiredMinute:"+expiredMinute);
e98f5c 76                // boolean actived = list.get(i).getActived();
F 77                 if (list.get(i).isExpiredDate()) {
3aadab 78                     stopCount++;
X 79                 }
172ec5 80             }
J 81             //判断当前域名 domain 列表下,是否全部系统已经被停用?
82             if (stopCount == list.size()) {
3aadab 83                 isAllowLogin = false;   //已经全部停用,不允许登录系统
172ec5 84             }
3aadab 85         } else {
X 86             isAllowLogin = false;   //已经全部停用,不允许登录系统
e721ab 87         }
X 88         if (!"常州".equalsIgnoreCase(sysType)) {
89             meno = "Power By YingChen";
90             menoUrl = "盈晨软件";
91             copyRight = "YingChen";
92         } else {
93             meno = "Power By OnBus";
94             menoUrl = "巴士软件";
95             copyRight = "OnBus";
3aadab 96         }
X 97         if (!isAllowLogin) {
98 %>
99
100 <html xmlns="http://www.w3.org/1999/xhtml">
101 <head>
102     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
103     <script src="<%=hostUrl%>/shopping/view/javascript/jquery/jquery-2.1.1.min.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/javascript/jquery/jquery-2.1.1.min.js")%>"
104             type="text/javascript"></script>
105     <link href="<%=hostUrl%>/shopping/view/javascript/bootstrap/css/bootstrap.min.css?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/javascript/bootstrap/css/bootstrap.min.css")%>"
106           rel="stylesheet" media="screen"/>
107     <script src="<%=hostUrl%>/shopping/view/javascript/bootstrap/js/bootstrap.min.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/javascript/bootstrap/js/bootstrap.min.js")%>"
108             type="text/javascript"></script>
109     <link href="<%=hostUrl%>/shopping/view/javascript/font-awesome/css/font-awesome.min.css?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/javascript/font-awesome/css/font-awesome.min.css")%>"
110           rel="stylesheet" type="text/css"/>
111     <link href="<%=hostUrl%>/shopping/view/theme/default/stylesheet/googleapisFont.css?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/theme/default/stylesheet/googleapisFont.css")%>"
112           rel="stylesheet" type="text/css"/>
113     <link href="<%=hostUrl%>/shopping/view/theme/default/stylesheet/stylesheet.css?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/shopping/view/theme/default/stylesheet/stylesheet.css")%>"
114           rel="stylesheet"/>
115     <script type="text/javascript"
116             src="<%=hostUrl%>/js/index/maintaince.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/maintaince.js")%>"></script>
6fe1e6 117     <script src="<%=hostUrl%>/js/index/WebSocketMessage.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/WebSocketMessage.js")%>"
F 118             type="text/javascript"></script>
3aadab 119 </head>
X 120 <title>404页面不存在</title>
121 <body>
6fe1e6 122 <script type="text/javascript">
F 123     $(function () {
484907 124             initWebsocket('<%= hostUrl.replace("https", "wss").replace("http", "ws") %>','<%=session.getAttribute(SessionKey.HRCODE)%>',<%=dbId%>,'<%= session.getId() %>','1');
6fe1e6 125     });
F 126 </script>
3aadab 127 <style>
X 128     .col-center-block {
129         float: none;
130         display: block;
131         margin-left: auto;
132         margin-right: auto;
133     }
e721ab 134     .onbusLogin_img{
X 135         margin: 15px 0px 15px 0px;
136     }
137     a{
138         color: #8f8f8f;
139     }
3aadab 140 </style>
X 141 <div class="container">
142     <div class="row">
e721ab 143         <div class="col-md-7 col-center-block" style="height: 300px;">
X 144             <div class="buttons clearfix" style="margin: 5em 0">
3aadab 145                 <div>&nbsp;</div>
X 146                 <div class="pull-center"></div>
147                 <div>&nbsp;</div>
e721ab 148                 <div class="pull-left" style="width: 100%;text-align: center">
X 149                     <h3>系统已过期,请联络服务提供商</h3>
3aadab 150                 </div>
X 151             </div>
152         </div>
e721ab 153     </div>
3aadab 154 </div>
X 155 </body>
156 </html>
157 <%
158             return;
159         }
160     } catch (Exception e) {
161         session.setAttribute(SessionKey.DEMO_REF, SessionKey.DEMO_REF);
162         out.print("<script>alert('请配置正确demo数据源!');window.location.href='/demo/update.jsp?demoConfig=demo';</script>");
163         e.printStackTrace();
164         return;
165     }
166     boolean isEnableValidateCode = "true".equals(SystemConfig.getInstanse().get("isEnableValidateCode"));
167
168     //增加登录后重定向页面功能,added by Johns Wang, 2016-02-17
169     String redirect = request.getParameter("redirect");
170     if (redirect == null) redirect = (String) request.getAttribute("redirect");
171     if (redirect != null) redirect = URIUtil.encodeURIComponent(redirect);
172
173     final String oauth2HostName = AttachmentConfig.get("Oauth2.HostName");
a6a76f 174 %>
F 175 <html lang="zh-cn">
176 <head>
3aadab 177     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
X 178     <meta name="viewport"
179           content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
180     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
181     <meta name="HandheldFriendly" content="true"/>
182     <meta name="renderer" content="webkit"/>
a6a76f 183     <title>ERP管理系统--用户登录</title>
3aadab 184     <link rel="stylesheet"
X 185           href="<%=hostUrl%>/style/login.css?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/style/login.css")%>"/>
186     <link href="<%=hostUrl%>/shopping/view/javascript/font-awesome/css/font-awesome.min.css" rel="stylesheet"
187           type="text/css"/>
188     <script src="<%=hostUrl %>/js/jquery-1.4.4.min.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/jquery-1.4.4.min.js")%>"
189             type="text/javascript"></script>
190     <script src="<%=hostUrl%>/js/index/maintaince.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/maintaince.js")%>"
191             type="text/javascript"></script>
192     <script src="<%=hostUrl %>/js/index/browser.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/browser.js")%>"
193             type="text/javascript"></script>
194     <script src="<%=hostUrl %>/js/jsencrypt.min.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/jsencrypt.min.js")%>"
195             type="text/javascript"></script>
196     <script src="<%=hostUrl %>/js/index/WebSocketqrLogin.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/WebSocketqrLogin.js")%>"
197             type="text/javascript"></script>
198     <script src="<%=hostUrl %>/layui/layui.all.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/layui/layui.all.js")%>"></script>
199     <script src="<%=hostUrl %>/js/loginValidate.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/loginValidate.js")%>"
200             type="text/javascript"></script>
6fe1e6 201     <script src="<%=hostUrl%>/js/index/WebSocketMessage.js?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/js/index/WebSocketMessage.js")%>"
F 202             type="text/javascript"></script>
a6a76f 203 </head>
e98f5c 204
a6a76f 205 <body class="login">
F 206 <div class="login_m">
3aadab 207     <div class="login_boder">
X 208         <div class="login_padding">
209             <div class="login_logo">
210                 <img src="" style="width:250px;max-height:95px;"/>
211             </div>
212             <div class="qrcode_login">
213                 <span class="tips_img"></span>
214                 <span class="qrcodes_img"></span>
215             </div>
216             <div class="login-password">
217                 <div class="nav">
a6a76f 218         <span class="nav_tab active">
F 219           <span>账号登录</span>
220           <i class="active_img"></i>
221         </span>
3aadab 222                     <span class="nav_tab">
a6a76f 223           <span>短信登录</span>
F 224           <i class="active_img"></i>
225         </span>
3aadab 226                 </div>
X 227                 <div>
228                     <div class="login_select"
229                          style="display:<%=(list != null && list.size()<=1||iscltSN==1)?"none":"block"%>">
230                         <input type="hidden" id="redirect" name="redirect"
231                                value="<%= redirect == null||"".equals(redirect) ?"":redirect %>"/>
232                         <input type="hidden" id="hostUrl" name="hostUrl" value="<%= hostUrl%>"/>
233                         <label>
234                             <select class="txt_input select" id="dataName" name="dataName">
235                                 <%
236                                     Object sel = session.getAttribute("indexSelected");
237                                     String val = (sel != null) ? sel.toString() : "";
238                                     String valIs = "";
239                                     String selected = "";
240                                     for (int i = 0; list != null && i < list.size(); i++) {
241                                         DataSourceEntity dataSourceEntity = list.get(i);
a6a76f 242
3aadab 243                                         //Added by Johns Wang,2021-05-24
e98f5c 244                                        // Integer expiredDays = (list.get(i).getExpiredDays() == null ? null : (Integer) list.get(i).getExpiredDays());//过期天数:null或负数表示未过期,正数表示已过期
F 245                                         //boolean actived = list.get(i).getActived();
246                                         if (list.get(i).isExpiredDate()) {
3aadab 247                                             continue;  //如果被停用,则不用显示在下拉列表中
X 248                                         }
249
250                                         selected = "";
251                                         valIs = dataSourceEntity.getDbId() + "";
252                                         if (val.equals(valIs) || list.size() == 1 || InvGet.isExistsDatabaseIdByCookie(request, valIs)) {
253                                             selected = "selected='selected'";
254                                         }
255                                         out.print("<option version=\"\" haslogoicon=" + dataSourceEntity.isHasLogoIcon() + " value=\"" + valIs + "\" " + selected + ">" + dataSourceEntity.getSystemID() + "</option>");
256                                     }
257                                 %>
258                             </select>
259                             <i class="select_i"></i>
260                             <input type="hidden" id="isonescore" name="isonescore"
261                                    value="<%=list != null && list.size()==1?valIs:""%>"/>
262                         </label>
263                         <div class="error"><span class="text"></span></div>
264                     </div>
265                     <div class="login_form active">
266                         <div id="snDiv" class="cltsn" style="display:<%=(iscltSN==0)?"none":"block"%>">
267                             <label>
268                                 <input type="text" id="cltsn" name="cltsn" class="txt_input txt_input2"
269                                        placeholder="通行证"/>
270                                 <i class="user_i"></i>
271                             </label>
272                             <div class="error"><span class="text"></span></div>
273                         </div>
274                         <div class="name">
275                             <label>
276                                 <input type="text" id="name" name="account" spellcheck="false"
277                                        class="txt_input txt_input2" placeholder="账号 / 手机号"/>
278                                 <i class="user_i"></i>
279                             </label>
280                             <div class="error"><span class="text"></span></div>
281                         </div>
282
283                         <div class="pwd">
284                             <label>
285                                 <input type="password" name="pwd" id="pwd" class="txt_input" placeholder="登录密码"/>
286                                 <i class="password_i"></i>
287                             </label>
288                             <div class="error"><span class="text"></span></div>
289                         </div>
290                         <%if (isEnableValidateCode) { %>
291                         <div class="code">
292                             <label>
293                                 <input type="text" id="code" name="code" placeholder="验证码"
294                                        class="txt_input txt_input_yzm" maxlength="10"/>
295                                 <i class="yzm_i"></i>
296                             </label>
297                             <img id="randomming" src="" title="点击更换验证码" alt="点击更换验证码"/>
298                             <div class="error"><span class="text"></span></div>
299                         </div>
300                         <% } %>
301                     </div>
302
303                     <div class="login_form">
304                         <div class="telephone">
305                             <label>
306                                 <input type="text" id="telephone" name="telephone" class="txt_input txt_input2"
307                                        placeholder="手机号"/>
308                                 <i class="tele_i"></i>
309                             </label>
310                             <div class="error"><span class="text"></span></div>
311                         </div>
312                         <div class="phoneCode">
313                             <label>
314                                 <input type="text" id="phoneCode" name="phoneCode" placeholder="验证码"
315                                        class="txt_input txt_input_yzm" maxlength="10"/>
316                                 <i class="yzm_i"></i>
317                             </label>
318                             <button class="get_phoneCode">获取验证码</button>
319                             <div class="error"><span class="text"></span></div>
320                         </div>
321                     </div>
322                 </div>
323
324                 <div class="tips">
325                     <i class="fa fa-exclamation-circle"></i>
326                     <a href="https://www.google.cn/chrome">推荐您使用谷歌chrome浏览器</a>
327                 </div>
328                 <div class="login_sub">
329                     <label>
330                         <input type="button" class="sub_button" name="button" id="sub" value="立即登录" style=""/>
331                     </label>
332                 </div>
b9982b 333                 <div class="login-footer" style="display: flex">
X 334                     <div class="pop-login-sns" style="width: 200px">
3aadab 335                         <div class="log-inway">
X 336                             <span class="line"></span>
337                             <span class="txt">其他登录方式</span>
338                             <span class="line"></span>
339                         </div>
340                         <div class="log-ico log-ico-pc">
341                             <a href="javascript:;" class="pop-sns-weixin pop-sns-weixin-pc"><i
342                                     class="icon-weixin icon-weixin-pc"></i></a>
343                             <a href="javascript:;" class="pop-sns-qq pop-sns-qq-pc"><i
344                                     class="icon-qq icon-qq-pc"></i></a>
345                         </div>
346                         <div class="log-ico log-ico-m">
347                             <a href="javascript:;" class="pop-sns-weixin pop-sns-weixin-m"><i
348                                     class="icon-weixin icon-weixin-m"></i></a>
349                             <a href="javascript:;" class="pop-sns-qq pop-sns-qq-m"><i class="icon-qq icon-qq-m"></i></a>
350                         </div>
351                     </div>
b9982b 352                     <div class="pop-login-sns" style="width: 150px">
X 353                         <div class="log-inway">
354                             <span class="line"></span>
355                             <span class="txt">app下载</span>
356                             <span class="line"></span>
357                         </div>
358                         <div class="appQR">
359                             <img class="qr1" src="<%=hostUrl%>/images/login/appqr-login.png?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/images/login/appqr-login.png")%>" alt=""/>
360                             <img class="qr2" src="<%=hostUrl%>/images/login/qrtext.png?v=<%=com.yc.utils.FileUtil.getVerstion(request,"/images/login/qrtext.png")%>" alt=""/>
361                         </div>
362                     </div>
3aadab 363                     <input type="hidden" id="SessionKey" name="SessionKey" value="<%=SessionKey.DATA_BASE_ID %>"/>
X 364                     <input type="hidden" id="oauth2HostName" name="oauth2HostName" value="<%=oauth2HostName%>"/>
365                 </div>
a6a76f 366             </div>
3aadab 367             <div class="qrcode-logins">
X 368                 <div class="qrcode-main">
369                     <div class="qrcode_img"><img src="" alt="" style="width:250px; height:250px;"/>
370                         <div class="qrcode_success" style="display:none;height:250px;width:250px"><i></i>
371                             <p>扫描成功!</p>
372                             <h3>请在手机上根据提示确认登录</h3></div>
373                     </div>
374                     <div class="qrcode-error">
375                         <h3>二维码已失效</h3>
376                         <a href="javascript:;" class="qrcode-errora" role="button" style="color:#FFF;">请点击刷新</a>
377                     </div>
378                 </div>
379                 <div class="qrcode-desc"><span>打开<span> 巴士软件APP </span> 扫一扫登录</span></div>
a6a76f 380             </div>
F 381         </div>
382     </div>
3aadab 383     <footer>
X 384         <div class="onbusLogin_img"><img src="/images/login/logo.png" width="100"/></div>
385         <p align="center"><a href="http://www.onbus.cn/" target="_blank"><%= meno %> &copy;<%= menoUrl %> 2006
386             -    <%=year %>
387         </a></p>
388         <p class="footer-info" align="center">
389             <a target="_blank" href="http://www.beian.miit.gov.cn">粤ICP备06017735号-2</a>
390             <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44060402000428">粤公网安备
391                 44060402000428号 </a>
392         </p>
393     </footer>
a6a76f 394 </div>
e98f5c 395 <script type="text/javascript">
F 396     $(function () {
397         initWebsocket('<%= hostUrl.replace("https", "wss").replace("http", "ws") %>','<%=session.getAttribute(SessionKey.HRCODE)%>',<%=valIs%>,'<%= session.getId() %>','1');
398     });
399 </script>
a6a76f 400 </body>
F 401 </html>