diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java index f01b08a4..fed3e400 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighGasController.java @@ -63,6 +63,9 @@ public class HighGasController { @Resource private HighMerchantStoreService merchantStoreService; + @Resource + private HighGasDiscountOilPriceService gasDiscountOilPriceService; + @RequestMapping(value="/getGasStoreList",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询加油站列表") @@ -134,10 +137,27 @@ public class HighGasController { @ResponseBody @ApiOperation(value = "油价计算") public ResponseData oilPriceCompute(@RequestParam(name = "price", required = true) BigDecimal price, - @RequestParam(name = "gasPriceGun", required = true) BigDecimal gasPriceGun, - @RequestParam(name = "gasPriceVip", required = true) BigDecimal gasPriceVip) { + @RequestParam(name = "goodsId", required = true) Long goodsId, + @RequestParam(name = "oilNo", required = true) String oilNo, + @RequestParam(name = "isTyAgent", required = false) Boolean isTyAgent) { try { - return ResponseMsgUtil.success(new BigDecimal(price.toString()).divide(gasPriceGun,10,BigDecimal.ROUND_DOWN).multiply(gasPriceVip).setScale(2,BigDecimal.ROUND_DOWN)); + BigDecimal discount = new BigDecimal("1"); + if (isTyAgent != null && isTyAgent.equals(true)) { + // 查询加油站 + HighTyAgentOilStation oilStation = tyAgentOilStationService.getDetailByOilStationId(goodsId); + if (oilStation != null) { + // 价格 + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(oilStation.getId(), oilNo); + if (priceRate == null) { + discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); + } else { + discount = priceRate.getPriceRate(); + } + } + } else { + discount = gasDiscountOilPriceService.getDetailByOilNo(oilNo).getPriceRate(); + } + return ResponseMsgUtil.success(price.multiply(discount.divide(new BigDecimal("100"))).setScale(2,BigDecimal.ROUND_HALF_UP)); } catch (Exception e) { log.error("HighGasController -> oilPriceCompute() error!",e); return ResponseMsgUtil.exception(e); diff --git a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java index 4d07c68b..dc489a66 100644 --- a/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java +++ b/hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java @@ -33,6 +33,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -83,6 +85,9 @@ public class HighOrderController { @Resource private HighTyAgentPriceService tyAgentPriceService; + @Resource + private HighGasDiscountOilPriceService gasDiscountOilPriceService; + @RequestMapping(value="/addOrder",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "增加订单") @@ -228,6 +233,7 @@ public class HighOrderController { } highOrder.setPayType(2); // 第三方平台 + BigDecimal discount = new BigDecimal("1"); if (highOrder.getIsTyAgent() != null && highOrder.getIsTyAgent() == true) { // 查询加油站 HighTyAgentOilStation oilStation = tyAgentOilStationService.getDetailByOilStationId(childOrder.getGoodsId()); @@ -238,7 +244,17 @@ public class HighOrderController { childOrder.setGasAgentName(oilStation.getTyAgentName()); childOrder.setGasOrgId(oilStation.getOrganizationId()); childOrder.setGasOrgName(oilStation.getOrganizationName()); + + // 价格 + HighTyAgentPrice priceRate = tyAgentPriceService.getDetail(oilStation.getId(), childOrder.getGasOilNo()); + if (priceRate == null) { + discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); + } else { + discount = priceRate.getPriceRate(); + } } + } else { + discount = gasDiscountOilPriceService.getDetailByOilNo(childOrder.getGasOilNo()).getPriceRate(); } // 获取当前加油价格 @@ -256,7 +272,8 @@ public class HighOrderController { // 平台的价格 childOrder.setExt1(childOrder.getGasPriceVip().toString()); - childOrder.setGoodsActualPrice(new BigDecimal(childOrder.getGoodsPrice().toString()).divide(childOrder.getGasPriceGun(),10,BigDecimal.ROUND_DOWN).multiply(childOrder.getGasPriceVip()).setScale(2,BigDecimal.ROUND_DOWN)); + // childOrder.setGoodsActualPrice(new BigDecimal(childOrder.getGoodsPrice().toString()).divide(childOrder.getGasPriceGun(),10,BigDecimal.ROUND_DOWN).multiply(childOrder.getGasPriceVip()).setScale(2,BigDecimal.ROUND_HALF_UP)); + childOrder.setGoodsActualPrice(childOrder.getGoodsPrice().multiply(discount.divide(new BigDecimal("100"))).setScale(2,BigDecimal.ROUND_HALF_UP)); // 团油的价格 childOrder.setGasPriceGun(priceDetail.getBigDecimal("priceGun")); @@ -422,7 +439,6 @@ public class HighOrderController { } } - @RequestMapping(value = "/getOrderById", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据id查询订单详情") diff --git a/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java b/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java index 1da76d92..bae704b1 100644 --- a/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java +++ b/hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java @@ -76,8 +76,6 @@ public class HighGasSchedule { JSONArray oilPriceList = object.getJSONArray("oilPriceList"); for (Object oilPrice : oilPriceList) { JSONObject oilPriceObject = JSONObject.parseObject(JSONObject.toJSONString(oilPrice)); - - // 查询门店油号 highGasOilPrice = highGasOilPriceService.getGasOilPriceByStoreAndOilNo(store.getId(), oilPriceObject.getInteger("oilNo")); if (highGasOilPrice == null) { diff --git a/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java index 0716e5df..b601cb90 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java @@ -18,14 +18,11 @@ public class HighGasOilPriceServiceImpl implements HighGasOilPriceService { @Override public void editGasOilPrice(HighGasOilPrice highGasOilPrice) { - if (highGasOilPrice.getOilType() != null && highGasOilPrice.getOilType() == 1) { - if (highGasOilPrice.getId() != null) { - highGasOilPriceMapper.updateByPrimaryKey(highGasOilPrice); - } else { - highGasOilPriceMapper.insert(highGasOilPrice); - } + if (highGasOilPrice.getId() != null) { + highGasOilPriceMapper.updateByPrimaryKey(highGasOilPrice); + } else { + highGasOilPriceMapper.insert(highGasOilPrice); } - } @Override diff --git a/hai-service/src/main/java/com/hai/service/impl/HighOilCardServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HighOilCardServiceImpl.java index a354917a..00843eaf 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HighOilCardServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HighOilCardServiceImpl.java @@ -83,7 +83,7 @@ public class HighOilCardServiceImpl implements HighOilCardService { } // 账户扣款 Map consumeType = new HashMap<>(); - consumeType.put("sourceType", CompanyAmountSourceTypeEnum.type2); + consumeType.put("sourceType", CompanyAmountSourceTypeEnum.type2.getType()); consumeType.put("sourceId", oilCard.getId()); consumeType.put("sourceContent", "油卡:"+oilCard.getCardNo()+",充值:¥"+price.toString()); companyAccountService.consume(orgId, price, consumeType);