server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -7,6 +7,7 @@ import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.Goodsorder; import com.doumee.service.business.GoodsorderService; import com.doumee.service.business.MemberRidesService; import com.doumee.service.business.WxBillService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -39,6 +40,10 @@ @Autowired private GoodsorderService goodsorderService; @Autowired private MemberRidesService memberRidesService; /** * @throws Exception */ @@ -53,11 +58,24 @@ * 測試 * @throws Exception */ @Scheduled(cron = "0 0/1 * * * ? ") @Scheduled(cron = "0 0 21 * * ? ") public void getYesterdayBill() throws Exception { log.info("=====================开始每天自动结算======================="); goodsorderService.autoCloseOrder(); log.info("=====================结束每天自动结算======================="); } /** * 定时刷新骑行中的数充值未开锁失败 * 30 秒刷新一次 * @throws Exception */ @Scheduled(cron = "0/30 * * * * ? ") public void autoRefreshLockStatus() throws Exception { log.info("=====================开始每天自动结算======================="); memberRidesService.autoRefreshLockStatus(); log.info("=====================结束每天自动结算======================="); } } server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3021,6 +3021,16 @@ return (int)diff + 1 ; } public static Integer between(Date begin, Date end) { if(begin ==null ){ return 0; } long createTime =begin.getTime();//获取创建时间的时间戳 long currentTime =Objects.isNull(end)?System.currentTimeMillis():end.getTime();//获取当前时间的时间戳 long diff=(currentTime-createTime)/1000/60;//获取两个时间相差的分钟 return (int)diff; } /** * 计算耗时 server/services/src/main/java/com/doumee/service/business/MemberRidesService.java
@@ -139,4 +139,6 @@ int mqttCloseBikeEvent(MemberRides bikes); int mqttLockInfoEvent(Locks locks); void autoRefreshLockStatus(); } server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -580,6 +580,27 @@ return 0; } @Override public void autoRefreshLockStatus() { QueryWrapper<MemberRides> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING) .eq(MemberRides::getIsdeleted,Constants.ZERO); List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper); if (!CollectionUtils.isEmpty(memberRides)){ memberRides.forEach(s->{ Integer between = DateUtil.between(s.getCreateDate(), new Date()); // 大于阈值 if (between > 2){ s.setStatus(Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey()); memberRidesMapper.updateById(s); } }); } } private Bikes dealBikesByParam(Locks model) { if(StringUtils.isNotBlank(model.getBikeCode())){ UpdateWrapper<Bikes> updateWrapper = new UpdateWrapper<>();