mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-15 15:28:41 +08:00
update 查询支付回调记录加缓存
This commit is contained in:
@@ -16,6 +16,7 @@ import com.huifu.adapay.core.exception.BaseAdaPayException;
|
|||||||
import com.huifu.adapay.core.util.AdapaySign;
|
import com.huifu.adapay.core.util.AdapaySign;
|
||||||
import com.huifu.adapay.model.Payment;
|
import com.huifu.adapay.model.Payment;
|
||||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||||
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.entity.SysDictData;
|
import com.jsowell.common.core.domain.entity.SysDictData;
|
||||||
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
||||||
@@ -252,7 +253,7 @@ public class OrderService {
|
|||||||
private Map<String, Object> adapayPayOrder(PayOrderDTO dto) {
|
private Map<String, Object> adapayPayOrder(PayOrderDTO dto) {
|
||||||
log.info("===============使用汇付支付");
|
log.info("===============使用汇付支付");
|
||||||
// 相同参数重复请求,返回同一个支付对象
|
// 相同参数重复请求,返回同一个支付对象
|
||||||
String redisKey = "ADAPAY_ORDER_PARAM:" + dto.getOrderCode();
|
String redisKey = CacheConstants.ADAPAY_ORDER_PARAM + dto.getOrderCode();
|
||||||
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
||||||
if (cacheObject != null) {
|
if (cacheObject != null) {
|
||||||
return cacheObject;
|
return cacheObject;
|
||||||
@@ -312,7 +313,7 @@ public class OrderService {
|
|||||||
*/
|
*/
|
||||||
private Map<String, Object> wechatPayOrder(PayOrderDTO dto) throws Exception {
|
private Map<String, Object> wechatPayOrder(PayOrderDTO dto) throws Exception {
|
||||||
// 相同参数重复请求,返回同一个支付对象
|
// 相同参数重复请求,返回同一个支付对象
|
||||||
String redisKey = "WECHAT_PAY_ORDER_PARAM:" + dto.getOrderCode();
|
String redisKey = CacheConstants.WECHAT_PAY_ORDER_PARAM + dto.getOrderCode();
|
||||||
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
||||||
if (cacheObject != null) {
|
if (cacheObject != null) {
|
||||||
return cacheObject;
|
return cacheObject;
|
||||||
|
|||||||
@@ -25,6 +25,14 @@ public class CacheConstants {
|
|||||||
|
|
||||||
public static final String PILE_PROGRAM_VERSION = "pile_program_version";
|
public static final String PILE_PROGRAM_VERSION = "pile_program_version";
|
||||||
|
|
||||||
|
public static final String QUERY_ORDER_CALLBACK = "query_order_callback:";
|
||||||
|
|
||||||
|
public static final String ADAPAY_ORDER_PARAM = "adapay_order_param:";
|
||||||
|
|
||||||
|
public static final String WECHAT_PAY_ORDER_PARAM = "wechat_pay_order_param:";
|
||||||
|
|
||||||
|
public static final String ACCESS_TOKEN = "AccessToken_";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过订单号查询订单信息Key
|
* 通过订单号查询订单信息Key
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
package com.jsowell.pile.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
import com.jsowell.pile.domain.AdapayCallbackRecord;
|
||||||
import com.jsowell.pile.mapper.AdapayCallbackRecordMapper;
|
import com.jsowell.pile.mapper.AdapayCallbackRecordMapper;
|
||||||
import com.jsowell.pile.service.AdapayCallbackRecordService;
|
import com.jsowell.pile.service.AdapayCallbackRecordService;
|
||||||
@@ -15,20 +17,39 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AdapayCallbackRecordMapper adapayCallbackRecordMapper;
|
private AdapayCallbackRecordMapper adapayCallbackRecordMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord) {
|
public void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord) {
|
||||||
adapayCallbackRecordMapper.insert(callbackRecord);
|
adapayCallbackRecordMapper.insert(callbackRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据订单号查询支付回调信息
|
||||||
|
* @param orderCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AdapayCallbackRecord selectByOrderCode(String orderCode) {
|
public AdapayCallbackRecord selectByOrderCode(String orderCode) {
|
||||||
AdapayCallbackRecord record = null;
|
if (StringUtils.isBlank(orderCode)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String redisKey = CacheConstants.QUERY_ORDER_CALLBACK + orderCode;
|
||||||
|
AdapayCallbackRecord record = redisCache.getCacheObject(redisKey);
|
||||||
|
if (record != null) {
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
// AdapayCallbackRecord record = null;
|
||||||
try {
|
try {
|
||||||
record = adapayCallbackRecordMapper.selectByOrderCode(orderCode);
|
record = adapayCallbackRecordMapper.selectByOrderCode(orderCode);
|
||||||
|
if (record != null) {
|
||||||
|
redisCache.setCacheObject(redisKey, record, CacheConstants.cache_expire_time_1d);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询汇付支付回调记录失败", e);
|
log.error("查询汇付支付回调记录失败", e);
|
||||||
}
|
}
|
||||||
log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
|
// log.info("查询汇付支付回调记录 orderCode:{}, result:{}", orderCode, JSON.toJSONString(record));
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,10 +169,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
if (CollectionUtils.isNotEmpty(orderListVOS)) {
|
if (CollectionUtils.isNotEmpty(orderListVOS)) {
|
||||||
for (OrderListVO orderListVO : orderListVOS) {
|
for (OrderListVO orderListVO : orderListVOS) {
|
||||||
// 如果是微信支付,通过订单号查询微信支付单号
|
// 如果是微信支付,通过订单号查询微信支付单号
|
||||||
|
logger.info("如果是微信支付,通过订单号查询微信支付单号 orderListVO:{}", JSON.toJSONString(orderListVO));
|
||||||
if (StringUtils.equals(PaymentInstitutionsEnum.ADAPAY.getValue(), orderListVO.getPaymentInstitutions())) {
|
if (StringUtils.equals(PaymentInstitutionsEnum.ADAPAY.getValue(), orderListVO.getPaymentInstitutions())) {
|
||||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderListVO.getOrderCode());
|
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderListVO.getOrderCode());
|
||||||
orderListVO.setOutTradeNo(adapayCallbackRecord.getPaymentId());
|
orderListVO.setOutTradeNo(adapayCallbackRecord.getPaymentId());
|
||||||
} else {
|
} else if (StringUtils.equals(PaymentInstitutionsEnum.WECHAT_PAY.getValue(), orderListVO.getPaymentInstitutions())){
|
||||||
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderListVO.getOrderCode());
|
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderListVO.getOrderCode());
|
||||||
orderListVO.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
orderListVO.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
package com.jsowell.pile.service.impl;
|
||||||
|
|
||||||
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.WxpayCallbackRecord;
|
import com.jsowell.pile.domain.WxpayCallbackRecord;
|
||||||
import com.jsowell.pile.mapper.WxpayCallbackRecordMapper;
|
import com.jsowell.pile.mapper.WxpayCallbackRecordMapper;
|
||||||
import com.jsowell.pile.service.WxpayCallbackRecordService;
|
import com.jsowell.pile.service.WxpayCallbackRecordService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -19,6 +23,9 @@ public class WxpayCallbackRecordServiceImpl implements WxpayCallbackRecordServic
|
|||||||
@Resource
|
@Resource
|
||||||
private WxpayCallbackRecordMapper wxpayCallbackRecordMapper;
|
private WxpayCallbackRecordMapper wxpayCallbackRecordMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteByPrimaryKey(Integer id) {
|
public int deleteByPrimaryKey(Integer id) {
|
||||||
return wxpayCallbackRecordMapper.deleteByPrimaryKey(id);
|
return wxpayCallbackRecordMapper.deleteByPrimaryKey(id);
|
||||||
@@ -51,9 +58,20 @@ public class WxpayCallbackRecordServiceImpl implements WxpayCallbackRecordServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxpayCallbackRecord selectByOrderCode(String orderCode) {
|
public WxpayCallbackRecord selectByOrderCode(String orderCode) {
|
||||||
WxpayCallbackRecord wxpayCallbackRecord = null;
|
if (StringUtils.isBlank(orderCode)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String redisKey = CacheConstants.QUERY_ORDER_CALLBACK + orderCode;
|
||||||
|
WxpayCallbackRecord wxpayCallbackRecord = redisCache.getCacheObject(redisKey);
|
||||||
|
if (wxpayCallbackRecord != null) {
|
||||||
|
return wxpayCallbackRecord;
|
||||||
|
}
|
||||||
|
// WxpayCallbackRecord wxpayCallbackRecord = null;
|
||||||
try {
|
try {
|
||||||
wxpayCallbackRecord = wxpayCallbackRecordMapper.selectByOrderCode(orderCode);
|
wxpayCallbackRecord = wxpayCallbackRecordMapper.selectByOrderCode(orderCode);
|
||||||
|
if (wxpayCallbackRecord != null) {
|
||||||
|
redisCache.setCacheObject(redisKey, wxpayCallbackRecord, CacheConstants.cache_expire_time_1d);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("根据订单号查询微信支付记录:{}", orderCode, e);
|
log.error("根据订单号查询微信支付记录:{}", orderCode, e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
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.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
@@ -78,7 +79,7 @@ public class WxAppletRemoteService {
|
|||||||
// secret = properties.getAppSecret();
|
// secret = properties.getAppSecret();
|
||||||
|
|
||||||
//查询token是否存在
|
//查询token是否存在
|
||||||
String redisKey = "AccessToken_" + appid;
|
String redisKey = CacheConstants.ACCESS_TOKEN + appid;
|
||||||
// 使用缓存先查询AccessToken是否存在
|
// 使用缓存先查询AccessToken是否存在
|
||||||
String accessToken = redisCache.getCacheObject(redisKey);
|
String accessToken = redisCache.getCacheObject(redisKey);
|
||||||
// 存在直接返回,不存在重新获取AccessToken
|
// 存在直接返回,不存在重新获取AccessToken
|
||||||
|
|||||||
Reference in New Issue
Block a user