fix:zlb订单查询

This commit is contained in:
Xiang
2026-05-11 09:59:58 +08:00
parent d7be3786c3
commit 9d0ed87191
9 changed files with 221 additions and 7 deletions

View File

@@ -8,19 +8,27 @@ import lombok.Getter;
public enum ScheduleEnums {
/**
* 0glados 1芬玩岛 2江体小程序 3江体zlb 4DDNS
* 0glados
* 1芬玩岛
* 2DDNS
* 3江体zlb
* 4江体小程序
*/
/**
* Aliyun DDNS任务
*/
DOMAIN_DYNAMIC_ANALYSIS_TASK(4, "domain", "domainDynamicAnalysisTask"),
/**
* Glados任务
*/
GLADOS_CHECK_IN_TASK(0, "glados", "gladosCheckInTask"),
/**
* Aliyun DDNS任务
*/
DOMAIN_DYNAMIC_ANALYSIS_TASK(2, "domain", "domainDynamicAnalysisTask"),
/**
* 芬玩岛 任务
*/
/**
* 江体 ZLB任务
*/
@@ -30,8 +38,12 @@ public enum ScheduleEnums {
ZLB_SITE_DAY_TASK(3, "zlb", "zlbSiteDayTask"),
ZLB_ORDER_CREATE_TASK(3, "zlb", "zlbOrderCreateTask"),
ZLB_USER_CONFIG_TASK(3, "zlb", "zlbUserConfigTask"),
ZLB_ORDER_QUERY_TASK(3, "zlb", "zlbOrderQueryTask"),
/**
* 江体 小程序任务
*/
JNTYZX_TOKEN_REFRESH_TASK(4, "jt-miniApp", "jntyzxTokenRefreshTask"),
JNTYZX_VENUE_INFO_PULL_TASK(4, "jt-miniApp", "jntyzxVenuePullTask"),
JNTYZX_ORDER_SUBSCRIBE_TASK(4, "jt-miniApp", "jntyzxOrderSubscribeTask"),

View File

@@ -3,9 +3,14 @@ package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
import java.time.LocalDate;
import java.util.List;
/**
* @Author: xiang
* @Date: 2026-05-09 15:11
*/
public interface IZlbOrderInfoManage extends IService<ZlbPayOrder> {
List<ZlbPayOrder> queryOrder(LocalDate date);
}

View File

@@ -1,15 +1,27 @@
package com.xiang.common.manage.jntyzx.zlb;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiang.common.mapper.ZlbOrderInfoMapper;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
import lombok.extern.slf4j.Slf4j;
import com.xiang.common.utils.DateUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
/**
* @Author: xiang
* @Date: 2026-05-09 15:11
*/
@Service
public class ZlbOrderInfoManageImpl extends ServiceImpl<ZlbOrderInfoMapper, ZlbPayOrder> implements IZlbOrderInfoManage {
@Override
public List<ZlbPayOrder> queryOrder(LocalDate date) {
LambdaQueryWrapper<ZlbPayOrder> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(ZlbPayOrder::getDay, DateUtils.getDateFromDate(date));
lambdaQueryWrapper.eq(ZlbPayOrder::getIsPay, 0);
return baseMapper.selectList(lambdaQueryWrapper);
}
}

View File

@@ -0,0 +1,51 @@
package com.xiang.common.pojo.jntyzx.zlb;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @Author: xiang
* @Date: 2026-05-11 09:43
*/
@Data
@AllArgsConstructor
public class ZlbOrderDetailResp {
private Integer state;
private Integer blocId;
private Integer stadiumId;
private String stadiumArea;
private String stadiumName;
private String stadiumPhone;
private String stadiumType;
private String stadiumAddress;
private String mapLongitude;
private String mapLatitude;
private String ticketImg;
private String spName;
private String siteName;
private String siteAmount;
// private String orderAmount;
private Integer payNumber;
// private String ticketInfos;
private Integer orderId;
private String orderNo;
private String orderTime;
private String payTime;
private Integer payType;
private String payAmount;
private String discountPayAmount;
private String totalDiscountAmount;
private String isUseCoupon;
private String isUseCard;
private String name;
private String idCard;
private String phone;
private String notice;
private String blocNotice;
private Integer isRefund;
private String ticketCate;
private String spreadAmout;
private Integer isPreferential;
private String doNotWatermarkFlag;
}

View File

@@ -47,4 +47,9 @@ public class ZlbPayOrder {
* 0-未付款,1-已付款
*/
private Integer isPay;
/**
* 订单id
*/
private String orderId;
}

View File

@@ -0,0 +1,117 @@
package com.xiang.service.module.jntyzx.zlb.schedule;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Lists;
import com.xiang.common.enums.ScheduleEnums;
import com.xiang.common.factory.schedule.BaseScheduleTaskTemplate;
import com.xiang.common.manage.jntyzx.zlb.IZlbOrderInfoManage;
import com.xiang.common.manage.jntyzx.zlb.ZlbTokenInfoService;
import com.xiang.common.pojo.jntyzx.zlb.ZlbOrderDetailResp;
import com.xiang.common.pojo.jntyzx.zlb.ZlbPayOrder;
import com.xiang.common.pojo.jntyzx.zlb.ZlbTokenInfo;
import com.xiang.common.pojo.schedule.TaskResult;
import com.xiang.common.service.IScheduleOpeningConfigService;
import com.xiang.common.service.IScheduleRunLogService;
import com.xiang.common.utils.OkHttpUtil;
import com.xiang.service.module.jntyzx.zlb.constants.ZlbUrlConstants;
import com.xiang.service.module.jntyzx.zlb.service.ZlbService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Author: xiang
* @Date: 2026-05-11 09:11
*/
@Component
@Slf4j
public class ZlbOrderQueryTask extends BaseScheduleTaskTemplate {
private final IZlbOrderInfoManage zlbOrderInfoManage;
private final ZlbTokenInfoService zlbTokenInfoService;
private final ZlbService zlbService;
public ZlbOrderQueryTask(IScheduleOpeningConfigService scheduleOpeningConfigService,
IScheduleRunLogService scheduleRunLogService,
IZlbOrderInfoManage zlbOrderInfoManage,
ZlbTokenInfoService zlbTokenInfoService, ZlbService zlbService) {
super(scheduleOpeningConfigService, scheduleRunLogService);
this.zlbOrderInfoManage = zlbOrderInfoManage;
this.zlbTokenInfoService = zlbTokenInfoService;
this.zlbService = zlbService;
}
@Override
protected String getTaskName() {
return ScheduleEnums.ZLB_ORDER_QUERY_TASK.getTaskName();
}
@Override
protected Integer getModule() {
return ScheduleEnums.ZLB_ORDER_QUERY_TASK.getModuleCode();
}
@Override
protected String getModuleName() {
return ScheduleEnums.ZLB_ORDER_QUERY_TASK.getModule();
}
@Override
protected TaskResult doExecute(Object validatedParams) throws Exception {
TaskResult taskResult = new TaskResult();
taskResult.setSuccess(Boolean.TRUE);
List<ZlbPayOrder> orders = zlbOrderInfoManage.queryOrder(LocalDate.now().plusDays(1));
if (CollectionUtils.isEmpty(orders)) {
taskResult.setSummary("无可使用的订单");
return taskResult;
}
List<ZlbTokenInfo> users = zlbTokenInfoService.getAllUsers();
if (CollectionUtils.isEmpty(users)) {
taskResult.setSummary("无可使用的用户");
return taskResult;
}
Map<String, ZlbTokenInfo> userMap = users.stream().collect(Collectors.toMap(ZlbTokenInfo::getName, Function.identity(), (a, b) -> a));
OkHttpUtil client = OkHttpUtil.getInstance();
List<ZlbPayOrder> result = Lists.newArrayList();
for (ZlbPayOrder order : orders) {
if (!userMap.containsKey(order.getName())) {
continue;
}
ZlbTokenInfo zlbTokenInfo = userMap.get(order.getName());
String orderDetailStr = client.postJson(String.format(ZlbUrlConstants.getOrderDetailUrl, order.getOrderId()), zlbService.getHeaders(zlbTokenInfo.getTokenId()),"{}");
if (StringUtils.isBlank(orderDetailStr)) {
log.info("订单:{}查询结果为空", order.getOrderId());
continue;
}
JSONObject jsonObject = JSON.parseObject(orderDetailStr);
ZlbOrderDetailResp data = JSON.parseObject(jsonObject.getString("data"), ZlbOrderDetailResp.class);
if (Objects.isNull(data)) {
continue;
}
if (Objects.equals(data.getState(), 2)) {
order.setIsPay(1);
result.add(order);
} else {
order.setIsPay(2);
result.add(order);
}
}
if (CollectionUtils.isNotEmpty(result)) {
zlbOrderInfoManage.updateBatchById(result);
}
taskResult.setSummary("订单查询成功!");
return taskResult;
}
}

View File

@@ -157,6 +157,7 @@ public class ZlbOrderTask extends BaseScheduleTaskTemplate {
redisTemplate.expire(redisKey, 120, TimeUnit.SECONDS);
ZlbPayOrder zlbPayOrder = new ZlbPayOrder();
zlbPayOrder.setName(name);
zlbPayOrder.setOrderId(orderId);
zlbPayOrder.setDay(DateUtils.getDateFromDate(LocalDate.now().plusDays(1)));
zlbPayOrder.setVenues("江体");
zlbPayOrder.setPlaceName(placeName);

View File

@@ -56,6 +56,7 @@ public class ZlbSiteDayTask extends BaseScheduleTaskTemplate {
String day = DateUtils.format(date, DateUtils.ENUM_FORMAT_YMD);
LambdaQueryWrapper<ZlbPayOrder> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ZlbPayOrder::getDay, day);
wrapper.eq(ZlbPayOrder::getIsPay, 1);
wrapper.orderByAsc(ZlbPayOrder::getTime);
List<ZlbPayOrder> zlbPayOrders = zlbOrderInfoMapper.selectList(wrapper);
if (!zlbPayOrders.isEmpty()){

View File

@@ -17,6 +17,7 @@ public class ZlbTaskConfig {
private final ZlbSiteDayTask zlbSiteDayTask;
private final ZlbOrderTask zlbOrderTask;
private final ZlbUserConfigTask zlbUserConfigTask;
private final ZlbOrderQueryTask zlbOrderQueryTask;
/**
* token续期
@@ -71,4 +72,13 @@ public class ZlbTaskConfig {
public void zlbUserConfig() {
zlbUserConfigTask.run();
}
/**
* 9:05查询订单是否已经支付
*/
@Scheduled(cron = "0 5 9 * * ?")
@GetMapping("/zlbOrderQueryTask")
public void zlbOrderQueryTask() {
zlbOrderQueryTask.run();
}
}