liuf 2 ヶ月 前
コミット
e4b41996ab

+ 8 - 8
src/main/java/com/tmzn/devicelinkykc/controller/DeviceController.java

@@ -138,13 +138,13 @@ public class DeviceController {
         QueryWrapper<DeviceStatus> deviceStatusQueryWrapper = new QueryWrapper<>();
         deviceStatusQueryWrapper.eq("pile_code", pileCode);
         List<DeviceStatus> deviceStatusList = deviceStatusService.list(deviceStatusQueryWrapper);
-        List<DeviceStatus> collect = deviceStatusList.stream().filter(deviceStatus ->
-                deviceStatus.getGunStatus() == StatusConstant.CHARGING
-        ).collect(Collectors.toList());
-        if (collect.size() > 0) {
-            //设备有正在充电的端口
-            return AjaxResult.error("设备有正在充电端口,不能进行删除!");
-        } else {
+//        List<DeviceStatus> collect = deviceStatusList.stream().filter(deviceStatus ->
+//                deviceStatus.getGunStatus() == StatusConstant.CHARGING
+//        ).collect(Collectors.toList());
+//        if (collect.size() > 0) {
+//            //设备有正在充电的端口
+//            return AjaxResult.error("设备有正在充电端口,不能进行删除!");
+//        } else {
             //断开socket
             if (socketHandle.existDeviceConnection(pileCode)) {
                 socketHandle.removeDeviceConnection(pileCode);
@@ -194,7 +194,7 @@ public class DeviceController {
                 redisCache.setCacheObject(RedisConstant.DEVICE_INFO,imeis);
             }
             redisCache.deleteCacheMapValue(RedisConstant.DEVICE_IMEI_PILE_MAP, device.getDeviceImei());
-        }
+//        }
         return AjaxResult.success();
 
     }

+ 38 - 27
src/main/java/com/tmzn/devicelinkykc/controller/TestController.java

@@ -6,10 +6,7 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.tmzn.devicelinkykc.constant.ykc.StatusConstant;
-import com.tmzn.devicelinkykc.entity.BillingModel;
-import com.tmzn.devicelinkykc.entity.Device;
-import com.tmzn.devicelinkykc.entity.DeviceStatus;
-import com.tmzn.devicelinkykc.entity.OrderStatus;
+import com.tmzn.devicelinkykc.entity.*;
 import com.tmzn.devicelinkykc.entity.param.AjaxResult;
 import com.tmzn.devicelinkykc.entity.param.dto.BillingModelDTO;
 import com.tmzn.devicelinkykc.frameMsg.DataConversion;
@@ -22,10 +19,7 @@ import com.tmzn.devicelinkykc.mapstruct.BillingModelMapping;
 import com.tmzn.devicelinkykc.message.DeviceMsgHandle;
 import com.tmzn.devicelinkykc.msgEnum.DeviceSendYkc;
 import com.tmzn.devicelinkykc.redis.RedisCache;
-import com.tmzn.devicelinkykc.service.BillingModelService;
-import com.tmzn.devicelinkykc.service.DeviceControlerService;
-import com.tmzn.devicelinkykc.service.DeviceStatusService;
-import com.tmzn.devicelinkykc.service.OrderStatusService;
+import com.tmzn.devicelinkykc.service.*;
 import com.tmzn.devicelinkykc.socket.DeviceConnectionMsg;
 import com.tmzn.devicelinkykc.socket.SocketHandle;
 import com.tmzn.devicelinkykc.transdata.entity.DeviceParam;
@@ -49,6 +43,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.time.Instant;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -74,6 +69,9 @@ public class TestController {
     @Value("${billingInterface}")
     private String url;
 
+    @Autowired
+    private ShoppingGoodsService shoppingGoodsService ;
+
     @Autowired
     private RedisCache redisCache;
 
@@ -97,11 +95,28 @@ public class TestController {
     @PostMapping("/msg")
     public String testMsg() {
         try {
-
+            boolean temp = false;
+            int result = 0x00;    //失败
+            int reason = 0x00;   //无
+
+            //检查流量费是否过期
+            QueryWrapper<ShoppingGoods> goodsQueryWrapper = new QueryWrapper<>();
+
+            goodsQueryWrapper.eq("sn", "GD1B406633");
+            goodsQueryWrapper.last("limit 1");
+            ShoppingGoods shoppingGoods = shoppingGoodsService.getOne(goodsQueryWrapper);
+            //检查流量费是否过期
+            long currentTime = Instant.now().getEpochSecond();
+            if(shoppingGoods!=null && shoppingGoods.getDuetime()<currentTime){
+                temp = true;
+                reason=0x00;
+                System.out.println("流量费已过期");
+            }else{
+                System.out.println("ok");
+            }
             //集测
-            try {
 
-                socketHandle.addDeviceConnection("119.36.5.9", 30561,"1111", "222","333", "1.6",1);
+            //     socketHandle.addDeviceConnection("119.36.5.9", 30561,"1111", "222","333", "1.6",1);
 
 
 //                Socket socket = new Socket();
@@ -109,29 +124,25 @@ public class TestController {
 //                socket.setKeepAlive(true);
 
 //                DeviceConnectionMsg deviceConnectionMsg = new DeviceConnectionMsg(socket, deviceId,imei,deviceSn,ver,isDc);
-                //每个设备连接后开启监听接收消息
-                System.out.println("成功");
-               // ykcMsgHandle.startListening(deviceConnectionMsg);
-                //并将连接信息等保存再Map中
-               // deviceConnectionMsgMap.put(deviceId, deviceConnectionMsg);
-            } catch (IOException e) {
-                // 连接失败,捕获IOException异常
-                log.info("{}-{}-{}连接失败: " + e.getMessage());
-            }
+            //每个设备连接后开启监听接收消息
+            System.out.println("成功");
+            // ykcMsgHandle.startListening(deviceConnectionMsg);
+            //并将连接信息等保存再Map中
+            // deviceConnectionMsgMap.put(deviceId, deviceConnectionMsg);
 
             System.out.println(1111);
 
 //            realTimeStatusPushFrame.upStatusDevice(null,);
 
-            String pileCode = "51220002000016";
-            QueryWrapper<BillingModel> billWapper = new QueryWrapper<>();
-            billWapper.eq("pile_code", pileCode);
-            BillingModel b = billingModelService.getOne(billWapper);
+//            String pileCode = "51220002000016";
+//            QueryWrapper<BillingModel> billWapper = new QueryWrapper<>();
+//            billWapper.eq("pile_code", pileCode);
+//            BillingModel b = billingModelService.getOne(billWapper);
 
 
-            //查找所有充电中的订单
-            QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("id", 57303); //充电中状态上报
+//            //查找所有充电中的订单
+//            QueryWrapper<OrderStatus> queryWrapper = new QueryWrapper<>();
+//            queryWrapper.eq("id", 57303); //充电中状态上报
 
 
 

+ 21 - 0
src/main/java/com/tmzn/devicelinkykc/entity/ShoppingGoods.java

@@ -0,0 +1,21 @@
+package com.tmzn.devicelinkykc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+@Data
+@TableName(value = "ims_shopping_goods")
+public class ShoppingGoods implements Serializable {
+
+    @TableId(type = IdType.AUTO,value = "id")
+    private Integer id;
+    private String mac;
+    private String sn;
+    private Integer duetime;
+
+}

+ 13 - 0
src/main/java/com/tmzn/devicelinkykc/mapper/ShoppingGoodsMapper.java

@@ -0,0 +1,13 @@
+package com.tmzn.devicelinkykc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.tmzn.devicelinkykc.entity.ShoppingGoods;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * @author admin
+ */
+@Mapper
+public interface ShoppingGoodsMapper extends BaseMapper<ShoppingGoods> {
+}

+ 21 - 2
src/main/java/com/tmzn/devicelinkykc/message/YkcMsgHandle.java

@@ -37,6 +37,7 @@ import org.springframework.stereotype.Component;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.time.Instant;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
@@ -85,6 +86,11 @@ public class YkcMsgHandle {
 
     @Autowired
     private TransOrderService transOrderService;
+
+    @Autowired
+    private ShoppingGoodsService shoppingGoodsService ;
+
+
     @Autowired
     private TransMapping transMapping;
 
@@ -495,6 +501,19 @@ public class YkcMsgHandle {
                     temp = true;
                     reason=0x00;
                     logger.info("未配置计费模型{}",deviceConnectionMsg.getDeviceId());
+                }else{
+                    //检查流量费是否过期
+                    QueryWrapper<ShoppingGoods> goodsQueryWrapper = new QueryWrapper<>();
+                    goodsQueryWrapper.eq("sn", deviceConnectionMsg.getDeviceSn());
+                    goodsQueryWrapper.last("limit 1");
+                    ShoppingGoods shoppingGoods = shoppingGoodsService.getOne(goodsQueryWrapper);
+                    //检查流量费是否过期
+                    long currentTime = Instant.now().getEpochSecond();
+                    if(shoppingGoods!=null && shoppingGoods.getDuetime()<currentTime){
+                        temp = true;
+                        reason=0x00;
+                        logger.info("流量费已过期{}-{}",deviceConnectionMsg.getDeviceId(),deviceConnectionMsg.getDeviceSn());
+                    }
                 }
             }
 
@@ -556,11 +575,11 @@ public class YkcMsgHandle {
         byte[] modelNum = Arrays.copyOfRange(respone_msg, 7, 9);
         byte[] result = Arrays.copyOfRange(respone_msg, 9, 10);
         logger.info("计费模型验证应答" + deviceConnectionMsg.getDeviceId() + ">>modelNum:" + DataConversion.bytesToHexString(modelNum) + ";result:" + DataConversion.bytesToHexString(result));
-        if (result[0] == BillingModelConst.DIFFERENT) {
+//        if (result[0] == BillingModelConst.DIFFERENT) {
             logger.info("获取计费模型{}", deviceConnectionMsg.getDeviceId());
             //不一致请求计费模型,再向平台请求计费模型0x09
             billingModelFrame.getBillingModel(deviceConnectionMsg);
-        }
+//        }
     }
 
 

+ 14 - 0
src/main/java/com/tmzn/devicelinkykc/service/ShoppingGoodsService.java

@@ -0,0 +1,14 @@
+package com.tmzn.devicelinkykc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.tmzn.devicelinkykc.entity.ShoppingGoods;
+
+/**
+ * @author xp
+ * @date 2024/3/15
+ * @explain "  "
+ */
+public interface ShoppingGoodsService extends IService<ShoppingGoods> {
+
+
+}

+ 20 - 0
src/main/java/com/tmzn/devicelinkykc/service/impl/ShoppingGoodsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.tmzn.devicelinkykc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.tmzn.devicelinkykc.entity.OrderStatus;
+import com.tmzn.devicelinkykc.entity.ShoppingGoods;
+import com.tmzn.devicelinkykc.mapper.OrderStatusMapper;
+import com.tmzn.devicelinkykc.mapper.ShoppingGoodsMapper;
+import com.tmzn.devicelinkykc.service.OrderStatusService;
+import com.tmzn.devicelinkykc.service.ShoppingGoodsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xp
+ * @date 2024/3/18
+ * @explain "  "
+ */
+@Service
+public class ShoppingGoodsServiceImpl extends ServiceImpl<ShoppingGoodsMapper, ShoppingGoods> implements ShoppingGoodsService {
+
+}