Compare commits

..

No commits in common. "aa993fd4e5c4b01f3cb12f7b2446193cef3b7a87" and "d4e9f0d375fee76b3d7317c19f8eb9f9d28f2e19" have entirely different histories.

5 changed files with 32 additions and 59 deletions

View File

@ -66,7 +66,6 @@ public class TradeController {
@PostMapping({"/wechatpay/notify"}) @PostMapping({"/wechatpay/notify"})
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@Hidden @Hidden
public Result<String> wechatPayNotifyHandle(@ParameterObject TradeDetail tradeDetail) { public Result<String> wechatPayNotifyHandle(@ParameterObject TradeDetail tradeDetail) {
return tradeService.wechatPayNotifyHandle(tradeDetail); return tradeService.wechatPayNotifyHandle(tradeDetail);
} }

View File

@ -22,16 +22,14 @@ public class OrderSwapBatteryTask {
@Resource @Resource
private OrderSwapBatteryPreDao orderSwapBatteryPreDao; private OrderSwapBatteryPreDao orderSwapBatteryPreDao;
// @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次 @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次
public void orderSwapBatteryExpired() { public void orderSwapBatteryExpired() {
log.info("===>>> 开始查找预约单更新预约状态..."); log.info("\r\n===>>> 开始查找预约单更新预约状态..");
try { // 查询条件排除已过期和无效状态
// 查询条件排除已过期(3)和无效(4)的订单
QueryWrapper<OrderSwapBatteryPre> queryWrapper = new QueryWrapper<>(); QueryWrapper<OrderSwapBatteryPre> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("status", 4)//无效 queryWrapper.ne("status", 4)//无效
.ne("status", 3) // 过期 .ne("status", 3); //过期
.isNotNull("reservation_time"); // 确保预约时间不为空
List<OrderSwapBatteryPre> orderSwapBatteryPreList = orderSwapBatteryPreDao.selectList(queryWrapper); List<OrderSwapBatteryPre> orderSwapBatteryPreList = orderSwapBatteryPreDao.selectList(queryWrapper);
@ -40,41 +38,21 @@ public class OrderSwapBatteryTask {
int expiredCount = 0; // 记录过期的预约单数量 int expiredCount = 0; // 记录过期的预约单数量
for (OrderSwapBatteryPre order : orderSwapBatteryPreList) { for (OrderSwapBatteryPre order : orderSwapBatteryPreList) {
// 计算时间差毫秒 // 检查预约时间是否已过期
long timeDiff = currentTime.getTime() - order.getReservationTime().getTime(); if (order.getReservationTime() != null && order.getReservationTime().before(currentTime)) {
// 24小时 = 24 * 60 * 60 * 1000 毫秒
if (timeDiff >= 24 * 60 * 60 * 1000) {
try {
// 更新状态为过期 // 更新状态为过期
order.setStatus(3); // 设置为过期状态 order.setStatus(4); // 设置为过期状态
order.setUptime(currentTime); // 更新修改时间 try {
orderSwapBatteryPreDao.updateById(order); orderSwapBatteryPreDao.updateById(order);
expiredCount++; expiredCount++;
log.info("预约单已过期订单ID: {}", order.getSourceId()); // 记录过期的订单ID
log.info("预约单已过期 - 预约人: {}, 订单ID: {}, 预约时间: {}",
order.getUname(),
order.getPkId(),
DateUtil.format(order.getReservationTime(), "yyyy-MM-dd HH:mm:ss"));
} catch (Exception e) { } catch (Exception e) {
log.error("更新预约单状态失败 - 预约人: {}, 订单ID: {}, 预约时间: {}, 错误信息: {}", log.error("更新预约单状态失败,预约人:{}订单ID: {}, 错误信息: {}",order.getUname(), order.getPkId(), e.getMessage());
order.getUname(),
order.getPkId(),
DateUtil.format(order.getReservationTime(), "yyyy-MM-dd HH:mm:ss"),
e.getMessage());
} }
} }
} }
if (expiredCount > 0) { log.info("\r\n===>>> 预约单过期:{} 条数据", expiredCount);
log.info("===>>> 本次处理过期预约单:{} 条", expiredCount);
} else {
log.info("===>>> 本次没有需要处理的过期预约单");
}
} catch (Exception e) {
log.error("处理过期预约单时发生异常: {}", e.getMessage(), e);
}
} }
} }

View File

