From ff5f29cf0bfdda51c6acf2a55a0d8e8449fda519 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: Mon, 21 Apr 2025 18:27:12 +0800 Subject: [PATCH] debug --- .../bst/agreement/domain/AgreementQuery.java | 12 ++--- .../bst/agreement/domain/AgreementVO.java | 2 +- .../bst/agreement/mapper/AgreementMapper.xml | 44 ++++++++----------- .../com/ruoyi/bst/area/domain/AreaQuery.java | 7 +++ .../com/ruoyi/bst/area/mapper/AreaMapper.java | 8 ++++ .../com/ruoyi/bst/area/mapper/AreaMapper.xml | 42 ++++++++++++++---- .../ruoyi/bst/area/service/AreaDashboard.java | 10 +++++ .../area/service/impl/AreaDashboardImpl.java | 11 +++++ .../com/ruoyi/bst/device/domain/Device.java | 4 ++ .../com/ruoyi/bst/device/domain/DeviceVO.java | 6 +++ .../ruoyi/bst/device/mapper/DeviceMapper.xml | 12 ++++- .../bst/device/service/DeviceService.java | 8 ++++ .../service/impl/DeviceIotServiceImpl.java | 1 + .../service/impl/DeviceServiceImpl.java | 11 +++++ .../service/impl/OrderPayHandlerImpl.java | 6 +-- .../service/impl/OrderDeviceServiceImpl.java | 28 ++++++++---- .../bst/realName/mapper/RealNameMapper.xml | 14 ++---- .../com/ruoyi/bst/refund/domain/RefundVO.java | 2 +- .../ruoyi/bst/refund/mapper/RefundMapper.xml | 2 + .../service/impl/IotReceiveServiceImpl.java | 8 +++- .../user/service/impl/UserConverterImpl.java | 2 + .../com/ruoyi/web/app/AppAreaController.java | 39 +++++++++++++++- .../com/ruoyi/web/app/AppUserController.java | 2 +- .../com/ruoyi/web/common/LoginController.java | 1 + .../ruoyi/web/system/SysNoticeController.java | 24 ++++++---- 25 files changed, 230 insertions(+), 76 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementQuery.java index b75b662..0a0b2f6 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementQuery.java @@ -1,19 +1,19 @@ package com.ruoyi.bst.agreement.domain; -import com.ruoyi.common.annotation.Excel; +import java.util.List; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.List; - @Data -public class AgreementQuery extends Agreement{ +public class AgreementQuery extends AgreementVO { - @ApiModelProperty("用户id") + @ApiModelProperty("用户ID") private Long userId; - @ApiModelProperty("用户id") + + @ApiModelProperty("协议ID列表") private List ids; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java index f75ea70..88ceca1 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java @@ -15,5 +15,5 @@ public class AgreementVO extends Agreement{ @ApiModelProperty("运营商ID") private Long agentId; - + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml index eed8376..64f0548 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml @@ -4,20 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - + select @@ -31,15 +18,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bag.duration, bag.create_time, bag.update_time, - su.user_name, + su.nick_name as user_name, ba.name as area_name - + from - from bst_agreement bag - left join sys_user su on bag.store_id = su.user_id - left join bst_area ba on bag.area_id = ba.id + bst_agreement bag + left join sys_user su on bag.store_id = su.user_id + left join bst_area ba on bag.area_id = ba.id @@ -49,14 +36,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bag.brief like concat('%', #{query.brief}, '%') and bag.content like concat('%', #{query.content}, '%') and bag.agreement_type = #{query.agreementType} + and su.nick_name like concat('%', #{query.userName}, '%') and bag.duration = #{query.duration} + + and bag.id in + + #{id} + + ${@com.ruoyi.framework.util.DataScopeUtil@dataScope( - null, - "bag.store_id", - null, - null, - query.scope - )} + null, + "bag.store_id", + null, + null, + query.scope + )} ${query.params.dataScope} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/domain/AreaQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/domain/AreaQuery.java index e7e50ce..f4538e4 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/domain/AreaQuery.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/domain/AreaQuery.java @@ -1,5 +1,6 @@ package com.ruoyi.bst.area.domain; +import java.math.BigDecimal; import java.util.List; import io.swagger.annotations.ApiModelProperty; @@ -13,4 +14,10 @@ public class AreaQuery extends AreaVO { @ApiModelProperty("关键词") private String keyword; + + @ApiModelProperty("半径(米)") + private BigDecimal radius; + + @ApiModelProperty("中心坐标") + private List center; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.java index 51a4380..9550467 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.java @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param; import com.ruoyi.bst.area.domain.Area; import com.ruoyi.bst.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.AreaVO; +import com.ruoyi.common.domain.vo.LongIntegerVO; /** * 运营区Mapper接口 @@ -95,4 +96,11 @@ public interface AreaMapper */ List selectSimpleList(@Param("query") AreaQuery query); + /** + * 查询设备数量最多的运营区ID + * @param query + * @return + */ + List selectDeviceCountGroupByAreaId(@Param("query") AreaQuery query); + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.xml index b64baca..897d103 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/mapper/AreaMapper.xml @@ -90,7 +90,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ( - ba.name like concat('%', #{query.keyword}, '%') + ba.name like concat('%', #{query.keyword}, '%') + ) + + + and ( + ST_Contains(ba.boundary, point(#{query.center[0]}, #{query.center[1]})) + or + ST_Distance_Sphere( + point(#{query.center[0]}, #{query.center[1]}), + point(ba.longitude, ba.latitude) + ) <= #{query.radius} ) ${@com.ruoyi.framework.util.DataScopeUtil@create(query.scope) @@ -245,7 +255,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + - update bst_area - set deleted = true + update bst_area + set deleted = true where id in #{id} @@ -270,7 +280,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and deleted = false - + - + - + + + + + diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/AreaDashboard.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/AreaDashboard.java index e078b0b..811781c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/AreaDashboard.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/AreaDashboard.java @@ -4,6 +4,7 @@ import java.util.List; import com.ruoyi.bst.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.vo.AreaStatVO; +import com.ruoyi.common.domain.vo.LongIntegerVO; public interface AreaDashboard { @@ -13,4 +14,13 @@ public interface AreaDashboard { * @return */ AreaStatVO selectStat(AreaQuery query, List keys); + + /** + * 查询设备数量最多的运营区ID + * @param query + * @return + */ + LongIntegerVO selectMaxOfDeviceCountAreaId(AreaQuery query); + + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaDashboardImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaDashboardImpl.java index e3e8609..94e376d 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaDashboardImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaDashboardImpl.java @@ -5,11 +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.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.vo.AreaStatVO; import com.ruoyi.bst.area.mapper.AreaMapper; import com.ruoyi.bst.area.service.AreaDashboard; +import com.ruoyi.common.domain.vo.LongIntegerVO; import com.ruoyi.common.utils.MathUtils; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.dashboard.constants.StatKeys; @Service @@ -26,5 +29,13 @@ public class AreaDashboardImpl implements AreaDashboard { } return vo; } + + @Override + public LongIntegerVO selectMaxOfDeviceCountAreaId(AreaQuery query) { + PageHelper.startPage(1, 1); + PageHelper.orderBy("value desc"); + List list = areaMapper.selectDeviceCountGroupByAreaId(query); + return CollectionUtils.firstElement(list); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/Device.java b/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/Device.java index cd2216e..56bf5e7 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/Device.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/Device.java @@ -150,6 +150,10 @@ public class Device extends BaseEntity implements IotDevice @ApiModelProperty("软件版本") private String softwareVersion; + @Excel(name = "最近一次下单用户ID") + @ApiModelProperty("最近一次下单用户ID") + private Long lastUserId; + @Override public String mac() { return this.mac; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/DeviceVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/DeviceVO.java index 2bbf07a..d37e0fc 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/DeviceVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/domain/DeviceVO.java @@ -78,6 +78,12 @@ public class DeviceVO extends Device { @ApiModelProperty("硬件版本说明") private String hardwareVersionInstructions; + // 最近一次下单用户 + @ApiModelProperty("最近一次下单用户名称") + private String lastUserName; + @ApiModelProperty("最近一次下单用户手机号") + private String lastUserPhone; + // 剩余续航(公里) public BigDecimal getRemainEndurance() { BigDecimal remainEndurance = MathUtils.mulDecimal(getRemainingPower(), getModelFullEndurance()); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/mapper/DeviceMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/device/mapper/DeviceMapper.xml index 667626c..5b82666 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/mapper/DeviceMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/mapper/DeviceMapper.xml @@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bd.last_online_time, bd.order_device_id, bd.software_version, + bd.last_user_id, mch.nick_name as mch_name, mch.point as mch_point, bm.name as model_name, @@ -69,7 +70,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bod.status as order_device_status, bod.order_id as order_id, bhv.version as hardware_version, - bhv.instructions as hardware_version_instructions + bhv.instructions as hardware_version_instructions, + bul.nick_name as last_user_name, + bul.user_name as last_user_phone from @@ -80,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join bst_area ba on bd.area_id = ba.id left join sys_user basu on basu.user_id = ba.user_id left join sys_user basua on basua.user_id = basu.agent_id + left join sys_user bul on bul.user_id = bd.last_user_id left join bst_order_device bod on bod.id = bd.order_device_id left join bst_order bo on bo.id = bod.order_id left join bst_hardware_version bhv on bhv.id = bd.hardware_version_id @@ -114,6 +118,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and basua.nick_name like concat('%', #{query.areaAgentName}, '%') and bo.no like concat('%', #{query.orderNo}, '%') and bd.id != #{query.excludeId} + and bd.last_user_id = #{query.lastUserId} + and bul.nick_name like concat('%', #{query.lastUserName}, '%') + and bul.user_name like concat('%', #{query.lastUserPhone}, '%') and find_in_set(#{query.suitId}, bm.suit_ids) @@ -200,6 +207,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" last_online_time, order_device_id, software_version, + last_user_id, #{modelId}, @@ -234,6 +242,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{lastOnlineTime}, #{orderDeviceId}, #{softwareVersion}, + #{lastUserId}, @@ -278,6 +287,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bd.last_online_time = #{data.lastOnlineTime}, bd.order_device_id = #{data.orderDeviceId}, bd.software_version = #{data.softwareVersion}, + bd.last_user_id = #{data.lastUserId}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/DeviceService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/DeviceService.java index ce62b2a..0993819 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/DeviceService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/DeviceService.java @@ -179,5 +179,13 @@ public interface DeviceService */ public int unbindArea(List deviceList); + /** + * 更新设备最后一次使用的用户ID + * @param id 设备ID + * @param lastUserId 最后一次使用的用户ID + * @return 结果 + */ + public int updateLastUserId(Long id, Long lastUserId); + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceIotServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceIotServiceImpl.java index 994897c..f20223c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceIotServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceIotServiceImpl.java @@ -314,6 +314,7 @@ public class DeviceIotServiceImpl implements DeviceIotService { data.setLastLocationTime(device.getLastLocationTime()); data.setOnlineStatus(device.getOnlineStatus()); data.setLastOnlineTime(device.getLastOnlineTime()); + data.setSoftwareVersion(device.getSoftwareVersion()); return deviceMapper.updateDevice(data); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceServiceImpl.java index 37f1729..920edc7 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/device/service/impl/DeviceServiceImpl.java @@ -551,4 +551,15 @@ public class DeviceServiceImpl implements DeviceService List ids = CollectionUtils.map(deviceList, DeviceVO::getId); return deviceMapper.unbindArea(ids); } + + @Override + public int updateLastUserId(Long id, Long lastUserId) { + if (id == null || lastUserId == null) { + return 0; + } + Device data = new Device(); + data.setId(id); + data.setLastUserId(lastUserId); + return deviceMapper.updateDevice(data); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java index 8f1f0ce..ec84341 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java @@ -2,13 +2,13 @@ package com.ruoyi.bst.order.service.impl; import java.time.LocalDateTime; -import com.ruoyi.bst.device.domain.enums.DeviceUnLockType; -import com.ruoyi.bst.device.domain.vo.DeviceIotVO; -import com.ruoyi.bst.device.service.DeviceIotService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.support.TransactionTemplate; +import com.ruoyi.bst.device.domain.enums.DeviceUnLockType; +import com.ruoyi.bst.device.domain.vo.DeviceIotVO; +import com.ruoyi.bst.device.service.DeviceIotService; import com.ruoyi.bst.order.domain.Order; import com.ruoyi.bst.order.domain.OrderQuery; import com.ruoyi.bst.order.domain.OrderVO; 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 b98d9ae..b42c782 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 @@ -172,14 +172,26 @@ public class OrderDeviceServiceImpl implements OrderDeviceService ServiceUtil.assertion(orderDevice == null, "订单设备不能为空"); ServiceUtil.assertion(!OrderDeviceStatus.canStart().contains(orderDevice.getStatus()), "订单设备状态不允许开始"); - // 修改订单设备状态 - OrderDevice data = new OrderDevice(); - data.setStatus(OrderDeviceStatus.USING.getCode()); - data.setStartTime(LocalDateTime.now()); - OrderDeviceQuery query = new OrderDeviceQuery(); - query.setId(orderDevice.getId()); - query.setStatusList(OrderDeviceStatus.canStart()); - return orderDeviceMapper.updateByQuery(data, query); + Integer result = transactionTemplate.execute(status -> { + // 修改订单设备状态 + OrderDevice data = new OrderDevice(); + data.setStatus(OrderDeviceStatus.USING.getCode()); + data.setStartTime(LocalDateTime.now()); + OrderDeviceQuery query = new OrderDeviceQuery(); + query.setId(orderDevice.getId()); + query.setStatusList(OrderDeviceStatus.canStart()); + int rows = orderDeviceMapper.updateByQuery(data, query); + + if (rows > 0 ) { + // 更新设备最后一次使用的用户ID + int update = deviceService.updateLastUserId(orderDevice.getDeviceId(), orderDevice.getOrderUserId()); + ServiceUtil.assertion(update != 1, "更新设备最后一次使用的用户ID失败"); + } + + return rows; + }); + + return result == null ? 0 : result; } @Override diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml index de7da9e..91c636c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/realName/mapper/RealNameMapper.xml @@ -4,21 +4,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - + select brn.id, + brn.user_id, brn.user_name, brn.id_card, brn.picture, @@ -37,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and score = #{query.score} and mobile = #{query.mobile} and status = #{query.status} + and user_id = #{query.userId} ${query.params.dataScope} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/domain/RefundVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/domain/RefundVO.java index 0ca85ab..0e5949d 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/domain/RefundVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/domain/RefundVO.java @@ -30,7 +30,7 @@ public class RefundVO extends Refund implements Refundable { private String payBstType; @Override - public String refundOutTradeNo() { + public String refundOutTradeNo() { return getPayNo(); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/mapper/RefundMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/mapper/RefundMapper.xml index eac00cf..99d6e16 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/mapper/RefundMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/mapper/RefundMapper.xml @@ -36,6 +36,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and br.reason like concat('%', #{query.reason}, '%') and br.user_id = #{query.userId} and br.user_name like concat('%', #{query.userName}, '%') + and bp.bst_id = #{query.payBstId} + and bp.bst_type = #{query.payBstType} and date(br.create_time) >= #{query.createDateRange[0]} and date(br.create_time) <= #{query.createDateRange[1]} 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 2c7a98e..a633a73 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 @@ -1,5 +1,6 @@ package com.ruoyi.iot.service.impl; +import java.math.BigDecimal; import java.time.Duration; import java.time.LocalDateTime; import java.util.List; @@ -133,12 +134,17 @@ public class IotReceiveServiceImpl implements IotReceiveService { if (device == null || StringUtils.isBlank(device.getMac()) || device.getLastLocationTime() == null || at == null) { return 0; } + // 0,0定位不处理 + if (MathUtils.equals(sys.getLon(), BigDecimal.ZERO) && MathUtils.equals(sys.getLat(), BigDecimal.ZERO)) { + return 0; + } boolean isOpen = DeviceLockStatus.OPEN.getCode().equals(device.getLockStatus()); // 是否开锁 // 需要在设备未启动的时候做,否则可能有安全问题 if (!isOpen) { // 若当前数据点的上报时间和设备内上次上报的时间不一样,但是定位一样,则重启设备 if (at.isAfter(device.getLastLocationTime()) && MathUtils.equals(device.getLongitude(), sys.getLon()) && MathUtils.equals(device.getLatitude(), sys.getLat())) { - deviceIotService.reboot(device, "设备不同时间的两次定位一样,重启设备", true); + String reason = String.format("设备不同时间的两次定位一样,重启设备。定位:%s,%s", sys.getLon(), sys.getLat()); + deviceIotService.reboot(device, reason, true); return 1; } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/user/service/impl/UserConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/system/user/service/impl/UserConverterImpl.java index a248c94..9a07f8e 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/user/service/impl/UserConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/system/user/service/impl/UserConverterImpl.java @@ -29,6 +29,7 @@ public class UserConverterImpl implements UserConverter { vo.setStatus(data.getStatus()); vo.setWithdrawServiceType(data.getWithdrawServiceType()); vo.setWithdrawServiceValue(data.getWithdrawServiceValue()); + vo.setBonusDelay(data.getBonusDelay()); return vo; } @@ -53,6 +54,7 @@ public class UserConverterImpl implements UserConverter { vo.setStatus(data.getStatus()); vo.setWithdrawServiceType(data.getWithdrawServiceType()); vo.setWithdrawServiceValue(data.getWithdrawServiceValue()); + vo.setBonusDelay(data.getBonusDelay()); return vo; } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAreaController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAreaController.java index d2b050f..5c1b8c4 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAreaController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAreaController.java @@ -1,5 +1,7 @@ package com.ruoyi.web.app; +import java.math.BigDecimal; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -7,10 +9,12 @@ import org.springframework.web.bind.annotation.RestController; import com.ruoyi.bst.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.enums.AreaStatus; +import com.ruoyi.bst.area.service.AreaDashboard; import com.ruoyi.bst.area.service.AreaService; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.domain.vo.LongIntegerVO; import io.swagger.annotations.ApiOperation; @@ -22,14 +26,47 @@ public class AppAreaController extends BaseController { @Autowired private AreaService areaService; + @Autowired + private AreaDashboard areaDashboard; + + // 设置前提条件 + private void setQuery(AreaQuery query) { + query.setStatus(AreaStatus.ENABLED.getCode()); + } + @ApiOperation("获取运营区详情") @GetMapping("/detail") @Anonymous public AjaxResult getAreaDetail(Long id) { AreaQuery query = new AreaQuery(); query.setId(id); - query.setStatus(AreaStatus.ENABLED.getCode()); + setQuery(query); return success(areaService.selectOne(query)); } + + @ApiOperation("获取附近的运营区") + @GetMapping("/nearby") + @Anonymous + public AjaxResult getNearbyArea(AreaQuery query) { + if (query.getRadius() == null || query.getRadius().compareTo(BigDecimal.ZERO) <= 0 || query.getRadius().compareTo(BigDecimal.valueOf(10000)) > 0) { + return error("半径必须在0-10000之间"); + } + if (query.getCenter() == null) { + return error("中心坐标不能为空"); + } + if (query.getCenter().size() != 2) { + return error("中心坐标格式错误,必须包含经度和纬度"); + } + setQuery(query); + + // 查询设备数量最多的运营区ID + LongIntegerVO max = areaDashboard.selectMaxOfDeviceCountAreaId(query); + if (max == null) { + return success(); + } + + // 查询运营区详情 + return success(areaService.selectAreaById(max.getKey())); + } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppUserController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppUserController.java index 799b8a6..3cff908 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppUserController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppUserController.java @@ -33,5 +33,5 @@ public class AppUserController extends BaseController { return success(); } } - + } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/common/LoginController.java b/ruoyi-web/src/main/java/com/ruoyi/web/common/LoginController.java index 1ac3ceb..b4c3642 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/common/LoginController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/common/LoginController.java @@ -106,6 +106,7 @@ public class LoginController StatQuery query = new StatQuery(); query.setScope(true); query.setUserId(user.getUserId()); + query.setBonusUserId(user.getUserId()); query.setKeys(Arrays.asList( StatKeys.WITHDRAW_SUCCESS_AMOUNT, StatKeys.BONUS_WAIT_DIVIDE_AMOUNT diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java index a8976db..27b7dea 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java @@ -1,5 +1,19 @@ package com.ruoyi.web.system; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -9,12 +23,6 @@ import com.ruoyi.system.notice.domain.Notice; import com.ruoyi.system.notice.domain.NoticeQuery; import com.ruoyi.system.notice.domain.NoticeVO; import com.ruoyi.system.notice.service.NoticeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; /** * 公告 信息操作处理 @@ -58,7 +66,7 @@ public class SysNoticeController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody Notice notice) { - notice.setCreateBy(getUsername()); + notice.setCreateBy(getNickName()); return toAjax(noticeService.insertNotice(notice)); } @@ -70,7 +78,7 @@ public class SysNoticeController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody Notice notice) { - notice.setUpdateBy(getUsername()); + notice.setUpdateBy(getNickName()); return toAjax(noticeService.updateNotice(notice)); }