|
|
@@ -17,8 +17,8 @@ import com.izouma.nineth.config.AlipayProperties;
|
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
|
import com.izouma.nineth.config.WxPayProperties;
|
|
|
import com.izouma.nineth.domain.Asset;
|
|
|
+import com.izouma.nineth.domain.ErrorOrder;
|
|
|
import com.izouma.nineth.domain.GiftOrder;
|
|
|
-import com.izouma.nineth.domain.Order;
|
|
|
import com.izouma.nineth.domain.User;
|
|
|
import com.izouma.nineth.dto.PageQuery;
|
|
|
import com.izouma.nineth.enums.AssetStatus;
|
|
|
@@ -26,11 +26,13 @@ import com.izouma.nineth.enums.OrderStatus;
|
|
|
import com.izouma.nineth.enums.PayMethod;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.AssetRepo;
|
|
|
+import com.izouma.nineth.repo.ErrorOrderRepo;
|
|
|
import com.izouma.nineth.repo.GiftOrderRepo;
|
|
|
import com.izouma.nineth.repo.UserRepo;
|
|
|
import com.izouma.nineth.utils.JpaUtils;
|
|
|
import com.izouma.nineth.utils.SnowflakeIdWorker;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.codec.EncoderException;
|
|
|
import org.apache.commons.codec.net.URLCodec;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -52,6 +54,7 @@ import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
+@Slf4j
|
|
|
public class GiftOrderService {
|
|
|
|
|
|
private AssetRepo assetRepo;
|
|
|
@@ -66,6 +69,7 @@ public class GiftOrderService {
|
|
|
private AssetService assetService;
|
|
|
private AdapayProperties adapayProperties;
|
|
|
private GeneralProperties generalProperties;
|
|
|
+ private ErrorOrderRepo errorOrderRepo;
|
|
|
|
|
|
@Transactional
|
|
|
public GiftOrder gift(Long userId, Long assetId, Long toUserId) {
|
|
|
@@ -106,16 +110,27 @@ public class GiftOrderService {
|
|
|
@Transactional
|
|
|
public void giftNotify(Long orderId, PayMethod payMethod, String transactionId) {
|
|
|
GiftOrder giftOrder = giftOrderRepo.findById(orderId).orElseThrow(new BusinessException("订单不存在"));
|
|
|
- Asset asset = assetRepo.findById(giftOrder.getAssetId()).orElseThrow(new BusinessException("资产不存在"));
|
|
|
- User newOwner = userRepo.findById(giftOrder.getToUserId()).orElseThrow(new BusinessException("用户不存在"));
|
|
|
+ log.error("转赠回调 orderId={} transactionId={}", orderId, transactionId);
|
|
|
+ if (giftOrder.getStatus() == OrderStatus.NOT_PAID) {
|
|
|
+ Asset asset = assetRepo.findById(giftOrder.getAssetId()).orElseThrow(new BusinessException("资产不存在"));
|
|
|
+ User newOwner = userRepo.findById(giftOrder.getToUserId()).orElseThrow(new BusinessException("用户不存在"));
|
|
|
|
|
|
- giftOrder.setPayMethod(payMethod);
|
|
|
- giftOrder.setStatus(OrderStatus.FINISH);
|
|
|
- giftOrder.setTransactionId(transactionId);
|
|
|
- giftOrder.setPayTime(LocalDateTime.now());
|
|
|
- giftOrder.setPayMethod(PayMethod.ALIPAY);
|
|
|
+ giftOrder.setPayMethod(payMethod);
|
|
|
+ giftOrder.setStatus(OrderStatus.FINISH);
|
|
|
+ giftOrder.setTransactionId(transactionId);
|
|
|
+ giftOrder.setPayTime(LocalDateTime.now());
|
|
|
+ giftOrder.setPayMethod(PayMethod.ALIPAY);
|
|
|
|
|
|
- assetService.transfer(asset, asset.getPrice(), newOwner, "转赠", null);
|
|
|
+ assetService.transfer(asset, asset.getPrice(), newOwner, "转赠", null);
|
|
|
+ } else {
|
|
|
+ log.error("转赠回调出错 状态错误 orderid={} transactionid={} status={}", orderId, transactionId, giftOrder.getStatus());
|
|
|
+ errorOrderRepo.save(ErrorOrder.builder()
|
|
|
+ .orderId(orderId)
|
|
|
+ .transactionId(transactionId)
|
|
|
+ .payMethod(payMethod)
|
|
|
+ .type("gift")
|
|
|
+ .build());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void payOrderAlipay(Long id, Model model) {
|