新增广告支持
广告html还没做
This commit is contained in:
parent
03e5f36795
commit
e65bae23ad
@ -1,10 +1,126 @@
|
||||
package com.yutou.tools.ad;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yutou.tools.sqlite.ADSQLiteManager;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.text.ParsePosition;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("ad/")
|
||||
public class AdController {
|
||||
|
||||
@RequestMapping("addApp.do")
|
||||
@ResponseBody
|
||||
public String addApp(String packageName, String appName) {
|
||||
JSONObject json = new JSONObject();
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
json.put("code", 0);
|
||||
json.put("data", manager.addAppData(appName, packageName));
|
||||
return json.toJSONString();
|
||||
}
|
||||
|
||||
@RequestMapping("addAppAd.do")
|
||||
@ResponseBody
|
||||
public String addAppAd(String appId, String adSrc, String adAppId, String adAppKey, String adOpenKey, String adInterKey,
|
||||
String adBannerKey, String adVideoKey, String adNativeKey) {
|
||||
JSONObject json = new JSONObject();
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
json.put("code", 0);
|
||||
json.put("data", manager.addAdData(appId, adSrc, adAppId, adAppKey, adOpenKey, adInterKey, adBannerKey, adVideoKey, adNativeKey));
|
||||
return json.toJSONString();
|
||||
}
|
||||
|
||||
@RequestMapping("addAdLog.do")
|
||||
@ResponseBody
|
||||
public String addLog(String appId, String src, String type, String model) {
|
||||
JSONObject json = new JSONObject();
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
json.put("code", 0);
|
||||
json.put("data", manager.addLog(appId, src, type, model));
|
||||
return json.toJSONString();
|
||||
}
|
||||
|
||||
@RequestMapping("getAppAd.do")
|
||||
@ResponseBody
|
||||
public String getAppAd(String appId, String packageName) {
|
||||
JSONObject json = new JSONObject();
|
||||
if (StringUtils.isEmpty(appId) && StringUtils.isEmpty(packageName)) {
|
||||
json.put("code", -1);
|
||||
json.put("msg", "参数为空");
|
||||
json.put("data", "");
|
||||
return json.toJSONString();
|
||||
}
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
json.put("code", 0);
|
||||
if (StringUtils.isEmpty(appId)) {
|
||||
json.put("data", manager.getAdDataOfPackageName(packageName));
|
||||
} else {
|
||||
json.put("data", manager.getAdData(appId));
|
||||
}
|
||||
return json.toJSONString();
|
||||
}
|
||||
|
||||
@RequestMapping("getApp.do")
|
||||
@ResponseBody
|
||||
public String getApp(String appName, String packageName) {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("code", 0);
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
if (StringUtils.isEmpty(appName) && StringUtils.isEmpty(packageName)) {
|
||||
json.put("data", manager.getAllApp());
|
||||
return json.toJSONString();
|
||||
}
|
||||
if (StringUtils.isEmpty(appName)) {
|
||||
json.put("data", manager.getAppOfPackageName(packageName));
|
||||
} else {
|
||||
json.put("data", manager.getAppOfAppName(appName));
|
||||
}
|
||||
return json.toJSONString();
|
||||
}
|
||||
@RequestMapping("getAdLog.do")
|
||||
@ResponseBody
|
||||
public String getLog(String appId, String startTime, String endTime) {
|
||||
JSONObject json = new JSONObject();
|
||||
if (StringUtils.isEmpty(appId)) {
|
||||
json.put("code", -1);
|
||||
json.put("msg", "AppId为空");
|
||||
return json.toJSONString();
|
||||
}
|
||||
String st = null;
|
||||
String et = null;
|
||||
//开始时间为空,则给当日开始时时间
|
||||
if (StringUtils.isEmpty(startTime) || (StringUtils.isEmpty(startTime) && StringUtils.isEmpty(endTime))) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
||||
calendar.set(Calendar.MINUTE, 0);
|
||||
calendar.set(Calendar.SECOND, 0);
|
||||
st = calendar.getTimeInMillis() + "";
|
||||
}
|
||||
//结束时间为空则取当前时间
|
||||
if (StringUtils.isEmpty(endTime)) {
|
||||
et = System.currentTimeMillis() + "";
|
||||
}
|
||||
try {
|
||||
if (st == null) {
|
||||
st = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(startTime).getTime() + "";
|
||||
}
|
||||
if (et == null) {
|
||||
et = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(endTime).getTime() + "";
|
||||
}
|
||||
ADSQLiteManager manager = ADSQLiteManager.getInstance();
|
||||
json.put("data", manager.getLog(appId, st, et));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return json.toJSONString();
|
||||
}
|
||||
}
|
||||
|
214
src/main/java/com/yutou/tools/sqlite/ADSQLiteManager.java
Normal file
214
src/main/java/com/yutou/tools/sqlite/ADSQLiteManager.java
Normal file
@ -0,0 +1,214 @@
|
||||
package com.yutou.tools.sqlite;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ADSQLiteManager extends SQLiteManager {
|
||||
private static ADSQLiteManager manager;
|
||||
|
||||
public static ADSQLiteManager getInstance() {
|
||||
if (manager == null) {
|
||||
manager = new ADSQLiteManager();
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
private ADSQLiteManager() {
|
||||
super();
|
||||
JSONObject json = JSONObject.parseObject("{\"file\":\"ad.db\",\"table\":[{\"name\":\"app\",\"item\":[{\"name\":\"id\",\"type\":\"int\",\"isNull\":false,\"isKey\":true},{\"name\":\"appName\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"packageName\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"appId\",\"type\":\"String\",\"isNull\":false,\"isKey\":false}]},{\"name\":\"app_ad\",\"item\":[{\"name\":\"id\",\"type\":\"int\",\"isNull\":false,\"isKey\":true},{\"name\":\"appId\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adSrc\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adAppId\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adAppKey\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adOpenKey\",\"type\":\"String\",\"isNull\":true,\"isKey\":false},{\"name\":\"adInterKey\",\"type\":\"String\",\"isNull\":true,\"isKey\":false},{\"name\":\"adBannerKey\",\"type\":\"String\",\"isNull\":true,\"isKey\":false},{\"name\":\"adVideoKey\",\"type\":\"String\",\"isNull\":true,\"isKey\":false},{\"name\":\"adNativeKey\",\"type\":\"String\",\"isNull\":true,\"isKey\":false}]},{\"name\":\"ad_log\",\"item\":[{\"name\":\"id\",\"type\":\"int\",\"isNull\":false,\"isKey\":true},{\"name\":\"appId\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adSrc\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"adType\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"model\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"subtime\",\"type\":\"String\",\"isNull\":false,\"isKey\":false}]}]}");
|
||||
build(json);
|
||||
}
|
||||
|
||||
public boolean addAdData(String appId, String adSrc, String adAppId, String adAppKey, String adOpenKey, String adInterKey,
|
||||
String adBannerKey, String adVideoKey, String adNativeKey) {
|
||||
try {
|
||||
if (getAdData(appId) != null) {
|
||||
return false;
|
||||
}
|
||||
Statement statement = conn.createStatement();
|
||||
String sql = "insert into `app_ad` (`appId`,`adSrc`,`adAppId`,`adAppKey`,`adOpenKey`,`adInterKey`,`adBannerKey`,`adVideoKey`,`adNativeKey`) values " +
|
||||
"('" + appId + "','" + adSrc + "','" + adAppId + "','" + adAppKey + "','" + adOpenKey + "','" + adInterKey + "','" + adBannerKey + "','" + adVideoKey + "','" + adNativeKey + "');";
|
||||
boolean flag = statement.execute(sql);
|
||||
statement.close();
|
||||
return flag;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean addLog(String appId, String src, String type, String model) {
|
||||
try {
|
||||
Statement statement = conn.createStatement();
|
||||
String sql = "insert into `ad_log` (`appId`,`adSrc`,`adType`,`model`,`subtime`) values ('" + appId + "','" + src + "','" + type
|
||||
+ "','" + model + "','" + System.currentTimeMillis() + "'); ";
|
||||
boolean flag = statement.execute(sql);
|
||||
statement.close();
|
||||
return flag;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String addAppData(String appName, String packageName) {
|
||||
try {
|
||||
if (getAppOfPackageName(packageName) != null) {
|
||||
return getAppOfPackageName(packageName).getString("appId");
|
||||
}
|
||||
Statement statement = conn.createStatement();
|
||||
String appId = UUID.randomUUID().toString();
|
||||
String sql = "insert into `app`(`appName`,`packageName`,`appId`) values ('" + appName + "','" + packageName + "','" + appId + "')";
|
||||
statement.execute(sql);
|
||||
statement.close();
|
||||
return appId;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public JSONObject getAdData(String appId) {
|
||||
try {
|
||||
Statement statement = conn.createStatement();
|
||||
String sql = "select * from `app_ad` where `appId`='" + appId + "';";
|
||||
return getData(statement, sql);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public JSONObject getAdDataOfPackageName(String packageName) {
|
||||
|
||||
try {
|
||||
Statement statement = conn.createStatement();
|
||||
String sql = "select * from `app_ad` where `packageName`='" + packageName + "';";
|
||||
return getData(statement, sql);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private JSONObject getData(Statement statement, String sql) throws SQLException {
|
||||
JSONObject json=null;
|
||||
ResultSet set = statement.executeQuery(sql);
|
||||
if (set.next()) {
|
||||
json=new JSONObject();
|
||||
json.put("appId", set.getString("appId"));
|
||||
json.put("adSrc", set.getString("adSrc"));
|
||||
json.put("adAppId", set.getString("adAppId"));
|
||||
json.put("adAppKey", set.getString("adAppKey"));
|
||||
json.put("adOpenKey", set.getString("adOpenKey"));
|
||||
json.put("adInterKey", set.getString("adInterKey"));
|
||||
json.put("adBannerKey", set.getString("adBannerKey"));
|
||||
json.put("adVideoKey", set.getString("adVideoKey"));
|
||||
json.put("adNativeKey", set.getString("adNativeKey"));
|
||||
}
|
||||
set.close();
|
||||
statement.close();
|
||||
return json;
|
||||
}
|
||||
|
||||
public JSONArray getLog(String appId, String startTime, String endTime) {
|
||||
try {
|
||||
JSONArray array = new JSONArray();
|
||||
Statement statement = conn.createStatement();
|
||||
String sql = "select * from `ad_log` where `appId`=`" + appId + "` and `subtime` >=" + startTime + " and `subtime` <=" + endTime + ";";
|
||||
ResultSet set = statement.executeQuery(sql);
|
||||
while (set.next()) {
|
||||
JSONObject item = new JSONObject();
|
||||
item.put("id", set.getInt("id"));
|
||||
item.put("appId", set.getString("appId"));
|
||||
item.put("adSrc", set.getString("adSrc"));
|
||||
item.put("adType", set.getString("adType"));
|
||||
item.put("model", set.getString("model"));
|
||||
item.put("subtime", set.getString("subtime"));
|
||||
array.add(item);
|
||||
}
|
||||
set.close();
|
||||
statement.close();
|
||||
return array;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public JSONObject getAppOfAppName(String appName){
|
||||
try {
|
||||
JSONObject json=new JSONObject();
|
||||
Statement statement=conn.createStatement();
|
||||
String sql="select * from `app` where `appName`='"+appName+"';";
|
||||
json=getApp(statement, sql);
|
||||
statement.close();
|
||||
return json;
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public JSONObject getAppOfPackageName(String packageName){
|
||||
try {
|
||||
JSONObject json=new JSONObject();
|
||||
Statement statement=conn.createStatement();
|
||||
String sql="select * from `app` where `packageName`='"+packageName+"';";
|
||||
json=getApp(statement, sql);
|
||||
statement.close();
|
||||
return json;
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public JSONArray getAllApp(){
|
||||
try {
|
||||
JSONArray array=new JSONArray();
|
||||
Statement statement=conn.createStatement();
|
||||
String sql="select * from `app` ;";
|
||||
ResultSet set=statement.executeQuery(sql);
|
||||
while (set.next()){
|
||||
JSONObject json=new JSONObject();
|
||||
json.put("id",set.getInt("id"));
|
||||
json.put("appId",set.getString("appId"));
|
||||
json.put("appName",set.getString("appName"));
|
||||
json.put("packageName",set.getString("packageName"));
|
||||
array.add(json);
|
||||
}
|
||||
return array;
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private JSONObject getApp(Statement statement, String sql) throws SQLException {
|
||||
JSONObject json=null;
|
||||
ResultSet set=statement.executeQuery(sql);
|
||||
if(set.next()){
|
||||
json=new JSONObject();
|
||||
json.put("id",set.getInt("id"));
|
||||
json.put("appId",set.getString("appId"));
|
||||
json.put("appName",set.getString("appName"));
|
||||
json.put("packageName",set.getString("packageName"));
|
||||
}
|
||||
set.close();
|
||||
statement.close();
|
||||
return json;
|
||||
}
|
||||
|
||||
public void close() {
|
||||
try {
|
||||
if (conn != null && !conn.isClosed()) {
|
||||
conn.close();
|
||||
}
|
||||
conn = null;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
@ -11,17 +11,10 @@ import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
public class SQLiteManager {
|
||||
private static SQLiteManager manager;
|
||||
protected Connection conn;
|
||||
private String url = "jdbc:sqlite:";
|
||||
private File sql;
|
||||
|
||||
public static SQLiteManager getInstance() {
|
||||
if (manager == null) {
|
||||
manager = new SQLiteManager();
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
|
||||
public void startBatch() {
|
||||
try {
|
||||
@ -50,9 +43,14 @@ public class SQLiteManager {
|
||||
protected SQLiteManager() {
|
||||
|
||||
}
|
||||
|
||||
private void createSql(JSONObject json) {
|
||||
JSONObject table = json.getJSONObject("table");
|
||||
private void createSql(JSONObject json){
|
||||
JSONArray array=json.getJSONArray("table");
|
||||
for (Object o : array) {
|
||||
createSqlOfTable((JSONObject) o);
|
||||
}
|
||||
ConfigTools.save(ConfigTools.SQLITE, json.getString("file"), json);
|
||||
}
|
||||
private void createSqlOfTable(JSONObject table) {
|
||||
String tableName = table.getString("name");
|
||||
try {
|
||||
sql.mkdirs();
|
||||
@ -90,13 +88,13 @@ public class SQLiteManager {
|
||||
}
|
||||
sql.append(");");
|
||||
statement.execute(sql.toString().replace(",);", ");"));
|
||||
ConfigTools.save(ConfigTools.SQLITE,json.getString("file"),json);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void build(JSONObject json) {
|
||||
protected void build(JSONObject json) {
|
||||
try {
|
||||
Class.forName("org.sqlite.JDBC");
|
||||
sql = new File("db" + File.separator + json.getString("file"));
|
||||
@ -110,8 +108,24 @@ public class SQLiteManager {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean setDB(String fileName) {
|
||||
try {
|
||||
Class.forName("org.sqlite.JDBC");
|
||||
sql = new File("db" + File.separator + fileName);
|
||||
if (sql.exists()) {
|
||||
if (conn != null && !conn.isClosed()) {
|
||||
conn.close();
|
||||
}
|
||||
conn = DriverManager.getConnection(url + sql.getAbsolutePath());
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
JSONObject json = JSONObject.parseObject("{\"file\":\"ad.db\",\"table\":{\"name\":\"sql\",\"item\":[{\"name\":\"id\",\"type\":\"int\",\"isNull\":false,\"isKey\":true},{\"name\":\"ticket_tmp\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"ticket\",\"type\":\"String\",\"isNull\":false,\"isKey\":false},{\"name\":\"scannIndex\",\"type\":\"int\",\"isNull\":false,\"isKey\":false}]}}");
|
||||
SQLiteManager.getInstance().build(json);
|
||||
|
||||
}
|
||||
}
|
||||
|
26
web/html/body/ad/ad.html
Normal file
26
web/html/body/ad/ad.html
Normal file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>广告管理</title>
|
||||
<link rel="stylesheet" href="/layui/css/layui.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div id="header"></div>
|
||||
<div class="layui-body" style="left: 200px;">
|
||||
<div id="side"></div>
|
||||
<table id="playlist" lay-filter="ad_table"></table>
|
||||
<div id="footer"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/layui/layui.js"></script>
|
||||
<script src="/js/jquery-3.2.1.js"></script>
|
||||
<script>
|
||||
$('#header').load("/html/header.html");
|
||||
$('#footer').load("/html/footer.html");
|
||||
$('#side').load("/html/body/nas/side.html");
|
||||
let table = layui.table;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user