OrderServiceTest.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package com.izouma.nineth.service;
  2. import com.github.binarywang.wxpay.exception.WxPayException;
  3. import com.huifu.adapay.core.exception.BaseAdaPayException;
  4. import com.huifu.adapay.model.Payment;
  5. import com.izouma.nineth.ApplicationTests;
  6. import com.izouma.nineth.TokenHistory;
  7. import com.izouma.nineth.domain.*;
  8. import com.izouma.nineth.dto.UserBankCard;
  9. import com.izouma.nineth.enums.AssetStatus;
  10. import com.izouma.nineth.enums.AuthStatus;
  11. import com.izouma.nineth.enums.OrderStatus;
  12. import com.izouma.nineth.repo.*;
  13. import com.izouma.nineth.utils.FileUtils;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.codec.EncoderException;
  16. import org.apache.commons.collections.MapUtils;
  17. import org.junit.Test;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import java.io.IOException;
  20. import java.time.LocalDateTime;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.Map;
  24. import java.util.Optional;
  25. import java.util.stream.Collectors;
  26. @Slf4j
  27. public class OrderServiceTest extends ApplicationTests {
  28. @Autowired
  29. private OrderService orderService;
  30. @Autowired
  31. private OrderRepo orderRepo;
  32. @Autowired
  33. private AssetRepo assetRepo;
  34. @Autowired
  35. private TokenHistoryRepo tokenHistoryRepo;
  36. @Autowired
  37. private AssetService assetService;
  38. @Autowired
  39. private CollectionRepo collectionRepo;
  40. @Autowired
  41. private UserRepo userRepo;
  42. @Autowired
  43. private IdentityAuthRepo identityAuthRepo;
  44. @Autowired
  45. private UserBankCardRepo userBankCardRepo;
  46. @Test
  47. public void create() throws EncoderException, WxPayException {
  48. Order order = orderService.create(1110L, 1777L, 1, null, 1896L, null);
  49. assert order.getStatus() == OrderStatus.FINISH;
  50. }
  51. @Test
  52. public void setNumber() {
  53. orderService.setNumber();
  54. }
  55. @Test
  56. public void setSales() {
  57. orderService.setSales();
  58. }
  59. @Test
  60. public void commission() {
  61. orderService.commission(orderRepo.findById(4437L).get());
  62. }
  63. @Test
  64. public void refund() throws WxPayException {
  65. orderService.refund(4627L);
  66. }
  67. @Test
  68. public void cancel() {
  69. orderService.cancel(6721L);
  70. }
  71. @Test
  72. public void fixNotPaid() throws BaseAdaPayException {
  73. List<Order> errOrders = new ArrayList<>();
  74. orderRepo.findByStatus(OrderStatus.FINISH).stream().parallel().forEach(order -> {
  75. if (order.getCreatedAt().isAfter(LocalDateTime.of(2021, 11, 30, 1, 1))) {
  76. try {
  77. Map<String, Object> res = Payment.query(order.getTransactionId());
  78. String status = MapUtils.getString(res, "status");
  79. String errMsg = MapUtils.getString(res, "error_msg");
  80. if (!"succeeded".equals(status) && !"对应支付记录不存在".equals(errMsg)) {
  81. System.out.println(order.getId());
  82. errOrders.add(order);
  83. }
  84. } catch (Exception e) {
  85. }
  86. }
  87. });
  88. System.out.println(errOrders.stream().map(o -> o.getId().toString()).collect(Collectors.joining(",")));
  89. for (Order errOrder : errOrders) {
  90. Collection collection = collectionRepo.findById(errOrder.getCollectionId()).orElse(null);
  91. if (collection == null) continue;
  92. List<Asset> assets = assetRepo.findByOrderId(errOrder.getId());
  93. for (Asset asset : assets) {
  94. if (asset.getStatus() == AssetStatus.NORMAL) {
  95. if (asset.isPublicShow()) {
  96. assetService.cancelPublic(asset);
  97. }
  98. tokenHistoryRepo.deleteByTokenId(asset.getTokenId());
  99. assetRepo.delete(asset);
  100. }
  101. }
  102. orderRepo.delete(errOrder);
  103. collectionRepo.increaseStock(collection.getId(), 1);
  104. collectionRepo.increaseSale(collection.getId(), -1);
  105. }
  106. }
  107. @Test
  108. public void fixTokenHistory() {
  109. for (TokenHistory tokenHistory : tokenHistoryRepo.findError()) {
  110. List<Asset> assets = assetRepo.findByTokenIdOrderByCreatedAt(tokenHistory.getTokenId());
  111. if (assets.size() == 2) {
  112. userRepo.findById(assets.get(0).getUserId()).ifPresent(fromUser -> {
  113. tokenHistory.setFromUserId(assets.get(0).getUserId());
  114. tokenHistory.setFromUser(fromUser.getNickname());
  115. tokenHistory.setFromAvatar(fromUser.getAvatar());
  116. tokenHistoryRepo.save(tokenHistory);
  117. });
  118. }
  119. }
  120. }
  121. @Test
  122. public void fixPay() {
  123. String s = "\n订单ID\t金额\t手续费\t版税\t收款用户ID\t收款人\t银行卡号\t银行";
  124. for (Long orderId : new Long[]{5417L, 5919L, 5923L, 8166L}) {
  125. try {
  126. Order order = orderRepo.findById(orderId).get();
  127. List<Asset> assets = assetRepo.findByTokenIdOrderByCreatedAt(assetRepo.findById(order.getAssetId())
  128. .get()
  129. .getTokenId());
  130. Asset asset = assets.stream().filter(a -> a.getStatus() == AssetStatus.TRANSFERRED).findAny().get();
  131. User user = userRepo.findById(asset.getUserId()).get();
  132. Optional<IdentityAuth> identityAuth = identityAuthRepo.findByUserIdAndDelFalse(user.getId()).stream()
  133. .filter(i -> i.getStatus() == AuthStatus.SUCCESS).findAny();
  134. Optional<UserBankCard> bankCard = userBankCardRepo.findByUserId(user.getId()).stream().findAny();
  135. s += "\n"
  136. + orderId + "\t"
  137. + order.getTotalPrice().subtract(order.getGasPrice()) + "\t"
  138. + order.getServiceCharge() + "\t"
  139. + order.getRoyalties() + "\t"
  140. + user.getId() + "\t"
  141. + identityAuth.map(IdentityAuth::getRealName).orElse("") + "\t"
  142. + bankCard.map(UserBankCard::getBankNo).orElse("") + "\t"
  143. + bankCard.map(UserBankCard::getBankName).orElse("");
  144. } catch (Exception e) {
  145. }
  146. }
  147. log.info(s);
  148. }
  149. @Test
  150. public void consignmentFix() throws IOException {
  151. String s = FileUtils.readFile("/Users/drew/Downloads/app.log").replaceAll("</p>\n", "</p>");
  152. String[] arr = s.split("\n");
  153. for (int i = 0; i < arr.length; i++) {
  154. if (arr[i].contains("insert into collection_info")) {
  155. // arr[i][2]
  156. }
  157. }
  158. }
  159. }