|
|
@@ -5,6 +5,8 @@ import cn.hutool.core.date.DateField;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.extra.servlet.ServletUtil;
|
|
|
+import cn.hutool.http.Header;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.AlipayClient;
|
|
|
@@ -87,6 +89,7 @@ import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
@@ -209,6 +212,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
+ private final HttpServletRequest request;
|
|
|
+
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
@Override
|
|
|
public OrderDon submit(OrderPayRequest payRequest) throws Exception {
|
|
|
@@ -373,10 +378,11 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
closeOrder(orderDon.getId(), null);
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+ String clientIp = ServletUtil.getClientIP(request);
|
|
|
+ String userAgent = request.getHeader(Header.USER_AGENT.toString());
|
|
|
//数据回传
|
|
|
if (StringUtils.isNotBlank(payRequest.getCallback())) {
|
|
|
- orderDonPostService.savePostData(orderDon.getId(), payRequest.getCallback(), payRequest.getCallbackType());
|
|
|
+ orderDonPostService.savePostData(orderDon.getId(),clientIp,userAgent, payRequest.getCallback(), payRequest.getCallbackType());
|
|
|
}
|
|
|
//无回传前端传入 查询缓存中用户的回传信息
|
|
|
if (StringUtils.isEmpty(payRequest.getCallback())) {
|
|
|
@@ -386,7 +392,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
Optional.ofNullable(Jsons.parseObject(val, OrderDonPostDataDto.class))
|
|
|
.ifPresent(orderDonPostDataDto -> {
|
|
|
log.info("用户ID:{}预下单 回传用户缓存 订单回传记录保存,callback:{},callbackType:{}", orderDon.getUserId(), orderDonPostDataDto.getCallback(), orderDonPostDataDto.getCallbackType());
|
|
|
- orderDonPostService.savePostData(orderDon.getId(), orderDonPostDataDto.getCallback(), orderDonPostDataDto.getCallbackType());
|
|
|
+ orderDonPostService.savePostData(orderDon.getId(), clientIp,userAgent,orderDonPostDataDto.getCallback(), orderDonPostDataDto.getCallbackType());
|
|
|
});
|
|
|
} catch (Exception e) {
|
|
|
log.error("解析用户缓存回传信息错误,msg:{}", StringUtil.getErrorText(e));
|