优化service的目录结构
This commit is contained in:
176
jshERP-boot/src/main/java/com/jsh/erp/service/LogService.java
Normal file
176
jshERP-boot/src/main/java/com/jsh/erp/service/LogService.java
Normal file
@@ -0,0 +1,176 @@
|
||||
package com.jsh.erp.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jsh.erp.constants.BusinessConstants;
|
||||
import com.jsh.erp.datasource.entities.Log;
|
||||
import com.jsh.erp.datasource.entities.LogExample;
|
||||
import com.jsh.erp.datasource.mappers.LogMapper;
|
||||
import com.jsh.erp.datasource.mappers.LogMapperEx;
|
||||
import com.jsh.erp.datasource.vo.LogVo4List;
|
||||
import com.jsh.erp.exception.JshException;
|
||||
import com.jsh.erp.utils.PageUtils;
|
||||
import com.jsh.erp.utils.StringUtil;
|
||||
import com.jsh.erp.utils.Tools;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.jsh.erp.utils.Tools.getLocalIp;
|
||||
|
||||
@Service
|
||||
public class LogService {
|
||||
private Logger logger = LoggerFactory.getLogger(LogService.class);
|
||||
@Resource
|
||||
private LogMapper logMapper;
|
||||
|
||||
@Resource
|
||||
private LogMapperEx logMapperEx;
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
public Log getLog(long id)throws Exception {
|
||||
Log result=null;
|
||||
try{
|
||||
result=logMapper.selectByPrimaryKey(id);
|
||||
}catch(Exception e){
|
||||
JshException.readFail(logger, e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<Log> getLog()throws Exception {
|
||||
LogExample example = new LogExample();
|
||||
List<Log> list=null;
|
||||
try{
|
||||
list=logMapper.selectByExample(example);
|
||||
}catch(Exception e){
|
||||
JshException.readFail(logger, e);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<LogVo4List> select(String operation, String userInfo, String clientIp, String tenantLoginName, String tenantType,
|
||||
String beginTime, String endTime, String content)throws Exception {
|
||||
List<LogVo4List> list=null;
|
||||
try{
|
||||
beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME);
|
||||
endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME);
|
||||
PageUtils.startPage();
|
||||
list=logMapperEx.selectByConditionLog(operation, userInfo, clientIp, tenantLoginName, tenantType, beginTime, endTime,
|
||||
content);
|
||||
if (null != list) {
|
||||
for (LogVo4List log : list) {
|
||||
log.setCreateTimeStr(Tools.getCenternTime(log.getCreateTime()));
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
JshException.readFail(logger, e);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public int insertLog(JSONObject obj, HttpServletRequest request) throws Exception{
|
||||
Log log = JSONObject.parseObject(obj.toJSONString(), Log.class);
|
||||
int result=0;
|
||||
try{
|
||||
result=logMapper.insertSelective(log);
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public int updateLog(JSONObject obj, HttpServletRequest request)throws Exception {
|
||||
Log log = JSONObject.parseObject(obj.toJSONString(), Log.class);
|
||||
int result=0;
|
||||
try{
|
||||
result=logMapper.updateByPrimaryKeySelective(log);
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public int deleteLog(Long id, HttpServletRequest request)throws Exception {
|
||||
int result=0;
|
||||
try{
|
||||
result=logMapper.deleteByPrimaryKey(id);
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public int batchDeleteLog(String ids, HttpServletRequest request)throws Exception {
|
||||
List<Long> idList = StringUtil.strToLongList(ids);
|
||||
LogExample example = new LogExample();
|
||||
example.createCriteria().andIdIn(idList);
|
||||
int result=0;
|
||||
try{
|
||||
result=logMapper.deleteByExample(example);
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void insertLog(String moduleName, String content, HttpServletRequest request)throws Exception{
|
||||
try{
|
||||
Long userId = userService.getUserId(request);
|
||||
if(userId!=null) {
|
||||
String clientIp = getLocalIp(request);
|
||||
String createTime = Tools.getNow3();
|
||||
Long count = logMapperEx.getCountByIpAndDate(userId, moduleName, clientIp, createTime);
|
||||
if(count > 0) {
|
||||
//如果某个用户某个IP在同1秒内连续操作两遍,此时需要删除该redis记录,使其退出,防止恶意攻击
|
||||
redisService.deleteObjectByUserAndIp(userId, clientIp);
|
||||
} else {
|
||||
Log log = new Log();
|
||||
log.setUserId(userId);
|
||||
log.setOperation(moduleName);
|
||||
log.setClientIp(getLocalIp(request));
|
||||
log.setCreateTime(new Date());
|
||||
Byte status = 0;
|
||||
log.setStatus(status);
|
||||
log.setContent(content);
|
||||
logMapper.insertSelective(log);
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void insertLogWithUserId(Long userId, Long tenantId, String moduleName, String content, HttpServletRequest request)throws Exception{
|
||||
try{
|
||||
if(userId!=null) {
|
||||
Log log = new Log();
|
||||
log.setUserId(userId);
|
||||
log.setOperation(moduleName);
|
||||
log.setClientIp(getLocalIp(request));
|
||||
log.setCreateTime(new Date());
|
||||
Byte status = 0;
|
||||
log.setStatus(status);
|
||||
log.setContent(content);
|
||||
log.setTenantId(tenantId);
|
||||
logMapperEx.insertLogWithUserId(log);
|
||||
}
|
||||
}catch(Exception e){
|
||||
JshException.writeFail(logger, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user