Bläddra i källkod

feat:"增加适配新时控开关的闹钟"

soobin 1 månad sedan
förälder
incheckning
c014636910

+ 2 - 1
src/main/java/com/szwl/constant/OperationType.java

@@ -38,7 +38,8 @@ public enum OperationType implements IEnum<String> {
     UPDATE_LOGO("updateLogo","修改logo"),
     PUSH_TIME_RULE("pushTimeRule","推送广告规则"),
     PARAM("Param", "参数设置"),
-    HUMIDITY_PARAMETERS("humidityParameters", "湿度参数");
+    HUMIDITY_PARAMETERS("humidityParameters", "湿度参数"),
+    ALARM_CLOCK("alarmClock", "定时闹钟"),;
 
     private String code;
 

+ 98 - 0
src/main/java/com/szwl/controller/AlarmClockController.java

@@ -0,0 +1,98 @@
+package com.szwl.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gexin.fastjson.JSON;
+import com.szwl.constant.OperationType;
+import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.exception.BizException;
+import com.szwl.manager.TokenManager;
+import com.szwl.model.bo.AlarmClockBo;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.bo.UserDetailBO;
+import com.szwl.model.entity.AlarmClock;
+import com.szwl.model.param.AlarmClockParam;
+import com.szwl.model.utils.PushUtils;
+import com.szwl.service.AlarmClockService;
+import com.szwl.service.TEquipmentService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-09-05
+ */
+@RestController
+@RequestMapping("/alarmClock")
+public class AlarmClockController {
+
+    @Autowired
+    private AlarmClockService alarmClockService;
+
+    @Autowired
+    private TEquipmentService equipmentService;
+
+    @Autowired
+    private TokenManager tokenManager;
+
+    @ApiOperation("获取列表")
+    @PostMapping("/list")
+    public ResponseModel<?> list(@RequestBody AlarmClockParam param) {
+        LambdaQueryWrapper<AlarmClock> query = Wrappers.lambdaQuery();
+        query.eq(AlarmClock::getClientId, param.getClientId());
+        List<AlarmClock> list = alarmClockService.list(query);
+        return R.ok(list);
+    }
+
+    @ApiOperation("保存修改")
+    @PostMapping("/saveOrUpdate")
+    public ResponseModel<?> saveOrUpdate(@RequestBody AlarmClockParam param) {
+        UserDetailBO userDetailBO = Optional.ofNullable(tokenManager.getLoginUserDetails())
+                .orElseThrow(() -> new BizException(ResponseCodesEnum.L0001));
+        Long adminId = userDetailBO.getId();
+        String clientId = param.getClientId();
+        List<AlarmClockBo> list = new ArrayList<>();
+        for (AlarmClock alarmClock : param.getAlarmClockList()) {
+            LambdaQueryWrapper<AlarmClock> query = Wrappers.lambdaQuery();
+            query.eq(AlarmClock::getClientId, clientId);
+            query.eq(AlarmClock::getType, alarmClock.getType());
+            query.eq(AlarmClock::getWeek, alarmClock.getWeek());
+            AlarmClock one = alarmClockService.getOne(query);
+            if (one != null) {
+                alarmClock.setModifyDate(new Date());
+                BeanUtils.copyProperties(alarmClock, one);
+                alarmClockService.updateById(one);
+            } else {
+                alarmClock.setCreateDate(new Date());
+                alarmClock.setModifyDate(new Date());
+                alarmClock.setClientId(clientId);
+                alarmClockService.save(alarmClock);
+            }
+
+            AlarmClockBo alarmClockBo = new AlarmClockBo();
+            BeanUtils.copyProperties(alarmClock, alarmClockBo);
+            list.add(alarmClockBo);
+        }
+        String message = PushUtils.buildJson(OperationType.ALARM_CLOCK.getCode(), JSON.toJSONString(list)).toString();
+        equipmentService.sendRemoteMessage(clientId, OperationType.ALARM_CLOCK, message, adminId);
+        return R.ok();
+    }
+
+}
+

+ 16 - 0
src/main/java/com/szwl/mapper/AlarmClockMapper.java

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.AlarmClock;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-09-05
+ */
+public interface AlarmClockMapper extends BaseMapper<AlarmClock> {
+
+}

+ 24 - 0
src/main/java/com/szwl/mapper/xml/AlarmClockMapper.xml

@@ -0,0 +1,24 @@
+<?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.szwl.mapper.AlarmClockMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.AlarmClock">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+        <result column="admin_id" property="adminId" />
+        <result column="client_id" property="clientId" />
+        <result column="week" property="week" />
+        <result column="hour" property="hour" />
+        <result column="min" property="min" />
+        <result column="type" property="type" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, modify_date, admin_id, client_id, week, hour, min, type, status
+    </sql>
+
+</mapper>

+ 24 - 0
src/main/java/com/szwl/model/bo/AlarmClockBo.java

@@ -0,0 +1,24 @@
+package com.szwl.model.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmClockBo {
+
+    @ApiModelProperty(value = "周")
+    private String week;
+
+    @ApiModelProperty(value = "时")
+    private String hour;
+
+    @ApiModelProperty(value = "分")
+    private String min;
+
+    @ApiModelProperty(value = "0:炉头开关,1:休眠开关,2:电源开关")
+    private String type;
+
+    @ApiModelProperty(value = "0:未开启,1:已开启")
+    private Boolean status;
+
+}

+ 53 - 0
src/main/java/com/szwl/model/entity/AlarmClock.java

@@ -0,0 +1,53 @@
+package com.szwl.model.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-09-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="AlarmClock对象", description="")
+public class AlarmClock implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Date createDate;
+
+    private Date modifyDate;
+
+    @ApiModelProperty(value = "设备编号")
+    private String clientId;
+
+    @ApiModelProperty(value = "周")
+    private String week;
+
+    @ApiModelProperty(value = "时")
+    private String hour;
+
+    @ApiModelProperty(value = "分")
+    private String min;
+
+    @ApiModelProperty(value = "0:炉头开关,1:休眠开关,2:电源开关")
+    private String type;
+
+    @ApiModelProperty(value = "0:未开启,1:已开启")
+    private Boolean status;
+
+
+}

+ 14 - 0
src/main/java/com/szwl/model/param/AlarmClockParam.java

@@ -0,0 +1,14 @@
+package com.szwl.model.param;
+
+import com.szwl.model.entity.AlarmClock;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AlarmClockParam {
+
+    private String clientId;
+
+    private List<AlarmClock> alarmClockList;
+}

+ 16 - 0
src/main/java/com/szwl/service/AlarmClockService.java

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.AlarmClock;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-09-05
+ */
+public interface AlarmClockService extends IService<AlarmClock> {
+
+}

+ 20 - 0
src/main/java/com/szwl/service/impl/AlarmClockServiceImpl.java

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.AlarmClock;
+import com.szwl.mapper.AlarmClockMapper;
+import com.szwl.service.AlarmClockService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2025-09-05
+ */
+@Service
+public class AlarmClockServiceImpl extends ServiceImpl<AlarmClockMapper, AlarmClock> implements AlarmClockService {
+
+}