提交代码

dev
胡锐 2 months ago
parent 5c4cc6c914
commit 4c9f8dcee9
  1. 19
      service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderServiceImpl.java
  2. 1
      service/src/main/java/com/hfkj/service/gas/impl/BsGasServiceImpl.java
  3. 122
      service/src/main/java/com/hfkj/service/order/OrderPaySuccessService.java

@ -10,6 +10,7 @@ import com.hfkj.entity.BsGasOrderExample;
import com.hfkj.service.gas.BsGasOrderService;
import com.hfkj.service.order.BsOrderService;
import com.hfkj.service.order.OrderPaySuccessService;
import com.hfkj.sysenum.order.OrderPayTypeEnum;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -71,9 +72,21 @@ public class BsGasOrderServiceImpl implements BsGasOrderService {
@Override
public BsGasOrder repairOrder(String orderNo) throws Exception {
BsGasOrder result = paySuccessService.oilHandle(orderService.getDetail(orderNo));
if (result.getAbnormal().equals(true)) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "补单失败!原因:" + result.getAbnormalContent());
// 加油订单
BsGasOrder gasOrder = getDetailByOrderNo(orderNo);
BsGasOrder result = null;
if (!gasOrder.getPayType().equals(OrderPayTypeEnum.type4.getCode())) {
// 补推
result = paySuccessService.oilHandle(orderService.getDetail(orderNo));
if (result.getAbnormal().equals(true)) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "补单失败!原因:" + result.getAbnormalContent());
}
} else {
// 补推
result = paySuccessService.oilApiHandle(gasOrder);
if (result.getAbnormal().equals(true)) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "补单失败!原因:" + result.getAbnormalContent());
}
}
return result;
}

@ -149,6 +149,7 @@ public class BsGasServiceImpl implements BsGasService {
if (discountUser != null && discountUser.getOverlayDiscount().equals(false)) {
// 优惠券与油价不叠加
pricePlatform = priceGun;
priceVip = priceGun;
}
// 加油金额

@ -206,4 +206,126 @@ public class OrderPaySuccessService {
return gasOrder;
}
/**
* api加油业务
* @param gasOrder
* @return
* @throws Exception
*/
public BsGasOrder oilApiHandle(BsGasOrder gasOrder) throws Exception {
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) {
// 自建站
// 打印小票
if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type1.getNumber())) {
deviceService.printGasOrder(gasOrder.getMerId(), gasOrder, false);
}
// 查询油站
BsMerchant merchant = merchantService.getMerchant(gasOrder.getMerNo());
if (merchant != null) {
// 连锁商户
if (merchant.getChainBrandId() != null) {
if (merchant.getChainBrandSettleType().equals(MerchantChainBrandSettleTypeEnum.type1.getNumber())) {
// 连锁额度
Map<String,Object> consumeMap = new HashMap<>();
consumeMap.put("sourceType", MerchantAccountRecordSourceTypeEnum.type2.getType());
consumeMap.put("sourceId", gasOrder.getId());
consumeMap.put("sourceOrderNo", gasOrder.getOrderNo());
merchantChainBrandAccountService.consume(merchant.getChainBrandId(), gasOrder.getMerNo(), gasOrder.getGasSettlePrice(), consumeMap);
} else if (merchant.getChainBrandSettleType().equals(MerchantChainBrandSettleTypeEnum.type2.getNumber())) {
// 商户额度
Map<String,Object> consumeMap = new HashMap<>();
consumeMap.put("sourceType", MerchantAccountRecordSourceTypeEnum.type2.getType());
consumeMap.put("sourceId", gasOrder.getId());
consumeMap.put("sourceOrderNo", gasOrder.getOrderNo());
merchantAccountService.consume(gasOrder.getMerNo(), gasOrder.getGasSettlePrice(), consumeMap);
}
} else {
// 商户额度
Map<String,Object> consumeMap = new HashMap<>();
consumeMap.put("sourceType", MerchantAccountRecordSourceTypeEnum.type2.getType());
consumeMap.put("sourceId", gasOrder.getId());
consumeMap.put("sourceOrderNo", gasOrder.getOrderNo());
merchantAccountService.consume(gasOrder.getMerNo(), gasOrder.getGasSettlePrice(), consumeMap);
}
}
} else if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type2.getNumber())) {
try {
// 能链【团油】
Map<String, Object> param = new HashMap<>();
param.put("gasId", gasOrder.getMerNo());
param.put("oilNo", gasOrder.getGasOilNo());
param.put("gunNo", Integer.parseInt(gasOrder.getGasGunNo()));
param.put("priceGun", gasOrder.getGasPriceGun()); // 油站价
param.put("priceVip", gasOrder.getGasPriceCost()); // 成本价
param.put("driverPhone", gasOrder.getUserPhone());
param.put("thirdSerialNo", gasOrder.getOrderNo());
param.put("refuelingAmount", gasOrder.getGasRefuelPrice());
// 查询账户
SecDictionary newLinkAccount = dictionaryService.getDictionary("NEW_LINK_ACCOUNT", "" + gasOrder.getGasOilType());
if (newLinkAccount != null) {
param.put("accountNo", newLinkAccount.getCodeName());
}
JSONObject pushResult = NewLinkRequestService.refuelingOrderPush(param);
if (pushResult != null && pushResult.getString("code").equals("200")) {
gasOrder.setChannelOrderNo(pushResult.getJSONObject("result").getString("orderNo"));
gasOrder.setAbnormal(false);
gasOrder.setAbnormalContent(null);
} else {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent(pushResult.getString("message"));
}
} catch (Exception e) {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent("推送订单未知异常!请稍后重新推送");
}
gasOrderService.updateGasOrder(gasOrder);
} else if (gasOrder.getChannelType().equals(MerchantSourceTypeEnum.type3.getNumber())) {
try {
// 推送加好油【重庆壳牌】
CqShellPetroleumRequestService.gasSyncPayment(gasOrder.getOrderNo(),
gasOrder.getMerNo(),
gasOrder.getPayTime(),
gasOrder.getGasRefuelPrice(),
gasOrder.getGasOilNo(),
gasOrder.getGasGunNo(),
gasOrder.getPayablePrice(),
gasOrder.getTotalDeductionPrice()
);
gasOrder.setAbnormal(false);
gasOrder.setAbnormalContent(null);
} catch (BaseException e) {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent(e.getErrorMsg());
} catch (Exception e) {
gasOrder.setAbnormal(true);
gasOrder.setAbnormalContent("推送订单未知错误!请稍后重新推送");
}
gasOrderService.updateGasOrder(gasOrder);
}
if (StringUtils.isNotBlank(gasOrder.getUserPhone())) {
// 查询商户会员
BsMerchantUser merchantUser = merchantUserService.getUser(gasOrder.getMerNo(), gasOrder.getUserPhone());
if (merchantUser == null) {
// 注册商户会员
merchantUser = new BsMerchantUser();
merchantUser.setMerId(gasOrder.getMerId());
merchantUser.setMerNo(gasOrder.getMerNo());
merchantUser.setMerName(gasOrder.getMerName());
merchantUser.setUserId(gasOrder.getUserId());
merchantUser.setUserPhone(gasOrder.getUserPhone());
merchantUser.setVipLevel(0);
merchantUser.setIntegral(0);
merchantUser.setStatus(1);
merchantUserService.editData(merchantUser);
}
// TODO 赠送积分
}
return gasOrder;
}
}

Loading…
Cancel
Save