定时任务处理未分帐订单

This commit is contained in:
Guoqs
2025-04-16 15:50:26 +08:00
parent 42f828a812
commit b7f04d2159
6 changed files with 100 additions and 14 deletions

View File

@@ -8,7 +8,9 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.adapay.common.AdaPayment; import com.jsowell.adapay.common.AdaPayment;
import com.jsowell.adapay.common.DivMember;
import com.jsowell.adapay.common.PaymentConfirmInfo; import com.jsowell.adapay.common.PaymentConfirmInfo;
import com.jsowell.adapay.dto.PaymentConfirmParam;
import com.jsowell.adapay.dto.QueryPaymentConfirmDTO; import com.jsowell.adapay.dto.QueryPaymentConfirmDTO;
import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.adapay.response.PaymentConfirmResponse;
import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse; import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse;
@@ -16,6 +18,7 @@ import com.jsowell.adapay.service.AdapayService;
import com.jsowell.adapay.vo.OrderSplitResult; import com.jsowell.adapay.vo.OrderSplitResult;
import com.jsowell.adapay.vo.PaymentInfo; import com.jsowell.adapay.vo.PaymentInfo;
import com.jsowell.common.annotation.CostTime; import com.jsowell.common.annotation.CostTime;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.RabbitConstants; import com.jsowell.common.constant.RabbitConstants;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.core.redis.RedisCache;
@@ -23,7 +26,9 @@ import com.jsowell.common.enums.adapay.AdapayStatusEnum;
import com.jsowell.common.enums.adapay.MerchantDelayModeEnum; import com.jsowell.common.enums.adapay.MerchantDelayModeEnum;
import com.jsowell.common.enums.ykc.*; import com.jsowell.common.enums.ykc.*;
import com.jsowell.common.exception.BusinessException; import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.AdapayUtil;
import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.*;
import com.jsowell.pile.dto.AfterSettleOrderDTO; import com.jsowell.pile.dto.AfterSettleOrderDTO;
@@ -115,6 +120,9 @@ public class TempService {
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@Autowired
private OrderUnsplitRecordService orderUnsplitRecordService;
/** /**
* 计算订单耗电量 * 计算订单耗电量
* 内蒙古站点 * 内蒙古站点
@@ -1056,8 +1064,5 @@ public class TempService {
orderBasicInfoService.splittingMethod(afterSettleOrderDTO); orderBasicInfoService.splittingMethod(afterSettleOrderDTO);
} }
/**
*
*/
} }

View File

@@ -1,11 +1,12 @@
package com.jsowell.pile.mapper; package com.jsowell.pile.mapper;
import com.jsowell.pile.domain.OrderUnsplitRecord; import com.jsowell.pile.domain.OrderUnsplitRecord;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; @Repository
public interface OrderUnsplitRecordMapper { public interface OrderUnsplitRecordMapper {
int deleteByPrimaryKey(Integer id); int deleteByPrimaryKey(Integer id);
@@ -24,4 +25,6 @@ public interface OrderUnsplitRecordMapper {
int insertOrUpdate(OrderUnsplitRecord record); int insertOrUpdate(OrderUnsplitRecord record);
int insertOrUpdateSelective(OrderUnsplitRecord record); int insertOrUpdateSelective(OrderUnsplitRecord record);
List<OrderUnsplitRecord> queryUnsplitOrders(@Param("startTime") String startTime, @Param("endTime") String endTime);
} }

View File

@@ -6,4 +6,8 @@ import java.util.List;
public interface OrderUnsplitRecordService { public interface OrderUnsplitRecordService {
void batchInsert(List<OrderUnsplitRecord> orderUnsplitRecordList); void batchInsert(List<OrderUnsplitRecord> orderUnsplitRecordList);
List<OrderUnsplitRecord> queryUnsplitOrders(String startTime, String endTime);
void updateOrderUnsplitRecord(OrderUnsplitRecord orderUnsplitRecord);
} }

View File

@@ -18,4 +18,14 @@ public class OrderUnsplitRecordServiceImpl implements OrderUnsplitRecordService
public void batchInsert(List<OrderUnsplitRecord> orderUnsplitRecordList) { public void batchInsert(List<OrderUnsplitRecord> orderUnsplitRecordList) {
orderUnsplitRecordMapper.batchInsert(orderUnsplitRecordList); orderUnsplitRecordMapper.batchInsert(orderUnsplitRecordList);
} }
@Override
public List<OrderUnsplitRecord> queryUnsplitOrders(String startTime, String endTime) {
return orderUnsplitRecordMapper.queryUnsplitOrders(startTime, endTime);
}
@Override
public void updateOrderUnsplitRecord(OrderUnsplitRecord orderUnsplitRecord) {
orderUnsplitRecordMapper.insertOrUpdateSelective(orderUnsplitRecord);
}
} }

