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.commons.mybatis.dao.BaseDao;
import com.epmet.entity.stats.DimCustomerEntity; import com.epmet.entity.stats.DimCustomerEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -35,12 +36,11 @@ public interface DimCustomerDao extends BaseDao<DimCustomerEntity> {
/** /**
* desc: 分页获取客户id * desc: 分页获取客户id
* *
* @param pageNo * @param pageSize
* @param offset * @param offset return: List<String>
* return: List<String>
* @date: 2020/6/17 16:33 * @date: 2020/6/17 16:33
* @author: jianjun liu * @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn * 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; package com.epmet.service;
import java.util.Date;
public interface StatsPublicityService { public interface StatsPublicityService {
/** /**
* desc: 统计宣传能力的汇总信息 * desc: 统计宣传能力的汇总信息
@ -10,6 +12,6 @@ public interface StatsPublicityService {
* @author: jianjun liu * @author: jianjun liu
* email:liujianjun@git.elinkit.com.cn * 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.commons.tools.utils.DateUtils;
import com.epmet.dto.stats.ArticleGridPublishedSummaryDTO; import com.epmet.dto.stats.ArticleGridPublishedSummaryDTO;
import com.epmet.entity.stats.DimGridEntity; import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity;
import com.epmet.service.StatsPublicityService; import com.epmet.service.StatsPublicityService;
import com.epmet.service.stats.*; import com.epmet.service.stats.*;
import com.epmet.service.voice.ArticlePublishRangeService; import com.epmet.service.voice.ArticlePublishRangeService;
@ -47,52 +46,31 @@ public class StatsPublicityServiceImpl implements StatsPublicityService {
private FactArticlePublishedGridDailyService factArticlePublishedGridDailyService; private FactArticlePublishedGridDailyService factArticlePublishedGridDailyService;
@Override @Override
public Boolean publicitySummary() { public Boolean publicitySummary(Date statsDate) {
if (statsDate == null) {
statsDate = DateUtils.addDateDays(new Date(), -1);
}
int pageNo = 1; int pageNo = 1;
int pageSize = 100; int pageSize = 100;
List<String> customerIdList = null; List<String> customerIdList = null;
do { do {
customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize); customerIdList = dimCustomerService.selectCustomerIdPage(pageNo++, pageSize);
if (!CollectionUtils.isEmpty(customerIdList)) { if (!CollectionUtils.isEmpty(customerIdList)) {
customerIdList.forEach(customerId -> { for (String customerId : customerIdList) {//获取所有网格
//获取所有网格
List<DimGridEntity> gridDTOList = dimGridService.getGridListByCustomerId(customerId); List<DimGridEntity> gridDTOList = dimGridService.getGridListByCustomerId(customerId);
if (!CollectionUtils.isEmpty(gridDTOList)) {
List<ArticleGridPublishedSummaryDTO> publishedArticleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
}
}); }
} }
} while (!CollectionUtils.isEmpty(customerIdList) || customerIdList.size() >= pageSize); } while (!CollectionUtils.isEmpty(customerIdList) || customerIdList.size() >= pageSize);
return null; return null;
} }
private List<ArticleGridPublishedSummaryDTO> statsPublishArticle(String customerId, Date statsDate) { private List<ArticleGridPublishedSummaryDTO> statsPublishArticle(String customerId, Date statsDate) {
if (statsDate == null) { List<ArticleGridPublishedSummaryDTO> articleCount = articlePublishRangeService.getAllPublishedCount(customerId, statsDate);
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)){
}
//累加昨日的数据
}
return articleCount; 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.dao.stats.DimCustomerDao;
import com.epmet.dto.stats.DimCustomerDTO; import com.epmet.dto.stats.DimCustomerDTO;
import com.epmet.entity.crm.CustomerEntity; import com.epmet.entity.crm.CustomerEntity;
import com.epmet.entity.org.CustomerDepartmentEntity;
import com.epmet.entity.stats.DimCustomerEntity; import com.epmet.entity.stats.DimCustomerEntity;
import com.epmet.service.stats.DimCustomerService; import com.epmet.service.stats.DimCustomerService;
import lombok.extern.slf4j.Slf4j; 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); log.error("selectCustomerIdPage param error,pageNo:{},pageSize:{}", pageNo, pageSize);
throw new RenException(EpmetErrorCode.CUSTOMER_VALIDATE_ERROR.getCode(), EpmetErrorCode.CUSTOMER_VALIDATE_ERROR.getMsg()); 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 @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="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> </select>
</mapper> </mapper>
Loading…
Cancel
Save