提交代码

dev
胡锐 2 months ago
parent 6d40d6af50
commit 2e24609291
  1. 40
      bweb/src/main/java/com/bweb/controller/BsOrderRefundController.java
  2. 16
      bweb/src/main/java/com/bweb/controller/notify/NewLinkNotify.java
  3. 97
      service/src/main/java/com/hfkj/openapi/service/ApiGasOrderService.java
  4. 6
      service/src/main/java/com/hfkj/service/order/BsOrderRefundService.java
  5. 12
      service/src/main/java/com/hfkj/service/order/impl/BsOrderRefundServiceImpl.java

@ -9,12 +9,16 @@ import com.hfkj.common.exception.SysCode;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.DateUtil;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.BsGasOrder;
import com.hfkj.entity.BsOrder;
import com.hfkj.entity.BsOrderRefund;
import com.hfkj.model.ResponseData;
import com.hfkj.model.SecUserSessionObject;
import com.hfkj.model.UserSessionObject;
import com.hfkj.model.order.OrderChildModel;
import com.hfkj.openapi.model.request.RequestOrderRefundModel;
import com.hfkj.openapi.service.ApiGasOrderService;
import com.hfkj.service.gas.BsGasOrderService;
import com.hfkj.service.order.BsOrderChildService;
import com.hfkj.service.order.BsOrderRefundService;
import com.hfkj.service.order.BsOrderService;
@ -49,9 +53,13 @@ public class BsOrderRefundController {
@Resource
private BsOrderRefundService orderRefundService;
@Resource
private ApiGasOrderService apiGasOrderService;
@Resource
private BsOrderService orderService;
@Resource
private BsOrderChildService orderChildService;
@Resource
private BsGasOrderService gasOrderService;
@RequestMapping(value="/tradeOrder",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "退款交易订单")
@ -123,6 +131,38 @@ public class BsOrderRefundController {
}
}
@RequestMapping(value="/refundApiOrder",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "退款API加油订单")
public ResponseData refundApiOrder(@RequestBody JSONObject body) {
try {
// 用户session
SecUserSessionObject userSession = userCenter.getSessionModel(SecUserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
if (body == null || StringUtils.isBlank(body.getString("orderNo"))) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 查询加油订单
BsGasOrder gasOrder = gasOrderService.getDetailByOrderNo(body.getString("orderNo"));
if (gasOrder == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "未找到订单");
}
if (gasOrder.getAgentId() == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "未找到订单");
}
RequestOrderRefundModel request = new RequestOrderRefundModel();
request.setOrderNo(body.getString("orderNo"));
request.setRefundReason(body.getString("remark"));
return ResponseMsgUtil.success(apiGasOrderService.refundOrder(gasOrder.getAgentId(), request));
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/queryRefund",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询退款订单")

@ -3,16 +3,27 @@ package com.bweb.controller.notify;
import com.alibaba.fastjson.JSONObject;
import com.hfkj.channel.gas.newlink.NewLinkGasService;
import com.hfkj.channel.gas.newlink.NewLinkRequestService;
import com.hfkj.common.exception.BaseException;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.pay.util.SignatureUtil;
import com.hfkj.common.security.AESEncodeUtil;
import com.hfkj.common.utils.HttpsUtils;
import com.hfkj.entity.BsAgentApiParam;
import com.hfkj.entity.BsGasOrder;
import com.hfkj.entity.BsOrderRefund;
import com.hfkj.openapi.model.request.RequestOrderRefundModel;
import com.hfkj.openapi.model.response.OrderRefundNotifyModel;
import com.hfkj.openapi.service.ApiGasOrderService;
import com.hfkj.service.gas.BsGasOrderService;
import com.hfkj.service.order.BsOrderRefundService;
import com.hfkj.sysenum.gas.GasOrderCreateType;
import com.hfkj.sysenum.gas.OrderOilStatus;
import com.hfkj.sysenum.order.OrderRefundStatusEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -20,6 +31,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @className: NewLinkNotify
@ -85,9 +99,9 @@ public class NewLinkNotify {
// 退款
RequestOrderRefundModel requestOrderRefund = new RequestOrderRefundModel();
requestOrderRefund.setOrderNo(gasOrder.getOrderNo());
requestOrderRefund.setRefundReason(data.getString("refundFailReason"));
apiGasOrderService.refundOrder(gasOrder.getAgentId(), requestOrderRefund);
data.getString("refundFailReason");
}
}
}

@ -270,7 +270,7 @@ public class ApiGasOrderService {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "未找到订单");
}
if (!gasOrder.getStatus().equals(OrderOilStatus.STATUS2.getNumber())
|| !gasOrder.getStatus().equals(OrderOilStatus.STATUS6.getNumber())) {
&& !gasOrder.getStatus().equals(OrderOilStatus.STATUS6.getNumber())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "订单状态暂时无法申请退款");
}
// 创建退款订单
@ -359,6 +359,7 @@ public class ApiGasOrderService {
return "ok";
}
/**
* 退款金额
* @param gasOrder
@ -366,28 +367,22 @@ public class ApiGasOrderService {
* @return
*/
private void refundPrice(BsGasOrder gasOrder, BsOrderRefund orderRefund) {
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type2.getNumber())) {
// 团油
// 异常订单
if (gasOrder.getAbnormal().equals(true)) {
try {
// 请求团油渠道申请退款
JSONObject object = NewLinkRequestService.refuelingOrderRefund(gasOrder.getUserPhone(), gasOrder.getOrderNo(), orderRefund.getRefundRemark());
if (object == null || !object.getString("code").equals("200")) {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent("渠道申请退款失败!原因:" + object.getString("message"));
gasOrderService.updateGasOrder(gasOrder);
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) {
// 未出现异常
if (gasOrder.getAbnormal().equals(false)) {
// 请求重庆壳牌渠道退款
CqShellPetroleumRequestService.gasSyncRefund(gasOrder.getPayTime(), gasOrder.getOrderNo());
}
}
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败");
}
} else {
try {
// 代理商退款退款
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund);
// 退款到油站
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) {
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund);
}
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode());
orderRefund.setFinishTime(new Date());
orderRefundService.editData(orderRefund);
@ -399,9 +394,81 @@ public class ApiGasOrderService {
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败");
}
} else {
// 正常订单
// 渠道退款
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type2.getNumber())) {
// 团油
try {
// 请求团油渠道申请退款
JSONObject object = NewLinkRequestService.refuelingOrderRefund(gasOrder.getUserPhone(), gasOrder.getOrderNo(), orderRefund.getRefundRemark());
if (object == null || !object.getString("code").equals("200")) {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent("渠道申请退款失败!原因:" + object.getString("message"));
gasOrderService.updateGasOrder(gasOrder);
}
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败");
}
} else {
// 重庆壳牌
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) {
try {
// 请求重庆壳牌渠道退款
CqShellPetroleumRequestService.gasSyncRefund(gasOrder.getPayTime(), gasOrder.getOrderNo());
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败");
}
}
try {
// 代理商退款退款
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund);
// 退款到油站
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) {
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund);
}
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode());
orderRefund.setFinishTime(new Date());
orderRefundService.editData(orderRefund);
gasOrder.setStatus(OrderOilStatus.STATUS4.getNumber());
gasOrder.setRefundTime(orderRefund.getFinishTime());
gasOrderService.updateGasOrder(gasOrder);
} catch (Exception e) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.COMMON_ERROR, "请求退款失败");
}
}
}
}
/* @Transactional(propagation= Propagation.REQUIRES_NEW,isolation = Isolation.SERIALIZABLE,rollbackFor= {RuntimeException.class})
private void newLinkNotify(BsGasOrder gasOrder,String refundFailReason) {
BsOrderRefund orderRefund = orderRefundService.getRefundByOrderNo(gasOrder.getOrderNo());
try {
if (orderRefund != null) {
orderRefund.setRefundStatus(OrderRefundStatusEnum.status2.getCode());
orderRefund.setFinishTime(new Date());
orderRefund.setRefundFailReason(refundFailReason);
orderRefundService.editData(orderRefund);
}
// 代理商退款退款
agentApiAccountService.refund(gasOrder.getAgentId(),gasOrder.getGasRefuelPrice(), orderRefund);
// 退款到油站
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) {
merchantAccountService.refund(gasOrder.getMerNo(),gasOrder.getGasSettlePrice(),orderRefund);
}
gasOrder.setStatus(OrderOilStatus.STATUS4.getNumber());
gasOrder.setRefundTime(new Date());
gasOrderService.updateGasOrder(gasOrder);
} catch (Exception e) {
if (orderRefund != null) {
orderRefund.set
}
}
}*/
/**
* 查询订单详情
* @param request

@ -55,6 +55,12 @@ public interface BsOrderRefundService {
* @return
*/
BsOrderRefund getRefundByChildOrderNo(String childOrderNo);
/**
* 根据子订单号查询退款中的订单
* @param orderNo
* @return
*/
BsOrderRefund getRefundByOrderNo(String orderNo);
/**
* 查询退款列表

@ -296,6 +296,18 @@ public class BsOrderRefundServiceImpl implements BsOrderRefundService {
return null;
}
@Override
public BsOrderRefund getRefundByOrderNo(String orderNo) {
BsOrderRefundExample example = new BsOrderRefundExample();
example.createCriteria().andOrderNoEqualTo(orderNo).andRefundStatusEqualTo(OrderRefundStatusEnum.status1.getCode());
example.setOrderByClause("create_time desc");
List<BsOrderRefund> list = orderRefundMapper.selectByExample(example);
if (!list.isEmpty()){
return list.get(0);
}
return null;
}
@Override
public List<BsOrderRefund> getRefundList(Map<String, Object> param) {
BsOrderRefundExample example = new BsOrderRefundExample();

Loading…
Cancel
Save