Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
QM_TJ
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李增强
QM_TJ
Commits
597c9cde
Commit
597c9cde
authored
Jan 25, 2021
by
李增强
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
m
parent
d11e34dd
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
119 additions
and
73 deletions
+119
-73
lib/qm_tj.dart
lib/qm_tj.dart
+8
-41
lib/src/model/tj_app_model.dart
lib/src/model/tj_app_model.dart
+0
-21
lib/src/sql.dart
lib/src/sql.dart
+17
-6
lib/src/tj/app.dart
lib/src/tj/app.dart
+9
-5
lib/src/tj/page.dart
lib/src/tj/page.dart
+85
-0
No files found.
lib/qm_tj.dart
View file @
597c9cde
...
...
@@ -8,10 +8,12 @@ import 'src/db.dart';
import
'src/http.dart'
;
import
'package:crypto/crypto.dart'
as
crypto
;
import
'src/tj/app.dart'
;
import
'src/tj/page.dart'
;
class
QMTJ
{
static
DB
_db
;
static
App
_app
;
static
Page
_page
;
static
void
debug
()
{
Utils
.
debug
();
...
...
@@ -20,6 +22,7 @@ class QMTJ {
static
init
()
async
{
_db
=
DB
();
_app
=
App
(
_db
);
_page
=
Page
(
_db
);
_db
.
init
();
Future
.
delayed
(
Duration
(
seconds:
5
)).
then
((
value
)
{
uploadPageTj
();
...
...
@@ -37,51 +40,15 @@ class QMTJ {
}
/// PAGE 可见
static
void
pageAppear
(
{
int
source
,
String
pageId
,
String
lastPageId
,
Map
<
String
,
dynamic
>
extras
})
async
{
// String extrasStr = json.encode(extras);
// String id = _md5("${pageId}_${lastPageId}_$extrasStr");
// int disappearTime = 0;
// int appearTime = _getDateNow();
// Map<String, dynamic> map = {
// "id": id,
// "source": source,
// "page_id": pageId,
// "last_page_id": lastPageId,
// "appear_time": appearTime,
// "disappear_time": disappearTime,
// "extras": extrasStr,
// };
// await _db.ready;
// log("pageAppear", map);
// await _db.db.insert("page_tj", map);
static
void
onPageResume
(
{
String
pageId
,
String
lastPageId
,
Map
<
String
,
dynamic
>
extras
})
async
{
_page
.
onResume
(
pageId:
pageId
,
lastPageId:
lastPageId
,
extras:
extras
);
}
/// PAGE 不可见
static
void
pageDisappear
(
static
void
onPagePause
(
{
String
pageId
,
String
lastPageId
,
Map
<
String
,
dynamic
>
extras
})
async
{
// String extrasStr = json.encode(extras);
// String id = _md5("${pageId}_${lastPageId}_$extrasStr");
// int disappearTime = _getDateNow();
// Map<String, dynamic> map = {
// "id": id,
// "page_id": pageId,
// "last_page_id": lastPageId,
// "disappear_time": disappearTime,
// "extras": extrasStr,
// };
// await _db.ready;
// log("pageDisappear", map);
// await _db.db.update(
// "page_tj",
// {
// "disappear_time": disappearTime,
// },
// where: "id = ? and disappear_time = 0",
// whereArgs: [id]);
_page
.
onPause
(
pageId:
pageId
,
lastPageId:
lastPageId
,
extras:
extras
);
}
/// 点击
...
...
lib/src/model/tj_app_model.dart
deleted
100644 → 0
View file @
d11e34dd
enum
TJAppModelTypes
{
startUp
,
resume
}
class
TJAppModel
{
String
inter
;
String
appChannel
;
String
appVersion
;
TJAppModelTypes
type
;
int
appearTime
;
int
disappearTime
;
Map
<
String
,
dynamic
>
extras
;
TJAppModel
(
{
this
.
inter
,
this
.
appChannel
,
this
.
appVersion
,
this
.
type
,
this
.
appearTime
,
this
.
disappearTime
,
this
.
extras
});
}
lib/src/sql.dart
View file @
597c9cde
...
...
@@ -16,33 +16,44 @@ String SQL_APP_TJ_TABLE = '''
String
SQL_PAGE_TJ_TABLE
=
'''
CREATE TABLE page_tj (
id VARCHAR(32) ,
source INTEGER(10),
page_id VARCHAR(255),
last_page_id VARCHAR(255),
appear_time INTEGER(10),
disappear_time INTEGER(10),
extras VARCHAR(255)
extras VARCHAR(255),
inter VARCHAR(255),
app_channel VARCHAR(255),
app_version VARCHAR(255)
)
'''
;
// 点击
String
SQL_TAP_TJ_TABLE
=
'''
CREATE TABLE tap_tj (
id VARCHAR(32) ,
source INTEGER(10),
page_id VARCHAR(255),
click_id VARCHAR(255),
click_time INTEGER(10),
extras VARCHAR(255)
extras VARCHAR(255),
inter VARCHAR(255),
app_channel VARCHAR(255),
app_version VARCHAR(255)
)
'''
;
// 曝光
String
SQL_EXPOSURE_TJ_TABLE
=
'''
CREATE TABLE exposure_tj (
id VARCHAR(32) ,
source INTEGER(10),
page_id VARCHAR(255),
exposure_id VARCHAR(255),
exposure_time INTEGER(10),
extras VARCHAR(255)
extras VARCHAR(255),
inter VARCHAR(255),
app_channel VARCHAR(255),
app_version VARCHAR(255)
)
'''
;
lib/src/tj/app.dart
View file @
597c9cde
...
...
@@ -51,20 +51,24 @@ class App {
// 上传数据至接口
void
upload
()
async
{
await
_db
.
ready
;
List
<
Map
>
list
=
await
_db
.
db
.
query
(
"
page
_tj"
,
limit:
100
,
offset:
0
);
List
<
Map
>
list
=
await
_db
.
db
.
query
(
"
app
_tj"
,
limit:
100
,
offset:
0
);
if
(
list
.
length
==
0
)
{
return
;
}
String
deviceId
=
await
Utils
.
getDeviceId
();
bool
result
=
await
Utils
.
uploadData
({
"device_id"
:
deviceId
,
"projects"
:
list
});
bool
result
=
await
Utils
.
uploadData
({
"device_id"
:
deviceId
,
"projects"
:
[
{
"event_name"
:
"app_stage"
,
"event_data"
:
list
}
]
});
if
(
result
)
{
List
<
String
>
ids
=
list
.
map
((
e
)
=>
e
[
'id'
]).
toList
();
await
_db
.
db
.
rawDelete
(
"delete from
page
_tj where id in('
${ids.join("','")}
')"
);
.
rawDelete
(
"delete from
app
_tj where id in('
${ids.join("','")}
')"
);
}
if
(
Utils
.
isDebug
)
{
Utils
.
log
(
"upload_result"
,
{
"ok"
:
result
,
"length"
:
list
.
length
});
Utils
.
log
(
"
app
upload_result"
,
{
"ok"
:
result
,
"length"
:
list
.
length
});
}
if
(
list
.
length
==
100
)
{
upload
();
...
...
lib/src/tj/page.dart
0 → 100644
View file @
597c9cde
import
'dart:convert'
;
import
'../../src/db.dart'
;
import
'../../src/utils.dart'
;
class
Page
{
DB
_db
;
Page
(
DB
db
)
{
_db
=
db
;
}
/// 页面回到前台
void
onResume
(
{
String
pageId
,
String
lastPageId
,
Map
<
String
,
dynamic
>
extras
})
async
{
int
disappearTime
=
0
;
int
appearTime
=
Utils
.
getDateNow
();
String
extrasStr
=
json
.
encode
(
extras
);
String
id
=
Utils
.
md5
(
"
${pageId}
_
${lastPageId}
_
$extrasStr
"
);
Map
<
String
,
dynamic
>
map
=
{
"id"
:
id
,
"page_id"
:
pageId
,
"last_page_id"
:
lastPageId
,
"appear_time"
:
appearTime
,
"disappear_time"
:
disappearTime
,
"extras"
:
json
.
encode
(
extras
)
};
Map
<
String
,
dynamic
>
common
=
await
Utils
.
getCommonParams
();
map
.
addAll
(
common
);
await
_db
.
ready
;
Utils
.
log
(
"page onResume"
,
map
);
await
_db
.
db
.
insert
(
"page_tj"
,
map
);
}
/// 页面进入后台
void
onPause
(
{
String
pageId
,
String
lastPageId
,
Map
<
String
,
dynamic
>
extras
})
async
{
String
extrasStr
=
json
.
encode
(
extras
);
String
id
=
Utils
.
md5
(
"
${pageId}
_
${lastPageId}
_
$extrasStr
"
);
int
disappearTime
=
Utils
.
getDateNow
();
await
_db
.
ready
;
if
(
Utils
.
isDebug
)
{
Utils
.
log
(
"page onPause"
,
{
"id"
:
id
,
"page_id"
:
pageId
,
"last_page_id"
:
lastPageId
,
"disappear_time"
:
disappearTime
,
});
}
await
_db
.
db
.
update
(
"page_tj"
,
{
"disappear_time"
:
disappearTime
,
},
where:
"id = ? and disappear_time = 0"
,
whereArgs:
[
id
]);
}
// 上传数据至接口
void
upload
()
async
{
await
_db
.
ready
;
List
<
Map
>
list
=
await
_db
.
db
.
query
(
"page_tj"
,
limit:
100
,
offset:
0
);
if
(
list
.
length
==
0
)
{
return
;
}
String
deviceId
=
await
Utils
.
getDeviceId
();
bool
result
=
await
Utils
.
uploadData
({
"device_id"
:
deviceId
,
"projects"
:
[
{
"event_name"
:
"page_scan"
,
"event_data"
:
list
}
]
});
if
(
result
)
{
List
<
String
>
ids
=
list
.
map
((
e
)
=>
e
[
'id'
]).
toList
();
await
_db
.
db
.
rawDelete
(
"delete from page_tj where id in('
${ids.join("','")}
')"
);
}
if
(
Utils
.
isDebug
)
{
Utils
.
log
(
"page upload_result"
,
{
"ok"
:
result
,
"length"
:
list
.
length
});
}
if
(
list
.
length
==
100
)
{
upload
();
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment