|
@@ -530,100 +530,22 @@ public class OrderController {
|
|
|
return "";
|
|
|
}
|
|
|
/**
|
|
|
- * 订单退款请求
|
|
|
+ * 海控订单退款请求(后台退款)
|
|
|
*/
|
|
|
@RequiresPermissions(value = {"order:offilineRefund"})
|
|
|
@RequestMapping(value = "offilineRefund", method = RequestMethod.POST)
|
|
|
public Object offilineRefund(Long orderId) {
|
|
|
OrderEntity orderInfo = orderService.queryObject(orderId);
|
|
|
if (null == orderInfo) {
|
|
|
- return R.error("订单不存在");
|
|
|
+ return R.error("订单不存在,无法退款");
|
|
|
}
|
|
|
- if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_401.getItem()) ||
|
|
|
- orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())) {
|
|
|
- return R.error("订单已退款");
|
|
|
- }
|
|
|
-
|
|
|
- if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
|
|
|
- if (Dict.payFlag.item_cash.getItem().equals(orderInfo.getPayFlag())) {
|
|
|
- //现金支付,直接修改订单状态
|
|
|
- orderService.refund(orderInfo);
|
|
|
- } else if (Dict.payFlag.item_weixin.getItem().equals(orderInfo.getPayFlag())) {
|
|
|
- //微信线下扫码支付
|
|
|
- WechatRefundApiResult result = WechatUtil
|
|
|
- .wxRefund(orderInfo.getOrderSnWx(), orderInfo.getActualPrice().doubleValue(),
|
|
|
- orderInfo.getActualPrice().doubleValue());
|
|
|
- if (result.getResult_code().equals(WechatUtil.WXTradeState.SUCCESS.getCode())) {
|
|
|
- orderService.refund(orderInfo, result);
|
|
|
- } else {
|
|
|
- OrderRefundEntity mallOrderRefund = orderRefundService.queryObjectByOrderId(orderInfo.getId());
|
|
|
- OrderRefundEntity orderRefund = new OrderRefundEntity();
|
|
|
- orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));
|
|
|
- orderRefund.setRefundMoney(BigDecimal.valueOf(orderInfo.getActualPrice().doubleValue()));
|
|
|
- orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
|
|
|
-// orderRefund.setOutRefundNo(result.getOut_refund_no());
|
|
|
- SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
- orderRefund.setModerSn(user.getUsername());
|
|
|
- orderRefund.setModTime(new Date());
|
|
|
- if (mallOrderRefund != null) {
|
|
|
- orderRefund.setId(mallOrderRefund.getId());
|
|
|
- orderRefundService.update(orderRefund);//退款记录
|
|
|
- }
|
|
|
-
|
|
|
- OrderExceptionRecordEntity mallOrderExceptionRecord = new OrderExceptionRecordEntity();
|
|
|
- mallOrderExceptionRecord.setUserId(Integer.parseInt(orderInfo.getUserId() + ""));
|
|
|
- mallOrderExceptionRecord.setOrderSn(orderInfo.getOrderSn());
|
|
|
- mallOrderExceptionRecord.setExceptionStatus(Dict.exceptionStatus.item_03.getItem());
|
|
|
- mallOrderExceptionRecord.setExceptionContent("退款失败" + result.getErr_code_des());
|
|
|
- mallOrderExceptionRecord.setCreateTime(new Date());
|
|
|
- orderExceptionRecordService.save(mallOrderExceptionRecord);
|
|
|
-
|
|
|
- return R.error(result.getErr_code_des());
|
|
|
- }
|
|
|
- }else if(Dict.payFlag.item_alipay.getItem().equals(orderInfo.getPayFlag())){
|
|
|
- // 支付宝线下扫码支付
|
|
|
- AliPayMicropayApiResult result = null;
|
|
|
- try {
|
|
|
- result = AliPayUtil.aliTradeRefund(orderInfo.getOrderSn(),orderInfo.getActualPrice()+"",
|
|
|
- "顾客退款",orderInfo.getStoreId().toString());
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- if (result.getCode().equals(AliPayUtil.AliPayTradeState.SUCC.getCode())) {
|
|
|
- orderService.refund(orderInfo, result);
|
|
|
- } else {
|
|
|
- OrderRefundEntity mallOrderRefund = orderRefundService.queryObjectByOrderId(orderInfo.getId());
|
|
|
- OrderRefundEntity orderRefund = new OrderRefundEntity();
|
|
|
- orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));
|
|
|
- orderRefund.setRefundMoney(BigDecimal.valueOf(orderInfo.getActualPrice().doubleValue()));
|
|
|
- orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
|
|
|
-// orderRefund.setOutRefundNo(result.getOut_refund_no());
|
|
|
- SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
- orderRefund.setModerSn(user.getUsername());
|
|
|
- orderRefund.setModTime(new Date());
|
|
|
- if (mallOrderRefund != null) {
|
|
|
- orderRefund.setId(mallOrderRefund.getId());
|
|
|
- orderRefundService.update(orderRefund);//退款记录
|
|
|
- }
|
|
|
-
|
|
|
- OrderExceptionRecordEntity mallOrderExceptionRecord = new OrderExceptionRecordEntity();
|
|
|
- mallOrderExceptionRecord.setUserId(Integer.parseInt(orderInfo.getUserId() + ""));
|
|
|
- mallOrderExceptionRecord.setOrderSn(orderInfo.getOrderSn());
|
|
|
- mallOrderExceptionRecord.setExceptionStatus(Dict.exceptionStatus.item_03.getItem());
|
|
|
- mallOrderExceptionRecord.setExceptionContent("退款失败" + result.getSubMsg());
|
|
|
- mallOrderExceptionRecord.setCreateTime(new Date());
|
|
|
- orderExceptionRecordService.save(mallOrderExceptionRecord);
|
|
|
-
|
|
|
- return R.error(result.getSubMsg());
|
|
|
- }
|
|
|
- } else{
|
|
|
- return R.ok("退款成功");
|
|
|
- }
|
|
|
-
|
|
|
+ try {
|
|
|
+ return orderService.orderRefund(orderInfo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.error("[offilineRefund-----海控后台退款异常]"+orderInfo.getOrderSn(),e);
|
|
|
+ return R.error(500,"退款失败");
|
|
|
}
|
|
|
-
|
|
|
- return R.ok("退款成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1086,12 +1008,10 @@ public class OrderController {
|
|
|
@RequestMapping("/orderHkRefund")
|
|
|
public R orderRefund( @RequestBody Map param) {
|
|
|
|
|
|
- SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
Integer orderId = (Integer) param.get("orderId");
|
|
|
OrderEntity orderInfo = orderService.queryObject(orderId.longValue());
|
|
|
- String sessionId = (String) param.get("sessionId");
|
|
|
try {
|
|
|
- return orderService.orderRefund(orderInfo,sessionId,user);
|
|
|
+ return orderService.orderRefund(orderInfo);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.error("[orderHkRefund-----海控退款异常]"+orderInfo.getOrderSn(),e);
|