李进 před 2 roky
rodič
revize
9fa95377d2

+ 42 - 0
device-api-service/src/main/java/com/xy/entity/DeviceLog.java

@@ -0,0 +1,42 @@
+package com.xy.entity;
+
+import com.xy.base.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 设备-日志
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="DeviceLog对象", description="设备-日志")
+public class DeviceLog extends BaseEntity<DeviceLog> implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备id")
+    private Long deviceId;
+
+    @ApiModelProperty(value = "日志名称")
+    private String logName;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updateTime;
+
+
+}

+ 16 - 0
device-api-service/src/main/java/com/xy/mapper/DeviceLogMapper.java

@@ -0,0 +1,16 @@
+package com.xy.mapper;
+
+import com.xy.entity.DeviceLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 设备-日志 Mapper 接口
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-03-16
+ */
+public interface DeviceLogMapper extends BaseMapper<DeviceLog> {
+
+}

+ 14 - 0
device-api-service/src/main/java/com/xy/mapper/mapper/DeviceLogMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xy.mapper.DeviceLogMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.xy.entity.DeviceLog">
+        <id column="id" property="id" />
+        <result column="device_id" property="deviceId" />
+        <result column="log_name" property="logName" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+    </resultMap>
+
+</mapper>

+ 60 - 0
device-api-service/src/main/java/com/xy/service/DeviceLogServiceImpl.java

@@ -0,0 +1,60 @@
+package com.xy.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.dto.DeviceLogDto;
+import com.xy.entity.DeviceLog;
+import com.xy.mapper.DeviceLogMapper;
+import com.xy.utils.MybatisPlusQuery;
+import com.xy.utils.PageBean;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.time.LocalDateTime;
+
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
+
+/**
+ * <p>
+ * 设备-日志 服务实现类
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-03-16
+ */
+@Service
+@AllArgsConstructor
+@Api(tags = "设备-日志")
+public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog> implements DeviceLogService {
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<DeviceLogDto.Vo>> page(@RequestBody DeviceLogDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<DeviceLog> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceLog.class).build();
+        IPage<DeviceLog> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(DeviceLogDto.Vo.class, iPage));
+    }
+
+    @PostMapping("update")
+    @ApiOperation("修改")
+    public R update(@RequestBody @Validated DeviceLogDto.Update update) {
+        LambdaQueryWrapper<DeviceLog> logLambdaQueryWrapper = new LambdaQueryWrapper<DeviceLog>().eq(DeviceLog::getDeviceId, update.getDeviceId())
+                .orderByDesc(DeviceLog::getCreateTime)
+                .last("limit 1");
+        DeviceLog deviceLog = getOne(logLambdaQueryWrapper)
+                .setLogName(update.getLogName())
+                .setUpdateTime(LocalDateTime.now());
+        updateById(deviceLog);
+        return R.ok();
+    }
+}

+ 12 - 0
device-api-service/src/main/java/com/xy/service/factory/TaskCmdServiceImpl.java

@@ -3,13 +3,16 @@ package com.xy.service.factory;
 import cn.hutool.json.JSONObject;
 import com.xy.dto.ActivityInfoDto;
 import com.xy.dto.MqttDto;
+import com.xy.entity.DeviceLog;
 import com.xy.service.ActivityInfoService;
+import com.xy.service.DeviceLogServiceImpl;
 import com.xy.utils.LambdaUtils;
 import com.xy.utils.R;
 import com.xy.utils.enums.TaskEnum;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -21,6 +24,8 @@ public class TaskCmdServiceImpl implements CmdService {
 
     private final ActivityInfoService activityInfoService;
 
+    private final DeviceLogServiceImpl deviceLogService;
+
     @Override
     public R senCommand(List<MqttDto> mqttDtos) {
         for (MqttDto mqttDto : mqttDtos) {
@@ -30,6 +35,13 @@ public class TaskCmdServiceImpl implements CmdService {
             if (type.equals(TaskEnum.ABORT.getType())) {
                 activityInfoService.abort(new ActivityInfoDto.Abort().setDeviceId(mqttDto.getDeviceId()));
             }
+            //日志上传
+            if (type.equals(TaskEnum.LOG.getType())) {
+                DeviceLog deviceLog = new DeviceLog().createId()
+                        .setDeviceId(mqttDto.getDeviceId())
+                        .setCreateTime(LocalDateTime.now());
+                deviceLogService.save(deviceLog);
+            }
         }
         return R.ok();
     }

+ 1 - 1
device-api-service/src/main/java/com/xy/utils/enums/TaskEnum.java

@@ -12,7 +12,7 @@ public enum TaskEnum {
 
     ABORT("abort", "活动终止指令"),
 
-    ENV("env", "切换环境"),
+    LOG("log", "日志上传指令"),
 
     ;
 

+ 69 - 0
device-api/src/main/java/com/xy/dto/DeviceLogDto.java

@@ -0,0 +1,69 @@
+package com.xy.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 设备-日志
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-03-16
+ */
+public class DeviceLogDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty(value = "分页对象", required = true)
+        private PageBean page;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Update {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @NotBlank(message = "logName不能为空")
+        @ApiModelProperty(value = "日志名称")
+        private String logName;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @ApiModelProperty(value = "日志名称")
+        private String logName;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty(value = "更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime updateTime;
+
+
+    }
+
+}

+ 16 - 0
device-api/src/main/java/com/xy/service/DeviceLogService.java

@@ -0,0 +1,16 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+
+/**
+ * <p>
+ * 设备-日志 服务类
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-03-16
+ */
+@RestMappingController("/device-log")
+public interface DeviceLogService {
+
+}