车费按服务时间计算

This commit is contained in:
曹磊 2024-07-12 16:36:35 +08:00
parent 46d6bb23f1
commit c8086c3498
5 changed files with 30 additions and 17 deletions

View File

@ -788,7 +788,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); //计算车费
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
@ -1013,8 +1015,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if(map.get("code").toString().equals("1")){ if(map.get("code").toString().equals("1")){
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); // TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
@ -1242,7 +1244,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
@ -1587,8 +1590,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if(map.get("code").toString().equals("1")){ if(map.get("code").toString().equals("1")){
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); // TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
@ -1818,8 +1821,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
if(map.get("code").toString().equals("1")){ if(map.get("code").toString().equals("1")){
return Result.error("预约时间正忙,请更换其他时间!"); return Result.error("预约时间正忙,请更换其他时间!");
} }
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); // TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }
@ -2021,7 +2024,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
//项目差价 //项目差价
BigDecimal xmchajia = orders.getMassageMoney().subtract(oldOrders.getMassageMoney()); BigDecimal xmchajia = orders.getMassageMoney().subtract(oldOrders.getMassageMoney());
TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude()); TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude(),orders.getServeTime());
// TravelPriceVo travelPriceVo = travelConfService.calcTravelPrice(orders.getArtificerId(), orders.getLongitude(), orders.getLatitude());
if (travelPriceVo == null) { if (travelPriceVo == null) {
return Result.error("暂不支持当前地址,请更换其他地址!"); return Result.error("暂不支持当前地址,请更换其他地址!");
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
import com.sqx.modules.travelconf.entity.TravelConf; import com.sqx.modules.travelconf.entity.TravelConf;
import com.sqx.modules.travelconf.service.TravelConfService; import com.sqx.modules.travelconf.service.TravelConfService;
@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
/** /**
* @author bai * @author bai
@ -90,7 +92,7 @@ public class TravelConfController {
@GetMapping(value = "/getTaxiMoney") @GetMapping(value = "/getTaxiMoney")
@ApiOperation("测试获取价格") @ApiOperation("测试获取价格")
public Result getTaxiMoney(Long artificerId, String toLongitude, String toLatitude){ public Result getTaxiMoney(Long artificerId, String toLongitude, String toLatitude){
TravelPriceVo travelPriceVo = service.calcTravelPrice(artificerId, toLongitude, toLatitude); TravelPriceVo travelPriceVo = service.calcTravelPrice(artificerId, toLongitude, toLatitude, DateUtils.format(new Date()));
return Result.success().put("data", travelPriceVo); return Result.success().put("data", travelPriceVo);
} }

View File

@ -1,6 +1,7 @@
package com.sqx.modules.travelconf.controller.app; package com.sqx.modules.travelconf.controller.app;
import com.sqx.common.exception.SqxException; import com.sqx.common.exception.SqxException;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result2; import com.sqx.common.utils.Result2;
import com.sqx.modules.travelconf.service.TravelConfService; import com.sqx.modules.travelconf.service.TravelConfService;
import com.sqx.modules.travelconf.vo.TravelPriceVo; import com.sqx.modules.travelconf.vo.TravelPriceVo;
@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/** /**
* @author bai * @author bai
* @date 2024/06/08 * @date 2024/06/08
@ -33,7 +36,7 @@ public class AppTravelConfController {
@ApiParam(value = "纬度 示例43.887282", required = true, example = "43.887282") String toLatitude){ @ApiParam(value = "纬度 示例43.887282", required = true, example = "43.887282") String toLatitude){
Result2<TravelPriceVo> res = new Result2<>(); Result2<TravelPriceVo> res = new Result2<>();
try { try {
res.setData(service.calcTravelPrice(artificerId, toLongitude, toLatitude)); res.setData(service.calcTravelPrice(artificerId, toLongitude, toLatitude, DateUtils.format(new Date())));
}catch (SqxException e) { }catch (SqxException e) {
//业务错误 //业务错误
log.error(e.getMsg(),e); log.error(e.getMsg(),e);

View File

@ -35,7 +35,8 @@ public interface TravelConfService extends IService<TravelConf> {
* @param toLatitude * @param toLatitude
* @return * @return
*/ */
TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude); TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime);
// TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude);
/** /**
* 最终获取出行价格 * 最终获取出行价格
@ -47,5 +48,5 @@ public interface TravelConfService extends IService<TravelConf> {
* @param toLatitude * @param toLatitude
* @return * @return
*/ */
TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude); TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude, String serveTime);
} }

View File

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.exception.SqxException; import com.sqx.common.exception.SqxException;
import com.sqx.common.utils.DateUtils;
import com.sqx.map.CommonMapUtils; import com.sqx.map.CommonMapUtils;
import com.sqx.modules.artificer.entity.Artificer; import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.service.ArtificerService; import com.sqx.modules.artificer.service.ArtificerService;
@ -202,7 +203,7 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
} }
@Override @Override
public TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude) { public TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime) {
Artificer artificerInfo = artificerService.getById(artificerId); Artificer artificerInfo = artificerService.getById(artificerId);
Integer cxfs = artificerInfo.getTripWay();//1公交 2免费 3出租 Integer cxfs = artificerInfo.getTripWay();//1公交 2免费 3出租
@ -218,15 +219,17 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
BigDecimal freeKilometers = new BigDecimal(mfgls);// BigDecimal freeKilometers = new BigDecimal(mfgls);//
String longitude = artificerInfo.getLongitude(); String longitude = artificerInfo.getLongitude();
String latitude = artificerInfo.getLatitude(); String latitude = artificerInfo.getLatitude();
return calcTravelPrice(travelType, freeKilometers, longitude, latitude, toLongitude, toLatitude); return calcTravelPrice(travelType, freeKilometers, longitude, latitude, toLongitude, toLatitude,serveTime);
} }
@Override @Override
public TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude){ public TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude, String serveTime){
TravelPriceVo vo = new TravelPriceVo(); TravelPriceVo vo = new TravelPriceVo();
vo.setFreeKilometers(NumberUtil.decimalFormat("0.00",freeKilometers)); vo.setFreeKilometers(NumberUtil.decimalFormat("0.00",freeKilometers));
Date now = DateTime.now(); // Date now = DateTime.now();
DateUtils.stringToDate(serveTime,"yyyy-MM-dd HH:mm");
Date now = DateUtils.stringToDate(serveTime,"yyyy-MM-dd HH:mm");;
//按条件取配置 //按条件取配置
TravelConf conf = getConfByAccordingCondition(_travelType, now); TravelConf conf = getConfByAccordingCondition(_travelType, now);
vo.setConf(conf); vo.setConf(conf);