|
|
@@ -14,6 +14,7 @@ import com.izouma.tcg.dto.PageQuery;
|
|
|
import com.izouma.tcg.dto.cardCase.OrderBoxDTO;
|
|
|
import com.izouma.tcg.enums.CaseStatus;
|
|
|
import com.izouma.tcg.enums.OrderStatus;
|
|
|
+import com.izouma.tcg.enums.PayMethod;
|
|
|
import com.izouma.tcg.enums.TransactionRecordType;
|
|
|
import com.izouma.tcg.exception.BusinessException;
|
|
|
import com.izouma.tcg.repo.MemberInfoRepo;
|
|
|
@@ -29,6 +30,7 @@ import com.izouma.tcg.service.delay.OrderDelayService;
|
|
|
import com.izouma.tcg.utils.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.apache.commons.beanutils.ConvertUtils;
|
|
|
+import org.apache.commons.lang.RandomStringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -207,7 +209,20 @@ public class OrderInfoService {
|
|
|
if (!orig.getOrderStatus().equals(OrderStatus.CREATED)) {
|
|
|
throw new BusinessException("订单未在待支付状态,无法支付");
|
|
|
}
|
|
|
- orig.setTransactionId(transactionId);
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(transactionId)) {
|
|
|
+ orig.setTransactionId(transactionId);
|
|
|
+ orig.setPayMethod(PayMethod.WECHAT);
|
|
|
+ } else {
|
|
|
+ orig.setTransactionId(RandomStringUtils.randomAlphanumeric(32));
|
|
|
+ orig.setPayMethod(PayMethod.BALANCE);
|
|
|
+ MemberInfo memberInfo = memberInfoRepo.findAllByUserId(orig.getUserId());
|
|
|
+ if (memberInfo.getMoney().compareTo(orig.getTotal()) < 0) {
|
|
|
+ throw new BusinessException("余额不足");
|
|
|
+ }
|
|
|
+ memberInfo.setMoney(memberInfo.getMoney().subtract(orig.getTotal()));
|
|
|
+ memberInfoRepo.save(memberInfo);
|
|
|
+ }
|
|
|
+
|
|
|
orig.setOrderStatus(OrderStatus.PAYED);
|
|
|
orig.setPaidTime(LocalDateTime.now());
|
|
|
orig.setTotal(orig.getTotal());
|