Pārlūkot izejas kodu

Merge branch 'exchangerate' into abroad_dev

zoujiajian 2 gadi atpakaļ
vecāks
revīzija
aa4d9eb267

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserRecommendGoodsFrontView.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.views;
 
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -34,4 +35,10 @@ public class UserRecommendGoodsFrontView {
 	private Integer days;
 
 	private BigDecimal price;
+
+	@DbIgnore
+	private BigDecimal twPrice;
+
+	@DbIgnore
+	private BigDecimal hkPrice;
 }

+ 4 - 3
netflix-service/src/main/java/com/cyksj/service/cryptomus/CryptomusService.java

@@ -56,8 +56,9 @@ public class CryptomusService {
             throw new BusinessRuntimeException(GatewayApiCode.METADATA_SYSTEM_ERROR.getCode(),"The donation has been paid");
         }
         CryptomusPayReq cryptomusPay = new CryptomusPayReq();
-        cryptomusPay.setAmount(String.valueOf(orderDon.getMoney().divide(new BigDecimal(100), 2, RoundingMode.HALF_DOWN)));
-        cryptomusPay.setCurrency(orderDon.getCurrency());
+        BigDecimal money = orderDon.getMoney().divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
+        cryptomusPay.setAmount(String.valueOf(money.divide(new BigDecimal(100), 2, RoundingMode.HALF_DOWN)));
+        cryptomusPay.setCurrency("USD");
         cryptomusPay.setLifetime(1800);
         cryptomusPay.setOrder_id(orderId.toString());
         cryptomusPay.setUrl_callback(host + "/applets/order/cryptomus/notify");
@@ -65,7 +66,7 @@ public class CryptomusService {
         cryptomusPay.setIs_payment_multiple(true);
         String json = Jsons.toJson(cryptomusPay);
         String result = HttpRequest.post("https://api.cryptomus.com/v1/payment").header("merchant", shopId).header("sign", MD5.create().digestHex(Base64.encode(json) + shopKey)).body(json).execute().body();
-
+        log.info("加密货币支付 result:{}",result);
         return Jsons.parseObject(result, CryptomusPayRep.class).getResult().getUrl();
     }
 

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -601,6 +601,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             if (OrderDon.Type.BALANCE != orderDon.getType() && refundMoney.compareTo(money) > 0) {
                 throw BusinessRuntimeException.getInstance("退款余额大于订单支付金额");
             }
+            refundMoney = refundMoney.divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
             orderDon.setRefundBalance(refundMoney);
             orderDon.setRefundMoney(BigDecimal.ZERO);
         } else {

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1999,7 +1999,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			BigDecimal userBalance = user.getBalance();
 			//扣除余额 是否成功
 			if (!"USD".equals(orderDon.getCurrency())){
-				subBalance = subBalance.divide(orderDon.getRate(),2,RoundingMode.HALF_UP);
+				subBalance = subBalance.divide(orderDon.getRate(),0,RoundingMode.HALF_UP);
 			}
 			Integer success = userMapper.deductBalance(user.getId(), subBalance, userBalance);
 			if (success != 1) throw BusinessRuntimeException.getInstance(I18nMessageUtil.getI18nMsg("user_balance_not_enough"));

+ 8 - 4
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -160,8 +160,10 @@ public class GoodsDonController {
                     sku.setDpSkuViews(dpSkuViews);
                 }
             });
-            data.setTwPrice(skuList.get(0).getTwPrice());
-            data.setHkPrice(skuList.get(0).getHkPrice());
+            if (!skuList.isEmpty()) {
+                data.setTwPrice(skuList.get(0).getTwPrice());
+                data.setHkPrice(skuList.get(0).getHkPrice());
+            }
             Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
                     .eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
             data.setSold(sold + data.getVirtualSold());
@@ -209,8 +211,10 @@ public class GoodsDonController {
             data.setSold(sold + data.getVirtualSold());
             data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1));
             List<GoodsDonSku> skuList = beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, data.getId()).field(GoodsDonSku::getStatus, true).orderBy(GoodsDonSku::getPrice).asc().build());
-            data.setTwPrice(skuList.get(0).getTwPrice());
-            data.setHkPrice(skuList.get(0).getHkPrice());
+            if (!skuList.isEmpty()) {
+                data.setTwPrice(skuList.get(0).getTwPrice());
+                data.setHkPrice(skuList.get(0).getHkPrice());
+            }
         });
         redisService.setNx(h5CacheKey, dataList, RedisService.key.YH_HOME_PAGHE_CACHE.getTimeout());
         return GatewayResponse.SUCCESS.newBuilder().toResult(dataList);

+ 7 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -509,6 +509,13 @@ public class GroupRelationController {
             }
         }
         Page<UserRecommendGoodsFrontView> page = groupRelationFrontService.getRecommendGoodsViews(isPayNf, filter_goods_id, start, limit);
+        page.getRecords().forEach(data -> {
+            List<GoodsDonSku> skuList = beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, data.getGoodsId()).field(GoodsDonSku::getStatus, true).orderBy(GoodsDonSku::getPrice).asc().build());
+            if (!skuList.isEmpty()) {
+                data.setTwPrice(skuList.get(0).getTwPrice());
+                data.setHkPrice(skuList.get(0).getHkPrice());
+            }
+        });
         return GatewayResponse.SUCCESS.newBuilder().toResult(page);
     }
 }