|
@@ -157,8 +157,8 @@ public class TOrderController {
|
|
// }else {
|
|
// }else {
|
|
//
|
|
//
|
|
//// altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
|
|
//// altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
|
|
-// };
|
|
|
|
- altAmountPrice = refusePrice.multiply(altAmountPrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
|
|
+// };altAmountPrice
|
|
|
|
+ altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
|
|
p = p.add(altAmountPrice);
|
|
p = p.add(altAmountPrice);
|
|
refInfo.put("altRefAmount", altAmountPrice.toString());
|
|
refInfo.put("altRefAmount", altAmountPrice.toString());
|
|
if(order.getMarketingAmount()!=null){
|
|
if(order.getMarketingAmount()!=null){
|
|
@@ -377,7 +377,7 @@ public class TOrderController {
|
|
order.setRefundMarketingAmount(p8_MarketRefAmount);
|
|
order.setRefundMarketingAmount(p8_MarketRefAmount);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- order.setRefundTrxNo(String.valueOf(torder.getRefundAmount()));
|
|
|
|
|
|
+ order.setRefundTrxNo(String.valueOf(refusePrice));
|
|
payFeign.updateOrder(order);
|
|
payFeign.updateOrder(order);
|
|
return ResponseEntity
|
|
return ResponseEntity
|
|
.status(HttpStatus.OK)
|
|
.status(HttpStatus.OK)
|
|
@@ -407,7 +407,371 @@ public class TOrderController {
|
|
.setData("申请退款已成功")
|
|
.setData("申请退款已成功")
|
|
.setMessage("申请退款已成功"));
|
|
.setMessage("申请退款已成功"));
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 小程序退款
|
|
|
|
+ * @param
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("/refuseByXcu")
|
|
|
|
+ public ResponseEntity<?> refuseByXcu(String id) {
|
|
|
|
+ TOrder order = R.getDataIfSuccess(payFeign.getOrder(id));
|
|
|
|
+ String orderStatus = order.getOrderStatus();
|
|
|
|
+ if(StringUtils.isNotEmpty(orderStatus)){
|
|
|
|
+ if(!orderStatus.equals("0")){
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("")
|
|
|
|
+ .setMessage("订单非排队状态"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ BigDecimal refusePrice = order.getPrice().setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ if(refusePrice.compareTo(new BigDecimal("0.00"))<=0){
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("")
|
|
|
|
+ .setMessage("退款金额非法"));
|
|
|
|
+ }
|
|
|
|
+ TEquipment equipment = tEquipmentService.getById(order.getEquipmentId());
|
|
|
|
+ Long equipmentId = equipment.getId();
|
|
|
|
+ if (order.getProductName().equals("280充值")) {
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("订单不退款")
|
|
|
|
+ .setMessage("订单不退款"));
|
|
|
|
+ }
|
|
|
|
+ if (order.getStatus().equals("0")) {
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("订单非支付状态")
|
|
|
|
+ .setMessage("订单非支付状态"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// TAdmin admin = tAdminService.selectEntityById(order.getAdminId());
|
|
|
|
+// if(admin.getIsRefund()!=null&&admin.getIsRefund().equals("0")){
|
|
|
|
+//// return JsonMessage.error("机器设定不退款");
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ String notifyUrl = JoinpayConstant.Notify_Refund_Url;
|
|
|
|
+
|
|
|
|
+ JSONArray altInfoArray = JSONArray.parseArray(order.getAltInfo());
|
|
|
|
+ JSONArray altRefInfo = new JSONArray();
|
|
|
|
+// BigDecimal refusePrice = torder.getRefundAmount().setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+// if(refusePrice.compareTo(new BigDecimal("0.00"))==0){
|
|
|
|
+// refusePrice = torder.getPrice();
|
|
|
|
+// }
|
|
|
|
+ BigDecimal p = BigDecimal.ZERO;
|
|
|
|
+ BigDecimal price = BigDecimal.ZERO;
|
|
|
|
+ //订单总金额
|
|
|
|
+ BigDecimal sumPrice = BigDecimal.ZERO;
|
|
|
|
+ if(order.getRefundAmount()!=null){
|
|
|
|
+ sumPrice=sumPrice.add(order.getPrice()).add(order.getRefundAmount()).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ }else {
|
|
|
|
+ sumPrice=sumPrice.add(order.getPrice()).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ }
|
|
|
|
+// for (int i = 0; i < altInfoArray.size(); i++) {
|
|
|
|
+// JSONObject altInfoObject = altInfoArray.getJSONObject(i);
|
|
|
|
+//
|
|
|
|
+// JSONObject refInfo = new JSONObject();
|
|
|
|
+// refInfo.put("altMchNo", altInfoObject.getString("altMchNo"));
|
|
|
|
+// String altAmount = altInfoObject.getString("altAmount");
|
|
|
|
+//
|
|
|
|
+// BigDecimal pri = new BigDecimal(order.getPrice().toString()).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+//
|
|
|
|
+// if(refusePrice.compareTo(pri)<0){
|
|
|
|
+// //退部分的钱
|
|
|
|
+// BigDecimal altAmountPrice = new BigDecimal(altAmount);
|
|
|
|
+// altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+// p = p.add(altAmountPrice);
|
|
|
|
+// refInfo.put("altRefAmount", altAmountPrice.toString());
|
|
|
|
+// }else {
|
|
|
|
+// //退全部的钱
|
|
|
|
+// BigDecimal altAmountPrice = new BigDecimal(altAmount);
|
|
|
|
+// p = p.add(altAmountPrice);
|
|
|
|
+// refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// price = price.add(altInfoObject.getBigDecimal("altAmount"));
|
|
|
|
+// if (!altInfoObject.getBigDecimal("altAmount").toString().equals("0.00")) {
|
|
|
|
+// altRefInfo.add(refInfo);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ BigDecimal p8_MarketRefAmount = BigDecimal.ZERO;
|
|
|
|
+ for (int i = 0; i < altInfoArray.size(); i++) {
|
|
|
|
+ JSONObject altInfoObject = altInfoArray.getJSONObject(i);
|
|
|
|
+
|
|
|
|
+ JSONObject refInfo = new JSONObject();
|
|
|
|
+ refInfo.put("altMchNo", altInfoObject.getString("altMchNo"));
|
|
|
|
+ String altAmount = altInfoObject.getString("altAmount");
|
|
|
|
+
|
|
|
|
+ BigDecimal pri = new BigDecimal(order.getPrice().toString()).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+
|
|
|
|
+ if(refusePrice.compareTo(pri)<0){
|
|
|
|
+ //退部分的钱
|
|
|
|
+ BigDecimal altAmountPrice = new BigDecimal(altAmount);
|
|
|
|
+// if(order.getRefundAmount()!=null){
|
|
|
|
+// altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice.subtract(BigDecimal.valueOf(order.getRefundAmount())))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+// }else {
|
|
|
|
+//
|
|
|
|
+//// altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+// };altAmountPrice
|
|
|
|
+ altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ p = p.add(altAmountPrice);
|
|
|
|
+ refInfo.put("altRefAmount", altAmountPrice.toString());
|
|
|
|
+ if(order.getMarketingAmount()!=null){
|
|
|
|
+ p8_MarketRefAmount = order.getMarketingAmount().multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ //退全部的钱
|
|
|
|
+// if(order.getRefundAmount()!=null){
|
|
|
|
+// BigDecimal altAmountPrice = new BigDecimal(altAmount);
|
|
|
|
+// p = p.add(altAmountPrice);
|
|
|
|
+// refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
|
|
|
|
+// }else{
|
|
|
|
+// BigDecimal altAmountPrice = new BigDecimal(altAmount);
|
|
|
|
+// p = p.add(altAmountPrice);
|
|
|
|
+// refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
|
|
|
|
+// }
|
|
|
|
+ BigDecimal altAmountPrice = new BigDecimal(altAmount).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ BigDecimal divide = altAmountPrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ altAmountPrice = refusePrice.multiply(divide).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ p = p.add(altAmountPrice);
|
|
|
|
+ refInfo.put("altRefAmount", altAmountPrice.toString());
|
|
|
|
+ if(order.getMarketingAmount()!=null){
|
|
|
|
+ p8_MarketRefAmount = order.getMarketingAmount().multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ price = price.add(altInfoObject.getBigDecimal("altAmount"));
|
|
|
|
+ if (!altInfoObject.getBigDecimal("altAmount").toString().equals("0.00")) {
|
|
|
|
+ altRefInfo.add(refInfo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 特殊处理下:添加多一个平台方分销的金额
|
|
|
|
+ // 平台获得的收益
|
|
|
|
+// BigDecimal adminPrice = new BigDecimal(order.getPrice().toString()).subtract(price);
|
|
|
|
+ BigDecimal adminPrice = refusePrice.subtract(p).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ JSONObject refInfo = new JSONObject();
|
|
|
|
+ refInfo.put("altMchNo", JoinpayConstant.mch_no);
|
|
|
|
+ refInfo.put("altRefAmount", adminPrice.toString());
|
|
|
|
+ price = price.add(adminPrice);
|
|
|
|
+ if (!adminPrice.toString().equals("0.00")) {
|
|
|
|
+ altRefInfo.add(refInfo);
|
|
|
|
+ }
|
|
|
|
+ String text = "";
|
|
|
|
+
|
|
|
|
+ //需要知道订单是哪一个平台的,不能以账号的为标准 0或null为汇聚,1为杉德支付
|
|
|
|
+ String payPlatform = order.getPayPlatform();
|
|
|
|
+ if (StringUtils.isNotEmpty(payPlatform) && payPlatform.equals("1")) {
|
|
|
|
+ try {
|
|
|
|
+ String refund = tShandeMchService.refund(order.getId(), orderService.initRefundSn(equipmentId).toString(), price, "", altRefInfo.toString());
|
|
|
|
+ com.gexin.fastjson.JSONObject jsonObject = com.gexin.fastjson.JSON.parseObject(refund);
|
|
|
|
+ String sub_code = jsonObject.getString("sub_code");
|
|
|
|
+ //订单号
|
|
|
|
+ if (StringUtils.isNotEmpty(sub_code)&&sub_code.equals("REFUND_SUCCESS")) {
|
|
|
|
+ order.setStatus(3);
|
|
|
|
+ String refund_settle_amount = jsonObject.getString("refund_settle_amount");
|
|
|
|
+ String refund_plat_trx_no = jsonObject.getString("refund_plat_trx_no");
|
|
|
|
+ order.setRefundTrxNo(refund_plat_trx_no);
|
|
|
|
+ order.setRefundAmount(new BigDecimal(refund_settle_amount));
|
|
|
|
+ order.setRefundDate(new Date());
|
|
|
|
+ payFeign.updateOrder(order);
|
|
|
|
+ //金额表今日金额要改 要分类型
|
|
|
|
+ TAdmin admin = tAdminService.getById(order.getAdminId());
|
|
|
|
+ Integer orderType = order.getType();
|
|
|
|
+ switch (orderType) {
|
|
|
|
+ case 0:
|
|
|
|
+ BigDecimal agencyProportion = order.getAgencyProportion();
|
|
|
|
+ // 代理分销获得利润
|
|
|
|
+ BigDecimal agencyPrice = price.multiply(agencyProportion.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ //修改金额表的今日金额
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
|
|
|
|
+ query.eq(TShandeMch::getAdminId,order.getAdminId());
|
|
|
|
+ List<TShandeMch> list = tShandeMchService.list(query);
|
|
|
|
+ if(list.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(agencyPrice).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ BigDecimal agencyProportion1 = order.getAgencyProportion();
|
|
|
|
+ BigDecimal merchantProportion1 = order.getMerchantProportion();
|
|
|
|
+ // 代理分销获得利润
|
|
|
|
+ BigDecimal agencyPrice1 = price.multiply(agencyProportion1.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ // 经销商分销获得利润
|
|
|
|
+ BigDecimal merchantAmount1 = price.multiply(merchantProportion1.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ //修改代理金额表的今日金额
|
|
|
|
+// TShandeMchExample shandeMchExample1 = new TShandeMchExample();
|
|
|
|
+// TShandeMchExample.Criteria shandeMchExampleCriteria1 = shandeMchExample1.createCriteria();
|
|
|
|
+// shandeMchExampleCriteria1.andAdminIdEqualTo(admin.getParentId());
|
|
|
|
+// List<TShandeMch> list1 = tShandeMchService.selectByOption(shandeMchExample1);
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query1 = Wrappers.lambdaQuery();
|
|
|
|
+ query1.eq(TShandeMch::getAdminId,order.getAgencyId());
|
|
|
|
+ List<TShandeMch> list1 = tShandeMchService.list(query1);
|
|
|
|
+ if(list1.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list1.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(agencyPrice1).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ //修改经销商金额表的今日金额
|
|
|
|
+// TShandeMchExample shandeMchExample2 = new TShandeMchExample();
|
|
|
|
+// TShandeMchExample.Criteria shandeMchExampleCriteria2 = shandeMchExample2.createCriteria();
|
|
|
|
+// shandeMchExampleCriteria2.andAdminIdEqualTo(admin.getId());
|
|
|
|
+// List<TShandeMch> list2 = tShandeMchService.selectByOption(shandeMchExample2);
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query2 = Wrappers.lambdaQuery();
|
|
|
|
+ query2.eq(TShandeMch::getAdminId,admin.getId());
|
|
|
|
+ List<TShandeMch> list2 = tShandeMchService.list(query2);
|
|
|
|
+ if(list2.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list2.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(merchantAmount1).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
|
|
|
|
+ BigDecimal agencyProportion2 = order.getAgencyProportion();
|
|
|
|
+ BigDecimal merchantProportion2 = order.getMerchantProportion();
|
|
|
|
+ BigDecimal personageProportion2 = order.getPersonageProportion();
|
|
|
|
+ // 代理分销获得利润
|
|
|
|
+ BigDecimal agencyAmount = price.multiply(agencyProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ // 经销商分销获得利润
|
|
|
|
+ BigDecimal merchantAmount = price.multiply(merchantProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ // 经销商分销获得利润
|
|
|
|
+ BigDecimal personageAmount = price.multiply(personageProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ //修改代理金额表的今日金额
|
|
|
|
+// TShandeMchExample shandeMchExample3 = new TShandeMchExample();
|
|
|
|
+// TShandeMchExample.Criteria shandeMchExampleCriteria3 = shandeMchExample3.createCriteria();
|
|
|
|
+// shandeMchExampleCriteria3.andAdminIdEqualTo(admin.getAgencyId());
|
|
|
|
+// List<TShandeMch> list3 = tShandeMchService.selectByOption(shandeMchExample3);
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query3 = Wrappers.lambdaQuery();
|
|
|
|
+ query3.eq(TShandeMch::getAdminId,order.getAgencyId());
|
|
|
|
+ List<TShandeMch> list3 = tShandeMchService.list(query3);
|
|
|
|
+ if(list3.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list3.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(agencyAmount).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ //修改经销商金额表的今日金额
|
|
|
|
+// TShandeMchExample shandeMchExample4 = new TShandeMchExample();
|
|
|
|
+// TShandeMchExample.Criteria shandeMchExampleCriteria4 = shandeMchExample4.createCriteria();
|
|
|
|
+// shandeMchExampleCriteria4.andAdminIdEqualTo(admin.getMerchantId());
|
|
|
|
+// List<TShandeMch> list4 = tShandeMchService.selectByOption(shandeMchExample4);
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query4 = Wrappers.lambdaQuery();
|
|
|
|
+ query4.eq(TShandeMch::getAdminId,order.getMerchantId());
|
|
|
|
+ List<TShandeMch> list4 = tShandeMchService.list(query4);
|
|
|
|
+ if(list4.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list4.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(merchantAmount).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ //修改终端金额表的今日金额
|
|
|
|
+// TShandeMchExample shandeMchExample5 = new TShandeMchExample();
|
|
|
|
+// TShandeMchExample.Criteria shandeMchExampleCriteria5 = shandeMchExample5.createCriteria();
|
|
|
|
+// shandeMchExampleCriteria5.andAdminIdEqualTo(admin.getId());
|
|
|
|
+// List<TShandeMch> list5 = tShandeMchService.selectByOption(shandeMchExample5);
|
|
|
|
+ LambdaQueryWrapper<TShandeMch> query5 = Wrappers.lambdaQuery();
|
|
|
|
+ query5.eq(TShandeMch::getAdminId,admin.getId());
|
|
|
|
+ List<TShandeMch> list5 = tShandeMchService.list(query5);
|
|
|
|
+ if(list5.size()>0){
|
|
|
|
+ TShandeMch shandeMch = list5.get(0);
|
|
|
|
+ BigDecimal todayBalance = shandeMch.getTodayBalance();
|
|
|
|
+ todayBalance = todayBalance.subtract(personageAmount).setScale(2, RoundingMode.HALF_DOWN);
|
|
|
|
+ shandeMch.setTodayBalance(todayBalance);
|
|
|
|
+ shandeMch.setModifyDate(new Date());
|
|
|
|
+ tShandeMchService.updateById(shandeMch);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ TOrder order1 = R.getDataIfSuccess(payFeign.getOrder(id));
|
|
|
|
+ order1.setModifyDate(new Date());
|
|
|
|
+ esTOrderService.updateDataById(order1);
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(true)
|
|
|
|
+ .setData("申请退款已成功")
|
|
|
|
+ .setMessage("申请退款已成功"));
|
|
|
|
+ } else {
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("申请退款失败")
|
|
|
|
+ .setMessage(refund));
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ try {
|
|
|
|
+ String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
|
|
|
|
+ if ("退款申请成功".equals(result)) {
|
|
|
|
+ order.setStatus(2);
|
|
|
|
+ if(StringUtils.isNotEmpty(order.getCoupons())){
|
|
|
|
+ //设置退款营销金额
|
|
|
|
+ if(order.getRefundMarketingAmount()!=null){
|
|
|
|
+ //累加
|
|
|
|
+ order.setRefundMarketingAmount(order.getRefundMarketingAmount().add(p8_MarketRefAmount));
|
|
|
|
+ }else {
|
|
|
|
+ order.setRefundMarketingAmount(p8_MarketRefAmount);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ order.setRefundTrxNo(String.valueOf(refusePrice));
|
|
|
|
+ payFeign.updateOrder(order);
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(true)
|
|
|
|
+ .setData("申请退款已成功")
|
|
|
|
+ .setMessage("申请退款已成功"));
|
|
|
|
+ }else {
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(false)
|
|
|
|
+ .setData("申请退款失败")
|
|
|
|
+ .setMessage("申请退款失败"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return ResponseEntity
|
|
|
|
+ .status(HttpStatus.OK)
|
|
|
|
+ .body(new ResultMessage()
|
|
|
|
+ .setCode(true)
|
|
|
|
+ .setData("申请退款已成功")
|
|
|
|
+ .setMessage("申请退款已成功"));
|
|
|
|
+ }
|
|
@ApiOperation(value = "添加优惠码")
|
|
@ApiOperation(value = "添加优惠码")
|
|
@GetMapping("/equipmentPay")
|
|
@GetMapping("/equipmentPay")
|
|
public ResponseModel<?> equipmentPay(Double number, Long equipmentId, String frpCode) {
|
|
public ResponseModel<?> equipmentPay(Double number, Long equipmentId, String frpCode) {
|