Browse Source

分页获取客户id方法

dev_shibei_match
jianjun 5 years ago
parent
commit
65629d13ca
  1. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java
  2. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java
  3. 42
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java
  4. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java

@ -20,6 +20,7 @@ package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.stats.DimCustomerEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -35,12 +36,11 @@ public interface DimCustomerDao extends BaseDao<DimCustomerEntity> {
/**
* desc: 分页获取客户id
*
* @param pageNo
* @param offset
* return: List<String>
* @param pageSize
* @param offset return: List<String>
* @date: 2020/6/17 16:33
* @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn
*/
List<String> selectCustomerIdPage(Integer pageNo, int offset);
List<String> selectCustomerIdPage(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
}

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsPublicityService.java

@ -1,6 +1,8 @@
package com.epmet.service;
import java.util.Date;
public interface StatsPublicityService {
/**
* desc: 统计宣传能力的汇总信息
@ -10,6 +12,6 @@ public interface StatsPublicityService {
* @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn
*/
Boolean publicitySummary();
Boolean publicitySummary(Date statsDate);
}

42
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsPublicityServiceImpl.java

@ -3,7 +3,6 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dto.stats.ArticleGridPublishedSummaryDTO;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
import com.epmet.service.StatsPublicityService;
import com.epmet.service.stats.*;
import com.epmet.service.voice.ArticlePublishRangeService;
@ -47,52 +46,31 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
private FactArticlePublishedGridDailyService factArticlePublishedGridDailyService;
@Override
public Boolean publicitySummary() {
public Boolean publicitySummary(Date statsDate) {
if (statsDate == null) {
statsDate = DateUtils.addDateDays(new Date(), -1);
}
int pageNo = 1;
int pageSize = 100;
List<String> customerIdList = null;
do {
customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize);
if (!CollectionUtils.isEmpty(customerIdList)) {
customerIdList.forEach(customerId -> {
//获取所有网格
for (String customerId : customerIdList) {//获取所有网格
List<DimGridEntity> gridDTOList = dimGridService.getGridListByCustomerId(customerId);
if (!CollectionUtils.isEmpty(gridDTOList)) {
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
}
});
}
}
} while (!CollectionUtils.isEmpty(customerIdList) || customerIdList.size() >= pageSize);
return null;
}
private List<ArticleGridPublishedSummaryDTO> statsPublishArticle(String customerId, Date statsDate) {
if (statsDate == null) {
statsDate = DateUtils.addDateDays(new Date(), -1);
}
//昨日的 dateId
String dateId = DateUtils.format(statsDate, DateUtils.DATE_PATTERN_YYYYMMDD);
//1.先查询昨天的 有没有数据 有则 昨日发布文章总数 = 昨日的发布文章数增量 + 统计表中已有的昨日的网格总数 ;
// 否则 昨日发布文章总数 = 发布范围表中计算所有发布文章总数
List<ArticleGridPublishedSummaryDTO> articleCount = null;
List<FactArticlePublishedAgencyDailyEntity> gridBeforeData = factArticlePublishedGridDailyService.getByBeforeDay(customerId, dateId);
boolean selectAll = false;
if (CollectionUtils.isEmpty(gridBeforeData)){
selectAll = true;
}
if (selectAll) {
articleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
} else {
Date startDate = DateUtils.integrate(new Date(), DateUtils.DATE_PATTERN);
Date endDate = DateUtils.integrate(DateUtils.addDateDays(startDate, 1), DateUtils.DATE_PATTERN);
articleCount = articlePublishRangeService.getOneDayPublishedCount(customerId, startDate, endDate);
//如果没有查到
if (CollectionUtils.isEmpty(articleCount)){
List<ArticleGridPublishedSummaryDTO> articleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
}
//累加昨日的数据
}
return articleCount;
}

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java

@ -28,7 +28,6 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.stats.DimCustomerDao;
import com.epmet.dto.stats.DimCustomerDTO;
import com.epmet.entity.crm.CustomerEntity;
import com.epmet.entity.org.CustomerDepartmentEntity;
import com.epmet.entity.stats.DimCustomerEntity;
import com.epmet.service.stats.DimCustomerService;
import lombok.extern.slf4j.Slf4j;
@ -109,7 +108,7 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
log.error("selectCustomerIdPage param error,pageNo:{},pageSize:{}", pageNo, pageSize);
throw new RenException(EpmetErrorCode.CUSTOMER_VALIDATE_ERROR.getCode(), EpmetErrorCode.CUSTOMER_VALIDATE_ERROR.getMsg());
}
return baseDao.selectCustomerIdPage(pageNo, (pageNo - 1) * pageSize);
return baseDao.selectCustomerIdPage((pageNo - 1) * pageSize,pageSize);
}
@Transactional

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml

@ -5,6 +5,6 @@
<select id="selectCustomerIdPage" resultType="java.lang.String">
select ID FROM dim_customer WHERE DEL_FLAG = '0'
select ID FROM dim_customer WHERE DEL_FLAG = '0' limit #{offset,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}
</select>
</mapper>
Loading…
Cancel
Save