二次支付接口开发,bug修改
This commit is contained in:
parent
44fcc17624
commit
760dc505cc
@ -7,5 +7,5 @@ public class TimeConstant {
|
|||||||
* 订单超时 毫秒 默认30分钟
|
* 订单超时 毫秒 默认30分钟
|
||||||
*/
|
*/
|
||||||
// todo 测试时将时间改为了5分钟 ,记得改回30分钟
|
// todo 测试时将时间改为了5分钟 ,记得改回30分钟
|
||||||
public static final long ORDER_PAY_TIMEOUT_MILLS = 1000 * 60 * 30;
|
public static final long ORDER_PAY_TIMEOUT_MILLS = 1000 * 60 * 5;
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import net.jieyuu.enums.ProductOrderPayTypeEnum;
|
|||||||
import net.jieyuu.request.ConfirmOrderRequest;
|
import net.jieyuu.request.ConfirmOrderRequest;
|
||||||
import net.jieyuu.request.RepayOrderRequest;
|
import net.jieyuu.request.RepayOrderRequest;
|
||||||
import net.jieyuu.service.ProductOrderService;
|
import net.jieyuu.service.ProductOrderService;
|
||||||
|
import net.jieyuu.utils.CommonUtil;
|
||||||
import net.jieyuu.utils.JsonData;
|
import net.jieyuu.utils.JsonData;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -90,6 +91,7 @@ public class ProductOrderController {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
log.error("创建订单失败{}:", jsonData.toString());
|
log.error("创建订单失败{}:", jsonData.toString());
|
||||||
|
CommonUtil.sendJsonMessage(response, jsonData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +119,7 @@ public class ProductOrderController {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
log.error("重复支付订单失败{}:", jsonData.toString());
|
log.error("重复支付订单失败{}:", jsonData.toString());
|
||||||
|
CommonUtil.sendJsonMessage(response, jsonData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +193,6 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
productOrderDO.setHeadImg(loginUser.getHeadImg());
|
productOrderDO.setHeadImg(loginUser.getHeadImg());
|
||||||
productOrderDO.setNickname(loginUser.getName());
|
productOrderDO.setNickname(loginUser.getName());
|
||||||
|
|
||||||
|
|
||||||
productOrderDO.setOutTradeNo(orderOutTradeNo);
|
productOrderDO.setOutTradeNo(orderOutTradeNo);
|
||||||
productOrderDO.setDel(0);
|
productOrderDO.setDel(0);
|
||||||
productOrderDO.setOrderType(ProductOrderTypeEnum.DAILY.name());
|
productOrderDO.setOrderType(ProductOrderTypeEnum.DAILY.name());
|
||||||
@ -205,6 +204,10 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
productOrderDO.setState(ProductOrderStateEnum.NEW.name());
|
productOrderDO.setState(ProductOrderStateEnum.NEW.name());
|
||||||
productOrderDO.setPayType(ProductOrderPayTypeEnum.valueOf(orderRequest.getPayType()).name());
|
productOrderDO.setPayType(ProductOrderPayTypeEnum.valueOf(orderRequest.getPayType()).name());
|
||||||
|
|
||||||
|
productOrderDO.setDel(0);
|
||||||
|
productOrderDO.setCreateTime(new Date());
|
||||||
|
productOrderDO.setUpdateTime(new Date());
|
||||||
|
|
||||||
// 收货地址
|
// 收货地址
|
||||||
productOrderDO.setReceiverAddress(JSON.toJSONString(addressVO));
|
productOrderDO.setReceiverAddress(JSON.toJSONString(addressVO));
|
||||||
|
|
||||||
@ -393,7 +396,8 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean closeProductOrder(OrderMessage orderMessage) {
|
public boolean closeProductOrder(OrderMessage orderMessage) {
|
||||||
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>().eq("out_trade_no", orderMessage.getOutTradeNo()));
|
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>()
|
||||||
|
.eq("out_trade_no", orderMessage.getOutTradeNo()));
|
||||||
|
|
||||||
if (productOrderDO == null) {
|
if (productOrderDO == null) {
|
||||||
log.warn("直接确认消息,订单不存在:{}", orderMessage);
|
log.warn("直接确认消息,订单不存在:{}", orderMessage);
|
||||||
@ -507,6 +511,8 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
public JsonData repay(RepayOrderRequest repayOrderRequest) {
|
public JsonData repay(RepayOrderRequest repayOrderRequest) {
|
||||||
LoginUser loginUser = LoginInterceptor.threadLocal.get();
|
LoginUser loginUser = LoginInterceptor.threadLocal.get();
|
||||||
|
|
||||||
|
// 还可以增加订单支付日志信息 比如新增一个数据库记录所有支付记录 todo
|
||||||
|
|
||||||
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>()
|
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>()
|
||||||
.eq("out_trade_no", repayOrderRequest.getOutTradeNo())
|
.eq("out_trade_no", repayOrderRequest.getOutTradeNo())
|
||||||
.eq("user_id", loginUser.getId()));
|
.eq("user_id", loginUser.getId()));
|
||||||
@ -531,8 +537,7 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
return JsonData.buildResult(BizCodeEnum.PAY_ORDER_PAY_TIMEOUT);
|
return JsonData.buildResult(BizCodeEnum.PAY_ORDER_PAY_TIMEOUT);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// 假如用户重新支付,使用不同的支付方式,比如使用微信支付,这里可以考虑进行更新
|
// 假如用户重新支付,使用不同的支付方式,比如使用微信支付
|
||||||
// todo 可以更新订单支付参数 payType
|
|
||||||
if (!productOrderDO.getPayType().equals(repayOrderRequest.getPayType())) {
|
if (!productOrderDO.getPayType().equals(repayOrderRequest.getPayType())) {
|
||||||
// 更新
|
// 更新
|
||||||
UpdateWrapper<ProductOrderDO> updateWrapper = new UpdateWrapper<ProductOrderDO>()
|
UpdateWrapper<ProductOrderDO> updateWrapper = new UpdateWrapper<ProductOrderDO>()
|
||||||
@ -541,7 +546,6 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
productOrderMapper.update(null, updateWrapper);
|
productOrderMapper.update(null, updateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
long timeout = TimeConstant.ORDER_PAY_TIMEOUT_MILLS - orderLiveTime;
|
long timeout = TimeConstant.ORDER_PAY_TIMEOUT_MILLS - orderLiveTime;
|
||||||
//创建支付
|
//创建支付
|
||||||
PayInfoVO payInfoVO = new PayInfoVO(productOrderDO.getOutTradeNo(),
|
PayInfoVO payInfoVO = new PayInfoVO(productOrderDO.getOutTradeNo(),
|
||||||
@ -565,8 +569,5 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 还可以增加订单支付日志信息 比如新增一个数据库记录所有支付记录
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ mqconfig:
|
|||||||
order_close_routing_key: order.close.routing.key
|
order_close_routing_key: order.close.routing.key
|
||||||
|
|
||||||
#消息过期时间,毫秒,测试改为15秒
|
#消息过期时间,毫秒,测试改为15秒
|
||||||
ttl: 15000
|
ttl: 900000
|
||||||
|
|
||||||
# 支付宝配置
|
# 支付宝配置
|
||||||
alipay:
|
alipay:
|
||||||
|
@ -101,10 +101,15 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<ProductVO> findProductByIdBatch(List<Long> productIdList) {
|
public List<ProductVO> findProductByIdBatch(List<Long> productIdList) {
|
||||||
|
|
||||||
|
if(!productIdList.isEmpty()){
|
||||||
List<ProductDO> productDOList = productMapper.selectList(new QueryWrapper<ProductDO>().in("id", productIdList));
|
List<ProductDO> productDOList = productMapper.selectList(new QueryWrapper<ProductDO>().in("id", productIdList));
|
||||||
List<ProductVO> productVOList = productDOList.stream().map(obj -> beanProcess(obj)).collect(Collectors.toList());
|
List<ProductVO> productVOList = productDOList.stream().map(obj -> beanProcess(obj)).collect(Collectors.toList());
|
||||||
return productVOList;
|
return productVOList;
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 锁定商品库存
|
* 锁定商品库存
|
||||||
|
@ -61,5 +61,5 @@ mqconfig:
|
|||||||
#消息过期,进入释放队列的key
|
#消息过期,进入释放队列的key
|
||||||
stock_release_routing_key: stock.release.routing.key
|
stock_release_routing_key: stock.release.routing.key
|
||||||
|
|
||||||
#消息过期时间,毫秒,测试改为15秒
|
#消息过期时间,毫秒,测试改为15分钟
|
||||||
ttl: 15000
|
ttl: 300000
|
||||||
|
Loading…
Reference in New Issue
Block a user