From 3677a32f5a5ced4dbb6ac4748f5a4129d0212ffe Mon Sep 17 00:00:00 2001 From: yuyang Date: Fri, 28 Jan 2022 09:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E5=8A=A8=E9=80=80?= =?UTF-8?q?=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xhpc/common/api/RefundOrderService.java | 2 +- .../impl/XhpcRealTimeOrderServiceImpl.java | 7 ++- .../controller/XhpcRefundOrderController.java | 60 +++++++++++++++++++ .../resources/mapper/XhpcCommonMapper.xml | 18 +++--- 4 files changed, 75 insertions(+), 12 deletions(-) diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java index a76a911b..f2dfc019 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/RefundOrderService.java @@ -16,6 +16,6 @@ import java.util.Map; @FeignClient(contextId = "refundOrderService",value = ServiceNameConstants.XHPC_PAYMENT,fallbackFactory = RefundOrderFallbackFactory.class) public interface RefundOrderService { - @PostMapping("/refund/order/checkOut") + @PostMapping("/refund/order/orderCheckOut") R sendNotice(@RequestBody Map map); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 82ae3f3b..92ecce43 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -564,6 +564,8 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcHistoryOrder.setConnectorPowerEvcs(Double.parseDouble(xhpcChargeOrder.getPower())); } Map map =new HashMap<>(); + map.put("source",xhpcChargeOrder.getSource()); + map.put("tenantId",xhpcChargeOrder.getTerminalId()); if(!UserTypeUtil.INTERNET_TYPE.equals(source)){ xhpcHistoryOrder.setUserNameEvcs(userMessage.get("phone").toString()); xhpcHistoryOrder.setPhone(userMessage.get("phone").toString()); @@ -578,8 +580,9 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe int i = xhpcChargeOrderService.updateUserBalance(userId, subtract,xhpcChargeOrder.getSource(),xhpcChargeOrder.getTenantId()); if(i==0){ //扣钱失败 - xhpcChargeOrder.setStatus(2); - xhpcChargeOrder.setErroRemark("扣钱失败"); + logger.info("<<<<<<<<<<<<<<<<扣钱失败>>>>>>>>>>>>>>>>>"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return R.fail(); }else{ //添加流水 xhpcChargeOrderService.addUserAccountStatement(userId, actPrice.negate(), subtract, xhpcChargeOrder.getChargeOrderId(), 3, date,xhpcChargeOrder.getSource()); diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java index cdc749ac..61d598bf 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/XhpcRefundOrderController.java @@ -163,4 +163,64 @@ public class XhpcRefundOrderController extends BaseController { public AjaxResult sumMoney(String phone, String refundOrderNumber, String status, String createTimeStart, String createTimeEnd,Integer type) { return AjaxResult.success(iXhpcRefundOrderService.sumMoney(phone, refundOrderNumber, status, createTimeStart, createTimeEnd,type)); } + + /** + * 自动申请退款 + */ + @NoRepeatSubmit + @PostMapping("/orderCheckOut") + @ApiOperation(value = "订单自动退款") + public AjaxResult orderCheckOut(@RequestBody Map map) { + + Long userid = Long.valueOf(map.get("userId").toString()); + Integer userType = Integer.valueOf(map.get("source").toString()); + String tenantId = map.get("tenantId").toString(); + + if (UserTypeUtil.CUSTOMERS_TYPE.equals(userType)) { + return AjaxResult.error(HttpStatus.ERROR_STATUS, "大客户不支持退款"); + } + String amount = StringUtils.valueOf(map.get("amount")); + if (StringUtils.isEmpty(amount)) { + return AjaxResult.error(HttpStatus.NOT_NULL, "退款金额不能为空"); + } else { + if (new BigDecimal(1).compareTo(new BigDecimal(amount)) == 1) { + return AjaxResult.error(HttpStatus.NOT_NULL, "退款金额不能少于1元"); + } + } + //用户信息id + String userId = StringUtils.valueOf(map.get("userId")); + if (StringUtils.isEmpty(userId)) { + return AjaxResult.error(HttpStatus.NOT_NULL, "用户信息不能为空"); + } + //openid + String openid = StringUtils.valueOf(map.get("openid")); + if (StringUtils.isEmpty(userId)) { + return AjaxResult.error(HttpStatus.NOT_NULL, "用户信息不能为空"); + } + String type = StringUtils.valueOf(map.get("type")); + if (StringUtils.isEmpty(type)) { + return AjaxResult.error(HttpStatus.NOT_NULL, "退款渠道不能为空"); + } + //是否有实时数据 + int i = iXhpcRefundOrderService.countXhpcRealTimeOrder(userid, userType, tenantId); + if (i > 0) { + return AjaxResult.error(1103, "车辆正在充电,不能退款"); + } + // 是否有异常订单 + int j = iXhpcRefundOrderService.countXhpcChargeOrder(userid, userType, tenantId); + if (j > 0) { + return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决"); + } + //生成退款订单 + String orderOutNumber = StringUtils.numFormat(userid, Integer.parseInt(type), + StatusConstants.FLOWING_WATER_REFUND_TYPE); + String remark = StringUtils.valueOf(map.get("remark")); + return iXhpcRefundOrderService.addRefundOrder("" + userid, BigDecimal.valueOf(Double.parseDouble(amount)), type, + orderOutNumber, openid, remark, userType, tenantId); + } + + + + + } diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml index ccb3e0c2..3edacf9c 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml @@ -16,9 +16,9 @@ balance as balance, avatar as avatar, status, - weixin_open_id as weixinlogin, - alipay_open_id as alipayLogin, - weixin_login as weixinOpenId, + weixin_open_id as weixinOpenId, + alipay_open_id as alipayOpenId, + weixin_login as weixinLogin, alipay_login as alipayLogin, del_flag delFlag, concat(0) as userType, @@ -50,9 +50,9 @@ surplus_money as balance, avatar as avatar, status, - weixin_open_id as weixinlogin, - alipay_open_id as alipayLogin, - weixin_login as weixinOpenId, + weixin_open_id as weixinOpenId, + alipay_open_id as alipayOpenId, + weixin_login as weixinLogin, alipay_login as alipayLogin, tenant_id tenantId, del_flag delFlag, @@ -87,9 +87,9 @@ surplus_money as balance, avatar as avatar, status, - weixin_open_id as weixinlogin, - alipay_open_id as alipayLogin, - weixin_login as weixinOpenId, + weixin_open_id as weixinOpenId, + alipay_open_id as alipayOpenId, + weixin_login as weixinLogin, alipay_login as alipayLogin, del_flag delFlag, tenant_id tenantId,