新增广告支持

广告html还没做
This commit is contained in:
yutou 2020-11-09 17:24:15 +08:00
parent 03e5f36795
commit e65bae23ad
4 changed files with 384 additions and 14 deletions

View File

@ -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();
}
}

View 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();
}
}
}

View File

@ -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
View 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>