From 2306b9267170070664d89f432e63c5f7c27c80ea Mon Sep 17 00:00:00 2001 From: huangfeng Date: Thu, 22 Aug 2024 15:41:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=AF=8F=E5=A4=A9=E4=B8=8A=E5=9B=BE=E6=95=B0?= =?UTF-8?q?=E5=B9=B6=E4=BF=9D=E5=AD=98=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xymanager_common/entity/MntnDayStat.java | 36 ++ .../entity/MntnDayStatExample.java | 492 ++++++++++++++++++ .../entity/MntnDayStatKey.java | 71 +++ .../xymanager_dao/dao/MntnDayStatMapper.java | 98 ++++ .../resources/mappers/MntnDayStatMapper.xml | 241 +++++++++ .../timeTask/MntnDayStatTask.java | 54 ++ .../impl/MntnDayStatServiceImpl.java | 69 +++ .../service/MntnDayStatService.java | 11 + 8 files changed, 1072 insertions(+) create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStat.java create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatExample.java create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatKey.java create mode 100644 xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/MntnDayStatMapper.java create mode 100644 xymanager_dao/src/main/resources/mappers/MntnDayStatMapper.xml create mode 100644 xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnDayStatTask.java create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MntnDayStatServiceImpl.java create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/service/MntnDayStatService.java diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStat.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStat.java new file mode 100644 index 0000000..c7663a5 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStat.java @@ -0,0 +1,36 @@ +package com.shxy.xymanager_common.entity; + +public class MntnDayStat extends MntnDayStatKey { + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column mntn_day_stat.uploads + * + * @mbg.generated + */ + private String uploads; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column mntn_day_stat.uploads + * + * @return the value of mntn_day_stat.uploads + * + * @mbg.generated + */ + public String getUploads() { + return uploads; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column mntn_day_stat.uploads + * + * @param uploads the value for mntn_day_stat.uploads + * + * @mbg.generated + */ + public void setUploads(String uploads) { + this.uploads = uploads; + } +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatExample.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatExample.java new file mode 100644 index 0000000..63ddcb0 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatExample.java @@ -0,0 +1,492 @@ +package com.shxy.xymanager_common.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class MntnDayStatExample { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + protected String orderByClause; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + protected boolean distinct; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + protected List oredCriteria; + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public MntnDayStatExample() { + oredCriteria = new ArrayList<>(); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public String getOrderByClause() { + return orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public boolean isDistinct() { + return distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public List getOredCriteria() { + return oredCriteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andTermIdIsNull() { + addCriterion("term_id is null"); + return (Criteria) this; + } + + public Criteria andTermIdIsNotNull() { + addCriterion("term_id is not null"); + return (Criteria) this; + } + + public Criteria andTermIdEqualTo(Integer value) { + addCriterion("term_id =", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotEqualTo(Integer value) { + addCriterion("term_id <>", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdGreaterThan(Integer value) { + addCriterion("term_id >", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdGreaterThanOrEqualTo(Integer value) { + addCriterion("term_id >=", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdLessThan(Integer value) { + addCriterion("term_id <", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdLessThanOrEqualTo(Integer value) { + addCriterion("term_id <=", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdIn(List values) { + addCriterion("term_id in", values, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotIn(List values) { + addCriterion("term_id not in", values, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdBetween(Integer value1, Integer value2) { + addCriterion("term_id between", value1, value2, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotBetween(Integer value1, Integer value2) { + addCriterion("term_id not between", value1, value2, "termId"); + return (Criteria) this; + } + + public Criteria andDateIsNull() { + addCriterion("`date` is null"); + return (Criteria) this; + } + + public Criteria andDateIsNotNull() { + addCriterion("`date` is not null"); + return (Criteria) this; + } + + public Criteria andDateEqualTo(Date value) { + addCriterion("`date` =", value, "date"); + return (Criteria) this; + } + + public Criteria andDateNotEqualTo(Date value) { + addCriterion("`date` <>", value, "date"); + return (Criteria) this; + } + + public Criteria andDateGreaterThan(Date value) { + addCriterion("`date` >", value, "date"); + return (Criteria) this; + } + + public Criteria andDateGreaterThanOrEqualTo(Date value) { + addCriterion("`date` >=", value, "date"); + return (Criteria) this; + } + + public Criteria andDateLessThan(Date value) { + addCriterion("`date` <", value, "date"); + return (Criteria) this; + } + + public Criteria andDateLessThanOrEqualTo(Date value) { + addCriterion("`date` <=", value, "date"); + return (Criteria) this; + } + + public Criteria andDateIn(List values) { + addCriterion("`date` in", values, "date"); + return (Criteria) this; + } + + public Criteria andDateNotIn(List values) { + addCriterion("`date` not in", values, "date"); + return (Criteria) this; + } + + public Criteria andDateBetween(Date value1, Date value2) { + addCriterion("`date` between", value1, value2, "date"); + return (Criteria) this; + } + + public Criteria andDateNotBetween(Date value1, Date value2) { + addCriterion("`date` not between", value1, value2, "date"); + return (Criteria) this; + } + + public Criteria andUploadsIsNull() { + addCriterion("uploads is null"); + return (Criteria) this; + } + + public Criteria andUploadsIsNotNull() { + addCriterion("uploads is not null"); + return (Criteria) this; + } + + public Criteria andUploadsEqualTo(String value) { + addCriterion("uploads =", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsNotEqualTo(String value) { + addCriterion("uploads <>", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsGreaterThan(String value) { + addCriterion("uploads >", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsGreaterThanOrEqualTo(String value) { + addCriterion("uploads >=", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsLessThan(String value) { + addCriterion("uploads <", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsLessThanOrEqualTo(String value) { + addCriterion("uploads <=", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsLike(String value) { + addCriterion("uploads like", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsNotLike(String value) { + addCriterion("uploads not like", value, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsIn(List values) { + addCriterion("uploads in", values, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsNotIn(List values) { + addCriterion("uploads not in", values, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsBetween(String value1, String value2) { + addCriterion("uploads between", value1, value2, "uploads"); + return (Criteria) this; + } + + public Criteria andUploadsNotBetween(String value1, String value2) { + addCriterion("uploads not between", value1, value2, "uploads"); + return (Criteria) this; + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table mntn_day_stat + * + * @mbg.generated do_not_delete_during_merge + */ + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatKey.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatKey.java new file mode 100644 index 0000000..684f973 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/MntnDayStatKey.java @@ -0,0 +1,71 @@ +package com.shxy.xymanager_common.entity; + +import java.util.Date; + +public class MntnDayStatKey { + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column mntn_day_stat.term_id + * + * @mbg.generated + */ + private Integer termId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column mntn_day_stat.date + * + * @mbg.generated + */ + private Date date; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column mntn_day_stat.term_id + * + * @return the value of mntn_day_stat.term_id + * + * @mbg.generated + */ + public Integer getTermId() { + return termId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column mntn_day_stat.term_id + * + * @param termId the value for mntn_day_stat.term_id + * + * @mbg.generated + */ + public void setTermId(Integer termId) { + this.termId = termId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column mntn_day_stat.date + * + * @return the value of mntn_day_stat.date + * + * @mbg.generated + */ + public Date getDate() { + return date; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column mntn_day_stat.date + * + * @param date the value for mntn_day_stat.date + * + * @mbg.generated + */ + public void setDate(Date date) { + this.date = date; + } +} \ No newline at end of file diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/MntnDayStatMapper.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/MntnDayStatMapper.java new file mode 100644 index 0000000..ef3689b --- /dev/null +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/MntnDayStatMapper.java @@ -0,0 +1,98 @@ +package com.shxy.xymanager_dao.dao; + +import com.shxy.xymanager_common.entity.MntnDayStat; +import com.shxy.xymanager_common.entity.MntnDayStatExample; +import com.shxy.xymanager_common.entity.MntnDayStatKey; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MntnDayStatMapper { + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + long countByExample(MntnDayStatExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int deleteByExample(MntnDayStatExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int deleteByPrimaryKey(MntnDayStatKey key); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int insert(MntnDayStat row); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int insertSelective(MntnDayStat row); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + List selectByExample(MntnDayStatExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + MntnDayStat selectByPrimaryKey(MntnDayStatKey key); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int updateByExampleSelective(@Param("row") MntnDayStat row, @Param("example") MntnDayStatExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int updateByExample(@Param("row") MntnDayStat row, @Param("example") MntnDayStatExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int updateByPrimaryKeySelective(MntnDayStat row); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table mntn_day_stat + * + * @mbg.generated + */ + int updateByPrimaryKey(MntnDayStat row); +} \ No newline at end of file diff --git a/xymanager_dao/src/main/resources/mappers/MntnDayStatMapper.xml b/xymanager_dao/src/main/resources/mappers/MntnDayStatMapper.xml new file mode 100644 index 0000000..23fdf13 --- /dev/null +++ b/xymanager_dao/src/main/resources/mappers/MntnDayStatMapper.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + term_id, `date`, uploads + + + + + + delete from mntn_day_stat + where term_id = #{termId,jdbcType=INTEGER} + and `date` = #{date,jdbcType=TIMESTAMP} + + + + delete from mntn_day_stat + + + + + + + insert into mntn_day_stat (term_id, `date`, uploads + ) + values (#{termId,jdbcType=INTEGER}, #{date,jdbcType=TIMESTAMP}, #{uploads,jdbcType=VARCHAR} + ) + + + + insert into mntn_day_stat + + + term_id, + + + `date`, + + + uploads, + + + + + #{termId,jdbcType=INTEGER}, + + + #{date,jdbcType=TIMESTAMP}, + + + #{uploads,jdbcType=VARCHAR}, + + + + + + + update mntn_day_stat + + + term_id = #{row.termId,jdbcType=INTEGER}, + + + `date` = #{row.date,jdbcType=TIMESTAMP}, + + + uploads = #{row.uploads,jdbcType=VARCHAR}, + + + + + + + + + update mntn_day_stat + set term_id = #{row.termId,jdbcType=INTEGER}, + `date` = #{row.date,jdbcType=TIMESTAMP}, + uploads = #{row.uploads,jdbcType=VARCHAR} + + + + + + + update mntn_day_stat + + + uploads = #{uploads,jdbcType=VARCHAR}, + + + where term_id = #{termId,jdbcType=INTEGER} + and `date` = #{date,jdbcType=TIMESTAMP} + + + + update mntn_day_stat + set uploads = #{uploads,jdbcType=VARCHAR} + where term_id = #{termId,jdbcType=INTEGER} + and `date` = #{date,jdbcType=TIMESTAMP} + + \ No newline at end of file diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnDayStatTask.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnDayStatTask.java new file mode 100644 index 0000000..6098c51 --- /dev/null +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/timeTask/MntnDayStatTask.java @@ -0,0 +1,54 @@ +package com.shxy.xymanager_framework.timeTask; + +import com.shxy.xymanager_common.entity.Terminals; +import com.shxy.xymanager_common.util.DateUtil; +import com.shxy.xymanager_service.service.MntnDayStatService; +import com.shxy.xymanager_service.service.NewCacheService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.Iterator; +import java.util.Map; + +@Service +@Slf4j +public class MntnDayStatTask { + + @Resource + MntnDayStatService dayStatService; + @Resource + NewCacheService newCacheService; + + @Scheduled(cron = "0 0 10 * * ?") + private void storeAll() { + try { + long total = dayStatService.countTotal(); + int days = 3; + if (total <= 0) { + days = 365; + } + Date today = DateUtil.getTodayZero(); + + Map terminalMap = newCacheService.getTerminalMap(); + Iterator it = terminalMap.keySet().iterator(); + while (it.hasNext()) { + Integer termId = it.next(); + this.storeOne(termId, today, days); + } + } catch (Exception e) { + log.error("MntnDayStatTask.storeAll error.", e); + } + } + + private void storeOne(Integer termId, Date today, int days) { + Date date = today; + for (int i = 0; i < days; i++) { + dayStatService.storeOneDay(date, termId); + date = DateUtil.addDay(date, -1); + } + } + +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MntnDayStatServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MntnDayStatServiceImpl.java new file mode 100644 index 0000000..94b9c0d --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MntnDayStatServiceImpl.java @@ -0,0 +1,69 @@ +package com.shxy.xymanager_service.impl; + + +import com.github.pagehelper.PageHelper; +import com.shxy.xymanager_common.entity.*; +import com.shxy.xymanager_common.model.StatTerm; +import com.shxy.xymanager_dao.dao.MntnDayStatMapper; +import com.shxy.xymanager_dao.dao.MntnRawReportsMapper; +import com.shxy.xymanager_service.service.MntnDayStatService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class MntnDayStatServiceImpl implements MntnDayStatService { + + @Resource + MntnDayStatMapper dayStatMapper; + @Resource + MntnRawReportsMapper rawReportsMapper; + + @Override + public long countTotal() { + MntnDayStatExample example = new MntnDayStatExample(); + example.createCriteria(); + return dayStatMapper.countByExample(example); + } + + @Override + public void storeOneDay(Date day, Integer termId) { + Long start = day.getTime() / 1000; + Long end = start + 60 * 60 * 24; + + MntnRawReportsExample example = new MntnRawReportsExample(); + MntnRawReportsExample.Criteria criteria = example.createCriteria(); + criteria.andTermIdEqualTo(termId); + criteria.andCreateTimeGreaterThanOrEqualTo(start); + criteria.andCreateTimeLessThan(end); + example.setOrderByClause("create_time desc"); + PageHelper.startPage(1, 1); + List reportsList = rawReportsMapper.selectByExample(example); + + if (!CollectionUtils.isEmpty(reportsList)) { + MntnRawReports reports = reportsList.get(0); + reports.makeRawReport(); + Object uploads = reports.getReportMap().get("uploads"); + + MntnDayStat stat = new MntnDayStat(); + stat.setTermId(termId); + stat.setDate(day); + if (uploads != null) { + stat.setUploads(uploads.toString()); + } + MntnDayStat old = dayStatMapper.selectByPrimaryKey(stat); + if (old == null) { + dayStatMapper.insert(stat); + } else { + dayStatMapper.updateByPrimaryKey(stat); + } + } + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MntnDayStatService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MntnDayStatService.java new file mode 100644 index 0000000..1da239d --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MntnDayStatService.java @@ -0,0 +1,11 @@ +package com.shxy.xymanager_service.service; + + +import java.util.Date; + +public interface MntnDayStatService { + + long countTotal(); + + void storeOneDay(Date day, Integer termId); +}