Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
aserver
Project
Project
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
15所TongWeb
aserver
Commits
36ae69dc
Commit
36ae69dc
authored
Apr 08, 2021
by
胡文斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
使用公共包方法
parent
ea7930fa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
152 additions
and
317 deletions
+152
-317
pom.xml
pom.xml
+5
-0
MainConfig.java
...in/java/com/archser/aserver/common/config/MainConfig.java
+7
-9
HelperController.java
...java/com/archser/aserver/controller/HelperController.java
+0
-0
IndexController.java
.../java/com/archser/aserver/controller/IndexController.java
+0
-0
MenuController.java
...n/java/com/archser/aserver/controller/MenuController.java
+3
-3
MessageController.java
...ava/com/archser/aserver/controller/MessageController.java
+128
-127
GoodSync.java
src/main/java/com/archser/aserver/itask/GoodSync.java
+9
-9
InfoOrgan.java
src/main/java/com/archser/aserver/util/redis/InfoOrgan.java
+0
-40
InfoSystem.java
src/main/java/com/archser/aserver/util/redis/InfoSystem.java
+0
-82
InfoUser.java
src/main/java/com/archser/aserver/util/redis/InfoUser.java
+0
-47
No files found.
pom.xml
View file @
36ae69dc
...
...
@@ -126,6 +126,11 @@
<artifactId>
jfinal
</artifactId>
<version>
${jfinal.version}
</version>
</dependency>
<dependency>
<groupId>
com.archser
</groupId>
<artifactId>
archser-commons
</artifactId>
<version>
1.2.2
</version>
</dependency>
<!-- 东方通依赖 -->
<!-- <dependency>
<groupId>io.swagger</groupId>
...
...
src/main/java/com/archser/aserver/common/config/MainConfig.java
View file @
36ae69dc
package
com
.
archser
.
aserver
.
common
.
config
;
import
com.alibaba.druid.filter.logging.Log4jFilter
;
import
com.alibaba.druid.filter.logging.LogFilter
;
import
com.alibaba.druid.filter.stat.StatFilter
;
import
com.archser.aserver.common.config.plugins.DBUpgrade
;
import
com.archser.aserver.common.config.plugins.RedisConfig
;
import
com.archser.aserver.controller.*
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.itask.GoodSync
;
import
com.archser.aserver.model._MappingKit
;
import
com.archser.aserver.util.SharedDisk
;
import
com.archser.aserver.websocket.MessageWebSocket
;
import
com.archser.commons.AppStartConfig
;
import
com.archser.plugin.redis.RedisConfig
;
import
com.jfinal.config.*
;
import
com.jfinal.ext.handler.RequestHandler
;
import
com.jfinal.ext.handler.UrlSkipHandler
;
import
com.jfinal.ext.proxy.CglibProxyFactory
;
import
com.jfinal.json.MixedJsonFactory
;
import
com.jfinal.kit.Kv
;
import
com.jfinal.kit.PathKit
;
import
com.jfinal.kit.Prop
;
import
com.jfinal.kit.PropKit
;
import
com.jfinal.plugin.activerecord.ActiveRecordPlugin
;
import
com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory
;
import
com.jfinal.plugin.activerecord.Db
;
import
com.jfinal.plugin.activerecord.Record
;
import
com.jfinal.plugin.activerecord.dialect.*
;
import
com.jfinal.plugin.activerecord.dialect.DialectFactory
;
import
com.jfinal.plugin.cron4j.Cron4jPlugin
;
import
com.jfinal.plugin.druid.DruidPlugin
;
import
com.jfinal.plugin.druid.RecordSqlFilter
;
...
...
@@ -32,6 +27,7 @@ import com.jfinal.render.ViewType;
import
com.jfinal.server.undertow.UndertowServer
;
import
com.jfinal.server.undertow.WebBuilder
;
import
com.jfinal.template.Engine
;
import
java.io.File
;
public
class
MainConfig
extends
JFinalConfig
{
...
...
@@ -181,12 +177,13 @@ public class MainConfig extends JFinalConfig {
/******** 在此添加数据库 表-Model 映射 *********/
// 如果使用了JFinal Model 生成器 生成了BaseModel 把下面注释解开即可
_MappingKit
.
mapping
(
arp
);
AppStartConfig
.
configActiveRecordPlugin
(
arp
);
// 添加到插件列表中
me
.
add
(
dbPlugin
);
me
.
add
(
arp
);
// 配置Redis信息,自动判断单实例和集群并加入JFinal插件列表
new
RedisConfig
(
me
,
p
);
new
RedisConfig
(
me
);
// 添加定时任务
me
.
add
(
new
Cron4jPlugin
(
PropKit
.
append
(
"task.properties"
)));
...
...
@@ -222,6 +219,7 @@ public class MainConfig extends JFinalConfig {
*/
@Override
public
void
onStart
()
{
AppStartConfig
.
onStart
(
"aserver"
);
// new GoodSync().run();
}
...
...
src/main/java/com/archser/aserver/controller/HelperController.java
View file @
36ae69dc
This diff is collapsed.
Click to expand it.
src/main/java/com/archser/aserver/controller/IndexController.java
View file @
36ae69dc
This diff is collapsed.
Click to expand it.
src/main/java/com/archser/aserver/controller/MenuController.java
View file @
36ae69dc
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.FinalStringUtil
;
import
com.archser.aserver.util.redis.InfoSystem
;
import
com.archser.aserver.util.redis.InfoUser
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
...
...
@@ -10,11 +8,13 @@ import java.util.List;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.archser.commons.db.InfoSystem
;
import
com.archser.commons.db.InfoUser
;
import
com.archser.commons.services.LogService
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Menu
;
import
com.archser.aserver.model.MenuStar
;
import
com.archser.aserver.model.System
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.MenuService
;
import
com.archser.aserver.util.CollectionUtil
;
import
com.jfinal.aop.Inject
;
...
...
src/main/java/com/archser/aserver/controller/MessageController.java
View file @
36ae69dc
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.util.FinalStringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.log4j.Logger
;
import
com.alibaba.fastjson.JSON
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.core.Controller
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.plugin.activerecord.Page
;
/**
* 消息相关
*
* @author dgq
*
*/
public
class
MessageController
extends
Controller
{
@Inject
LogService
logService
;
@Inject
MessageService
messageService
;
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
/**
* 获取未读消息数量
*/
public
void
count
()
{
String
username
=
this
.
getAttr
(
"username"
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
}
/**
* menu unread:未读,readed:已读,其他;查询所有
*/
public
void
getMessagePageData
()
{
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
String
username
=
this
.
getAttr
(
"username"
);
String
menu
=
this
.
getPara
(
"menu"
);
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
String
likeVal
=
this
.
getPara
(
"likeVal"
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
if
(
page
!=
null
)
{
renderJson
(
Ret
.
ok
(
"page"
,
page
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
}
}
/**
* 标记为已读
*/
public
void
markRead
()
{
int
id
=
this
.
getParaToInt
(
"id"
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
}
/**
* 删除消息
*/
public
void
deleteMessage
()
{
String
ids
=
this
.
getPara
(
"ids"
);
if
(
ids
.
length
()
==
0
)
{
renderJson
(
Ret
.
fail
());
}
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
if
(
deleted
)
{
renderJson
(
Ret
.
ok
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
}
else
{
renderJson
(
Ret
.
fail
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
}
}
/**
* 根据指定用户更新websocket的消息
*/
@Clear
(
JwtInterceptor
.
class
)
public
void
refreshMessage
()
{
try
{
String
userId
=
this
.
getPara
(
"userId"
);
if
(
StrKit
.
isBlank
(
userId
))
{
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
}
logger
.
error
(
"接受到消息刷新"
+
userId
);
if
(
StrKit
.
notBlank
(
userId
))
{
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"刷新消息出错"
,
e
);
renderJson
(
Ret
.
fail
(
"msg"
,
"刷新消息出错"
));
}
}
/**
* LiuKexin 20210402 批量标记为已读,且将通知性消息标为已读,下载或跳转的消息不批量已读
*/
public
void
allMsgReaded
()
{
String
username
=
this
.
getAttr
(
"username"
);
Ret
allMsgReaded
=
messageService
.
allMsgReaded
(
username
);
renderJson
(
allMsgReaded
);
}
}
package
com
.
archser
.
aserver
.
controller
;
import
com.archser.aserver.service.MessageService
;
import
com.archser.aserver.util.FinalStringUtil
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.log4j.Logger
;
import
com.alibaba.fastjson.JSON
;
import
com.archser.aserver.interceptor.JwtInterceptor
;
import
com.archser.aserver.model.Message
;
import
com.archser.aserver.service.LogService
;
import
com.archser.aserver.websocket.MessageRefreshTrigger
;
import
com.jfinal.aop.Clear
;
import
com.jfinal.aop.Inject
;
import
com.jfinal.core.Controller
;
import
com.jfinal.kit.Ret
;
import
com.jfinal.kit.StrKit
;
import
com.jfinal.plugin.activerecord.Page
;
/**
* 消息相关
*
* @author dgq
*
*/
public
class
MessageController
extends
Controller
{
@Inject
LogService
logService
;
@Inject
MessageService
messageService
;
private
static
final
Logger
logger
=
Logger
.
getLogger
(
MessageController
.
class
);
/**
* 获取未读消息数量
*/
public
void
count
()
{
String
username
=
this
.
getAttr
(
"username"
);
Long
count
=
messageService
.
getCountByRead
(
null
,
username
);
this
.
renderJson
(
Ret
.
ok
(
"count"
,
count
));
}
/**
* menu unread:未读,readed:已读,其他;查询所有
*/
public
void
getMessagePageData
()
{
int
pageNumber
=
this
.
getParaToInt
(
"pageNumber"
);
int
pageSize
=
this
.
getParaToInt
(
"pageSize"
);
String
username
=
this
.
getAttr
(
"username"
);
String
menu
=
this
.
getPara
(
"menu"
);
/** 2020年7月1日 添加模糊查询 yangchengwu YZJ-3915*/
String
likeVal
=
this
.
getPara
(
"likeVal"
);
Page
<
Message
>
page
=
messageService
.
getMessagePageData
(
pageNumber
,
pageSize
,
username
,
menu
,
likeVal
);
if
(
page
!=
null
)
{
renderJson
(
Ret
.
ok
(
"page"
,
page
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"获取消息列表失败"
));
}
}
/**
* 标记为已读
*/
public
void
markRead
()
{
int
id
=
this
.
getParaToInt
(
"id"
);
boolean
markRead
=
this
.
messageService
.
markRead
(
id
);
renderJson
(
markRead
?
Ret
.
ok
():
Ret
.
fail
());
}
/**
* 删除消息
*/
public
void
deleteMessage
()
{
String
ids
=
this
.
getPara
(
"ids"
);
if
(
ids
.
length
()
==
0
)
{
renderJson
(
Ret
.
fail
());
}
boolean
deleted
=
this
.
messageService
.
deleteMessage
(
ids
.
split
(
","
));
if
(
deleted
)
{
renderJson
(
Ret
.
ok
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-"
+
"-已删除了"
+
ids
.
split
(
","
).
length
+
"个消息"
,
FinalStringUtil
.
DELETE
);
}
else
{
renderJson
(
Ret
.
fail
());
logService
.
saveAsLog
(
"operate"
,
"个人首页-消息中心-删除消息-删除消息失败"
,
FinalStringUtil
.
DELETE
);
}
}
/**
* 根据指定用户更新websocket的消息
*/
@Clear
(
JwtInterceptor
.
class
)
public
void
refreshMessage
()
{
try
{
String
userId
=
this
.
getPara
(
"userId"
);
if
(
StrKit
.
isBlank
(
userId
))
{
userId
=
IOUtils
.
toString
(
this
.
getRequest
().
getInputStream
());
userId
=
JSON
.
parseObject
(
userId
).
getString
(
"userId"
);
}
logger
.
error
(
"接受到消息刷新"
+
userId
);
if
(
StrKit
.
notBlank
(
userId
))
{
boolean
refrashed
=
MessageRefreshTrigger
.
refresh
(
userId
);
renderJson
(
Ret
.
ok
(
"refrashed"
,
refrashed
));
}
else
{
renderJson
(
Ret
.
fail
(
"msg"
,
"userId为null或userId不是一个数字"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"刷新消息出错"
,
e
);
renderJson
(
Ret
.
fail
(
"msg"
,
"刷新消息出错"
));
}
}
/**
* LiuKexin 20210402 批量标记为已读,且将通知性消息标为已读,下载或跳转的消息不批量已读
*/
public
void
allMsgReaded
()
{
String
username
=
this
.
getAttr
(
"username"
);
Ret
allMsgReaded
=
messageService
.
allMsgReaded
(
username
);
renderJson
(
allMsgReaded
);
}
}
src/main/java/com/archser/aserver/itask/GoodSync.java
View file @
36ae69dc
package
com
.
archser
.
aserver
.
itask
;
import
com.archser.
aserver.model.
Organ
;
import
com.archser.
aserver.model.
System
;
import
com.archser.
aserver.model.
User
;
import
com.archser.
aserver.util.redis.Info
Organ
;
import
com.archser.
aserver.util.redis.Info
System
;
import
com.archser.
aserver.util.redis.Info
User
;
import
com.archser.
commons.db.Info
Organ
;
import
com.archser.
commons.db.Info
System
;
import
com.archser.
commons.db.Info
User
;
import
com.archser.
commons.model.As
Organ
;
import
com.archser.
commons.model.As
System
;
import
com.archser.
commons.model.As
User
;
import
com.jfinal.kit.PropKit
;
import
com.jfinal.plugin.cron4j.ITask
;
...
...
@@ -25,13 +25,13 @@ public class GoodSync implements ITask {
if
(
PropKit
.
getBoolean
(
"updateRedis"
))
{
// 同步用户数据
java
.
lang
.
System
.
err
.
println
(
"同步用户信息"
);
User
.
dao
.
findAll
().
forEach
(
InfoUser:
:
saveUser
);
As
User
.
dao
.
findAll
().
forEach
(
InfoUser:
:
saveUser
);
// 同步系统数据
java
.
lang
.
System
.
err
.
println
(
"同步系统数据"
);
System
.
dao
.
findAll
().
forEach
(
InfoSystem:
:
saveSystem
);
As
System
.
dao
.
findAll
().
forEach
(
InfoSystem:
:
saveSystem
);
// 同步机构数据
java
.
lang
.
System
.
err
.
println
(
"同步机构数据"
);
Organ
.
dao
.
findAll
().
forEach
(
InfoOrgan:
:
saveOrgan
);
As
Organ
.
dao
.
findAll
().
forEach
(
InfoOrgan:
:
saveOrgan
);
}
}
...
...
src/main/java/com/archser/aserver/util/redis/InfoOrgan.java
deleted
100644 → 0
View file @
ea7930fa
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.archser.aserver.model.Organ
;
/**
* 20201127 lidecai
* 操作redis中的机构信息
*/
public
class
InfoOrgan
{
private
static
final
String
ORGAN
=
"ORGAN_"
;
/**
* 保存机构信息
*
* @param organ
* @return
*/
public
static
boolean
saveOrgan
(
Organ
organ
)
{
return
RedisConvert
.
saveObject
(
ORGAN
+
organ
.
getId
(),
organ
);
}
/**
* 获取机构信息
* @param organId
* @return
*/
public
static
Organ
getOrgan
(
Integer
organId
){
Object
organObj
=
RedisConvert
.
getObject
(
ORGAN
+
organId
);
Organ
organ
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
organObj
),
Organ
.
class
);
if
(
organ
==
null
){
organ
=
Organ
.
dao
.
findById
(
organId
);
saveOrgan
(
organ
);
}
return
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
organObj
),
Organ
.
class
);
}
}
src/main/java/com/archser/aserver/util/redis/InfoSystem.java
deleted
100644 → 0
View file @
ea7930fa
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.alibaba.fastjson.JSONObject
;
import
com.archser.aserver.model.System
;
import
com.jfinal.plugin.redis.Redis
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* 获取系统信息 20201126 lidecai
*/
public
class
InfoSystem
{
private
static
final
String
_INFO
=
"_INFO"
;
private
static
final
String
SYSTEM
=
"SYSTEM_"
;
/**
* 根据名称获取系统信息
*
* @param systemName
* @return
*/
public
static
System
getSystem
(
String
systemName
)
{
Object
object
=
RedisConvert
.
getObject
(
SYSTEM
+
systemName
+
_INFO
);
System
system
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
object
),
System
.
class
);
if
(
system
==
null
||
system
.
getKeyid
()
==
null
)
{
return
getSystemByDatabase
(
systemName
);
}
return
system
;
}
/**
* 备用方案,从数据库获取
*
* @param systemName
* @return
*/
public
static
System
getSystemByDatabase
(
String
systemName
)
{
System
system
=
System
.
dao
.
template
(
"getSystemPrivatekey"
,
systemName
).
findFirst
();
RedisConvert
.
saveObject
(
SYSTEM
+
systemName
+
_INFO
,
system
);
return
system
;
}
/**
* 获取所有系统
* @return
*/
public
static
List
<
System
>
getAllSystem
()
{
Set
<
String
>
keys
=
Redis
.
use
().
keys
(
SYSTEM
+
"*"
);
List
<
System
>
systemList
=
new
ArrayList
<
System
>();
keys
.
forEach
(
system
->
{
systemList
.
add
(
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
Redis
.
use
().
hgetAll
(
system
)),
System
.
class
));
});
return
systemList
;
}
/**
* 保存系统信息
*
* @param system
* @return
*/
public
static
boolean
saveSystem
(
System
system
)
{
return
RedisConvert
.
saveObject
(
SYSTEM
+
system
.
getName
()
+
_INFO
,
system
);
}
/**
* 删除系统信息
*
* @param systemName
* @return
*/
public
static
boolean
deleteSystem
(
String
systemName
)
{
return
RedisConvert
.
deleteKey
(
SYSTEM
+
systemName
+
_INFO
)
>
0
;
}
}
src/main/java/com/archser/aserver/util/redis/InfoUser.java
deleted
100644 → 0
View file @
ea7930fa
package
com
.
archser
.
aserver
.
util
.
redis
;
import
com.archser.aserver.model.User
;
import
com.jfinal.kit.JsonKit
;
/**
* 20201127 lidecai 操作redis中的用户信息
*/
public
class
InfoUser
{
private
static
final
String
_INFO
=
"_INFO"
;
private
static
final
String
USER
=
"USER_"
;
/**
* 获取用户信息
*
* @param userName
* @return
*/
public
static
User
getUser
(
String
userName
)
{
Object
object
=
RedisConvert
.
getObject
(
USER
+
userName
+
_INFO
);
User
user
=
JsonKit
.
parse
(
JsonKit
.
toJson
(
object
),
User
.
class
);
if
(
user
.
getId
()
==
null
)
{
User
userByDataBase
=
getUserByDataBase
(
userName
);
saveUser
(
userByDataBase
);
return
userByDataBase
;
}
return
user
;
}
public
static
boolean
saveUser
(
User
user
)
{
return
RedisConvert
.
saveObject
(
USER
+
user
.
getUsername
()
+
_INFO
,
user
);
}
/**
* 备用方案,从数据库获取用户信息
*
* @param userName
* @return
*/
public
static
User
getUserByDataBase
(
String
userName
)
{
return
User
.
dao
.
template
(
"getUser"
,
userName
).
findFirst
();
}
}
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