From 7271007af4f001b24ae9deb916caeac5ce5c939f Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 18 九月 2025 18:01:52 +0800 Subject: [PATCH] 拉卡拉支付 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java | 56 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 30 insertions(+), 26 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java index eef2033..66e7184 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java @@ -125,6 +125,8 @@ String outTradeNo = time + nonce; String amount = String.valueOf(erpProcurement.getPayMoney().multiply(new BigDecimal("100")).intValue()); + TCrmSupplier supplier = crmSupplierService.getById(erpProcurement.getSupplierId()); + String apiPath = "sit/api/v3/labs/trans/preorder"; String body = "{\n" + @@ -132,8 +134,8 @@ "\t\"version\": \"3.0\",\n" + "\t\"req_data\": {\n" + "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" + - "\t\t\"merchant_no\": \"822290059430BF9\",\n" + - "\t\t\"term_no\": \"A9358698\",\n" + + "\t\t\"merchant_no\": \""+supplier.getRecvMerchantNo()+"\",\n" + + "\t\t\"term_no\": \""+supplier.getTermNo()+"\",\n" + "\t\t\"notify_url\": \"http://221.182.45.100:8089/t-sys-order/messageHandle\",\n" + "\t\t\"location_info\": {\n" + "\t\t\t\"request_ip\": \"" + ipAddr + "\"\n" + @@ -160,7 +162,7 @@ String code = jsonObject1.getString("log_no"); erpProcurement.setPayTransactionId(code); erpProcurement.setStatus(2); - erpProcurement.setTermNo("A9358698"); + erpProcurement.setTermNo(supplier.getTermNo()); erpProcurement.setAccountType(type); erpProcurement.setTransType("41"); erpProcurementService.updateById(erpProcurement); @@ -219,7 +221,7 @@ HashMap<String, Object> map = new HashMap<>(); - map.put("merchant_no", "822290059430BF9"); + map.put("merchant_no", erpProcurement.getMerchantNo()); map.put("log_no", erpProcurement.getPayTransactionId()); map.put("log_date", DateUtils.dateTime()); map.put("notify_url", "http://221.182.45.100:8089/t-sys-order/messageSeparateHandle"); @@ -233,8 +235,11 @@ String outTradeNo = time + str; map.put("out_separate_no", outTradeNo); map.put("total_amt", erpProcurement.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue() + ""); - // 平台应得分账 + + + BigDecimal allMoney = erpProcurement.getPayMoney(); + // 平台应得分账 BigDecimal payMoney = erpProcurement.getPayMoney(); ArrayList<HashMap<String, Object>> objects = new ArrayList<>(); // 根据供应商id分组 @@ -248,10 +253,11 @@ payMoney = payMoney.subtract(reduce); map1.put("recv_no", supplier.getRecvMerchantNo()); map1.put("separate_value", reduce.multiply(BigDecimal.valueOf(100)).intValue() + ""); - objects.add(map1); +// objects.add(map1); } HashMap<String, Object> map1 = new HashMap<>(); - map1.put("recv_merchant_no", "822641048160MMJ"); + //TODO hzt + map1.put("recv_no", "822641048160MMJ"); // 手续费 BigDecimal bigDecimal = allMoney.multiply(new BigDecimal("0.038")).setScale(2, RoundingMode.HALF_UP); payMoney = payMoney.subtract(bigDecimal); @@ -345,7 +351,7 @@ "\t\"req_time\": \"" + time + "\",\n" + "\t\"version\": \"3.0\",\n" + "\t\"req_data\": {\n" + - "\t\t\"merchant_no\": \"822290059430BF9\",\n" + + "\t\t\"merchant_no\": \""+erpProcurement.getMerchantNo()+"\",\n" + "\t\t\"term_no\": \""+erpProcurement.getTermNo()+"\",\n" + "\t\t\"refund_amount\": " + refund_amount + ",\n" + "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" + @@ -444,30 +450,28 @@ HashMap<String, Object> map = new HashMap<>(); - map.put("merchant_no", "822290059430BF9"); + map.put("merchant_no", erpProcurement.getMerchantNo()); map.put("origin_separate_no", erpProcurement.getSeparateNo()); map.put("out_separate_no",outTradeNo); erpProcurement.setRefundOutSeparateNo(outTradeNo); erpProcurementService.updateById(erpProcurement); - - - List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId())); - +// List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId())); // 根据供应商id分组 - Map<String, List<TErpProcurementGoods>> collect = list.stream().collect(Collectors.groupingBy(TErpProcurementGoods::getSupplierId)); +// Map<String, List<TErpProcurementGoods>> collect = list.stream().collect(Collectors.groupingBy(TErpProcurementGoods::getSupplierId)); ArrayList<HashMap<String, Object>> objects = new ArrayList<>(); - BigDecimal allMoney = list.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - for (Map.Entry<String, List<TErpProcurementGoods>> entry : collect.entrySet()) { - HashMap<String, Object> map1 = new HashMap<>(); - List<TErpProcurementGoods> value = entry.getValue(); - BigDecimal reduce = value.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - String recv_no = value.stream().map(TErpProcurementGoods::getRecvNo).collect(Collectors.toList()).get(0); - map1.put("recv_no", recv_no); - map1.put("amt", reduce.multiply(BigDecimal.valueOf(100)).intValue() + ""); - objects.add(map1); - } - BigDecimal add = allMoney.add(erpProcurement.getMoney()).multiply(BigDecimal.valueOf(100)); - map.put("total_amt",add); +// BigDecimal allMoney = list.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add); +// for (Map.Entry<String, List<TErpProcurementGoods>> entry : collect.entrySet()) { +// +// List<TErpProcurementGoods> value = entry.getValue(); +// BigDecimal reduce = value.stream().map(TErpProcurementGoods::getSupplierMoney).reduce(BigDecimal.ZERO, BigDecimal::add); +// String recv_no = value.stream().map(TErpProcurementGoods::getRecvNo).collect(Collectors.toList()).get(0); +// } + HashMap<String, Object> map1 = new HashMap<>(); + // TODO hzt + map1.put("recv_no", "dsadasda"); + map1.put("amt", erpProcurement.getMoney().multiply(BigDecimal.valueOf(100)).intValue() + ""); + objects.add(map1); + map.put("total_amt",erpProcurement.getMoney().multiply(BigDecimal.valueOf(100)).intValue() + ""); map.put("origin_recv_datas",objects); reqMap.put("req_data", map); -- Gitblit v1.7.1