View File

@@ -384,4 +384,13 @@
</if> </if>
</trim> </trim>
</insert> </insert>
<select id="queryUnsplitOrders" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from order_unsplit_record
where status = 'unsplit'
and order_time between #{startTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
order by order_time
</select>
</mapper> </mapper>

View File

@@ -1,15 +1,22 @@
package com.jsowell.quartz.task; package com.jsowell.quartz.task;
import com.google.common.collect.Lists;
import com.jsowell.adapay.common.DivMember;
import com.jsowell.adapay.dto.PaymentConfirmParam;
import com.jsowell.adapay.dto.WithdrawDTO; import com.jsowell.adapay.dto.WithdrawDTO;
import com.jsowell.adapay.response.PaymentConfirmResponse;
import com.jsowell.adapay.service.AdapayService; import com.jsowell.adapay.service.AdapayService;
import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants; import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum; import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
import com.jsowell.common.util.AdapayUtil;
import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.PageUtils;
import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.common.util.spring.SpringUtils;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderUnsplitRecord;
import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.domain.PileMerchantInfo;
import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.domain.ykcCommond.PublishPileBillingTemplateCommand; import com.jsowell.pile.domain.ykcCommond.PublishPileBillingTemplateCommand;
@@ -68,6 +75,9 @@ public class JsowellTask {
@Autowired @Autowired
private ThirdPartyStationRelationService thirdPartyStationRelationService; private ThirdPartyStationRelationService thirdPartyStationRelationService;
@Autowired
private OrderUnsplitRecordService orderUnsplitRecordService;
/** /**
* 设置挡板, PRE环境不执行 * 设置挡板, PRE环境不执行
*/ */
@@ -332,4 +342,49 @@ public class JsowellTask {
}); });
} }
/**
* 处理未分帐订单
*/
public void processUnSettledOrder() {
String startTime = "2023-01-01 00:00:00";
String endTime = "2023-12-31 23:59:59";
String adapayMemberId = "0";
String wechatAppId1 = "wxbb3e0d474569481d"; // 万车充
// 查询未分帐订单
PageUtils.startPage(1, 500);
List<OrderUnsplitRecord> list = orderUnsplitRecordService.queryUnsplitOrders(startTime, endTime);
for (OrderUnsplitRecord orderUnsplitRecord : list) {
String paymentId = orderUnsplitRecord.getPaymentId();
String orderCode = orderUnsplitRecord.getOrderCode();
BigDecimal confirmAmt = orderUnsplitRecord.getSettleAmount();
DivMember divMember = new DivMember();
divMember.setMemberId(adapayMemberId);
divMember.setAmount(AdapayUtil.formatAmount(confirmAmt));
divMember.setFeeFlag(Constants.Y);
PaymentConfirmParam param = PaymentConfirmParam.builder()
.paymentId(paymentId)
.divMemberList(Lists.newArrayList(divMember))
.confirmAmt(confirmAmt)
.orderCode(orderCode)
.wechatAppId(wechatAppId1)
.build();
// 延时分账使用确认交易API
PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(param);
// 如果确认交易成功,则更新订单状态为已分账
if (paymentConfirmResponse.isSuccess()) {
log.info("processUnsplitOrders, 分账成功, paymentId:{}", paymentId);
orderUnsplitRecord.setStatus(paymentConfirmResponse.getStatus());
orderUnsplitRecordService.updateOrderUnsplitRecord(orderUnsplitRecord);
} else {
// 如果失败,打印日志
log.info("processUnsplitOrders, 分账失败, paymentId:{}, 错误信息:{}", paymentId, paymentConfirmResponse.getError_msg());
return;
}
}
}
} }