Commit 9cc6a8e9 authored by jiaorz's avatar jiaorz

修改提前还车逻辑

parent 58258299
...@@ -124,7 +124,7 @@ public class MsgBiz { ...@@ -124,7 +124,7 @@ public class MsgBiz {
} }
public ObjectRestResponse getMsgListByUserId(Integer page, Integer limit) { public ObjectRestResponse getMsgListByUserId(Integer page, Integer limit, Integer type) {
//获取所有朋友圈 //获取所有朋友圈
page = page == null ? 1 : page; page = page == null ? 1 : page;
limit = limit == null ? 10 : limit; limit = limit == null ? 10 : limit;
...@@ -137,8 +137,9 @@ public class MsgBiz { ...@@ -137,8 +137,9 @@ public class MsgBiz {
} }
Pageable pageable = PageRequest.of(--page, limit); Pageable pageable = PageRequest.of(--page, limit);
List<Integer> ids = new ArrayList<>(); List<Integer> ids = new ArrayList<>();
ids.add(2); if(type != null) {
ids.add(4); ids.add(type);
}
Query query = new Query(Criteria.where("body.type").in(ids)); Query query = new Query(Criteria.where("body.type").in(ids));
query.addCriteria(Criteria.where("userId").is(userId)); query.addCriteria(Criteria.where("userId").is(userId));
int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size(); int totalSize = mongoTemplate.find(query, Msg.class, "s_msg").size();
......
...@@ -32,7 +32,7 @@ public class MsgController { ...@@ -32,7 +32,7 @@ public class MsgController {
} }
@GetMapping(value = "/getByUserId") @GetMapping(value = "/getByUserId")
public ObjectRestResponse getByUserId(Integer page, Integer limit) { public ObjectRestResponse getByUserId(Integer page, Integer limit, Integer type) {
return msgBiz.getMsgListByUserId(page, limit); return msgBiz.getMsgListByUserId(page, limit, type);
} }
} }
...@@ -82,11 +82,11 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -82,11 +82,11 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
List<OrderVehicleCrosstownDto> list = mapper.selectByOrderId(orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> list = mapper.selectByOrderId(orderVehicleCrosstownDto);
for (OrderVehicleCrosstownDto value : list) { for (OrderVehicleCrosstownDto value : list) {
if(value != null && value.getOrperaterId() != null && value.getType() != 1) { if (value != null && value.getOrperaterId() != null && value.getType() != 1) {
UserDTO userDTO = userFeign.userinfoByUid(value.getOrperaterId()).getData(); UserDTO userDTO = userFeign.userinfoByUid(value.getOrperaterId()).getData();
if(userDTO != null) { if (userDTO != null) {
CompanyDetail branchCompany = vehicleFeign.getCompanyDetail(userDTO.getCompanyId()).getData(); CompanyDetail branchCompany = vehicleFeign.getCompanyDetail(userDTO.getCompanyId()).getData();
if(branchCompany != null) { if (branchCompany != null) {
value.setCustomerPhone(branchCompany.getVehiceServicePhone()); value.setCustomerPhone(branchCompany.getVehiceServicePhone());
} }
} }
...@@ -166,20 +166,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -166,20 +166,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId()); OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId());
if(orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) { if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) {
boolean flag = getTodayTime(orderRentVehicleDetail.getEndTime()); boolean flag = getTodayTime(orderRentVehicleDetail.getEndTime());
if (!flag) { if (!flag) {
return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期"); return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期");
} }
if(userDTO.getCompanyId() != orderRentVehicleDetail.getStartCompanyId()) { if (userDTO.getCompanyId() != orderRentVehicleDetail.getStartCompanyId()) {
return ObjectRestResponse.createFailedResult(3501, "无交车权限"); return ObjectRestResponse.createFailedResult(3501, "无交车权限");
} }
} else { } else {
if(userDTO.getCompanyId() != orderRentVehicleDetail.getEndCompanyId()) { if (userDTO.getCompanyId() != orderRentVehicleDetail.getEndCompanyId()) {
return ObjectRestResponse.createFailedResult(3503, "无收车权限"); return ObjectRestResponse.createFailedResult(3503, "无收车权限");
} }
} }
if(baseOrder.getStatus() != -1) { if (baseOrder.getStatus() != -1) {
Vehicle vehicle = null; Vehicle vehicle = null;
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderRentVehicleDetail.getVehicleId()); RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderRentVehicleDetail.getVehicleId());
log.info("获取车辆信息返回消息:{}", restResponse.getMessage()); log.info("获取车辆信息返回消息:{}", restResponse.getMessage());
...@@ -189,12 +189,12 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -189,12 +189,12 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if (vehicle == null) { if (vehicle == null) {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode(), ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc());
} }
if( vehicle.getMileageLastUpdate() != null) { if (vehicle.getMileageLastUpdate() != null) {
//判断车辆公里数 //判断车辆公里数
if (orderVehicleCrosstownDto.getMileage() == null || orderVehicleCrosstownDto.getMileage() <= vehicle.getMileageLastUpdate()) { if (orderVehicleCrosstownDto.getMileage() == null || orderVehicleCrosstownDto.getMileage() <= vehicle.getMileageLastUpdate()) {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getCode(), ResCode.VEHICLE_BOOKED_RECORD_MILEAGE_CHANGED.getDesc());
}
} }
}
} }
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData(); AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
...@@ -207,13 +207,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -207,13 +207,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId()); vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId());
vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId()); vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId());
vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage());
if(appUserDTO != null) { if (appUserDTO != null) {
vehicleDepartureVo.setUser(appUserDTO.getNickname()); vehicleDepartureVo.setUser(appUserDTO.getNickname());
vehicleDepartureVo.setUserTel(appUserDTO.getUsername()); vehicleDepartureVo.setUserTel(appUserDTO.getUsername());
} else { } else {
vehicleDepartureVo.setUser("APP用戶"); vehicleDepartureVo.setUser("APP用戶");
vehicleDepartureVo.setUserTel("13656235623"); vehicleDepartureVo.setUserTel("13656235623");
} }
vehicleDepartureVo.setUse("用户租车"); vehicleDepartureVo.setUse("用户租车");
vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
vehicleDepartureVo.setCheckMan(orderVehicleCrosstownDto.getLicenseName()); vehicleDepartureVo.setCheckMan(orderVehicleCrosstownDto.getLicenseName());
...@@ -232,7 +232,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -232,7 +232,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage());
vehicleArrivalVo.setRecycleMan(userDTO.getName()); vehicleArrivalVo.setRecycleMan(userDTO.getName());
vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
if(appUserDTO != null) { if (appUserDTO != null) {
vehicleArrivalVo.setRecycleManTel(appUserDTO.getUsername()); vehicleArrivalVo.setRecycleManTel(appUserDTO.getUsername());
} else { } else {
vehicleArrivalVo.setRecycleManTel("13565235623"); vehicleArrivalVo.setRecycleManTel("13565235623");
...@@ -249,17 +249,17 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -249,17 +249,17 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
JSONArray jsonArray = JSONArray.parseArray(orderVehicleCrosstownDto.getDedDetail()); JSONArray jsonArray = JSONArray.parseArray(orderVehicleCrosstownDto.getDedDetail());
for (int i = 0; i < jsonArray.size(); i++) { for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString()); JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
if(jsonObject!= null) { if (jsonObject != null) {
cost += Double.parseDouble(jsonObject.getString("cost")); cost += Double.parseDouble(jsonObject.getString("cost"));
} }
} }
} }
BigDecimal amount = new BigDecimal(cost.toString()).divide(new BigDecimal("1"), 2, BigDecimal.ROUND_UP); BigDecimal amount = new BigDecimal(cost.toString()).divide(new BigDecimal("1"), 2, BigDecimal.ROUND_UP);
orderVehicleCrosstownDto.setDeductionCost(amount); orderVehicleCrosstownDto.setDeductionCost(amount);
//扣除费用 //扣除费用
orderVehicleCrosstownDto.setRestDeposit(orderRentVehicleDetail.getDeposit().subtract(orderVehicleCrosstownDto.getDeductionCost())); orderVehicleCrosstownDto.setRestDeposit(orderRentVehicleDetail.getDeposit().subtract(orderVehicleCrosstownDto.getDeductionCost()));
if(orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金 if (orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金
return ObjectRestResponse.createFailedResult(500,"押金不足,不能交车,请联系客服!"); return ObjectRestResponse.createFailedResult(500, "押金不足,不能交车,请联系客服!");
} }
//出车成功后修改订单状态 //出车成功后修改订单状态
List<OrderVehicleCrosstownDto> oldValue = orderVehicleCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> oldValue = orderVehicleCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto);
...@@ -308,7 +308,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -308,7 +308,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
depositRefundRecord.setTotalAmount(totalAmount.subtract(getAmount())); depositRefundRecord.setTotalAmount(totalAmount.subtract(getAmount()));
depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId()); depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId());
orderDepositRefundRecordBiz.saveNormalRecord(depositRefundRecord); orderDepositRefundRecordBiz.saveNormalRecord(depositRefundRecord);
//修改订单状态为已完成 //修改订单状态为已完成
baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode()); baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
baseOrder = baseOrderBiz.updateSelectiveByIdReT(baseOrder); baseOrder = baseOrderBiz.updateSelectiveByIdReT(baseOrder);
//修改订单详情是否押金全部退还 //修改订单详情是否押金全部退还
...@@ -322,13 +322,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -322,13 +322,13 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
DateTime startTime = new DateTime(orderRentVehicleDetail.getStartTime()); DateTime startTime = new DateTime(orderRentVehicleDetail.getStartTime());
//实际预定的天数 //实际预定的天数
int actualDay = getDaysBetweenDateTime(startTime, endTime); int actualDay = getDaysBetweenDateTime(startTime, endTime);
if(orderRentVehicleDetail.getEndTime() > nowTime.getMillis()) { if (orderRentVehicleDetail.getEndTime() > nowTime.getMillis()) {
//提前的天数 //提前的天数
int noUsedDay = getDaysBetweenDateTime(nowTime, endTime); int noUsedDay = getDaysBetweenDateTime(nowTime, endTime);
//退还未使用的天数,或者金额,扣除违约金,实际未使用天数的金额,最多3000元 //退还未使用的天数,或者金额,扣除违约金,实际未使用天数的金额,最多3000元
//延期还车,结束时间小于当前时间 //延期还车,结束时间小于当前时间
} else if(orderRentVehicleDetail.getEndTime() < nowTime.getMillis()) { } else if (orderRentVehicleDetail.getEndTime() < nowTime.getMillis()) {
//延期的天数, 延期违约金是延期天数*200% //延期的天数, 延期违约金是延期天数*200%
int usedDay = getDaysBetweenDateTime(endTime, nowTime); int usedDay = getDaysBetweenDateTime(endTime, nowTime);
DedDetailDTO dedDetailDTO = new DedDetailDTO(); DedDetailDTO dedDetailDTO = new DedDetailDTO();
...@@ -344,19 +344,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -344,19 +344,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
orderVehicleCrosstown.setDeductionCost(orderVehicleCrosstown.getDeductionCost().add(dedDetailDTO.getCost())); orderVehicleCrosstown.setDeductionCost(orderVehicleCrosstown.getDeductionCost().add(dedDetailDTO.getCost()));
orderVehicleCrosstownBiz.updateSelectiveByIdRe(orderVehicleCrosstown); orderVehicleCrosstownBiz.updateSelectiveByIdRe(orderVehicleCrosstown);
} } }
//添加定损记录 }
DepositRefundRecord depositRefundRecord = new DepositRefundRecord(); //添加定损记录
depositRefundRecord.setAmount(orderVehicleCrosstown.getDeductionCost()); DepositRefundRecord depositRefundRecord = new DepositRefundRecord();
depositRefundRecord.setRestAmount(totalAmount.subtract(getAmount()).subtract(orderVehicleCrosstown.getDeductionCost())); depositRefundRecord.setAmount(orderVehicleCrosstown.getDeductionCost());
depositRefundRecord.setTotalAmount(totalAmount.subtract(getAmount())); depositRefundRecord.setRestAmount(totalAmount.subtract(getAmount()).subtract(orderVehicleCrosstown.getDeductionCost()));
depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId()); depositRefundRecord.setTotalAmount(totalAmount.subtract(getAmount()));
orderDepositRefundRecordBiz.saveFixLossRecord(depositRefundRecord); depositRefundRecord.setCrosstownId(orderVehicleCrosstown.getId());
//修改訂單狀態為定損 orderDepositRefundRecordBiz.saveFixLossRecord(depositRefundRecord);
baseOrder.setStatus(OrderStatusEnum.ORDER_FIXED_LOSS.getCode()); //修改訂單狀態為定損
baseOrderBiz.updateSelectiveByIdReT(baseOrder); baseOrder.setStatus(OrderStatusEnum.ORDER_FIXED_LOSS.getCode());
orderRentVehicleDetail.setFixedLossStatus(1); baseOrderBiz.updateSelectiveByIdReT(baseOrder);
orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail); orderRentVehicleDetail.setFixedLossStatus(1);
orderRentVehicleBiz.updateSelectiveByIdRe(orderRentVehicleDetail);
} else if (baseOrder.getStatus() == OrderStatusEnum.ORDER_FIXED_LOSS.getCode()) {//定损后还车 } else if (baseOrder.getStatus() == OrderStatusEnum.ORDER_FIXED_LOSS.getCode()) {//定损后还车
DepositRefundRecord depositRefundRecord = orderDepositRefundRecordBiz.findByCrossIdAndStatus(orderVehicleCrosstown.getId(), DepositRefundStatus.FIXLOSSREFUND.getCode()); DepositRefundRecord depositRefundRecord = orderDepositRefundRecordBiz.findByCrossIdAndStatus(orderVehicleCrosstown.getId(), DepositRefundStatus.FIXLOSSREFUND.getCode());
if (depositRefundRecord != null) { if (depositRefundRecord != null) {
...@@ -372,7 +373,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -372,7 +373,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
newValue.setId(null); newValue.setId(null);
orderDepositRefundRecordBiz.save(newValue); orderDepositRefundRecordBiz.save(newValue);
DepositRefundRecord nextValue = orderDepositRefundRecordBiz.findByCrossIdAndStatus(orderVehicleCrosstown.getId(), DepositRefundStatus.FIXLOSSREFUNDARRIVAL.getCode()); DepositRefundRecord nextValue = orderDepositRefundRecordBiz.findByCrossIdAndStatus(orderVehicleCrosstown.getId(), DepositRefundStatus.FIXLOSSREFUNDARRIVAL.getCode());
if(nextValue != null) { if (nextValue != null) {
nextValue.setRestAmount(newValue.getRestAmount()); nextValue.setRestAmount(newValue.getRestAmount());
orderDepositRefundRecordBiz.update(nextValue); orderDepositRefundRecordBiz.update(nextValue);
} }
...@@ -410,14 +411,14 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -410,14 +411,14 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public boolean getTodayTime(Long time) { public boolean getTodayTime(Long time) {
long current = System.currentTimeMillis(); long current = System.currentTimeMillis();
if (current <= (time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset() ) + 24 * 60 * 60 * 1000 -1) { if (current <= (time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset()) + 24 * 60 * 60 * 1000 - 1) {
return true; return true;
} }
return false; return false;
} }
//获取两个日期之间的天数 //获取两个日期之间的天数
public int getDaysBetweenDateTime(DateTime startDay, DateTime endDay) { public int getDaysBetweenDateTime(DateTime startDay, DateTime endDay) {
int a = 0; int a = 0;
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) { for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) {
a++; a++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment