|
|
@@ -61,6 +61,7 @@ public class MintOrderService {
|
|
|
private SnowflakeIdWorker snowflakeIdWorker;
|
|
|
private WxPayProperties wxPayProperties;
|
|
|
private WxPayService wxPayService;
|
|
|
+ private MintMaterialRepo mintMaterialRepo;
|
|
|
|
|
|
public Page<MintOrder> all(PageQuery pageQuery) {
|
|
|
return mintOrderRepo.findAll(JpaUtils.toSpecification(pageQuery, MintOrder.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
@@ -80,6 +81,17 @@ public class MintOrderService {
|
|
|
if (assets.size() != 3) {
|
|
|
throw new BusinessException("有藏品不符合,请重新选择");
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ // 铸造订单
|
|
|
+ MintOrder order = mintOrderRepo.save(MintOrder.builder()
|
|
|
+ .userId(userId)
|
|
|
+ .phone(user.getPhone())
|
|
|
+// .material(materials)
|
|
|
+ .consume(true)
|
|
|
+ .status(MintOrderStatus.AIR_DROP)
|
|
|
+ .build());
|
|
|
+
|
|
|
// 铸造资产
|
|
|
List<MintMaterial> materials = assets.stream().map(asset -> {
|
|
|
MintMaterial material = new MintMaterial();
|
|
|
@@ -89,18 +101,11 @@ public class MintOrderService {
|
|
|
material.setNumber(asset.getNumber());
|
|
|
material.setPic(asset.getPic());
|
|
|
material.setCategory(asset.getCategory());
|
|
|
+ material.setOrderId(order.getId());
|
|
|
return material;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- // 铸造订单
|
|
|
- mintOrderRepo.save(MintOrder.builder()
|
|
|
- .userId(userId)
|
|
|
- .phone(user.getPhone())
|
|
|
- .material(materials)
|
|
|
- .consume(true)
|
|
|
- .status(MintOrderStatus.AIR_DROP)
|
|
|
- .build());
|
|
|
-
|
|
|
+ mintMaterialRepo.saveAll(materials);
|
|
|
// 改为转赠
|
|
|
assets.forEach(asset -> assetService.transfer(asset, asset.getPrice(), blackHole, "转赠", null));
|
|
|
|
|
|
@@ -211,19 +216,6 @@ public class MintOrderService {
|
|
|
userRepo.findByIdAndDelFalse(1435297L).orElseThrow(new BusinessException("无法铸造"));
|
|
|
}
|
|
|
|
|
|
- // 铸造资产
|
|
|
- List<MintMaterial> materials = assets.stream().map(asset -> {
|
|
|
- MintMaterial material = new MintMaterial();
|
|
|
- material.setAssetId(asset.getId());
|
|
|
- material.setCollectionId(asset.getCollectionId());
|
|
|
- material.setName(asset.getName());
|
|
|
- material.setPrivilegeId(privilegeIds.get(asset.getId()));
|
|
|
- material.setNumber(asset.getNumber());
|
|
|
- material.setPic(asset.getPic());
|
|
|
- material.setCategory(asset.getCategory());
|
|
|
- return material;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
UserAddress userAddress = null;
|
|
|
if (addressId != null) {
|
|
|
userAddress = userAddressRepo.findById(addressId).orElseThrow(new BusinessException("地址信息不存在"));
|
|
|
@@ -233,7 +225,7 @@ public class MintOrderService {
|
|
|
MintOrder mintOrder = mintOrderRepo.save(MintOrder.builder()
|
|
|
.userId(user.getId())
|
|
|
.phone(user.getPhone())
|
|
|
- .material(materials)
|
|
|
+// .material(materials)
|
|
|
.consume(mintActivity.isConsume())
|
|
|
.status(MintOrderStatus.NOT_PAID)
|
|
|
.airDrop(mintActivity.isAirDrop())
|
|
|
@@ -246,6 +238,22 @@ public class MintOrderService {
|
|
|
.orElse(null))
|
|
|
.build());
|
|
|
|
|
|
+ // 铸造资产
|
|
|
+ List<MintMaterial> materials = assets.stream().map(asset -> {
|
|
|
+ MintMaterial material = new MintMaterial();
|
|
|
+ material.setAssetId(asset.getId());
|
|
|
+ material.setCollectionId(asset.getCollectionId());
|
|
|
+ material.setName(asset.getName());
|
|
|
+ material.setPrivilegeId(privilegeIds.get(asset.getId()));
|
|
|
+ material.setNumber(asset.getNumber());
|
|
|
+ material.setPic(asset.getPic());
|
|
|
+ material.setCategory(asset.getCategory());
|
|
|
+ material.setOrderId(mintOrder.getId());
|
|
|
+ return material;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ mintMaterialRepo.saveAll(materials);
|
|
|
+
|
|
|
//库存
|
|
|
mintActivity.setStock(mintActivity.getStock() - 1);
|
|
|
mintActivityRepo.save(mintActivity);
|
|
|
@@ -349,7 +357,8 @@ public class MintOrderService {
|
|
|
@Transactional
|
|
|
public void mintNotify(Long orderId, PayMethod payMethod, String transactionId) {
|
|
|
MintOrder mintOrder = mintOrderRepo.findById(orderId).orElseThrow(new BusinessException("订单不存在"));
|
|
|
- List<MintMaterial> materials = mintOrder.getMaterial();
|
|
|
+// List<MintMaterial> materials = mintOrder.getMaterial();
|
|
|
+ List<MintMaterial> materials = mintMaterialRepo.findAllByOrderIdAndDelFalse(orderId);
|
|
|
List<Asset> assets = assetRepo.findAllById(materials
|
|
|
.stream()
|
|
|
.map(MintMaterial::getAssetId)
|
|
|
@@ -395,8 +404,8 @@ public class MintOrderService {
|
|
|
if (order.getStatus() != MintOrderStatus.NOT_PAID) {
|
|
|
throw new BusinessException("已支付订单无法取消");
|
|
|
}
|
|
|
- List<MintMaterial> materials = order.getMaterial();
|
|
|
-
|
|
|
+// List<MintMaterial> materials = order.getMaterial();
|
|
|
+ List<MintMaterial> materials = mintMaterialRepo.findAllByOrderIdAndDelFalse(order.getId());
|
|
|
List<Asset> assets = assetRepo.findAllById(materials.stream()
|
|
|
.map(MintMaterial::getAssetId)
|
|
|
.collect(Collectors.toList()));
|