Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haoban3.0
haoban-manage3.0
Commits
c27dda31
Commit
c27dda31
authored
Mar 08, 2024
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
好办加好友统计
parent
fe4f7e9a
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
219 additions
and
4 deletions
+219
-4
HaobanTimerApiService.java
.../gic/haoban/manage/api/service/HaobanTimerApiService.java
+7
-0
MemberUnionidRelatedApiService.java
...an/manage/api/service/MemberUnionidRelatedApiService.java
+2
-1
HBQwMonitorBO.java
...ava/com/gic/haoban/manage/service/pojo/HBQwMonitorBO.java
+32
-0
HaobanTimerApiServiceImpl.java
...e/service/service/out/impl/HaobanTimerApiServiceImpl.java
+6
-0
MemberUnionidRelatedApiServiceImpl.java
.../service/out/impl/MemberUnionidRelatedApiServiceImpl.java
+9
-2
FriendSyncNewOperation.java
...an/manage/service/task/friend/FriendSyncNewOperation.java
+1
-1
HBQwMonitorUtils.java
.../com/gic/haoban/manage/service/util/HBQwMonitorUtils.java
+57
-0
InfluxDbMonitorUtils.java
.../gic/haoban/manage/service/util/InfluxDbMonitorUtils.java
+105
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/HaobanTimerApiService.java
View file @
c27dda31
...
...
@@ -112,4 +112,11 @@ public interface HaobanTimerApiService {
*/
public
ServiceResponse
<
Void
>
groupChatQuitTimer
(
String
params
)
;
/**
* 加好友统计
* @param params
*/
public
void
addFrientMonitorTimer
(
String
params
)
;
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/MemberUnionidRelatedApiService.java
View file @
c27dda31
...
...
@@ -161,9 +161,10 @@ public interface MemberUnionidRelatedApiService {
* @param wxEnterpriseId
* @param wxUserId
* @param externalUserId
* from 0 企微加好友通知 1刷新好友
* @return
*/
ExternalUserDTO
getExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
);
ExternalUserDTO
getExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
,
int
from
);
/**
* 清理外部联系人
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/HBQwMonitorBO.java
0 → 100644
View file @
c27dda31
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
;
public
class
HBQwMonitorBO
{
private
String
host
;
private
String
type
;
private
int
num
;
public
String
getHost
()
{
return
host
;
}
public
void
setHost
(
String
host
)
{
this
.
host
=
host
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
int
getNum
()
{
return
num
;
}
public
void
setNum
(
int
num
)
{
this
.
num
=
num
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/HaobanTimerApiServiceImpl.java
View file @
c27dda31
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
;
import
com.gic.haoban.manage.service.service.chat.GroupChatDataService
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -88,4 +89,9 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
this
.
groupChatDataService
.
groupChatQuitTimer
(
params
)
;
return
ServiceResponse
.
success
();
}
@Override
public
void
addFrientMonitorTimer
(
String
params
)
{
HBQwMonitorUtils
.
addByTimer
();
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/MemberUnionidRelatedApiServiceImpl.java
View file @
c27dda31
...
...
@@ -5,6 +5,7 @@ import java.util.concurrent.TimeUnit;
import
java.util.stream.Collectors
;
import
com.gic.haoban.manage.service.util.EventUtils
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -925,6 +926,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return
null
;
}
if
(
qwDTO
.
isSelf
())
{
HBQwMonitorUtils
.
addForFriend
(
0
);
this
.
updateExternalStatus
(
dto
.
getExternalUserid
(),
dto
.
getStaffId
());
String
unionIdJson
=
qywxUserApiService
.
getCorpSelfExternalUseridInfo
(
qwDTO
.
getDkCorpid
(),
qwDTO
.
getSelfSecret
(),
dto
.
getExternalUserid
(),
qwDTO
.
getUrlHost
());
if
(
StringUtils
.
isBlank
(
unionIdJson
))
{
...
...
@@ -932,6 +934,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return
null
;
}
else
if
(
"1"
.
equals
(
unionIdJson
))
{
log
.
info
(
"接口调用被限制"
);
HBQwMonitorUtils
.
addForFriend
(
1
);
throw
new
WxApiLimitException
(
"getCorpSelfExternalUseridInfo接口调用被限制"
);
}
ExternalUserPojo
pojo
=
getExternalUserPojo
(
unionIdJson
,
wxUserId
,
wxEnterpriseId
);
...
...
@@ -960,8 +963,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if
(
SELF_APP
.
equals
(
suiteid
))
{
externalUserDTO
=
this
.
getCorpSelfExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserid
);
}
else
{
HBQwMonitorUtils
.
addForFriend
(
0
);
this
.
updateExternalStatus
(
externalUserid
,
dto
.
getStaffId
());
externalUserDTO
=
this
.
getExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserid
);
externalUserDTO
=
this
.
getExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserid
,
0
);
}
checkQywxSettingApiService
.
saveFriendCallback
(
wxEnterpriseId
,
externalUserDTO
,
dto
);
if
(
externalUserDTO
==
null
)
{
...
...
@@ -1375,7 +1379,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
@Override
public
ExternalUserDTO
getExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
)
{
public
ExternalUserDTO
getExternalUseridInfo
(
String
wxEnterpriseId
,
String
wxUserId
,
String
externalUserId
,
int
from
)
{
log
.
info
(
"查询第三方:wxEnterpriseId:{},wxUserId:{},externalUserId:{}"
,
wxEnterpriseId
,
wxUserId
,
externalUserId
);
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
);
if
(
qwDTO
==
null
)
{
...
...
@@ -1399,6 +1403,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return
null
;
}
else
if
(
"1"
.
equals
(
uJ
))
{
log
.
info
(
"限制次数"
);
if
(
from
==
0
)
{
HBQwMonitorUtils
.
addForFriend
(
1
);
}
throw
new
WxApiLimitException
(
"getExternalUseridInfo接口次数限制"
);
}
String
name
=
""
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/friend/FriendSyncNewOperation.java
View file @
c27dda31
...
...
@@ -63,7 +63,7 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
String
externalUserId
=
dataPre
.
getDataContent
();
String
staffId
=
dataPre
.
getpDataId
()
;
ExternalUserDTO
externalUserDTO
=
memberUnionidRelatedApiService
.
getExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserId
);
ExternalUserDTO
externalUserDTO
=
memberUnionidRelatedApiService
.
getExternalUseridInfo
(
wxEnterpriseId
,
wxUserId
,
externalUserId
,
1
);
if
(
externalUserDTO
==
null
)
{
logger
.
info
(
"第三方外部联系人详情查询失败,staffId={},{},{}"
,
staffId
,
wxUserId
,
externalUserId
);
dealFlag
=
false
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/util/HBQwMonitorUtils.java
0 → 100644
View file @
c27dda31
package
com
.
gic
.
haoban
.
manage
.
service
.
util
;
import
com.gic.haoban.manage.service.pojo.HBQwMonitorBO
;
import
com.gic.redis.data.util.RedisUtil
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.redisson.api.RAtomicLong
;
import
org.springframework.stereotype.Component
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* 好办统计
*/
@Component
public
class
HBQwMonitorUtils
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
HBQwMonitorUtils
.
class
);
private
static
final
List
<
String
>
keyList
=
Arrays
.
asList
(
"hbDatakey:qwFriendNotice"
,
"hbDataKey:addFriendFail"
)
;
/**
* @param index 0加好友企微通知数量 1加好友查询企微接口限制数量
*/
public
static
void
addForFriend
(
int
index
)
{
logger
.
info
(
"addForFriend"
);
String
key
=
keyList
.
get
(
index
)
;
RAtomicLong
cache
=
RedisUtil
.
getRedisClient
().
getAtomicLong
(
key
);
long
val
=
cache
.
addAndGet
(
1
);
}
public
static
Object
query
(
String
sql
)
{
return
InfluxDbMonitorUtils
.
getInstance
().
query
(
sql
);
}
public
static
void
addByTimer
()
{
logger
.
info
(
"add timer"
);
for
(
int
i
=
0
;
i
<
keyList
.
size
();
i
++)
{
String
key
=
keyList
.
get
(
i
)
;
int
count
=
0
;
Object
countObj
=
RedisUtil
.
getCache
(
key
)
;
if
(
null
!=
countObj
)
{
count
=
Integer
.
valueOf
(
countObj
.
toString
())
;
}
RAtomicLong
cache
=
RedisUtil
.
getRedisClient
().
getAtomicLong
(
key
);
cache
.
addAndGet
(-
count
)
;
HBQwMonitorBO
bo
=
new
HBQwMonitorBO
()
;
bo
.
setHost
(
"127.0.0.1"
);
bo
.
setType
(
""
+
i
);
bo
.
setNum
(
count
);
InfluxDbMonitorUtils
.
getInstance
().
friendAdd
(
bo
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/util/InfluxDbMonitorUtils.java
0 → 100644
View file @
c27dda31
package
com
.
gic
.
haoban
.
manage
.
service
.
util
;
import
com.gic.haoban.manage.service.pojo.HBQwMonitorBO
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.influxdb.InfluxDB
;
import
org.influxdb.InfluxDBFactory
;
import
org.influxdb.dto.Point
;
import
org.influxdb.dto.Query
;
import
org.influxdb.dto.QueryResult
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
public
class
InfluxDbMonitorUtils
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
InfluxDbMonitorUtils
.
class
);
private
static
String
url
=
"http://10.0.2.9:8086"
;
private
static
InfluxDB
influxDB
;
private
static
final
String
DB_NAME
=
"haoban_info"
;
private
static
final
String
RP_NAME
=
"default"
;
private
static
volatile
InfluxDbMonitorUtils
instance
=
null
;
public
static
InfluxDbMonitorUtils
getInstance
()
{
if
(
instance
==
null
)
{
synchronized
(
InfluxDbMonitorUtils
.
class
)
{
if
(
instance
==
null
)
{
instance
=
new
InfluxDbMonitorUtils
();
}
}
}
return
instance
;
}
private
InfluxDbMonitorUtils
()
{
influxDB
=
InfluxDBFactory
.
connect
(
url
,
"inflxudb"
,
"inflxudb"
);
if
(!
influxDB
.
describeDatabases
().
contains
(
DB_NAME
))
{
influxDB
.
createDatabase
(
DB_NAME
);
influxDB
.
createRetentionPolicy
(
RP_NAME
,
DB_NAME
,
"7d"
,
1
,
true
);
}
influxDB
.
setDatabase
(
DB_NAME
);
influxDB
.
setRetentionPolicy
(
RP_NAME
);
}
public
InfluxDB
getInfluxDB
()
{
return
influxDB
;
}
public
void
friendAdd
(
HBQwMonitorBO
bo
)
{
influxDB
.
write
(
Point
.
measurement
(
"hb_qw_friend_monitor"
)
.
time
(
System
.
currentTimeMillis
(),
TimeUnit
.
MILLISECONDS
)
.
addField
(
"num"
,
bo
.
getNum
())
.
tag
(
"host"
,
bo
.
getHost
())
.
tag
(
"type"
,
bo
.
getType
())
.
build
());
}
/**
* 查询
*
* @param command 查询语句
*/
public
List
<
Map
<
String
,
Object
>>
query
(
String
command
)
{
QueryResult
query
=
influxDB
.
query
(
new
Query
(
command
,
DB_NAME
));
return
queryResultProcess
(
query
);
}
/**
* @param queryResult
* @desc 查询结果处理
*/
public
List
<
Map
<
String
,
Object
>>
queryResultProcess
(
QueryResult
queryResult
)
{
List
<
Map
<
String
,
Object
>>
mapList
=
new
ArrayList
<>();
List
<
QueryResult
.
Result
>
resultList
=
queryResult
.
getResults
();
//把查询出的结果集转换成对应的实体对象,聚合成list
for
(
QueryResult
.
Result
query
:
resultList
)
{
List
<
QueryResult
.
Series
>
seriesList
=
query
.
getSeries
();
if
(
seriesList
!=
null
&&
seriesList
.
size
()
!=
0
)
{
for
(
QueryResult
.
Series
series
:
seriesList
)
{
List
<
String
>
columns
=
series
.
getColumns
();
String
[]
keys
=
columns
.
toArray
(
new
String
[
columns
.
size
()]);
List
<
List
<
Object
>>
values
=
series
.
getValues
();
if
(
values
!=
null
&&
values
.
size
()
!=
0
)
{
for
(
List
<
Object
>
value
:
values
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
(
keys
.
length
);
for
(
int
i
=
0
;
i
<
keys
.
length
;
i
++)
{
map
.
put
(
keys
[
i
],
value
.
get
(
i
));
}
mapList
.
add
(
map
);
}
}
}
}
}
return
mapList
;
}
}
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