From 6336f41a794767cc5e67168a3e5deb1a9c364e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Fri, 11 Apr 2025 15:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E4=BD=8D=E5=8C=BA=E5=9F=9F=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=9B=B4=E6=96=B0=EF=BC=8C=E6=9B=B4=E5=8A=A0=E5=87=86?= =?UTF-8?q?=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/constant/CacheConstants.java | 5 +- .../com/ruoyi/bst/area/utils/AreaUtil.java | 2 +- .../service/impl/AreaSubServiceImpl.java | 5 +- .../balanceLog/service/BalanceLogService.java | 6 +- .../service/impl/BalanceLogServiceImpl.java | 20 ++++- .../com/ruoyi/bst/order/domain/Order.java | 16 ---- .../com/ruoyi/bst/order/domain/OrderVO.java | 16 ++++ .../bst/order/domain/dto/OrderVerifyDTO.java | 7 ++ .../ruoyi/bst/order/mapper/OrderMapper.java | 8 ++ .../ruoyi/bst/order/mapper/OrderMapper.xml | 54 ++++++------- .../service/impl/OrderConverterImpl.java | 10 +-- .../order/service/impl/OrderServiceImpl.java | 75 ++++++++++--------- .../service/impl/OrderValidatorImpl.java | 9 ++- .../com/ruoyi/bst/order/utils/OrderUtil.java | 2 - .../bst/orderDevice/domain/OrderDevice.java | 25 +++++++ .../orderDevice/mapper/OrderDeviceMapper.xml | 33 ++++++++ .../service/OrderDeviceService.java | 3 +- .../service/impl/OrderDeviceServiceImpl.java | 22 +++++- .../java/com/ruoyi/bst/suit/domain/Suit.java | 4 + .../suit/domain/vo/SuitIntervalFeeRule.java | 6 ++ .../bst/suit/domain/vo/SuitStartFeeRule.java | 6 ++ .../service/impl/IotReceiveServiceImpl.java | 3 +- .../com/ruoyi/web/app/AppSuitController.java | 4 +- .../com/ruoyi/web/bst/AreaController.java | 18 ++++- .../ruoyi/web/bst/BalanceLogController.java | 4 +- 25 files changed, 255 insertions(+), 108 deletions(-) diff --git a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 7620d03..79c0ab0 100644 --- a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -100,11 +100,14 @@ public class CacheConstants * 运营区禁行区列表 */ public static final String NO_RIDING_AREA_SUB_LIST = "no_riding_area_sub_list:"; - /** * 运营区停车区列表 */ public static final String PARKING_AREA_SUB_LIST = "parking_area_sub_list:"; + /** + * 运营区禁停区列表 + */ + public static final String NO_PARKING_AREA_SUB_LIST = "no_parking_area_sub_list:"; /** * 设备运营区处理状态 diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/utils/AreaUtil.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/utils/AreaUtil.java index d86b963..2c70448 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/utils/AreaUtil.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/utils/AreaUtil.java @@ -71,7 +71,7 @@ public class AreaUtil { // 靠近运营区边界时的播报距离 BigDecimal boundaryDistance = area.getBoundaryDistance(); - // 是否在禁行区内 + // 是否靠近禁行区 AreaSubVO nearAreaSub = AreaSubUtil.getNearAreaSub(noRidingList, lon, lat, area.getError(), boundaryDistance); vo.setNearNoRidingArea(nearAreaSub); vo.setIsNearNoRidingArea(nearAreaSub != null); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/areaSub/service/impl/AreaSubServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/areaSub/service/impl/AreaSubServiceImpl.java index 46565f3..7ea3bcd 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/areaSub/service/impl/AreaSubServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/areaSub/service/impl/AreaSubServiceImpl.java @@ -215,7 +215,8 @@ public class AreaSubServiceImpl implements AreaSubService if (areaId == null) { return; } - String key = CacheConstants.NO_RIDING_AREA_SUB_LIST + areaId; - redisCache.deleteObject(key); + redisCache.deleteObject(CacheConstants.NO_RIDING_AREA_SUB_LIST + areaId); + redisCache.deleteObject(CacheConstants.PARKING_AREA_SUB_LIST + areaId); + redisCache.deleteObject(CacheConstants.NO_PARKING_AREA_SUB_LIST + areaId); } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/BalanceLogService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/BalanceLogService.java index 04c0ddc..b71deab 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/BalanceLogService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/BalanceLogService.java @@ -20,7 +20,11 @@ public interface BalanceLogService * @param id 余额日志主键 * @return 余额日志 */ - public BalanceLogVO selectBalanceLogById(Long id); + public BalanceLogVO selectBalanceLogById(Long id, boolean scope); + + default BalanceLogVO selectBalanceLogById(Long id) { + return this.selectBalanceLogById(id, false); + } /** * 查询余额日志列表 diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/impl/BalanceLogServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/impl/BalanceLogServiceImpl.java index bc51fda..beabfc0 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/impl/BalanceLogServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/balanceLog/service/impl/BalanceLogServiceImpl.java @@ -5,12 +5,14 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.github.pagehelper.PageHelper; import com.ruoyi.bst.balanceLog.domain.BalanceLog; import com.ruoyi.bst.balanceLog.domain.BalanceLogQuery; import com.ruoyi.bst.balanceLog.domain.BalanceLogVO; import com.ruoyi.bst.balanceLog.mapper.BalanceLogMapper; import com.ruoyi.bst.balanceLog.service.BalanceLogService; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; /** * 余额日志Service业务层处理 @@ -31,9 +33,21 @@ public class BalanceLogServiceImpl implements BalanceLogService * @return 余额日志 */ @Override - public BalanceLogVO selectBalanceLogById(Long id) - { - return balanceLogMapper.selectBalanceLogById(id); + public BalanceLogVO selectBalanceLogById(Long id, boolean scope) { + if (id == null) { + return null; + } + + BalanceLogQuery query = new BalanceLogQuery(); + query.setId(id); + query.setScope(scope); + return this.selectOne(query); + } + + private BalanceLogVO selectOne(BalanceLogQuery query) { + PageHelper.startPage(1, 1); + List list = balanceLogMapper.selectBalanceLogList(query); + return CollectionUtils.firstElement(list); } /** diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/Order.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/Order.java index 56bc636..f85d38a 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/Order.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/Order.java @@ -145,18 +145,6 @@ public class Order extends BaseEntity @ApiModelProperty("套餐区间计费规则json") private List suitIntervalRule; - @Excel(name = "还车定位方式", readConverterExp = "1=设备定位,2=手机定位") - @ApiModelProperty("还车定位方式") - private String returnMode; - - @Excel(name = "还车经度") - @ApiModelProperty("还车经度") - private BigDecimal returnLon; - - @Excel(name = "还车纬度") - @ApiModelProperty("还车纬度") - private BigDecimal returnLat; - @Excel(name = "取消备注") @ApiModelProperty("取消备注") private String cancelRemark; @@ -179,10 +167,6 @@ public class Order extends BaseEntity @ApiModelProperty("开始子区域ID") private Long startAreaSubId; - @Excel(name = "结束子区域ID") - @ApiModelProperty("结束子区域ID") - private Long endAreaSubId; - @Excel(name = "开始子区域名称") @ApiModelProperty("开始子区域名称") private String startAreaSubName; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java index 4982505..901ba14 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/OrderVO.java @@ -59,4 +59,20 @@ public class OrderVO extends Order { @ApiModelProperty("订单设备列表") private List orderDeviceList; + + @ApiModelProperty("结束子区域ID") + private Long endAreaSubId; + + @ApiModelProperty("结束子区域名称") + private String endAreaSubName; + + @ApiModelProperty("还车定位方式") + private String returnMode; + + @ApiModelProperty("还车经度") + private BigDecimal returnLon; + + @ApiModelProperty("还车纬度") + private BigDecimal returnLat; + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderVerifyDTO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderVerifyDTO.java index e2bb7f3..d957561 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderVerifyDTO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/domain/dto/OrderVerifyDTO.java @@ -1,5 +1,8 @@ package com.ruoyi.bst.order.domain.dto; +import java.math.BigDecimal; + +import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @@ -20,4 +23,8 @@ public class OrderVerifyDTO { @ApiModelProperty("审核备注") @Size(max = 200, message = "审核备注不能超过200个字符") private String remark; + + @ApiModelProperty("车损费") + @Min(value = 0, message = "车损费不允许小于0") + private BigDecimal deductionFee; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.java index d655135..25e68d7 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.java @@ -136,4 +136,12 @@ public interface OrderMapper */ List selectStatusCount(@Param("query") OrderQuery query); + /** + * 增加车损费 + * @param id + * @param deductionFee + * @return + */ + int addDeductionFee(@Param("id") Long id, @Param("deductionFee") BigDecimal deductionFee); + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml index b69de6c..74d2506 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml @@ -38,18 +38,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bo.suit_rental_unit, bo.suit_riding_rule, bo.suit_start_rule, - bo.return_mode, bo.suit_interval_rule, - bo.return_lon, - bo.return_lat, bo.pay_amount, bo.pay_expire_time, bo.max_time, bo.suit_seconds, bo.start_area_sub_id, - bo.end_area_sub_id, bo.start_area_sub_name, - bo.end_area_sub_name, bo.end_reason, bo.order_device_id, bo.area_return_verify, @@ -70,7 +65,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bod.device_mac, bod.device_sn, bod.device_vehicle_num, - bod.device_mch_id + bod.device_mch_id, + bod.end_area_sub_id, + bod.end_area_sub_name, + bod.return_mode, + bod.return_lon, + bod.return_lat from @@ -88,9 +88,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bo.suit_type = #{query.suitType} and bo.area_id = #{query.areaId} and bo.user_id = #{query.userId} - and bo.device_id = #{query.deviceId} - and bo.device_mac like concat('%', #{query.deviceMac}, '%') - and bo.device_sn like concat('%', #{query.deviceSn}, '%') + and bod.device_id = #{query.deviceId} + and bod.device_mac like concat('%', #{query.deviceMac}, '%') + and bod.device_sn like concat('%', #{query.deviceSn}, '%') and bo.pay_id = #{query.payId} and bo.mark like concat('%', #{query.mark}, '%') and bo.status = #{query.status} @@ -98,21 +98,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bo.suit_id = #{query.suitId} and bo.suit_rental_unit = #{query.suitRentalUnit} and bo.suit_riding_rule = #{query.suitRidingRule} - and bo.return_mode = #{query.returnMode} + and bod.return_mode = #{query.returnMode} and bo.suit_name like concat('%', #{query.suitName}, '%') and ba.name like concat('%', #{query.areaName}, '%') and su.nick_name like concat('%', #{query.userName}, '%') - and bo.device_vehicle_num like concat('%', #{query.deviceVehicleNum}, '%') + and bod.device_vehicle_num like concat('%', #{query.deviceVehicleNum}, '%') and bp.no like concat('%', #{query.payNo}, '%') and su.user_name like concat('%', #{query.userPhone}, '%') and bo.no = #{query.eqNo} and bo.start_area_sub_id = #{query.startAreaSubId} - and bo.end_area_sub_id = #{query.endAreaSubId} + and bod.end_area_sub_id = #{query.endAreaSubId} and bo.start_area_sub_name like concat('%', #{query.startAreaSubName}, '%') - and bo.end_area_sub_name like concat('%', #{query.endAreaSubName}, '%') + and bod.end_area_sub_name like concat('%', #{query.endAreaSubName}, '%') and bo.max_time >= #{query.maxTimeStart} and bo.max_time <= #{query.maxTimeEnd} - and bo.device_mch_id = #{query.deviceMchId} + and bod.device_mch_id = #{query.deviceMchId} and bo.end_reason like concat('%', #{query.endReason}, '%') and bo.order_device_id = #{query.orderDeviceId} and bo.area_return_verify = #{query.areaReturnVerify} @@ -201,18 +201,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" suit_rental_unit, suit_riding_rule, suit_start_rule, - return_mode, suit_interval_rule, - return_lon, - return_lat, pay_amount, pay_expire_time, max_time, suit_seconds, start_area_sub_id, - end_area_sub_id, start_area_sub_name, - end_area_sub_name, end_reason, order_device_id, area_return_verify, @@ -247,18 +242,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{suitRentalUnit}, #{suitRidingRule}, #{suitStartRule, typeHandler=com.ruoyi.bst.suit.mapper.typehanlder.SuitStartFeeRuleJsonTypeHandler}, - #{returnMode}, #{suitIntervalRule, typeHandler=com.ruoyi.bst.suit.mapper.typehanlder.SuitIntervalFeeRuleJsonListTypeHandler}, - #{returnLon}, - #{returnLat}, #{payAmount}, #{payExpireTime}, #{maxTime}, #{suitSeconds}, #{startAreaSubId}, - #{endAreaSubId}, #{startAreaSubName}, - #{endAreaSubName}, #{endReason}, #{orderDeviceId}, #{areaReturnVerify}, @@ -303,18 +293,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" suit_rental_unit = #{data.suitRentalUnit}, suit_riding_rule = #{data.suitRidingRule}, suit_start_rule = #{data.suitStartRule, typeHandler=com.ruoyi.bst.suit.mapper.typehanlder.SuitStartFeeRuleJsonTypeHandler}, - return_mode = #{data.returnMode}, suit_interval_rule = #{data.suitIntervalRule, typeHandler=com.ruoyi.bst.suit.mapper.typehanlder.SuitIntervalFeeRuleJsonListTypeHandler}, - return_lon = #{data.returnLon}, - return_lat = #{data.returnLat}, pay_amount = #{data.payAmount}, pay_expire_time = #{data.payExpireTime}, max_time = #{data.maxTime}, suit_seconds = #{data.suitSeconds}, start_area_sub_id = #{data.startAreaSubId}, - end_area_sub_id = #{data.endAreaSubId}, start_area_sub_name = #{data.startAreaSubName}, - end_area_sub_name = #{data.endAreaSubName}, end_reason = #{data.endReason}, order_device_id = #{data.orderDeviceId}, area_return_verify = #{data.areaReturnVerify}, @@ -451,5 +436,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by `key` - + + + + + + update bst_order bo + set bo.deduction_fee = bo.deduction_fee + #{deductionFee}, + bo.total_fee = bo.total_fee + #{deductionFee} + where bo.id = #{id} and bo.total_fee + #{deductionFee} <= bo.deposit_fee + diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderConverterImpl.java index 5d67864..dfadfb6 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderConverterImpl.java @@ -137,7 +137,7 @@ public class OrderConverterImpl implements OrderConverter{ // 查询设备所属人的加盟信息 AreaJoinVO areaJoin = areaJoinService.selectByUserArea(device.getMchId(), device.getAreaId()); bo.setAreaJoin(areaJoin); - + // 查询运营区的合伙人列表 List partners = areaJoinService.selectListByAreaId(device.getAreaId(), AreaJoinType.PARTNER.getCode()); bo.setPartners(partners); @@ -176,7 +176,7 @@ public class OrderConverterImpl implements OrderConverter{ // 生成订单设备 OrderDevice orderDevice = this.generateOrderDevice(bo); bo.setOrderDevice(orderDevice); - + return bo; } @@ -317,12 +317,8 @@ public class OrderConverterImpl implements OrderConverter{ data.setRidingFee(order.getRidingFee()); data.setTotalFee(order.getTotalFee()); data.setEndTime(order.getEndTime()); - data.setEndAreaSubId(order.getEndAreaSubId()); data.setDuration(order.getDuration()); data.setDistance(order.getDistance()); - data.setReturnLon(order.getReturnLon()); - data.setReturnLat(order.getReturnLat()); - data.setReturnMode(order.getReturnMode()); data.setReturnType(order.getReturnType()); data.setEndAreaSubName(order.getEndAreaSubName()); data.setEndReason(order.getEndReason()); @@ -399,7 +395,7 @@ public class OrderConverterImpl implements OrderConverter{ newDevice = deviceService.selectDeviceBySn(dto.getDeviceSn()); ServiceUtil.assertion(newDevice == null, "SN为%s的设备不存在", dto.getDeviceSn()); } else { - throw new RuntimeException("参数错误,deviceId和deviceSn不能同时为空"); + throw new RuntimeException("参数错误,请选择需要更换的车辆。"); } bo.setNewDevice(newDevice); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java index 1e468b6..e2cb5db 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderServiceImpl.java @@ -40,7 +40,6 @@ import com.ruoyi.bst.order.domain.dto.OrderCreateDTO; import com.ruoyi.bst.order.domain.dto.OrderEndDTO; import com.ruoyi.bst.order.domain.dto.OrderRefundDTO; import com.ruoyi.bst.order.domain.dto.OrderVerifyDTO; -import com.ruoyi.bst.order.domain.enums.OrderReturnMode; import com.ruoyi.bst.order.domain.enums.OrderReturnType; import com.ruoyi.bst.order.domain.enums.OrderStatus; import com.ruoyi.bst.order.domain.vo.OrderFeeVO; @@ -394,49 +393,25 @@ public class OrderServiceImpl implements OrderService // 转为BO对象 OrderEndBO bo = orderConverter.toEndBO(dto); // 校验参数 - boolean ignoreInParking = dto.getIsAdmin() != null && dto.getIsAdmin(); - orderValidator.validate(bo, ignoreInParking); + boolean isAdmin = dto.getIsAdmin() != null && dto.getIsAdmin(); + orderValidator.validate(bo, isAdmin); OrderVO order = bo.getOrder(); OrderInParkingVO inParkingVO = bo.getInParkingVO(); AreaVO area = bo.getArea(); + OrderDeviceVO orderDevice = bo.getOrderDevice(); // 设置订单数据 order.setEndTime(LocalDateTime.now()); // 结束时间 order.setDuration(Duration.between(order.getStartTime(), order.getEndTime()).getSeconds()); order.setDistance(LocationLogUtil.calcDistance(bo.getPositionList())); order.setEndReason(dto.getEndReason()); - // 实际还车点 - if (inParkingVO != null ) { - if (inParkingVO.getActualAreaSub() != null) { - AreaSubVO areaSub = inParkingVO.getActualAreaSub(); - order.setEndAreaSubId(areaSub.getId()); - order.setEndAreaSubName(areaSub.getName()); - } - order.setReturnLon(inParkingVO.getActualLon()); - order.setReturnLat(inParkingVO.getActualLat()); - if (inParkingVO.getDeviceInArea() != null) { - order.setReturnMode(OrderReturnMode.DEVICE.getCode()); - } else { - order.setReturnMode(OrderReturnMode.MOBILE.getCode()); - } - } // 还车类型 - order.setReturnType(ignoreInParking ? OrderReturnType.AUXILIARY.getCode() : OrderReturnType.NORMAL.getCode()); - // 根据是否需要审核,设置订单状态 - if (order.getAreaReturnVerify() != null && order.getAreaReturnVerify() && !ignoreInParking) { - // 更新订单状态为待审核 - order.setStatus(OrderStatus.WAIT_VERIFY.getCode()); - } else { - // 更新订单状态为已完成 - order.setStatus(OrderStatus.FINISHED.getCode()); - } + order.setReturnType(isAdmin ? OrderReturnType.AUXILIARY.getCode() : OrderReturnType.NORMAL.getCode()); + // 订单状态 + this.setOrderStatus(order, isAdmin); // 订单费用 - OrderFeeVO orderFee = OrderUtil.calcOrderFee(order, area, inParkingVO, order.getEndTime()); - order.setManageFee(orderFee.getManageFee()); - order.setDispatchFee(orderFee.getDispatchFee()); - order.setRidingFee(orderFee.getRidingFee()); - order.setTotalFee(orderFee.getTotalFee()); + this.setOrderFee(order, area, inParkingVO); Integer result = transactionTemplate.execute(status -> { // 更新订单数据 @@ -458,8 +433,7 @@ public class OrderServiceImpl implements OrderService } // 结束订单设备 - OrderDeviceVO orderDevice = bo.getOrderDevice(); - int finish = orderDeviceService.finish(orderDevice, dto.getPicture()); + int finish = orderDeviceService.finish(orderDevice, dto.getPicture(), inParkingVO); ServiceUtil.assertion(finish != 1, "结束ID为%s的订单设备失败", orderDevice.getId()); // 设备上锁(必须放最后,因为会操作设备) @@ -472,6 +446,27 @@ public class OrderServiceImpl implements OrderService return result == null ? 0 : 1; } + // 设置订单状态 + private void setOrderStatus(OrderVO order, boolean isAdmin) { + // 根据是否需要审核,设置订单状态 + if (order.getAreaReturnVerify() != null && order.getAreaReturnVerify() && !isAdmin) { + // 更新订单状态为待审核 + order.setStatus(OrderStatus.WAIT_VERIFY.getCode()); + } else { + // 更新订单状态为已完成 + order.setStatus(OrderStatus.FINISHED.getCode()); + } + } + + // 设置订单费用 + private void setOrderFee(OrderVO order, AreaVO area, OrderInParkingVO inParkingVO) { + OrderFeeVO orderFee = OrderUtil.calcOrderFee(order, area, inParkingVO, order.getEndTime()); + order.setManageFee(orderFee.getManageFee()); + order.setDispatchFee(orderFee.getDispatchFee()); + order.setRidingFee(orderFee.getRidingFee()); + order.setTotalFee(orderFee.getTotalFee()); + } + // 退还剩余金额 private int refundRemainAmount(Long orderId) { // 查询订单 @@ -613,11 +608,12 @@ public class OrderServiceImpl implements OrderService OrderDeviceVO oldOrderDevice = bo.getOldOrderDevice(); OrderDevice newOrderDevice = bo.getNewOrderDevice(); OrderVO order = bo.getOrder(); + OrderInParkingVO inParkingVO = bo.getInParkingVO(); // 操作数据库 Integer result = transactionTemplate.execute(status -> { // 结束当前订单设备 - int finish = orderDeviceService.finish(oldOrderDevice, dto.getFaultPicture()); + int finish = orderDeviceService.finish(oldOrderDevice, dto.getFaultPicture(), inParkingVO); ServiceUtil.assertion(finish != 1, "结束当前订单设备失败"); // 创建故障信息 @@ -670,6 +666,14 @@ public class OrderServiceImpl implements OrderService int rows = orderMapper.updateByQuery(data, query); ServiceUtil.assertion(rows != 1, "ID为%s的订单审核失败", dto.getId()); + // 更新车损费 + if (dto.getDeductionFee() != null && dto.getDeductionFee().compareTo(BigDecimal.ZERO) > 0) { + BigDecimal max = MathUtils.subtractDecimal(order.getDepositFee(), order.getTotalFee()); + ServiceUtil.assertion(MathUtils.biggerThan(dto.getDeductionFee(), max), "ID为%s的订单车损费不允许超过%s", dto.getId(), max); + int add = orderMapper.addDeductionFee(order.getId(), dto.getDeductionFee()); + ServiceUtil.assertion(add != 1, "ID为%s的订单增加车损费失败,请刷新后重试", order.getId()); + } + // 若审核通过,则退还剩余金额 if (pass && rows > 0) { int refund = this.refundRemainAmount(order.getId()); @@ -685,4 +689,5 @@ public class OrderServiceImpl implements OrderService return result == null ? 0 : result; } + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java index 29e7104..37d1b02 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.bst.order.service.impl; import java.util.List; import java.util.Objects; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +35,7 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.collection.CollectionUtils; @Service +@Slf4j public class OrderValidatorImpl implements OrderValidator{ @Autowired @@ -144,6 +146,7 @@ public class OrderValidatorImpl implements OrderValidator{ @Override public void checkInParking(AreaVO area, OrderInParkingVO inParkingVO) { + log.info("【还车定位校验】运营区:{},定位数据:{}", area.getName(), inParkingVO); ServiceUtil.assertion(inParkingVO == null, "参数错误,停车点信息不存在"); boolean mustInParking = area.getParkingReturn() != null && area.getParkingReturn(); @@ -169,8 +172,8 @@ public class OrderValidatorImpl implements OrderValidator{ if (order != null) { DeviceQuery query = OrderUtil.toChangeDeviceQuery(order); List list = deviceService.selectDeviceList(query); - ServiceUtil.assertion(CollectionUtils.isEmptyElement(list), "ID为%s的车辆当前状态不可使用", device.getId()); - ServiceUtil.assertion(!CollectionUtils.map(list, DeviceVO::getId).contains(device.getId()), "ID为%s的车辆不可在当前订单上使用", device.getId()); + ServiceUtil.assertion(CollectionUtils.isEmptyElement(list), "当前订单无法使用ID为%s的车辆,请换一辆车或者重新下单。", device.getId()); + ServiceUtil.assertion(!CollectionUtils.map(list, DeviceVO::getId).contains(device.getId()), "当前订单无法使用ID为%s的车辆,请换一辆车或者重新下单。", device.getId()); } } @@ -180,6 +183,6 @@ public class OrderValidatorImpl implements OrderValidator{ ServiceUtil.assertion(order != null && order.getAreaReturnVerify() != null && order.getAreaReturnVerify() - && StringUtils.isBlank(picture), "请上传还车图片"); + && StringUtils.isBlank(picture), "请上传还车视频"); } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/utils/OrderUtil.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/utils/OrderUtil.java index 5756663..ae79457 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/utils/OrderUtil.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/utils/OrderUtil.java @@ -115,8 +115,6 @@ public class OrderUtil { return vo; } - - /** * 获取在停车点信息 * @param area 运营区 diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDevice.java b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDevice.java index 7e02115..2c0154a 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDevice.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/domain/OrderDevice.java @@ -82,4 +82,29 @@ public class OrderDevice extends BaseEntity @ApiModelProperty("还车图片") private String finishPicture; + @Excel(name = "开始子区域ID") + @ApiModelProperty("开始子区域ID") + private Long startAreaSubId; + + @Excel(name = "结束子区域ID") + @ApiModelProperty("结束子区域ID") + private Long endAreaSubId; + + @Excel(name = "开始子区域名称") + @ApiModelProperty("开始子区域名称") + private String startAreaSubName; + + @Excel(name = "结束子区域名称") + @ApiModelProperty("结束子区域名称") + private String endAreaSubName; + + @Excel(name = "还车定位方式", readConverterExp = "1=设备定位,2=手机定位") + @ApiModelProperty("还车定位方式(1设备定位 2手机定位)") + private String returnMode; + + @ApiModelProperty("还车经度") + private BigDecimal returnLon; + + @ApiModelProperty("还车纬度") + private BigDecimal returnLat; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml index f2d479f..e00b448 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/mapper/OrderDeviceMapper.xml @@ -23,6 +23,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bod.device_mch_id, bod.device_model_full_endurance, bod.finish_picture, + bod.start_area_sub_id, + bod.end_area_sub_id, + bod.start_area_sub_name, + bod.end_area_sub_name, + bod.return_mode, + bod.return_lon, + bod.return_lat, bo.no as order_no, bo.user_id as order_user_id, bo.start_time as order_start_time, @@ -58,6 +65,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bd.lock_status = #{query.deviceLockStatus} and su.nick_name like concat('%', #{query.orderUserName}, '%') and mch.nick_name like concat('%', #{query.deviceMchName}, '%') + and bod.start_area_sub_id = #{query.startAreaSubId} + and bod.end_area_sub_id = #{query.endAreaSubId} + and bod.start_area_sub_name like concat('%', #{query.startAreaSubName}, '%') + and bod.end_area_sub_name like concat('%', #{query.endAreaSubName}, '%') + and bod.return_mode = #{query.returnMode} and bod.status in @@ -110,6 +122,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" device_mch_id, device_model_full_endurance, finish_picture, + start_area_sub_id, + end_area_sub_id, + start_area_sub_name, + end_area_sub_name, + return_mode, + return_lon, + return_lat, #{id}, @@ -127,6 +146,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{deviceMchId}, #{deviceModelFullEndurance}, #{finishPicture}, + #{startAreaSubId}, + #{endAreaSubId}, + #{startAreaSubName}, + #{endAreaSubName}, + #{returnMode}, + #{returnLon}, + #{returnLat}, @@ -153,6 +179,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" device_mch_id = #{data.deviceMchId}, device_model_full_endurance = #{data.deviceModelFullEndurance}, finish_picture = #{data.finishPicture}, + start_area_sub_id = #{data.startAreaSubId}, + end_area_sub_id = #{data.endAreaSubId}, + start_area_sub_name = #{data.startAreaSubName}, + end_area_sub_name = #{data.endAreaSubName}, + return_mode = #{data.returnMode}, + return_lon = #{data.returnLon}, + return_lat = #{data.returnLat}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/OrderDeviceService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/OrderDeviceService.java index 75a2e96..60b6ca3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/OrderDeviceService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/OrderDeviceService.java @@ -2,6 +2,7 @@ package com.ruoyi.bst.orderDevice.service; import java.util.List; +import com.ruoyi.bst.order.domain.vo.OrderInParkingVO; import com.ruoyi.bst.orderDevice.domain.OrderDevice; import com.ruoyi.bst.orderDevice.domain.OrderDeviceQuery; import com.ruoyi.bst.orderDevice.domain.OrderDeviceVO; @@ -92,7 +93,7 @@ public interface OrderDeviceService * @param orderDevice 订单设备 * @return 结果 */ - public int finish(OrderDeviceVO orderDevice, String picture); + public int finish(OrderDeviceVO orderDevice, String picture, OrderInParkingVO inParkingVO); /** * 开始订单设备 diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/impl/OrderDeviceServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/impl/OrderDeviceServiceImpl.java index d167ddf..e11ee0e 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/impl/OrderDeviceServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/orderDevice/service/impl/OrderDeviceServiceImpl.java @@ -8,8 +8,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.support.TransactionTemplate; import com.github.pagehelper.PageHelper; +import com.ruoyi.bst.areaSub.domain.AreaSubVO; import com.ruoyi.bst.device.service.DeviceIotService; import com.ruoyi.bst.device.service.DeviceService; +import com.ruoyi.bst.order.domain.enums.OrderReturnMode; +import com.ruoyi.bst.order.domain.vo.OrderInParkingVO; import com.ruoyi.bst.order.service.OrderService; import com.ruoyi.bst.orderDevice.domain.OrderDevice; import com.ruoyi.bst.orderDevice.domain.OrderDeviceQuery; @@ -183,16 +186,31 @@ public class OrderDeviceServiceImpl implements OrderDeviceService } @Override - public int finish(OrderDeviceVO orderDevice, String picture) { + public int finish(OrderDeviceVO orderDevice, String picture, OrderInParkingVO inParkingVO) { ServiceUtil.assertion(orderDevice == null, "订单设备不能为空"); ServiceUtil.assertion(!OrderDeviceStatus.canFinish().contains(orderDevice.getStatus()), "订单设备状态不允许结束"); Integer result = transactionTemplate.execute(status -> { - // 修改状态 + // 修改数据 OrderDevice data = new OrderDevice(); data.setStatus(OrderDeviceStatus.FINISHED.getCode()); data.setEndTime(LocalDateTime.now()); data.setFinishPicture(picture); + // 还车数据 + if (inParkingVO != null) { + if (inParkingVO.getActualAreaSub() != null) { + AreaSubVO areaSub = inParkingVO.getActualAreaSub(); + data.setEndAreaSubId(areaSub.getId()); + data.setEndAreaSubName(areaSub.getName()); + } + data.setReturnLon(inParkingVO.getActualLon()); + data.setReturnLat(inParkingVO.getActualLat()); + if (inParkingVO.getDeviceInArea() != null) { + data.setReturnMode(OrderReturnMode.DEVICE.getCode()); + } else { + data.setReturnMode(OrderReturnMode.MOBILE.getCode()); + } + } OrderDeviceQuery query = new OrderDeviceQuery(); query.setId(orderDevice.getId()); query.setStatusList(OrderDeviceStatus.canFinish()); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/Suit.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/Suit.java index 06b3118..f117e80 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/Suit.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/Suit.java @@ -3,6 +3,7 @@ package com.ruoyi.bst.suit.domain; import java.math.BigDecimal; import java.util.List; +import javax.validation.Valid; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -57,6 +58,7 @@ public class Suit extends BaseEntity @Excel(name = "免费骑行时长(分钟)") @ApiModelProperty("免费骑行时长(分钟)") @NotNull(message = "免费骑行时长不能为空", groups = {ValidGroup.Create.class}) + @Min(value = 0, message = "免费骑行时长不能小于0") private Integer freeRideTime; @Excel(name = "租赁单位", readConverterExp = "m=inutes分钟,h=ours小时,d=ay天") @@ -72,10 +74,12 @@ public class Suit extends BaseEntity @Excel(name = "起步价计费规则") @ApiModelProperty("起步价计费规则") + @Valid private SuitStartFeeRule startRule; @Excel(name = "区间计费规则") @ApiModelProperty("区间计费规则") + @Valid private List intervalRule; @Excel(name = "骑行价格说明") diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitIntervalFeeRule.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitIntervalFeeRule.java index cae1377..103c928 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitIntervalFeeRule.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitIntervalFeeRule.java @@ -2,6 +2,8 @@ package com.ruoyi.bst.suit.domain.vo; import java.math.BigDecimal; +import javax.validation.constraints.Min; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,14 +14,18 @@ import lombok.Data; public class SuitIntervalFeeRule { @ApiModelProperty("区间开始时间") + @Min(value = 0, message = "区间开始时间不能小于0") private Integer start; @ApiModelProperty("区间结束时间") + @Min(value = 0, message = "区间结束时间不能小于0") private Integer end; @ApiModelProperty("计费间隔") + @Min(value = 1, message = "计费间隔不能小于1") private Integer eachUnit; @ApiModelProperty("费用") + @Min(value = 0, message = "费用不能小于0") private BigDecimal fee; } \ No newline at end of file diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitStartFeeRule.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitStartFeeRule.java index 669b136..453b2b5 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitStartFeeRule.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/domain/vo/SuitStartFeeRule.java @@ -2,6 +2,8 @@ package com.ruoyi.bst.suit.domain.vo; import java.math.BigDecimal; +import javax.validation.constraints.Min; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,14 +13,18 @@ import lombok.Data; @Data public class SuitStartFeeRule { @ApiModelProperty("起步时长") + @Min(value = 0, message = "起步时长不能小于0") private Integer startingTime; @ApiModelProperty("起步价格(元)") + @Min(value = 0, message = "起步价格不能小于0") private BigDecimal startingPrice; @ApiModelProperty("超时时长") + @Min(value = 0, message = "超时时长不能小于0") private Integer timeoutTime; @ApiModelProperty("超时价格(元)") + @Min(value = 0, message = "超时价格不能小于0") private BigDecimal timeoutPrice; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java index eb5479b..c08604a 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java @@ -161,6 +161,7 @@ public class IotReceiveServiceImpl implements IotReceiveService { boolean isInAreaMax = locationArea.getIsInAreaMax() != null && locationArea.getIsInAreaMax(); boolean isInNoRidingArea = locationArea.getIsInNoRidingArea() != null && locationArea.getIsInNoRidingArea(); boolean isNearNoRidingArea = locationArea.getIsNearNoRidingArea() != null && locationArea.getIsNearNoRidingArea(); + boolean hasAreaBoundary = StringUtils.isNotBlank(area.getBoundary()); // 是否有运营区边界 // 在运营区内,并且不在禁行区内,并且车辆为强制断电状态,为车辆上电 if (isInAreaMax && !isInNoRidingArea && isQLocked && !isOpen && hasOrder) { @@ -172,7 +173,7 @@ public class IotReceiveServiceImpl implements IotReceiveService { if(isOpen) { // 超出运营区域外的最大范围,且车辆为开锁状态,强制断电 boolean areaOutOutage = area.getAreaOutOutage() != null && area.getAreaOutOutage(); // 运营区外断电 - if (areaOutOutage) { + if (areaOutOutage && hasAreaBoundary) { // 超出运营区最大边界,强制断电 if (!isInAreaMax) { deviceIotService.qLock(device, "超出运营区外边界最大值,强制断电", false); diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppSuitController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppSuitController.java index c25690c..8622198 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppSuitController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppSuitController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.app; +import com.ruoyi.common.annotation.Anonymous; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +25,7 @@ public class AppSuitController extends BaseController { @ApiOperation("获取车型可用套餐列表") @GetMapping("/listByModel") + @Anonymous public AjaxResult listByModel(SuitQuery query) { if (query.getModelId() == null) { return error("车型ID不能为空"); @@ -32,7 +34,7 @@ public class AppSuitController extends BaseController { query.setStatus(SuitStatus.ENABLED.getCode()); return success(suitService.selectSuitList(query)); } - + @ApiOperation("获取套餐详情") @GetMapping("/detail") public AjaxResult detail(@RequestParam Long id) { diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AreaController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AreaController.java index fca4a45..3c2e625 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AreaController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AreaController.java @@ -5,7 +5,12 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.bst.areaSub.domain.AreaSubVO; +import com.ruoyi.bst.areaSub.service.AreaSubService; +import com.ruoyi.bst.areaSub.utils.AreaSubUtil; +import com.ruoyi.bst.order.utils.OrderUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.OrderUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; @@ -58,6 +63,9 @@ public class AreaController extends BaseController @Autowired private UserValidator userValidator; + @Autowired + private AreaSubService areaSubService; + /** * 查询运营区列表 */ @@ -168,6 +176,14 @@ public class AreaController extends BaseController @PreAuthorize("@ss.hasPermi('bst:area:locationArea')") @GetMapping("/locationArea") public AjaxResult locationArea(BigDecimal lon, BigDecimal lat, Long areaId) { - return success(areaService.selectLocationArea(lon, lat, areaId)); + AjaxResult ajax = AjaxResult.success(); + ajax.put("ride", areaService.selectLocationArea(lon, lat, areaId)); + + AreaVO area = areaService.selectAreaById(areaId); + List areaSubList = areaSubService.selectParkingAreaByAreaId(areaId); + AreaSubVO deviceAreaSub = AreaSubUtil.getInAreaSub(areaSubList, lon, lat, area.getError()); + ajax.put("return", deviceAreaSub); + + return ajax; } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/BalanceLogController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/BalanceLogController.java index 7d5476c..c0f2c39 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/BalanceLogController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/BalanceLogController.java @@ -44,6 +44,7 @@ public class BalanceLogController extends BaseController { startPage(); startOrderBy(); + query.setScope(true); List list = balanceLogService.selectBalanceLogList(query); return getDataTable(list); } @@ -56,6 +57,7 @@ public class BalanceLogController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, BalanceLogQuery query) { + query.setScope(true); List list = balanceLogService.selectBalanceLogList(query); ExcelUtil util = new ExcelUtil(BalanceLogVO.class); util.exportExcel(response, list, "余额日志数据"); @@ -68,6 +70,6 @@ public class BalanceLogController extends BaseController @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { - return success(balanceLogService.selectBalanceLogById(id)); + return success(balanceLogService.selectBalanceLogById(id, true)); } }