Commit b95ec75a by yangfangfang

Merge branch 'master' of git.minrow.com:reyun/saasio

# Conflicts: # src/main/webapp/activation.html # src/main/webapp/demo.html # src/main/webapp/failure.html # src/main/webapp/forget.html # src/main/webapp/home1.html # src/main/webapp/index.html # src/main/webapp/login.html # src/main/webapp/olduser.html # src/main/webapp/resetpwd.html # src/main/webapp/scripts/lgui.js # src/main/webapp/success.html
parents aeeb6978 6189adc0
......@@ -57,6 +57,11 @@
<admin.url>http://localhost:8080</admin.url>
<awsneed>false</awsneed>
<report.url>http://172.31.1.122:9010</report.url>
<admin.url>http://localhost:8080</admin.url>
<receiver.host>172.31.30.1,172.31.22.39,172.31.22.38,172.31.4.0,172.31.3.123,172.31.16.68,172.31.30.154,172.31.26.177</receiver.host>
<receiver.port>8080</receiver.port>
<mail.host>smtp.exmail.qq.com</mail.host>
<mail.username>manager@reyun.com</mail.username>
......
package com.reyun.controller;
import com.reyun.model.Account;
import com.reyun.model.App;
import com.reyun.repository.AccountRepository;
import com.reyun.repository.AppRepository;
import com.reyun.repository.TranslationRepository;
import com.reyun.security.annotation.CurrentAccount;
import com.reyun.util.Constant;
import com.reyun.util.HttpClientUtil;
import com.reyun.util.MailUtils;
import com.reyun.util.StringUtil;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@Controller
@RequestMapping(value = "/logtool/{appid}")
public class LogController {
protected static Logger logger = LoggerFactory.getLogger(LogController.class);
@Autowired
AppRepository apprepository;
@Autowired
AccountRepository accountrepository;
@Autowired
TranslationRepository translationRepository;
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List getlogs(HttpServletRequest request, @PathVariable Long appid, @CurrentAccount Account loginAccount) {
App app = apprepository.findOne(appid);
Account parent = accountrepository.findOne(app.getAccount());
Account account = loginAccount;
List result = null;
try {
result = getLogs(app.getAppkey());
} catch (IOException e) {
e.printStackTrace();
}
if(result==null) {
result = new ArrayList();
}
return result;
}
public List getLogs(String appId) throws IOException {
List<JSONObject> obList = new ArrayList<JSONObject>();
String[] hostArray = Constant.receiverHost.split(",");
for (String host : hostArray) {
String url = "http://"+host.trim()+":"+ Constant.receiverPort+"/receive/newlylogs/"+appId;
try {
String httpresult = HttpClientUtil.doHttpGetRequest(url, host);
if (!StringUtil.isEmpty(httpresult)) {
try {
JSONObject httpresultObject = new JSONObject(httpresult);
if (httpresultObject.has("result")) {
JSONArray resultArray = httpresultObject.getJSONArray("result");
for (int i=0; i<resultArray.length(); i++) {
JSONObject ob = resultArray.getJSONObject(i);
obList.add(ob);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
logger.error("url: {}", url, e);
try {
MailUtils.sendSimpleEmail("日志流服务", "日志流服务暂不可用, url: " + url + ", message:" + e.getMessage(), Constant.mlist);
} catch (Exception e1) {
logger.error("邮件服务不可用 getLogs()");
}
continue;
}
}
Collections.sort(obList, new Comparator<JSONObject>() {
public int compare(JSONObject arg0, JSONObject arg1) {
try {
return (arg1.getString("when")).compareTo((String) arg0.getString("when"));
} catch (JSONException e) {
e.printStackTrace();
}
return 0;
}
});
List<String> resultList = new ArrayList<String>();
/*
if (obList.size() >= 40) {
for (int i=0; i<40; i++) {
resultList.add(obList.get(i).toString());
}
} else {
for (int i=0; i<obList.size(); i++) {
resultList.add(obList.get(i).toString());
}
}*/
for (JSONObject ob : obList) {
resultList.add(ob.toString());
}
return resultList;
}
}
......@@ -95,11 +95,7 @@ public class LoginController
Account rootAccount = accountRepository.findOne(rootParent);
if (trackAndIoBothExhaust) {
if (rootAccount.getAllowBehavior()) {
rtnMap.put("msg", "广告效果监控流量和行为分析流量均用尽!");
rtnMap.put("code", 211);
return ResultModel.OK(rtnMap);
} else {
rtnMap.put("msg", "广告效果监控流量已经用尽!");
rtnMap.put("msg", "行为分析流量用尽!");
rtnMap.put("code", 211);
return ResultModel.OK(rtnMap);
}
......
package com.reyun.model;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* Created by admin on 2017/3/3.
*/
@Entity
public class IONotice {
private Long id;
@NotNull
private String title;
@NotNull
private String content;
private Boolean isdeploy;
private Date deployDate;
private Date createDate;
private Date endDate;
private String createUser;
private Date modifyDate;
private String modifyUser;
private Boolean is_top;
private Long deployAccountId;
private String deployUserName;
private String deployAccountEmail;
private Long ioAccount;
private Long trackAccount;
private String trackAccountList;
private String ioAccountList;
private Boolean trackAll;
private Boolean ioAll;
private String accountType;
private Boolean release;
private boolean isRead;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Boolean getIsdeploy() {
return isdeploy;
}
public void setIsdeploy(Boolean isdeploy) {
this.isdeploy = isdeploy;
}
public Date getDeployDate() {
return deployDate;
}
public void setDeployDate(Date deployDate) {
this.deployDate = deployDate;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
public String getModifyUser() {
return modifyUser;
}
public void setModifyUser(String modifyUser) {
this.modifyUser = modifyUser;
}
public Boolean getIs_top() {
return is_top;
}
public void setIs_top(Boolean is_top) {
this.is_top = is_top;
}
public Long getDeployAccountId() {
return deployAccountId;
}
public void setDeployAccountId(Long deployAccountId) {
this.deployAccountId = deployAccountId;
}
public String getDeployUserName() {
return deployUserName;
}
public void setDeployUserName(String deployUserName) {
this.deployUserName = deployUserName;
}
public String getDeployAccountEmail() {
return deployAccountEmail;
}
public void setDeployAccountEmail(String deployAccountEmail) {
this.deployAccountEmail = deployAccountEmail;
}
public Long getIoAccount() {
return ioAccount;
}
public void setIoAccount(Long ioAccount) {
this.ioAccount = ioAccount;
}
@Transient
public Long getTrackAccount() {
return trackAccount;
}
public void setTrackAccount(Long trackAccount) {
this.trackAccount = trackAccount;
}
public String getTrackAccountList() {
return trackAccountList;
}
public void setTrackAccountList(String trackAccountList) {
this.trackAccountList = trackAccountList;
}
public String getIoAccountList() {
return ioAccountList;
}
public void setIoAccountList(String ioAccountList) {
this.ioAccountList = ioAccountList;
}
public String getAccountType() {
return accountType;
}
public void setAccountType(String accountType) {
this.accountType = accountType;
}
public Boolean getTrackAll() {
return trackAll;
}
public void setTrackAll(Boolean trackAll) {
this.trackAll = trackAll;
}
public Boolean getIoAll() {
return ioAll;
}
public void setIoAll(Boolean ioAll) {
this.ioAll = ioAll;
}
@Transient
public Boolean getRelease() {
return release;
}
public void setRelease(Boolean release) {
this.release = release;
}
@Transient
public boolean getIsRead() {
return isRead;
}
public void setIsRead(boolean isRead) {
this.isRead = isRead;
}
}
package com.reyun.repository;
import com.reyun.model.Notice;
import com.reyun.model.IONotice;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* Created by sunhao on 17/3/1.
*/
@Transactional
public interface NoticeRepository extends JpaRepository<Notice, Long> {
public interface NoticeRepository extends JpaRepository<IONotice, Long> {
@Query(value = "select * from (select * from notice n where n.isdeploy is true and n.deploy_date <= ?1 and end_date > ?1 order by deploy_date desc ) as notice_top " +
" union select * from (select * from notice n where n.isdeploy is true and n.deploy_date <= ?1 and end_date is null order by deploy_date desc limit 3) as notice_normal "
, nativeQuery = true)
List<Notice> listRecentDeployNotice(Date currentDate);
@Query(value = "select * from ionotice n where n.isdeploy is true and (io_account = ?1 or io_account = -1) order by id desc", nativeQuery = true)
List<IONotice> listRecentDeployNotice(Long account);
}
package com.reyun.service;
import com.reyun.model.IONotice;
import com.reyun.model.Notice;
import com.reyun.model.UserNoticeLog;
......@@ -15,7 +16,7 @@ public interface NoticeService {
* @param accountId
* @return
*/
List<Notice> listRecentDeployNotice(Long accountId);
List<IONotice> listRecentDeployNotice(Long accountId);
/**
* 存储用户已读公告数据
......
......@@ -637,9 +637,7 @@ public class AccountFlowRestrictServiceImpl implements AccountFlowRestrictServic
if (!packageType.getSuperLevel() && flowRestrict) {
if (rootAccount.getAllowBehavior()) {
isBothExhaust = (packageType.getTrackFlow().doubleValue() - clickNum.doubleValue() < 0) && thisMonthRemainingFlow.doubleValue() < 0;
} else {
isBothExhaust = (packageType.getTrackFlow().doubleValue() - clickNum.doubleValue() < 0);
isBothExhaust = thisMonthRemainingFlow.doubleValue() < 0;
}
}
}
......
......@@ -2,6 +2,7 @@ package com.reyun.service.impl;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.reyun.model.IONotice;
import com.reyun.model.Notice;
import com.reyun.model.UserNoticeLog;
import com.reyun.repository.NoticeRepository;
......@@ -27,15 +28,15 @@ public class NoticeServiceImpl implements NoticeService {
private UserNoticeLogRepository userNoticeLogRepository;
@Override
public List<Notice> listRecentDeployNotice(Long accountId) {
public List<IONotice> listRecentDeployNotice(Long accountId) {
List<Notice> recentDeployNoticeList = noticeRepository.listRecentDeployNotice(new Date());
List<IONotice> recentDeployNoticeList = noticeRepository.listRecentDeployNotice(accountId);
if (!CollectionUtils.isEmpty(recentDeployNoticeList)) {
List<Long> noticeIdList = Lists.transform(recentDeployNoticeList, new Function<Notice, Long>() {
List<Long> noticeIdList = Lists.transform(recentDeployNoticeList, new Function<IONotice, Long>() {
@Override
public Long apply(Notice notice) {
public Long apply(IONotice notice) {
return notice.getId();
}
});
......@@ -43,7 +44,7 @@ public class NoticeServiceImpl implements NoticeService {
for (UserNoticeLog userNoticeLog : userNoticeLogList) {
for (Notice notice : recentDeployNoticeList) {
for (IONotice notice : recentDeployNoticeList) {
if (notice.getId().equals(userNoticeLog.getNoticeid())) {
notice.setIsRead(true);
......
......@@ -22,7 +22,7 @@ public class RegedServiceImpl implements RegedService {
@Autowired
AccountRepository accountRepository;
private static final String VERIFY_EMAIL_SEND_URL = Constant.adminUrl + "/api/tool/account/sendemail/";
private static final String VERIFY_EMAIL_SEND_URL = Constant.adminUrl + "/api/tool/ioaccount/sendemail/";
@Override
public Boolean sendActiceEmail(String url, Long id) {
......
......@@ -51,6 +51,8 @@ public class Constant {
public static String mailPassword = mailBundle.getString("mail.password");
public static String mailContentType = mailBundle.getString("mail.content_type");
public static String mailValidTime = mailBundle.getString("mail.valid_time");
public static String mailList = mailBundle.getString("mail.list");
public static List<String> mlist = Arrays.asList(mailList.split(","));
public static ResourceBundle redis = ResourceBundle.getBundle("redis");
......
......@@ -2,4 +2,5 @@ mail.host=${mail.host}
mail.username=${mail.username}
mail.password=${mail.password}
mail.content_type=${mail.content_type}
mail.valid_time=${mail.valid_time}
\ No newline at end of file
mail.valid_time=${mail.valid_time}
mail.list=${mail.list}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.41036946419626474">
<script src="scripts/change.js?r=0.5875886247958988"></script>
<script src="scripts/regcom1.js?r=0.49364342424087226"></script>
<script src="scripts/regui.js?r=0.5866878852248192"></script>
</head>
<body ng-app="app" ng-controller="acvitationCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">注册激活</div>
<div class="activationEmail" ng-show="acvitation == 0">激活邮件已发送至您的邮箱:{{registerEmail}}</div>
<div class="activationEmail" ng-show="acvitation == 1">激活邮件发送失败,请检查您的邮箱:{{registerEmail}}</div>
<div class="activationText" ng-show="acvitation == 0">请点击邮箱的链接完成账号注册!</div>
<div class="activationButton" ng-click="loginEmail()">立即登录邮箱</div>
<div class="sendChange">
<li>没有收到邮件?<a ng-show="sendtype==1" href ng-click="sendAgain()">重新发一封</a><a ng-show="sendtype==2" href>{{time/1000}}秒后可重新发送</a></li>
<li>邮箱填错了?<a ng-show="sendtype==1" href ng-click="changeEmail()">更改邮箱</a><a ng-show="sendtype==2" href style="color:#a3a3b2;">更改邮箱</a></li>
</div>
</div>
</div>
<div class="openTipWin" ng-show="winFlag==1" style="z-index: 98">
<div class="closeGray" ng-click="closeWin()"></div>
<p class="title">更改邮箱</p>
<div class="tipCont">
<div class="formDetailItem">
<div class="iptlabel must">注册邮箱:</div>
<input type="text" class="iptform" ng-model="oldemail" placeholder="请输入注册邮箱" readonly="readonly" style="background: #f3f3f3; color: #999; border: none">
<div class="em">
<em class="error" ng-if="tip.oldemail.status">{{tip.oldemail.txt}}</em>
</div>
</div>
<div class="formDetailItem">
<div class="iptlabel must">新邮箱:</div>
<input type="text" class="iptform" ng-model="newemail" placeholder="请输入新邮箱">
<div class="em">
<em class="error" ng-if="tip.newemail.status">{{tip.newemail.txt}}</em>
</div>
</div>
</div>
<div class="openBtnGroup clearfix">
<div class="btn" ng-click="saveNewEmail()">发送验证邮件</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<script src="scripts/change.js?r=0.16010478581301868"></script>
<script src="scripts/demo.js?r=0.6772886510007083"></script>
<script type="text/javascript">
$.get("/api/demo",function(data) {
data = JSON.parse(data);
var account = data.content.account,token = data.content.token;
$.cookie("ryioUid",account.id);
$.cookie("ryioUname",account.email);
// $.cookie("ryioUauth",account.authStr);
window.localStorage.setItem("ryioUauth",account.authStr);
$.cookie("ryioToken",token);
$.cookie("ryioPastDate",account.pastDate);
var isSuper = account.isSuperUser == true && account.isChannelPerson!=true;
$.cookie("ryioIsSuper",isSuper);
window.location.href="index.html";
});
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.9322576317936182">
<script src="scripts/change.js?r=0.41538010514341295"></script>
<script src="scripts/regcom2.js?r=0.2466718212235719"></script>
<script src="scripts/failure.js?r=0.16402682894840837"></script>
</head>
<body ng-app="app" ng-controller="failureCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">激活失败</div>
<div class="activationText">激活链接已失效!</div>
<div class="failureButton successButton" ng-click="sendAgain()" ng-show="failureType==1">重新激活</div>
<div class="failureButton successButton" ng-show="failureType==2" style="background:#a9a9a9;">重新激活</div>
<p class="failureError">{{failureText}}</p>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.24020749446935952">
<script src="scripts/change.js?r=0.9423119300045073"></script>
<script src="scripts/regcom3.js?r=0.4566480740904808"></script>
<script src="scripts/forget.js?r=0.7468544060830027"></script>
</head>
<body ng-app="app" ng-controller="forgetCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">找回密码</div>
<div class="forgetText" ng-show="forgettype!='success'">我们将会给您的电子邮箱发送一个新的密码,有效期为72小时,请及时登录并修改密码!</div>
<div class="formDetailItem forgetInput" ng-show="forgettype!='success'">
<div class="iptlabel must">邮箱:</div>
<input type="text" class="iptform" ng-model="email" placeholder="请输入邮箱">
<button ng-click="save()">确定</button>
<div class="em">
<em class="error" ng-if="tip.email.status">{{tip.email.txt}}</em>
</div>
</div>
</div>
<div class="regedover" ng-show="forgettype=='success'">
<div class="tipsucc"><span class="succIcon"></span>发送邮件成功</div>
<div class="activationButton" ng-click="loginEmail()" style="margin-top: 50px;">立即登录邮箱</div>
</div>
</div>
<div class="openBgDiv" ng-show="noActive==1" ng-cloak></div>
<div class="openTipWin" ng-show="noActive==1" ng-cloak>
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleLogin" ng-show="!newNoRegister">该账户未激活,请点击激活。</p>
<p class="titleLogin" ng-show="newNoRegister">该子账号未激活,若未收到激活邮件,请联系主账号。</p>
<div class="openBtnGroup clearfix" ng-show="!newNoRegister">
<div class="btn" ng-click="sendAgain()" ng-show="loginSend=='yes'">发送激活邮箱</div>
<div class="btn1" ng-show="loginSend=='no'">发送激活邮箱</div>
</div>
<div class="openBtnGroup clearfix" ng-show="newNoRegister">
<div class="btn" ng-click="closeWin()">确定</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.11575359338894486">
<script src="scripts/change.js?r=0.6097557554021478"></script>
<script src="scripts/lgcom4.js?r=0.33344802912324667"></script>
<script src="scripts/lgui.js?r=0.2212034841068089"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?7899fb5e9a59c7f4cdcbb69d51396b0b";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body ng-app="app" ng-controller="loginCtrl">
<div class="loginWrap" ng-keyup="keyEvt($event)">
<div class="mapWrap">
<div id="mapInfo"></div>
</div>
<div class="infoWrap loginPosition">
<a class="logo logoMB"></a>
<input type="text" class="iptform" ng-model="name" placeholder="请输入您的注册邮箱">
<div class="errorWrap">
<div class="error" ng-if="tip.name.status">{{tip.name.txt}}</div>
</div>
<input type="password" class="iptform" ng-model="password" placeholder="请输入您的密码">
<div class="errorWrap">
<div class="error" ng-if="tip.password.status">{{tip.password.txt}}</div>
</div>
<input type="text" class="iptform yma" ng-model="yema" placeholder="请输入验证码">
<div class="yawarp hand" ng-click="getImgInfo()">
<img src="" alt="" id="imgMa">
</div>
<div class="errorWrap">
<div class="error" ng-if="tip.yema.status">{{tip.yema.txt}}</div>
</div>
<div>
<span class="ml10 hand" ng-click="isrember=!isrember">
<span class="checkbox" ng-class="{'active':isrember}"></span>记住密码
</span>
<span class="ml10 hand" ng-click="isonline=!isonline">
<span class="checkbox" ng-class="{'active':isonline}"></span>自动登录7天
</span>
<span class="right hand"><a class="under" href="forget.html">忘记密码?</a></span>
</div>
<div class="errorWrap"></div>
<div class="loginBtn" ng-click="doLogin()">登录</div>
<div class="forgetWrap">
<span class="ml10">还没有账号?<a href="register.html"><span class="under">立即注册</span></a></span>
<!-- <span class="right under">体验DEMO</span> -->
</div>
</div>
</div>
<div class="openBgDiv" ng-show="noActive==1" ng-cloak></div>
<div class="openTipWin" ng-show="noActive==1" ng-cloak>
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleLogin">该账户未激活,请点击激活。</p>
<div class="openBtnGroup clearfix">
<div class="btn" ng-click="sendAgain()" ng-show="loginSend=='yes'">发送激活邮箱</div>
<div class="btn1" ng-show="loginSend=='no'">发送激活邮箱</div>
</div>
</div>
<div class="copyright">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<script>
var date = new Date();
date.setDate(date.getDate()-1);
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var datetime = year+"-"+month+"-"+day;
$.get('/data/login.json',function(data){
var report = data.val;
var reportVal = data.prondau;
var myChart = echarts.init(document.getElementById('mapInfo'));
var option = {
backgroundColor: '#01010c',
color: [
'rgba(255, 255, 255, 1)',
'rgba(0, 228, 255, 1)',
'rgba(9, 107, 255, 1)'
],
title : {
text: '',
subtext: '',
x:'center',
textStyle : {
color: '#fff'
}
},
legend: {
orient: 'vertical',
x:'left',
data:[],
textStyle : {
color: '#fff'
}
},
tooltip : {
trigger: 'item',
backgroundColor:'#f2f2f3',
borderColor:'#00a9e8',
textStyle:{ color:'#000' },
//formatter: '{b}:{c}'
formatter: function(params) {
var res = params.name.toString();
var resNum = reportVal[res];
if(resNum == undefined){
resNum = 0;
}
return res+":"+resNum;
}
},
toolbox: {
show : false,
orient : 'vertical',
x: 'right',
y: 'center',
feature : {
mark : {show: false},
dataView : {show: false, readOnly: false},
restore : {show: false},
saveAsImage : {show: false}
}
},
series : [
{
name: '弱',
type: 'map',
mapType: 'china',
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbolSize: 2,
large: true,
effect : {
show: true
},
data : (function(){
return report[2];
})()
}
},
{
name: '中',
type: 'map',
mapType: 'china',
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbolSize: 3,
large: true,
effect : {
show: true
},
data : (function(){
return report[1];
})()
}
},
{
name: '强',
type: 'map',
mapType: 'china',
hoverable: false,
roam:false,
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbol : 'diamond',
symbolSize: 6,
large: true,
effect : {
show: true
},
data : (function(){
return report[0];
})()
}
}
]
};
myChart.setOption(option);
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.7841710445936769">
<script src="scripts/change.js?r=0.4421499124728143"></script>
<script src="scripts/regcom5.js?r=0.2624261521268636"></script>
<script src="scripts/olduser.js?r=0.6676868912763894"></script>
</head>
<body ng-app="app" ng-controller="olduserCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">注册激活</div>
<div class="activationText oldUser">我们当前正在为开发者做更多的权限和安全设计,为了您的账户安全,请激活您的邮箱。</div>
<div class="activationButton" ng-click="oldEmail()">发送激活邮件</div>
<div class="activationText"><a href="index.html">跳过,下次再显示</a></div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.8538161558099091">
<script src="scripts/change.js?r=0.33458543848246336"></script>
<script src="scripts/regcom7.js?r=0.6433788833674043"></script>
<script src="scripts/resetpwd.js?r=0.8525168120395392"></script>
</head>
<body ng-app="app" ng-controller="resetpwdCtrl">
<div class="loginWrap register">
<div class="activationWrap" ng-show="resetTpye=='yes'">
<a class="logo" href="login.html"></a>
<div class="pwdActivation">修改密码</div>
<div class="formDetailItem pwdInput">
<div class="iptlabel must">请输入新密码:</div>
<input type="password" class="iptform" ng-model="newpwd" placeholder="请输入新密码">
<div class="error" ng-if="tip.newpwd.status" ng-class="{'long':tip.newpwd.txt.length>15}">{{tip.newpwd.txt}}</div>
</div>
<div class="formDetailItem pwdInput">
<div class="iptlabel must">请再次输入新密码:</div>
<input type="password" class="iptform" ng-model="crmpwd" placeholder="请再次输入新密码">
<div class="error" ng-if="tip.crmpwd.status" ng-class="{'long':tip.crmpwd.txt.length>15}">{{tip.crmpwd.txt}}</div>
</div>
<div class="resetpwdButton" ng-click="save()">确定</div>
</div>
<div class="activationWrap" ng-show="resetTpye=='no'">
<a class="logo" href="login.html"></a>
<div class="registerActivation">修改密码</div>
<div class="activationText">修改密码链接已失效!<span ng-if="isShowSend">请联系母账号</span></div>
<div class="activationButton successButton" ng-click="sendEmail()" ng-if="!isShowSend">重新发送邮件</div>
<div class="error" ng-if="tip.send.status">{{tip.send.txt}}</div>
</div>
<div class="activationWrap" ng-show="resetTpye=='send'">
<a class="logo" href="login.html"></a>
<div class="registerActivation">修改密码</div>
<div class="regedover">
<div class="tipsucc"><span class="succIcon"></span>发送邮件成功</div>
<div class="activationButton" ng-click="loginEmail()" style="margin-top: 50px;">立即登录邮箱</div>
</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.760400326224044">
<script src="scripts/change.js?r=0.6985495439730585"></script>
<script src="scripts/regcom8.js?r=0.22244378668256104"></script>
<script src="scripts/success.js?r=0.7736186757683754"></script>
</head>
<body ng-app="app" ng-controller="successCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">已激活成功</div>
<a href="/login.html"><div class="activationButton successButton">立即登录</div></a>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment