Skip to content

Commit

Permalink
---优化---
Browse files Browse the repository at this point in the history
  • Loading branch information
shenhuajie committed Jun 5, 2017
1 parent 8d1ff97 commit 364d234
Show file tree
Hide file tree
Showing 197 changed files with 3,488 additions and 2,572 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.ibase4j.core.util.WebUtil;
import org.ibase4j.model.sys.SysSession;
import org.ibase4j.model.sys.SysUser;
import org.ibase4j.model.SysSession;
import org.ibase4j.model.SysUser;
import org.ibase4j.service.sys.SysAuthorizeService;
import org.ibase4j.service.sys.SysSessionService;
import org.ibase4j.service.sys.SysUserService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

import org.ibase4j.core.exception.IllegalParameterException;
import org.ibase4j.core.util.WebUtil;
import org.ibase4j.model.sys.SysMenu;
import org.ibase4j.model.sys.SysRoleMenu;
import org.ibase4j.model.sys.SysUserMenu;
import org.ibase4j.model.sys.SysUserRole;
import org.ibase4j.provider.sys.ISysAuthorizeProvider;
import org.ibase4j.model.SysMenu;
import org.ibase4j.model.SysRoleMenu;
import org.ibase4j.model.SysUserMenu;
import org.ibase4j.model.SysUserRole;
import org.ibase4j.provider.ISysAuthorizeProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,112 +1,16 @@
package org.ibase4j.service.sys;

import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.ibase4j.core.Constants;
import org.ibase4j.core.base.BaseService;
import org.ibase4j.core.support.ISysEventService;
import org.ibase4j.core.support.dubbo.spring.annotation.DubboReference;
import org.ibase4j.core.util.DateUtil;
import org.ibase4j.core.util.ExceptionUtil;
import org.ibase4j.core.util.WebUtil;
import org.ibase4j.model.sys.SysEvent;
import org.ibase4j.provider.sys.ISysEventProvider;
import org.ibase4j.model.SysEvent;
import org.ibase4j.provider.ISysEventProvider;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;

import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
import cz.mallat.uasparser.UserAgentInfo;

@Service
public class SysEventService extends BaseService<ISysEventProvider, SysEvent>
implements org.ibase4j.core.support.SysEventService {
public class SysEventService extends BaseService<ISysEventProvider, SysEvent> implements ISysEventService {
@DubboReference
public void setProvider(ISysEventProvider provider) {
this.provider = provider;
}
static UASparser uasParser = null;

// 初始化uasParser对象
static {
try {
uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
} catch (IOException e) {
logger.error("", e);
}
}

private ExecutorService executorService = Executors.newCachedThreadPool();

public void saveEvent(final HttpServletRequest request, final HttpServletResponse response, final Exception ex,
final Long startTime, final Long endTime) {
String userAgent = null;
try {
UserAgentInfo userAgentInfo = uasParser.parse(request.getHeader("user-agent"));
userAgent = userAgentInfo.getOsName() + " " + userAgentInfo.getType() + " " + userAgentInfo.getUaName();
} catch (IOException e) {
logger.error("", e);
}
String path = request.getServletPath();
if (!path.contains("/read/") && !path.contains("/unauthorized") && !path.contains("/forbidden")) {
final SysEvent record = new SysEvent();
Long uid = WebUtil.getCurrentUser();
record.setMethod(request.getMethod());
record.setRequestUri(request.getServletPath());
record.setClientHost(WebUtil.getHost(request));
record.setUserAgent(userAgent);
if (path.contains("/upload/")) {
record.setParameters("");
} else {
record.setParameters(JSON.toJSONString(request.getParameterMap()));
}
record.setStatus(response.getStatus());
record.setCreateBy(uid);
record.setUpdateBy(uid);
final String msg = (String) request.getAttribute("msg");

executorService.submit(new Runnable() {
public void run() {
try { // 保存操作
record.setTitle((String) request.getAttribute(Constants.OPERATION_NAME));
if (StringUtils.isNotBlank(msg)) {
record.setRemark(msg);
} else {
record.setRemark(ExceptionUtil.getStackTraceAsString(ex));
}

update(record);
// 内存信息
if (logger.isDebugEnabled()) {
String message = "开始时间: {}; 结束时间: {}; 耗时: {}s; URI: {}; ";
// 最大内存: {}M; 已分配内存: {}M; 已分配内存中的剩余空间: {}M; 最大可用内存:
// {}M.
// long total = Runtime.getRuntime().totalMemory() /
// 1024 / 1024;
// long max = Runtime.getRuntime().maxMemory() /
// 1024 / 1024;
// long free = Runtime.getRuntime().freeMemory() /
// 1024 / 1024;
// , max, total, free, max - total + free
logger.debug(message, DateUtil.format(startTime, "HH:mm:ss.SSS"),
DateUtil.format(endTime, "HH:mm:ss.SSS"), (endTime - startTime) / 1000.00,
record.getRequestUri());
}
} catch (Exception e) {
logger.error("Save event log cause error :", e);
}
}
});
} else if (path.contains("/unauthorized")) {
logger.warn("用户[{}]没有登录", WebUtil.getHost(request) + "@" + userAgent);
} else if (path.contains("/forbidden")) {
logger.warn("用户[{}]没有权限", WebUtil.getCurrentUser() + "@" + WebUtil.getHost(request) + "@" + userAgent);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import java.util.Map;

import org.ibase4j.core.support.Assert;
import org.ibase4j.model.sys.SysSession;
import org.ibase4j.provider.sys.ISysSessionProvider;
import org.ibase4j.model.SysSession;
import org.ibase4j.provider.ISysSessionProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
import org.springframework.stereotype.Service;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import org.ibase4j.core.support.login.LoginHelper;
import org.ibase4j.core.support.login.ThirdPartyUser;
import org.ibase4j.core.util.WebUtil;
import org.ibase4j.model.sys.SysUser;
import org.ibase4j.provider.sys.ISysUserProvider;
import org.ibase4j.model.SysUser;
import org.ibase4j.provider.ISysUserProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CachePut;
import org.springframework.stereotype.Service;
Expand Down
23 changes: 23 additions & 0 deletions iBase4J-Common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,5 +126,28 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<!-- 反射工具 -->
<dependency>
<groupId>org.db4j</groupId>
<artifactId>reflectasm</artifactId>
<version>1.11.4-2</version>
</dependency>
<!-- 二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>${zxing.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>${zxing.version}</version>
</dependency>
<!-- -->
<dependency>
<groupId>cz.mallat.uasparser</groupId>
<artifactId>uasparser</artifactId>
<version>0.6.2</version>
</dependency>
</dependencies>
</project>
4 changes: 1 addition & 3 deletions iBase4J-Common/src/main/java/org/ibase4j/Generator.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,10 @@ public static void main(String[] args) {
mpg.setDataSource(dsc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setTablePrefix("sys_");// 此处可以修改为您的表前缀
strategy.containsTablePrefix("sys_");// 此处可以修改为您的表前缀
strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
// strategy.setInclude(new String[] { "user" }); // 需要生成的表
// strategy.setExclude(new String[]{"test"}); // 排除生成的表
// 字段名生成策略
strategy.setFieldNaming(NamingStrategy.underline_to_camel);
// 自定义实体父类
// strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
// 自定义实体,公共字段
Expand Down
16 changes: 12 additions & 4 deletions iBase4J-Common/src/main/java/org/ibase4j/core/Constants.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package org.ibase4j.core;

import java.util.Map;

import org.ibase4j.core.util.InstanceUtil;

/**
* 常量表
*
Expand All @@ -12,6 +16,8 @@ public interface Constants {
* 非常遗憾的通知您,程序发生了异常
*/
public static final String Exception_Head = "OH,MY GOD! SOME ERRORS OCCURED! AS FOLLOWS :";
/** 缓存键值 */
public static final Map<Class<?>, String> cacheKeyMap = InstanceUtil.newHashMap();
/** 操作名称 */
public static final String OPERATION_NAME = "OPERATION_NAME";
/** 客户端语言 */
Expand All @@ -20,18 +26,20 @@ public interface Constants {
public static final String WEBTHEME = "webTheme";
/** 当前用户 */
public static final String CURRENT_USER = "CURRENT_USER";
/** 在线用户数量 */
public static final String ALLUSER_NUMBER = "ALLUSER_NUMBER";
/** 登录用户数量 */
public static final String USER_NUMBER = "USER_NUMBER";
/** 上次请求地址 */
public static final String PREREQUEST = "PREREQUEST";
/** 上次请求时间 */
public static final String PREREQUEST_TIME = "PREREQUEST_TIME";
/** 登录地址 */
public static final String LOGIN_URL = "/login.html";
/** 非法请求次数 */
public static final String MALICIOUS_REQUEST_TIMES = "MALICIOUS_REQUEST_TIMES";
/** 缓存命名空间 */
public static final String CACHE_NAMESPACE = "iBase4J:";
/** 在线用户数量 */
public static final String ALLUSER_NUMBER = "SYSTEM:" + CACHE_NAMESPACE + "ALLUSER_NUMBER";
/** TOKEN */
public static final String TOKEN_KEY = CACHE_NAMESPACE + "TOKEN_KEY";

/** 日志表状态 */
public interface JOBSTATE {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
public class DataSourceAspect {
private final Logger logger = LogManager.getLogger();

@Pointcut("execution(* org.ibase4j.provider..*.*(..))")
@Pointcut("execution(* org.ibase4j.service..*.*(..))")
public void aspect() {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import org.ibase4j.core.util.InstanceUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.plugins.Page;
Expand All @@ -23,10 +25,15 @@
* @author ShenHuaJie
* @version 2016年5月20日 下午3:19:19
*/
public abstract class BaseProviderImpl<T extends BaseModel> implements BaseProvider<T> {
public abstract class BaseProviderImpl<T extends BaseModel> implements BaseProvider<T>, ApplicationContextAware {
protected Logger logger = LogManager.getLogger(getClass());
@Autowired
protected BaseMapper<T> mapper;
protected ApplicationContext applicationContext;

public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}

/** 分页查询 */
public static Page<Long> getPage(Map<String, Object> params) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
package org.ibase4j.core.exception;

import org.ibase4j.core.support.HttpCode;

/**
* FTP异常
*
* @author ShenHuaJie
* @version 2016年5月20日 下午3:19:19
*/
@SuppressWarnings("serial")
public class FtpException extends RuntimeException {
public FtpException() {
}
public class FtpException extends BaseException {
public FtpException() {
}

public FtpException(String message) {
super(message);
}

public FtpException(String message) {
super(message);
}
public FtpException(String message, Throwable throwable) {
super(message, throwable);
}

public FtpException(String message, Throwable throwable) {
super(message, throwable);
}
protected HttpCode getHttpCode() {
return HttpCode.INTERNAL_SERVER_ERROR;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
*
*/
package org.ibase4j.core.exception;

import org.ibase4j.core.support.HttpCode;

/**
*
* @author ShenHuaJie
* @version 2017年3月24日 下午9:30:10
*/
@SuppressWarnings("serial")
public class InstanceException extends BaseException {
public InstanceException() {
super();
}

public InstanceException(Throwable t) {
super(t);
}

protected HttpCode getHttpCode() {
return HttpCode.INTERNAL_SERVER_ERROR;
}
}
Loading

0 comments on commit 364d234

Please sign in to comment.