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