Selaa lähdekoodia

激活检查接口

李进 1 vuosi sitten
vanhempi
commit
c8928f3cc7

+ 3 - 0
device-api-service/src/main/java/com/xy/entity/DeviceCharging.java

@@ -39,6 +39,9 @@ public class DeviceCharging implements Serializable {
     @ApiModelProperty(value = "过期时间")
     private LocalDateTime timeout;
 
+    @ApiModelProperty(value = "最后续费时间")
+    private LocalDateTime lastChargingTime;
+
     @ApiModelProperty(value = "创建时间")
     private LocalDateTime createTime;
 

+ 17 - 11
device-api-service/src/main/java/com/xy/service/DeviceChargingServiceImpl.java

@@ -9,7 +9,6 @@ import com.xy.collections.map.JMap;
 import com.xy.device.EnumDeviceCharging;
 import com.xy.device.EnumDeviceChargingHistoryStatus;
 import com.xy.dto.DeviceChargingDto;
-import com.xy.dto.DeviceChargingHistoryDto;
 import com.xy.dto.DeviceInfoDto;
 import com.xy.entity.DeviceCharging;
 import com.xy.entity.DeviceChargingHistory;
@@ -20,6 +19,7 @@ import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -30,7 +30,8 @@ import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
-import static com.xy.utils.PlusBeans.*;
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
 
 
 /**
@@ -75,22 +76,27 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
     @PostMapping("page")
     @ApiOperation("分页查询")
     public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {
+        Integer value = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_200.getCode(), Integer.class);
+        String theTime = DataTime.getStringAround(0, 0, value, 0, 0, 0);
+        page.setThisTime(LocalDateTime.now()).setTheTime(DataTime.toLocal(theTime));
         IPage<DeviceChargingDto.PageVo> iPage = baseMapper.page(toIPage(page.getPage()), page);
         List<DeviceChargingDto.PageVo> records = iPage.getRecords();
         if (Emptys.check(records)) {
             Map<String, SysDictRedis> stringSysDictRedisMap = SysDictUtils.get(EnumDeviceCharging.Code.CODE.getCode());
             for (DeviceChargingDto.PageVo record : records) {
-                DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
-                //封装最新计费历史信息
-                LambdaQueryWrapper<DeviceChargingHistory> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceChargingHistory>()
-                        .eq(DeviceChargingHistory::getDeviceId, deviceInfo.getDeviceId())
-                        .orderByDesc(DeviceChargingHistory::getCreateTime)
-                        .last("limit 1");
-                DeviceChargingHistory deviceChargingHistory = deviceChargingHistoryService.getOne(lambdaQueryWrapper);
-                if (deviceChargingHistory != null) {
-                    record.setDeviceChargingHistory(copy(DeviceChargingHistoryDto.Vo.class, deviceChargingHistory));
+                //封装过期状态说明
+                String timeoutStatus;
+                DeviceChargingDto.Vo deviceCharging = record.getDeviceCharging();
+                LocalDateTime timeout = deviceCharging.getTimeout();
+                long s = DataTime.diff(page.getThisTime(), timeout, "s");
+                if (s <= 0) {
+                    timeoutStatus = "欠费(" + (~(s / 86400 - 1)) + "天)";
+                } else {
+                    timeoutStatus = s <= value * 86400 ? "即将到期(" + s / 86400 + "天)" : "正常(" + s / 86400 + "天)";
                 }
+                record.getDeviceCharging().setTimeoutStatus(timeoutStatus);
                 //封装计费标准金额
+                DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
                 SysDictRedis sysDictRedis = stringSysDictRedisMap.get(deviceInfo.getDeviceType().toString());
                 if (sysDictRedis != null) {
                     record.setChargingMoney(Integer.valueOf(sysDictRedis.getValue()));

+ 9 - 6
device-api-service/src/main/resources/mapper/DeviceChargingMapper.xml

@@ -29,13 +29,14 @@
             <result column="charging_sum_money" property="chargingSumMoney" />
             <result column="charging_x" property="chargingX" />
             <result column="timeout" property="timeout" />
+            <result column="last_charging_time" property="lastChargingTime" />
             <result column="charging_create_time" property="createTime" />
         </association>
     </resultMap>
 
     <select id="page" resultMap="queryPageMap">
         select di.*,
-        dc.charging_sum_money, dc.charging_x, dc.timeout, dc.create_time as charging_create_time
+        dc.charging_sum_money, dc.charging_x, dc.timeout, dc.last_charging_time, dc.create_time as charging_create_time
         from device_info di
         join device_charging dc on(di.device_id = dc.device_id)
         where
@@ -46,12 +47,14 @@
         <if test="queryPage.deviceId != null">
             and di.device_id = #{queryPage.deviceId}
         </if>
-        <if test="queryPage.chargingStatus != null">
-            <if test="queryPage.chargingStatus == true">
-                and dc.timeout &lt;= #{queryPage.thisTime}
+        <if test="queryPage.chargingStatus != null and queryPage.chargingStatus != ''">
+            <!-- 即将过期 -->
+            <if test="queryPage.chargingStatus == 1">
+               and dc.timeout >= #{queryPage.thisTime} and dc.timeout &lt;= #{queryPage.theTime}
             </if>
-            <if test="queryPage.chargingStatus == false">
-                and dc.timeout >= #{queryPage.thisTime}
+            <!-- 已过期 -->
+            <if test="queryPage.chargingStatus == 2">
+                and dc.timeout &lt;= #{queryPage.thisTime}
             </if>
         </if>
         order by dc.timeout asc

+ 12 - 5
device-api/src/main/java/com/xy/dto/DeviceChargingDto.java

@@ -53,8 +53,12 @@ public class DeviceChargingDto {
         @ApiModelProperty("设备id")
         private Long deviceId;
 
-        @ApiModelProperty(value = "当前系统时间", hidden = true)
-        private LocalDateTime thisTime = LocalDateTime.now();
+        @ApiModelProperty("状态类型 1=即将到期 2=欠费")
+        private Integer chargingStatus;
+
+        private LocalDateTime thisTime;
+
+        private LocalDateTime theTime;
     }
 
     @Data
@@ -124,6 +128,12 @@ public class DeviceChargingDto {
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime createTime;
 
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @ApiModelProperty(value = "最后续费时间")
+        private LocalDateTime lastChargingTime;
+
+        @ApiModelProperty(value = "过期状态说明")
+        private String timeoutStatus;
     }
 
     @Data
@@ -133,9 +143,6 @@ public class DeviceChargingDto {
         @ApiModelProperty(value = "计费信息")
         private Vo deviceCharging;
 
-        @ApiModelProperty(value = "最新计费历史信息")
-        private DeviceChargingHistoryDto.Vo deviceChargingHistory;
-
         @ApiModelProperty(value = "设备信息")
         private DeviceInfoDto.Vo deviceInfo;