|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|