添加访问记录
This commit is contained in:
@ -1,5 +1,9 @@
|
|||||||
package co.yixiang.modules.monitor.domain;
|
package co.yixiang.modules.monitor.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.hibernate.annotations.CreationTimestamp;
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
|
|
||||||
@ -13,28 +17,21 @@ import java.sql.Timestamp;
|
|||||||
* @author Zheng Jie
|
* @author Zheng Jie
|
||||||
* @date 2018-12-13
|
* @date 2018-12-13
|
||||||
*/
|
*/
|
||||||
@Entity
|
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "visits")
|
@TableName( "visits")
|
||||||
public class Visits implements Serializable {
|
public class Visits implements Serializable {
|
||||||
|
|
||||||
@Id
|
@TableId
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Column(unique = true)
|
|
||||||
private String date;
|
private String date;
|
||||||
|
|
||||||
@Column(name = "pv_counts")
|
|
||||||
private Long pvCounts;
|
private Long pvCounts;
|
||||||
|
|
||||||
@Column(name = "ip_counts")
|
|
||||||
private Long ipCounts;
|
private Long ipCounts;
|
||||||
|
|
||||||
@CreationTimestamp
|
@TableField(fill = FieldFill.INSERT)
|
||||||
@Column(name = "create_time")
|
|
||||||
private Timestamp createTime;
|
private Timestamp createTime;
|
||||||
|
|
||||||
@Column(name = "week_day")
|
|
||||||
private String weekDay;
|
private String weekDay;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package co.yixiang.modules.monitor.service;
|
package co.yixiang.modules.monitor.service;
|
||||||
|
|
||||||
|
import co.yixiang.common.service.BaseService;
|
||||||
|
import co.yixiang.modules.monitor.domain.Visits;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -8,7 +10,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* @author Zheng Jie
|
* @author Zheng Jie
|
||||||
* @date 2018-12-13
|
* @date 2018-12-13
|
||||||
*/
|
*/
|
||||||
public interface VisitsService {
|
public interface VisitsService extends BaseService<Visits> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提供给定时任务,每天0点执行
|
* 提供给定时任务,每天0点执行
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
package co.yixiang.modules.monitor.service.impl;
|
package co.yixiang.modules.monitor.service.impl;
|
||||||
|
|
||||||
|
import co.yixiang.common.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.logging.service.mapper.LogMapper;
|
import co.yixiang.logging.service.mapper.LogMapper;
|
||||||
import co.yixiang.modules.monitor.domain.Visits;
|
import co.yixiang.modules.monitor.domain.Visits;
|
||||||
import co.yixiang.modules.monitor.service.VisitsService;
|
import co.yixiang.modules.monitor.service.VisitsService;
|
||||||
|
import co.yixiang.modules.monitor.service.mapper.VisitsMapper;
|
||||||
import co.yixiang.utils.StringUtils;
|
import co.yixiang.utils.StringUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@ -14,65 +17,70 @@ import java.time.LocalDate;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Zheng Jie
|
* @author hupeng
|
||||||
* @date 2018-12-13
|
* @date 2018-12-13
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
|
||||||
public class VisitsServiceImpl implements VisitsService {
|
public class VisitsServiceImpl extends BaseServiceImpl<VisitsMapper, Visits> implements VisitsService {
|
||||||
|
|
||||||
|
|
||||||
private final LogMapper logMapper;
|
private final LogMapper logMapper;
|
||||||
|
|
||||||
public VisitsServiceImpl(LogMapper logMapper) {
|
private final VisitsMapper visitsMapper;
|
||||||
|
|
||||||
|
public VisitsServiceImpl(LogMapper logMapper, VisitsMapper visitsMapper) {
|
||||||
this.logMapper = logMapper;
|
this.logMapper = logMapper;
|
||||||
|
this.visitsMapper = visitsMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save() {
|
public void save() {
|
||||||
LocalDate localDate = LocalDate.now();
|
LocalDate localDate = LocalDate.now();
|
||||||
// Visits visits = logMapper.findByDate(localDate.toString());
|
Visits visits = this.getOne(new QueryWrapper<Visits>().lambda()
|
||||||
// if(visits == null){
|
.eq(Visits::getDate,localDate.toString()));
|
||||||
// visits = new Visits();
|
if(visits == null){
|
||||||
// visits.setWeekDay(StringUtils.getWeekDay());
|
visits = new Visits();
|
||||||
// visits.setPvCounts(1L);
|
visits.setWeekDay(StringUtils.getWeekDay());
|
||||||
// visits.setIpCounts(1L);
|
visits.setPvCounts(1L);
|
||||||
// visits.setDate(localDate.toString());
|
visits.setIpCounts(1L);
|
||||||
// logMapper.insert(visits);
|
visits.setDate(localDate.toString());
|
||||||
// }
|
this.save(visits);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void count(HttpServletRequest request) {
|
public void count(HttpServletRequest request) {
|
||||||
LocalDate localDate = LocalDate.now();
|
LocalDate localDate = LocalDate.now();
|
||||||
// Visits visits = visitsRepository.findByDate(localDate.toString());
|
Visits visits = this.getOne(new QueryWrapper<Visits>().lambda()
|
||||||
// visits.setPvCounts(visits.getPvCounts()+1);
|
.eq(Visits::getDate,localDate.toString()));
|
||||||
// long ipCounts = logRepository.findIp(localDate.toString(), localDate.plusDays(1).toString());
|
visits.setPvCounts(visits.getPvCounts()+1);
|
||||||
// visits.setIpCounts(ipCounts);
|
long ipCounts = logMapper.findIp(localDate.toString(), localDate.plusDays(1).toString());
|
||||||
// visitsRepository.save(visits);
|
visits.setIpCounts(ipCounts);
|
||||||
|
this.save(visits);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object get() {
|
public Object get() {
|
||||||
Map<String,Object> map = new HashMap<>(4);
|
Map<String,Object> map = new HashMap<>(4);
|
||||||
LocalDate localDate = LocalDate.now();
|
LocalDate localDate = LocalDate.now();
|
||||||
// Visits visits = visitsRepository.findByDate(localDate.toString());
|
Visits visits = this.getOne(new QueryWrapper<Visits>().lambda()
|
||||||
// List<Visits> list = visitsRepository.findAllVisits(localDate.minusDays(6).toString(),localDate.plusDays(1).toString());
|
.eq(Visits::getDate,localDate.toString()));
|
||||||
//
|
List<Visits> list = visitsMapper.findAllVisits(localDate.minusDays(6).toString(),localDate.plusDays(1).toString());
|
||||||
// long recentVisits = 0, recentIp = 0;
|
|
||||||
// for (Visits data : list) {
|
long recentVisits = 0, recentIp = 0;
|
||||||
// recentVisits += data.getPvCounts();
|
for (Visits data : list) {
|
||||||
// recentIp += data.getIpCounts();
|
recentVisits += data.getPvCounts();
|
||||||
// }
|
recentIp += data.getIpCounts();
|
||||||
// map.put("newVisits",visits.getPvCounts());
|
}
|
||||||
// map.put("newIp",visits.getIpCounts());
|
map.put("newVisits",visits.getPvCounts());
|
||||||
// map.put("recentVisits",recentVisits);
|
map.put("newIp",visits.getIpCounts());
|
||||||
// map.put("recentIp",recentIp);
|
map.put("recentVisits",recentVisits);
|
||||||
|
map.put("recentIp",recentIp);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package co.yixiang.modules.monitor.service.mapper;
|
||||||
|
|
||||||
|
import co.yixiang.common.mapper.CoreMapper;
|
||||||
|
import co.yixiang.modules.monitor.domain.Visits;
|
||||||
|
import co.yixiang.modules.system.domain.Dept;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
@Mapper
|
||||||
|
public interface VisitsMapper extends CoreMapper<Visits> {
|
||||||
|
@Select("select * FROM visits where create_time between #{time1} and #{time2}")
|
||||||
|
List<Visits> findAllVisits(@Param("time1") String time1, @Param("time2")String time2);
|
||||||
|
}
|
Reference in New Issue
Block a user