团油加油价格计算

dev-discount
胡锐 3 years ago
parent c1275e416c
commit be5c1a82e5
  1. 26
      hai-cweb/src/main/java/com/cweb/controller/HighGasController.java
  2. 20
      hai-cweb/src/main/java/com/cweb/controller/HighOrderController.java
  3. 2
      hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java
  4. 11
      hai-service/src/main/java/com/hai/service/impl/HighGasOilPriceServiceImpl.java
  5. 2
      hai-service/src/main/java/com/hai/service/impl/HighOilCardServiceImpl.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);

@ -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查询订单详情")

@ -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) {

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

@ -83,7 +83,7 @@ public class HighOilCardServiceImpl implements HighOilCardService {
}
// 账户扣款
Map<String, Object> 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);

Loading…
Cancel
Save