@ -40,10 +40,10 @@
where where
a.station_code = #{stationCode} a.station_code = #{stationCode}
<if test="day!= null and day != '' "> <if test="day!= null and day != '' ">
and DATE_FORMAT(a.day_begin,'%Y-%m-%d') &lt;=DATE_FORMAT(#{day},'%Y-%m-%d') and a.day_begin &lt;= #{day}
</if> </if>
<if test="day!= null and day != '' "> <if test="day!= null and day != '' ">
and DATE_FORMAT(a.day_end,'%Y-%m-%d') &gt;= DATE_FORMAT(#{day},'%Y-%m-%d') and a.day_end &gt;= #{day}
</if> </if>
order by a.pk_id desc order by a.pk_id desc
</select> </select>

View File

@ -2,7 +2,6 @@ package com.evotech.hd.wechat.service.gzh;
import java.math.BigDecimal; import java.math.BigDecimal;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -32,7 +31,6 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@Slf4j
@Service @Service
public class GZHMessageTemplateService { public class GZHMessageTemplateService {
@ -85,7 +83,6 @@ public class GZHMessageTemplateService {
data.setCar_number1(osbp.getPlateNum()); data.setCar_number1(osbp.getPlateNum());
data.setThing2(osbp.getStationName()); data.setThing2(osbp.getStationName());
data.setTime3(DateUtil.format(osbp.getReservationTime(), DatePattern.NORM_DATETIME_FORMATTER)); data.setTime3(DateUtil.format(osbp.getReservationTime(), DatePattern.NORM_DATETIME_FORMATTER));
log.info("预约完成推送公众号消息时间=======>{}", DateUtil.format(osbp.getReservationTime(), DatePattern.NORM_DATETIME_FORMATTER));
data.setThing5(osbp.getUname()); data.setThing5(osbp.getUname());
data.setPhone_number4(osbp.getPhone()); data.setPhone_number4(osbp.getPhone());
sendData.setData(JSONUtil.parseObj(data)); sendData.setData(JSONUtil.parseObj(data));
@ -132,7 +129,6 @@ public class GZHMessageTemplateService {
data.setCharacter_string3(osb.getReturnBatCode()); data.setCharacter_string3(osb.getReturnBatCode());
data.setCharacter_string4(osb.getRentBatCode()); data.setCharacter_string4(osb.getRentBatCode());
data.setTime5(DateUtil.format(osb.getOrderTime(), DatePattern.NORM_DATETIME_FORMATTER)); data.setTime5(DateUtil.format(osb.getOrderTime(), DatePattern.NORM_DATETIME_FORMATTER));
log.info("付款完成推送公众号消息=======>{}", JSONUtil.parseObj(data));
sendData.setData(JSONUtil.parseObj(data)); sendData.setData(JSONUtil.parseObj(data));
break; break;
// 充电完成待结算 // 充电完成待结算
@ -145,7 +141,6 @@ public class GZHMessageTemplateService {
chargeData.setCharacter_string25(osb.getElectAmount() + ""); chargeData.setCharacter_string25(osb.getElectAmount() + "");
chargeData.setAmount34(osb.getServiceFee().toString()); chargeData.setAmount34(osb.getServiceFee().toString());
chargeData.setAmount28(osb.getAmount() + ""); chargeData.setAmount28(osb.getAmount() + "");
log.info("付款完成推送公众号消息=======>{}", JSONUtil.parseObj(chargeData));
sendData.setData(JSONUtil.parseObj(chargeData)); sendData.setData(JSONUtil.parseObj(chargeData));
break; break;
// 付款完成 // 付款完成
@ -158,7 +153,6 @@ public class GZHMessageTemplateService {
payData.setCar_number10(osb.getPlateNum()); payData.setCar_number10(osb.getPlateNum());
payData.setAmount6(osb.getAmount() + ""); payData.setAmount6(osb.getAmount() + "");
payData.setTime9(""); payData.setTime9("");
log.info("付款完成推送公众号消息=======>{}", JSONUtil.parseObj(payData));
sendData.setData(JSONUtil.parseObj(payData)); sendData.setData(JSONUtil.parseObj(payData));
break; break;
default: default:
@ -184,6 +178,8 @@ public class GZHMessageTemplateService {
/** /**
* 充值成功推送公众号消息 * 充值成功推送公众号消息
* @param osb
* @param templateType
* @return * @return
*/ */
public Result<String> sendTemplateMessageRecharge(TradeDetail trade, Integer money) { public Result<String> sendTemplateMessageRecharge(TradeDetail trade, Integer money) {