src/main/java/com/mzl/flower/mapper/point/CustomerPointDetailMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/schedule/PointScheduleService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mzl/flower/service/point/CustomerPointService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/point/CustomerPointDetailMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/定时任务说明.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mzl/flower/mapper/point/CustomerPointDetailMapper.java
@@ -19,5 +19,5 @@ List<CustomerPointDetailVO> queryPage(@Param("dto") CustomerPointDetailQueryDTO dto, Page page); List<ExpiredPointDTO> tongjiExpiredPoint(@Param("lastYear") LocalDate lastYear); List<ExpiredPointDTO> tongjiExpiredPoint(@Param("lastYear") LocalDate lastYear,@Param("userId") String userId); } src/main/java/com/mzl/flower/schedule/PointScheduleService.java
@@ -39,12 +39,12 @@ /** * 定时计算用户过期积分 */ @Scheduled(cron = "0 20 9 * * ?") @Scheduled(cron = "0 10 1 * * ?") public void calculatingExpiredPoint() { log.info("过期积分计算开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); LocalDate now = LocalDate.now().minusDays(1);//前一天 LocalDate lastYear = now.minus(1, ChronoUnit.YEARS); // 日期减去一年 List<ExpiredPointDTO> pointDTOS = customerPointDetailMapper.tongjiExpiredPoint(lastYear); List<ExpiredPointDTO> pointDTOS = customerPointDetailMapper.tongjiExpiredPoint(lastYear,null); if(pointDTOS != null && pointDTOS.size() > 0){ for (ExpiredPointDTO pointDTO : pointDTOS) { if(pointDTO.getAddPoint().intValue()> pointDTO.getReducePoint().intValue()){ //积分增加大于减少 @@ -65,14 +65,7 @@ .eq(CustomerPoint::getCustomerId, pointDTO.getCustomerId()) .eq(CustomerPoint::getUserId, pointDTO.getUserId())); if(customerPoint == null ){ customerPoint = new CustomerPoint(); customerPoint.setCustomerId(pointDTO.getCustomerId()); customerPoint.setUserId(pointDTO.getUserId()); customerPoint.setTotalPoint(0); customerPoint.setUsedPoint(0); customerPoint.setExpiredPoint(0); customerPoint.create("sys"); customerPointMapper.insert(customerPoint); log.error("用户积分记录不存在,userId={},customerId={}",pointDTO.getUserId(),pointDTO.getCustomerId()); }else { customerPoint.setExpiredPoint(expiredPoint); customerPointMapper.updateById(customerPoint); src/main/java/com/mzl/flower/service/point/CustomerPointService.java
@@ -85,13 +85,15 @@ if(POINT_CHANGE_TYPE.add.name().equals(detail.getChangeType())){ point.setTotalPoint(point.getTotalPoint() + detail.getPoint()); }else if(POINT_CHANGE_TYPE.reduce.name().equals(detail.getChangeType())){ if(point.getTotalPoint()!= null && point.getTotalPoint()!=0 && point.getTotalPoint()>= detail.getPoint()){ point.setTotalPoint(point.getTotalPoint() - detail.getPoint()); Integer balancePoint = point.getTotalPoint() - point.getUsedPoint()-point.getExpiredPoint();//可用积分 balancePoint = balancePoint.intValue()>0?balancePoint.intValue():0; if(balancePoint.intValue() >= detail.getPoint().intValue()){ point.setUsedPoint(point.getUsedPoint() + detail.getPoint()); }else{ //积分不足,直接清0 point.setTotalPoint(0); detail.setPoint(point.getTotalPoint()); detail.setRemarks(detail.getRemarks()+",积分不足,扣除剩余积分"+point.getTotalPoint()); point.setUsedPoint(point.getUsedPoint() + balancePoint); detail.setPoint(balancePoint); detail.setRemarks(detail.getRemarks()+",积分不足,扣除积分"+balancePoint); } } if(isAdd){ src/main/resources/mapper/point/CustomerPointDetailMapper.xml
@@ -32,6 +32,9 @@ and p.record_date <= #{lastYear} ]]> </if> <if test="userId!=null and userId!=''"> and p.user_id = #{userId} </if> GROUP BY p.user_id, p.customer_id src/main/定时任务说明.txt
@@ -6,4 +6,5 @@ 6、计算上月供应商销售数量:每月1日凌晨执行一次 7、自动收货:每隔1小时执行一次 8、结算:每日凌晨0点钟执行 9、确认转账:每隔10分钟执行一次 9、确认转账:每隔10分钟执行一次 10、统计过期积分:凌晨1:10执行一次