Commit 0fe13b58 0fe13b58929a62f7c38aa9cc4490a4998c463701 by 张云鹏

专题数据统计

1 parent 9d6228fa
Showing 48 changed files with 141 additions and 1187 deletions
package com.topdraw.business.config;
public class Constant {
public final String SUBJECT_PV = "SUBJECT_PV";
public final String SUBJECT_UV = "SUBJECT_UV";
public final String SUBJECT_BTN_CLICK_PV = "SUBJECT_BTN_CLICK_PV";
public final String SUBJECT_BTN_CLICK_UV = "SUBJECT_BTN_CLICK_UV";
}
......@@ -20,7 +20,7 @@ import java.sql.Timestamp;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_tpl_param_click")
@Table(name="sub_tpl_param_click")
public class ActTplParamClick implements Serializable {
// ID
......@@ -29,13 +29,12 @@ public class ActTplParamClick implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// subject id
@Column(name = "subject_id", nullable = false)
private Long subjectId;
// 活动事件id
@Column(name = "activity_id", nullable = false)
private Long activityId;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// 活动按钮id
@Column(name = "template_param_value_id", nullable = false)
......@@ -53,6 +52,12 @@ public class ActTplParamClick implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
......@@ -12,5 +12,5 @@ import java.util.Optional;
*/
public interface ActivityBtnPvUvRepository extends JpaRepository<ActTplParamClick, Long>, JpaSpecificationExecutor<ActTplParamClick> {
Optional<ActTplParamClick> findByMarketingActivityIdAndActivityIdAndTemplateParamValueId(Long marketingActivityId, Long activityId, Long templateParamValueId);
Optional<ActTplParamClick> findBySubjectIdAndTemplateParamValueId(Long subjectId, Long templateParamValueId);
}
......
......@@ -12,5 +12,5 @@ public interface ActivityBtnPvUvService {
void update(ActTplParamClick resources);
ActTplParamClick findByMarketingActivityIdAndActivityIdAndTemplateParamValueId(Long marketingActivityId, Long activityId, Long templateParamValueId);
ActTplParamClick findBySubjectIdAndTemplateParamValueId(Long subjectId, Long templateParamValueId);
}
......
package com.topdraw.business.module.activitybtn.all.service.dto;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author XiangHan
* @date 2022-02-26
*/
@Data
public class ActTplParamClickDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 活动事件id
private Long activityId;
// 活动按钮id
private Long templateParamValueId;
// 显示用名称,表示哪个按钮或者内容
private String name;
// pv值
private Long pv;
// uv值
private Long uv;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
......@@ -36,8 +36,8 @@ public class ActivityBtnPvUvServiceImpl implements ActivityBtnPvUvService {
}
@Override
public ActTplParamClick findByMarketingActivityIdAndActivityIdAndTemplateParamValueId(Long marketingActivityId, Long activityId, Long templateParamValueId) {
return PvUvRepository.findByMarketingActivityIdAndActivityIdAndTemplateParamValueId(marketingActivityId, activityId, templateParamValueId).orElseGet(ActTplParamClick::new);
public ActTplParamClick findBySubjectIdAndTemplateParamValueId(Long subjectId, Long templateParamValueId) {
return PvUvRepository.findBySubjectIdAndTemplateParamValueId(subjectId, templateParamValueId).orElseGet(ActTplParamClick::new);
}
}
......
......@@ -20,7 +20,7 @@ import java.sql.Timestamp;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_tpl_param_click_day")
@Table(name="sub_tpl_param_click_day")
public class ActTplParamClickDay implements Serializable {
// ID
......@@ -29,13 +29,13 @@ public class ActTplParamClickDay implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// subject id
@Column(name = "subject_id", nullable = false)
private Long subjectId;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// 活动事件id
@Column(name = "activity_id", nullable = false)
private Long activityId;
// 显示用名称,表示哪个按钮或者内容
@Column(name = "name", nullable = false)
......@@ -57,6 +57,12 @@ public class ActTplParamClickDay implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
......@@ -12,6 +12,6 @@ import java.util.Optional;
*/
public interface ActivityBtnPvUvDayRepository extends JpaRepository<ActTplParamClickDay, Long>, JpaSpecificationExecutor<ActTplParamClickDay> {
Optional<ActTplParamClickDay> findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDay(Long marketingActivityId, Long activityId, Long paramValueId, String day);
Optional<ActTplParamClickDay> findBySubjectIdAndTemplateParamValueIdAndDay(Long subjectId, Long paramValueId, String day);
}
......
......@@ -12,5 +12,5 @@ public interface ActivityBtnPvUvDayService {
void update(ActTplParamClickDay resources);
ActTplParamClickDay findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDay(Long marketingActivityId, Long activityId, Long templateParamValueId, String toString);
ActTplParamClickDay findBySubjectIdAndTemplateParamValueIdAndDay(Long subjectId, Long templateParamValueId, String toString);
}
......
package com.topdraw.business.module.activitybtn.day.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author XiangHan
* @date 2022-02-26
*/
@Data
public class ActTplParamClickDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 活动事件id
private Long activityId;
// 活动按钮id
private Long templateParamValueId;
// 显示用名称,表示哪个按钮或者内容
private String name;
// 日期
private String day;
// pv值
private Integer pv;
// uv值
private Integer uv;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
......@@ -36,9 +36,9 @@ public class ActivityBtnPvUvDayServiceImpl implements ActivityBtnPvUvDayService
}
@Override
public ActTplParamClickDay findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDay(Long marketingActivityId, Long activityId, Long templateParamValueId, String day) {
return this.pvUvDayRepository.findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDay(marketingActivityId,
activityId, templateParamValueId, day).orElseGet(ActTplParamClickDay::new);
public ActTplParamClickDay findBySubjectIdAndTemplateParamValueIdAndDay(Long subjectId, Long templateParamValueId, String day) {
return this.pvUvDayRepository.findBySubjectIdAndTemplateParamValueIdAndDay(subjectId,
templateParamValueId, day).orElseGet(ActTplParamClickDay::new);
}
......
......@@ -20,7 +20,7 @@ import java.sql.Timestamp;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_tpl_param_click_hour")
@Table(name="sub_tpl_param_click_hour")
public class ActTplParamClickHour implements Serializable {
// ID
......@@ -29,13 +29,12 @@ public class ActTplParamClickHour implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// subject id
@Column(name = "subject_id", nullable = false)
private Long subjectId;
// 活动事件id
@Column(name = "activity_id", nullable = false)
private Long activityId;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// 显示用名称,表示哪个按钮或者内容
@Column(name = "name", nullable = false)
......@@ -61,6 +60,12 @@ public class ActTplParamClickHour implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
......@@ -12,5 +12,5 @@ import java.util.Optional;
*/
public interface ActivityBtnPvUvHourRepository extends JpaRepository<ActTplParamClickHour, Long>, JpaSpecificationExecutor<ActTplParamClickHour> {
Optional<ActTplParamClickHour> findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDayAndHour(Long marketingActivityId, Long activityId, Long paramValueId, String day, int hour);
Optional<ActTplParamClickHour> findBySubjectIdAndTemplateParamValueIdAndDayAndHour(Long subjectId, Long paramValueId, String day, int hour);
}
......
......@@ -12,5 +12,5 @@ public interface ActivityBtnPvUvHourService {
void update(ActTplParamClickHour resources);
ActTplParamClickHour findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDayAndHour(Long marketingActivityId, Long activityId, Long paramValueId, String day, int hour);
ActTplParamClickHour findBySubjectIdAndTemplateParamValueIdAndDayAndHour(Long marketingActivityId, Long paramValueId, String day, int hour);
}
......
package com.topdraw.business.module.activitybtn.hour.service.dto;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author XiangHan
* @date 2022-02-26
*/
@Data
public class ActTplParamClickHourDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 活动事件id
private Long activityId;
// 活动按钮id
private Long templateParamValueId;
// 显示用名称,表示哪个按钮或者内容
private String name;
// 日期
private String day;
// 小时(0-23)
private Integer hour;
// pv值
private Integer pv;
// uv值
private Integer uv;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
......@@ -37,10 +37,8 @@ public class ActivityBtnPvUvHourServiceImpl implements ActivityBtnPvUvHourServic
}
@Override
public ActTplParamClickHour findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDayAndHour(Long marketingActivityId,
Long activityId, Long paramValueId,
String day, int hour) {
return PvUvHourRepository.findByMarketingActivityIdAndActivityIdAndTemplateParamValueIdAndDayAndHour(marketingActivityId, activityId,
public ActTplParamClickHour findBySubjectIdAndTemplateParamValueIdAndDayAndHour(Long subjectId, Long paramValueId, String day, int hour) {
return PvUvHourRepository.findBySubjectIdAndTemplateParamValueIdAndDayAndHour(subjectId,
paramValueId, day, hour).
orElseGet(ActTplParamClickHour::new);
}
......
package com.topdraw.business.module.subscribe.all.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_subscribe_pv_uv")
public class SubscribePvUv implements Serializable {
// ID
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
// 产品包id
@Column(name = "package_id", nullable = false)
private String packageId;
// 产品包标识
@Column(name = "package_code")
private String packageCode;
// 产品包名称
@Column(name = "package_name")
private String packageName;
// 订购按钮总点击量
@Column(name = "btn_click_pv", nullable = false)
private Long btnClickPv;
// 订购按钮总点击人数
@Column(name = "btn_click_uv", nullable = false)
private Long btnClickUv;
// 订购成功人数
@Column(name = "subscribe_num", nullable = false)
private Long subscribeNum;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(SubscribePvUv source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.business.module.subscribe.all.repository;
import com.topdraw.business.module.subscribe.all.domain.SubscribePvUv;
import com.topdraw.business.module.subscribe.day.domain.SubscribePvUvDay;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvRepository extends JpaRepository<SubscribePvUv, Long>, JpaSpecificationExecutor<SubscribePvUv> {
Optional<SubscribePvUv> findByMarketingActivityCodeAndPackageId(String code, String packageId);
}
package com.topdraw.business.module.subscribe.all.service;
import com.topdraw.business.module.subscribe.all.domain.SubscribePvUv;
import com.topdraw.business.module.subscribe.all.service.dto.SubscribePvUvDTO;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvService {
/**
* 根据ID查询
* @param id ID
* @return SubscribePvUvDTO
*/
SubscribePvUvDTO findById(Long id);
void create(SubscribePvUv resources);
void update(SubscribePvUv resources);
void delete(Long id);
SubscribePvUv findByMarketingActivityCodeAndPackageId(String code, String packageId);
}
package com.topdraw.business.module.subscribe.all.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Data
public class SubscribePvUvDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 营销活动标识
private String marketingActivityCode;
// 产品包id
private String packageId;
// 产品包标识
private String packageCode;
// 产品包名称
private String packageName;
// 订购按钮总点击量
private Long btnClickPv;
// 订购按钮总点击人数
private Long btnClickUv;
// 订购成功人数
private Long subscribeNum;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
package com.topdraw.business.module.subscribe.all.service.impl;
import com.topdraw.business.module.subscribe.all.domain.SubscribePvUv;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.business.module.subscribe.all.repository.SubscribePvUvRepository;
import com.topdraw.business.module.subscribe.all.service.SubscribePvUvService;
import com.topdraw.business.module.subscribe.all.service.dto.SubscribePvUvDTO;
import com.topdraw.business.module.subscribe.all.service.mapper.SubscribePvUvMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.util.Assert;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class SubscribePvUvServiceImpl implements SubscribePvUvService {
@Autowired
private SubscribePvUvRepository SubscribePvUvRepository;
@Autowired
private SubscribePvUvMapper SubscribePvUvMapper;
@Override
public SubscribePvUvDTO findById(Long id) {
SubscribePvUv SubscribePvUv = SubscribePvUvRepository.findById(id).orElseGet(SubscribePvUv::new);
ValidationUtil.isNull(SubscribePvUv.getId(),"SubscribePvUv","id",id);
return SubscribePvUvMapper.toDto(SubscribePvUv);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(SubscribePvUv resources) {
SubscribePvUvRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SubscribePvUv resources) {
SubscribePvUv SubscribePvUv = SubscribePvUvRepository.findById(resources.getId()).orElseGet(SubscribePvUv::new);
ValidationUtil.isNull( SubscribePvUv.getId(),"SubscribePvUv","id",resources.getId());
SubscribePvUv.copy(resources);
SubscribePvUvRepository.save(SubscribePvUv);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Assert.notNull(id, "The given id must not be null!");
SubscribePvUv SubscribePvUv = SubscribePvUvRepository.findById(id).orElseThrow(
() -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", SubscribePvUv.class, id), 1));
SubscribePvUvRepository.delete(SubscribePvUv);
}
@Override
public SubscribePvUv findByMarketingActivityCodeAndPackageId(String code, String packageId) {
SubscribePvUv SubscribePvUvDay =
SubscribePvUvRepository.findByMarketingActivityCodeAndPackageId(code, packageId).orElseGet(SubscribePvUv::new);
return SubscribePvUvDay;
}
}
package com.topdraw.business.module.subscribe.all.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.module.subscribe.all.domain.SubscribePvUv;
import com.topdraw.business.module.subscribe.all.service.dto.SubscribePvUvDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SubscribePvUvMapper extends BaseMapper<SubscribePvUvDTO, SubscribePvUv> {
}
package com.topdraw.business.module.subscribe.day.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_subscribe_pv_uv_day")
public class SubscribePvUvDay implements Serializable {
// ID
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
// 产品包id
@Column(name = "package_id", nullable = false)
private String packageId;
// 产品包标识
@Column(name = "package_code")
private String packageCode;
// 产品包名称
@Column(name = "package_name")
private String packageName;
// 日期
@Column(name = "day", nullable = false)
private String day;
// 订购按钮总点击量
@Column(name = "btn_click_pv", nullable = false)
private Long btnClickPv;
// 订购按钮总点击人数
@Column(name = "btn_click_uv", nullable = false)
private Long btnClickUv;
// 订购成功人数
@Column(name = "subscribe_num", nullable = false)
private Long subscribeNum;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(SubscribePvUvDay source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.business.module.subscribe.day.repository;
import com.topdraw.business.module.subscribe.day.domain.SubscribePvUvDay;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Optional;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvDayRepository extends JpaRepository<SubscribePvUvDay, Long>, JpaSpecificationExecutor<SubscribePvUvDay> {
Optional<SubscribePvUvDay> findByMarketingActivityCodeAndPackageIdAndDay(String code, String packageId, String day);
}
package com.topdraw.business.module.subscribe.day.service;
import com.topdraw.business.module.subscribe.day.domain.SubscribePvUvDay;
import com.topdraw.business.module.subscribe.day.service.dto.SubscribePvUvDayDTO;
import com.topdraw.business.module.subscribe.day.service.dto.SubscribePvUvDayQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvDayService {
/**
* 查询数据分页
* @param criteria 条件参数
* @param pageable 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(SubscribePvUvDayQueryCriteria criteria, Pageable pageable);
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List<SubscribePvUvDayDTO>
*/
List<SubscribePvUvDayDTO> queryAll(SubscribePvUvDayQueryCriteria criteria);
/**
* 根据ID查询
* @param id ID
* @return SubscribePvUvDayDTO
*/
SubscribePvUvDayDTO findById(Long id);
void create(SubscribePvUvDay resources);
void update(SubscribePvUvDay resources);
void delete(Long id);
SubscribePvUvDay findByMarketingActivityCodeAndPackageIdAndDay(String code, String packageId, String day);
void updateByMarketingActivityCodeAndDayAndPackageId(SubscribePvUvDay subscribePvUvDay);
}
package com.topdraw.business.module.subscribe.day.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Data
public class SubscribePvUvDayDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 营销活动标识
private String marketingActivityCode;
// 产品包id
private String packageId;
// 产品包标识
private String packageCode;
// 产品包名称
private String packageName;
// 日期
private String day;
// 订购按钮总点击量
private Long btnClickPv;
// 订购按钮总点击人数
private Long btnClickUv;
// 订购成功人数
private Long subscribeNum;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
package com.topdraw.business.module.subscribe.day.service.dto;
import lombok.Data;
import com.topdraw.annotation.Query;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Data
public class SubscribePvUvDayQueryCriteria{
}
package com.topdraw.business.module.subscribe.day.service.impl;
import com.topdraw.business.module.subscribe.day.domain.SubscribePvUvDay;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.utils.FileUtil;
import com.topdraw.business.module.subscribe.day.repository.SubscribePvUvDayRepository;
import com.topdraw.business.module.subscribe.day.service.SubscribePvUvDayService;
import com.topdraw.business.module.subscribe.day.service.dto.SubscribePvUvDayDTO;
import com.topdraw.business.module.subscribe.day.service.dto.SubscribePvUvDayQueryCriteria;
import com.topdraw.business.module.subscribe.day.service.mapper.SubscribePvUvDayMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.StringUtils;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class SubscribePvUvDayServiceImpl implements SubscribePvUvDayService {
@Autowired
private SubscribePvUvDayRepository SubscribePvUvDayRepository;
@Autowired
private SubscribePvUvDayMapper SubscribePvUvDayMapper;
@Override
public Map<String, Object> queryAll(SubscribePvUvDayQueryCriteria criteria, Pageable pageable) {
Page<SubscribePvUvDay> page = SubscribePvUvDayRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(SubscribePvUvDayMapper::toDto));
}
@Override
public List<SubscribePvUvDayDTO> queryAll(SubscribePvUvDayQueryCriteria criteria) {
return SubscribePvUvDayMapper.toDto(SubscribePvUvDayRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public SubscribePvUvDayDTO findById(Long id) {
SubscribePvUvDay SubscribePvUvDay = SubscribePvUvDayRepository.findById(id).orElseGet(SubscribePvUvDay::new);
ValidationUtil.isNull(SubscribePvUvDay.getId(),"SubscribePvUvDay","id",id);
return SubscribePvUvDayMapper.toDto(SubscribePvUvDay);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(SubscribePvUvDay resources) {
SubscribePvUvDayRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SubscribePvUvDay resources) {
SubscribePvUvDay SubscribePvUvDay = SubscribePvUvDayRepository.findById(resources.getId()).orElseGet(SubscribePvUvDay::new);
ValidationUtil.isNull( SubscribePvUvDay.getId(),"SubscribePvUvDay","id",resources.getId());
SubscribePvUvDay.copy(resources);
SubscribePvUvDayRepository.save(SubscribePvUvDay);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Assert.notNull(id, "The given id must not be null!");
SubscribePvUvDay SubscribePvUvDay = SubscribePvUvDayRepository.findById(id).orElseThrow(
() -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", SubscribePvUvDay.class, id), 1));
SubscribePvUvDayRepository.delete(SubscribePvUvDay);
}
@Override
public SubscribePvUvDay findByMarketingActivityCodeAndPackageIdAndDay(String code, String packageId, String day) {
SubscribePvUvDay SubscribePvUvDay =
SubscribePvUvDayRepository.findByMarketingActivityCodeAndPackageIdAndDay(code, packageId, day).orElseGet(SubscribePvUvDay::new);
return SubscribePvUvDay;
}
@Override
public void updateByMarketingActivityCodeAndDayAndPackageId(SubscribePvUvDay subscribePvUvDay) {
}
}
package com.topdraw.business.module.subscribe.day.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.module.subscribe.day.domain.SubscribePvUvDay;
import com.topdraw.business.module.subscribe.day.service.dto.SubscribePvUvDayDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SubscribePvUvDayMapper extends BaseMapper<SubscribePvUvDayDTO, SubscribePvUvDay> {
}
package com.topdraw.business.module.subscribe.hour.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Entity
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_subscribe_pv_uv_hour")
public class SubscribePvUvHour implements Serializable {
// ID
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
// 产品包id
@Column(name = "package_id", nullable = false)
private String packageId;
// 产品包标识
@Column(name = "package_code")
private String packageCode;
// 产品包名称
@Column(name = "package_name")
private String packageName;
// 日期
@Column(name = "day", nullable = false)
private String day;
// 小时(0-23)
@Column(name = "hour", nullable = false)
private Integer hour;
// 订购按钮总点击量
@Column(name = "btn_click_pv", nullable = false)
private Long btnClickPv;
// 订购按钮总点击人数
@Column(name = "btn_click_uv", nullable = false)
private Long btnClickUv;
// 订购成功人数
@Column(name = "subscribe_num", nullable = false)
private Long subscribeNum;
// 创建时间
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
public void copy(SubscribePvUvHour source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
package com.topdraw.business.module.subscribe.hour.repository;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
import java.util.Optional;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvHourRepository extends JpaRepository<SubscribePvUvHour, Long>, JpaSpecificationExecutor<SubscribePvUvHour> {
Optional<SubscribePvUvHour> findByMarketingActivityCodeAndPackageIdAndDayAndHour(String code, String packageId, String day, int hour);
}
package com.topdraw.business.module.subscribe.hour.service;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import com.topdraw.business.module.subscribe.hour.service.dto.SubscribePvUvHourDTO;
import com.topdraw.business.module.subscribe.hour.service.dto.SubscribePvUvHourQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @author XiangHan
* @date 2022-04-20
*/
public interface SubscribePvUvHourService {
/**
* 根据ID查询
* @param id ID
* @return SubscribePvUvHourDTO
*/
SubscribePvUvHourDTO findById(Long id);
void create(SubscribePvUvHour resources);
void update(SubscribePvUvHour resources);
void delete(Long id);
SubscribePvUvHour findByMarketingActivityCodeAndPackageIdAndDayAndHour(String code, String packageId, String toString, int hour);
void updateByMarketingActivityCodeAndDayAndHourAndPackageId(SubscribePvUvHour subscribePvUvHour);
}
package com.topdraw.business.module.subscribe.hour.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Data
public class SubscribePvUvHourDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
// 营销活动标识
private String marketingActivityCode;
// 产品包id
private String packageId;
// 产品包标识
private String packageCode;
// 产品包名称
private String packageName;
// 日期
private String day;
// 小时(0-23)
private Integer hour;
// 订购按钮总点击量
private Long btnClickPv;
// 订购按钮总点击人数
private Long btnClickUv;
// 订购成功人数
private Long subscribeNum;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
}
package com.topdraw.business.module.subscribe.hour.service.dto;
import lombok.Data;
import com.topdraw.annotation.Query;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Data
public class SubscribePvUvHourQueryCriteria{
}
package com.topdraw.business.module.subscribe.hour.service.impl;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import com.topdraw.utils.ValidationUtil;
import com.topdraw.utils.FileUtil;
import com.topdraw.business.module.subscribe.hour.repository.SubscribePvUvHourRepository;
import com.topdraw.business.module.subscribe.hour.service.SubscribePvUvHourService;
import com.topdraw.business.module.subscribe.hour.service.dto.SubscribePvUvHourDTO;
import com.topdraw.business.module.subscribe.hour.service.dto.SubscribePvUvHourQueryCriteria;
import com.topdraw.business.module.subscribe.hour.service.mapper.SubscribePvUvHourMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.util.Assert;
import com.topdraw.utils.PageUtil;
import com.topdraw.utils.QueryHelp;
import com.topdraw.utils.StringUtils;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class SubscribePvUvHourServiceImpl implements SubscribePvUvHourService {
@Autowired
private SubscribePvUvHourRepository SubscribePvUvHourRepository;
@Autowired
private SubscribePvUvHourMapper SubscribePvUvHourMapper;
@Override
public SubscribePvUvHourDTO findById(Long id) {
SubscribePvUvHour SubscribePvUvHour = SubscribePvUvHourRepository.findById(id).orElseGet(SubscribePvUvHour::new);
ValidationUtil.isNull(SubscribePvUvHour.getId(),"SubscribePvUvHour","id",id);
return SubscribePvUvHourMapper.toDto(SubscribePvUvHour);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(SubscribePvUvHour resources) {
SubscribePvUvHourRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SubscribePvUvHour resources) {
SubscribePvUvHour SubscribePvUvHour = SubscribePvUvHourRepository.findById(resources.getId()).orElseGet(SubscribePvUvHour::new);
ValidationUtil.isNull( SubscribePvUvHour.getId(),"SubscribePvUvHour","id",resources.getId());
SubscribePvUvHour.copy(resources);
SubscribePvUvHourRepository.save(SubscribePvUvHour);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
Assert.notNull(id, "The given id must not be null!");
SubscribePvUvHour SubscribePvUvHour = SubscribePvUvHourRepository.findById(id).orElseThrow(
() -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", SubscribePvUvHour.class, id), 1));
SubscribePvUvHourRepository.delete(SubscribePvUvHour);
}
@Override
public SubscribePvUvHour findByMarketingActivityCodeAndPackageIdAndDayAndHour(String code, String packageId, String day, int hour) {
SubscribePvUvHour SubscribePvUvHour =
SubscribePvUvHourRepository.findByMarketingActivityCodeAndPackageIdAndDayAndHour(code, packageId, day, hour).orElseGet(SubscribePvUvHour::new);
return SubscribePvUvHour;
}
@Override
public void updateByMarketingActivityCodeAndDayAndHourAndPackageId(SubscribePvUvHour subscribePvUvHour) {
}
}
package com.topdraw.business.module.subscribe.hour.service.mapper;
import com.topdraw.base.BaseMapper;
import com.topdraw.business.module.subscribe.hour.domain.SubscribePvUvHour;
import com.topdraw.business.module.subscribe.hour.service.dto.SubscribePvUvHourDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author XiangHan
* @date 2022-04-20
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SubscribePvUvHourMapper extends BaseMapper<SubscribePvUvHourDTO, SubscribePvUvHour> {
}
......@@ -20,7 +20,7 @@ import java.io.Serializable;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_pv_uv")
@Table(name="sub_pv_uv")
public class PvUv implements Serializable {
// ID
......@@ -29,13 +29,11 @@ public class PvUv implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
@Column(name = "subject_id", nullable = false)
private Long subjectId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// pv值
@Column(name = "pv", nullable = false)
......@@ -45,6 +43,12 @@ public class PvUv implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
package com.topdraw.business.module.uv.all.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
......@@ -15,11 +16,13 @@ public class PvUvDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
private Long subjectId;
private String subjectCode;
private Long lpId;
// 营销活动标识
private String marketingActivityCode;
private Long siteId;
// pv值
private Long pv;
......
......@@ -20,7 +20,7 @@ import java.io.Serializable;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_pv_uv_day")
@Table(name="sub_pv_uv_day")
public class PvUvDay implements Serializable {
// ID
......@@ -29,13 +29,11 @@ public class PvUvDay implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
@Column(name = "subject_id", nullable = false)
private Long subjectId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// 日期
@Column(name = "day", nullable = false)
......@@ -49,6 +47,12 @@ public class PvUvDay implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
......@@ -15,11 +15,13 @@ public class PvUvDayDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
private Long subjectId;
// 营销活动标识
private String marketingActivityCode;
private String subjectCode;
private Long lpId;
private Long siteId;
// 日期
private String day;
......
......@@ -20,7 +20,7 @@ import java.io.Serializable;
@Data
@EntityListeners(AuditingEntityListener.class)
@Accessors(chain = true)
@Table(name="act_pv_uv_hour")
@Table(name="sub_pv_uv_hour")
public class PvUvHour implements Serializable {
// ID
......@@ -29,13 +29,11 @@ public class PvUvHour implements Serializable {
@Column(name = "id")
private Long id;
// 营销活动ID
@Column(name = "marketing_activity_id", nullable = false)
private Long marketingActivityId;
@Column(name = "subject_id", nullable = false)
private Long subjectId;
// 营销活动标识
@Column(name = "marketing_activity_code", nullable = false)
private String marketingActivityCode;
@Column(name = "subject_code", nullable = false)
private String subjectCode;
// 日期
@Column(name = "day", nullable = false)
......@@ -53,6 +51,12 @@ public class PvUvHour implements Serializable {
@Column(name = "uv", nullable = false)
private Integer uv;
@Column(name = "lp_id")
private Long lpId;
@Column(name = "site_id")
private Long siteId;
// 创建时间
@CreatedDate
@Column(name = "create_time")
......
......@@ -15,11 +15,13 @@ public class PvUvHourDTO implements Serializable {
// ID
private Long id;
// 营销活动ID
private Long marketingActivityId;
private Long subjectId;
// 营销活动标识
private String marketingActivityCode;
private String subjectCode;
private Long lpId;
private Long siteId;
// 日期
private String day;
......
......@@ -48,40 +48,18 @@ public class PvUvCalculateTask {
private PvUvHourService pvUvHourService;
public boolean calculateRedisData2Mysql(){
List<Map<String, Object>> allMarketingActivityCode = this.getAllMarketingActivityCode();
List<Map<String, Object>> allSubjectCode = this.getAllSubjectCode();
if (CollectionUtils.isNotEmpty(allMarketingActivityCode)) {
if (CollectionUtils.isNotEmpty(allSubjectCode)) {
for (Map<String, Object> map : allMarketingActivityCode) {
for (Map<String, Object> map : allSubjectCode) {
Object codeObj = map.get("code");
Object idObj = map.get("id");
if (Objects.nonNull(codeObj)&&Objects.nonNull(idObj)) {
String code = codeObj.toString();
String id = idObj.toString();
log.info("marktingActivity ===>>> code ====>>> [{}]",code);
LocalDateTime endTime = (LocalDateTime) map.get("endTime");
if (Objects.nonNull(endTime)) {
log.info("活动结束时间-->>{}",endTime);
// 活动结束删除所有的对应的key
if (endTime.compareTo(LocalDateTime.now()) <= 0) {
log.info("活动结束,活动结束时间30天后删除活动code对应的所有key");
if (endTime.plusDays(30).compareTo(LocalDateTime.now()) <= 0) {
Set<Object> keys = this.redisUtils.keys("*|"+code+"*");
if (CollectionUtils.isNotEmpty(keys)) {
for (Object key : keys) {
this.redisUtils.del(key.toString());
log.info("删除活动code对应的所有的key --->>{},成功",key);
}
}
}
continue;
}
}
log.info("subject ===>>> code ====>>> [{}]",code);
// 小时pv、uv值
PvUvHour pvUvHour1 =
......@@ -96,8 +74,8 @@ public class PvUvCalculateTask {
log.info("hourUv ==>> {}", hourUv);
PvUvHour pvUvHour = new PvUvHour();
pvUvHour.setMarketingActivityId(Long.parseLong(id));
pvUvHour.setMarketingActivityCode(code);
pvUvHour.setSubjectId(Long.parseLong(id));
pvUvHour.setSubjectCode(code);
pvUvHour.setDay(LocalDate.now().toString());
pvUvHour.setHour(LocalDateTime.now().getHour());
pvUvHour.setPv(hourPv);
......@@ -133,8 +111,8 @@ public class PvUvCalculateTask {
if(Objects.isNull(pvUvDay1.getId())){
PvUvDay pvUvDay = new PvUvDay();
pvUvDay.setMarketingActivityId(Long.parseLong(id));
pvUvDay.setMarketingActivityCode(code);
pvUvDay.setSubjectId(Long.parseLong(id));
pvUvDay.setSubjectCode(code);
pvUvDay.setDay(LocalDate.now().toString());
Integer dayPv = this.getDayPV(code);
......@@ -171,8 +149,8 @@ public class PvUvCalculateTask {
PvUv pvUv1 = this.pvUvService.findByMarketingActivityId(Long.parseLong(id));
if(Objects.isNull(pvUv1.getId())){
PvUv pvUv = new PvUv();
pvUv.setMarketingActivityId(Long.parseLong(id));
pvUv.setMarketingActivityCode(code);
pvUv.setSubjectId(Long.parseLong(id));
pvUv.setSubjectCode(code);
Integer allPV = this.getAllPV(code);
Integer allUv = this.getAllUV(code);
......@@ -222,8 +200,8 @@ public class PvUvCalculateTask {
} else {
hourStr = String.valueOf(hour);
}
log.info("getHourPV ==>> key ==>> {}", "MS_PV" + "|" + code +"|" + LocalDate.now()+"|"+hourStr);
Object hourBtnClickPV = this.redisUtils.hget("MS_PV" + "|" + code +"|" + LocalDate.now()+"|"+hourStr, "ALL");
log.info("getHourPV ==>> key ==>> {}", "SUBJECT_PV" + "|" + code +"|" + LocalDate.now()+"|"+hourStr);
Object hourBtnClickPV = this.redisUtils.hget("SUBJECT_PV" + "|" + code +"|" + LocalDate.now()+"|"+hourStr, "ALL");
if (Objects.nonNull(hourBtnClickPV)) {
return Integer.valueOf(hourBtnClickPV.toString());
}
......@@ -232,8 +210,8 @@ public class PvUvCalculateTask {
}
private Integer getDayPV(String code){
log.info("getDayPV ==>> key ==>> {}", "MS_PV" + "|" + code + "|" + LocalDate.now());
Object hourBtnClickPV = this.redisUtils.hget("MS_PV" + "|" + code + "|" + LocalDate.now(), "ALL");
log.info("getDayPV ==>> key ==>> {}", "SUBJECT_PV" + "|" + code + "|" + LocalDate.now());
Object hourBtnClickPV = this.redisUtils.hget("SUBJECT_PV" + "|" + code + "|" + LocalDate.now(), "ALL");
if (Objects.nonNull(hourBtnClickPV)) {
return Integer.valueOf(hourBtnClickPV.toString());
}
......@@ -242,8 +220,8 @@ public class PvUvCalculateTask {
}
private Integer getAllPV(String code){
log.info("getAllPV ==>> key ==>> {}", "MS_PV" + "|" + code);
Object hourBtnClickPV = this.redisUtils.hget("MS_PV" + "|" + code, "ALL");
log.info("getAllPV ==>> key ==>> {}", "SUBJECT_PV" + "|" + code);
Object hourBtnClickPV = this.redisUtils.hget("SUBJECT_PV" + "|" + code, "ALL");
if (Objects.nonNull(hourBtnClickPV)) {
return Integer.valueOf(hourBtnClickPV.toString());
}
......@@ -260,8 +238,8 @@ public class PvUvCalculateTask {
} else {
hourStr = String.valueOf(hour);
}
log.info("getHourUV ==>> key ==>> {}", "MS_UV" + "|" + code + "|" + LocalDate.now()+"|"+hourStr);
Object hourBtnClickUV = this.redisUtils.hget("MS_UV" + "|" + code + "|" + LocalDate.now()+"|"+hourStr, "ALL");
log.info("getHourUV ==>> key ==>> {}", "SUBJECT_UV" + "|" + code + "|" + LocalDate.now()+"|"+hourStr);
Object hourBtnClickUV = this.redisUtils.hget("SUBJECT_UV" + "|" + code + "|" + LocalDate.now()+"|"+hourStr, "ALL");
if (Objects.nonNull(hourBtnClickUV)) {
return Integer.valueOf(hourBtnClickUV.toString());
}
......@@ -271,8 +249,8 @@ public class PvUvCalculateTask {
private Integer getDayUV(String code){
log.info("getDayBtnClickUV ==>> key ==>> {}", "MS_UV" + "|" + code + "|" + LocalDate.now());
Object hourBtnClickUV = this.redisUtils.hget("MS_UV" + "|" + code + "|" + LocalDate.now(), "ALL");
log.info("getDayBtnClickUV ==>> key ==>> {}", "SUBJECT_UV" + "|" + code + "|" + LocalDate.now());
Object hourBtnClickUV = this.redisUtils.hget("SUBJECT_UV" + "|" + code + "|" + LocalDate.now(), "ALL");
if (Objects.nonNull(hourBtnClickUV)) {
return Integer.valueOf(hourBtnClickUV.toString());
}
......@@ -282,8 +260,8 @@ public class PvUvCalculateTask {
private Integer getAllUV(String code){
log.info("getAllUV ==>> key ==>> {}", "MS_UV" + "|" + code);
Object hourBtnClickUV = this.redisUtils.hget("MS_UV" + "|" + code, "ALL");
log.info("getAllUV ==>> key ==>> {}", "SUBJECT_UV" + "|" + code);
Object hourBtnClickUV = this.redisUtils.hget("SUBJECT_UV" + "|" + code, "ALL");
if (Objects.nonNull(hourBtnClickUV)) {
return Integer.valueOf(hourBtnClickUV.toString());
}
......@@ -291,10 +269,10 @@ public class PvUvCalculateTask {
return 0;
}
private List<Map<String,Object>> getAllMarketingActivityCode(){
private List<Map<String,Object>> getAllSubjectCode(){
String sql = "SELECT adr.`id` AS `id`, adr.`code` AS `code`, adr.`end_time` AS `endTime` FROM " +
" `act_marketing_activity` adr WHERE now() BETWEEN `start_time` AND DATE_ADD(`end_time`,INTERVAL 3 DAY)" +
String sql = "SELECT adr.`id` AS `id`, adr.`code` AS `code` FROM " +
" `x_subject` adr " +
" GROUP BY `code`";
return this.jdbcTemplate.queryForList(sql);
......
......@@ -35,11 +35,11 @@ public class TransferActivityBtnClickPvUvScheduleTask {
}
/**
* 统计订购转换数据
* 统计按钮点击数据
*/
@Scheduled(cron = "#{transferActivityBtnClickPvUvScheduleTask.cron()}")
public void calculateSubscribe2Mysql(){
log.info("活动按钮点击次数统计 ===>>> 开始 !!!" + LocalDateTime.now());
log.info("专题按钮点击次数统计 ===>>> 开始 !!!" + LocalDateTime.now());
this.activityBtnClickPvUcCalculateTask.calculateRedisData2Mysql();
}
......
......@@ -39,7 +39,7 @@ public class TransferScheduleTask {
*/
@Scheduled(cron = "#{transferScheduleTask.cron()}")
public void calculatePvUv2Mysql(){
log.info("pv、uv统计 ===>>> 开始 !!!" + LocalDateTime.now());
log.info("专题pv、uv统计 ===>>> 开始 !!!" + LocalDateTime.now());
this.pvUvCalculateTask.calculateRedisData2Mysql();
}
......
package com.topdraw.schedule;
import com.topdraw.business.process.calculate.task.SubscribeCalculateTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/2/26 19:44
* @version: :
* @modified By:
* @since : modified in 2022/2/26 19:44
*/
@Component
@Slf4j
@EnableScheduling
public class TransferSubscribeScheduleTask {
@Autowired
private SubscribeCalculateTask subscribeCalculateTask;
@Value("${cronSubscribe:50 0/5 * * * ?}")
// @Value("0/5 * * * * ?")
private String cron;
public String cron(){
return cron;
}
/**
* 统计订购转换数据
*/
@Scheduled(cron = "#{transferSubscribeScheduleTask.cron()}")
// @Scheduled(cron = "0/5 * * * * ?")
public void calculateSubscribe2Mysql(){
log.info("订购数据统计 ===>>> 开始 !!!" + LocalDateTime.now());
this.subscribeCalculateTask.calculateSubscribe2Mysql();
}
}