From c85c489f892d940ddebdc470fc584ec0672b7697 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Tue, 5 Dec 2023 15:49:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=99=BB=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=81=E6=BB=91=E5=8A=A8=E6=B5=87=E6=B0=B4=E3=80=81=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=AE=BE=E5=A4=87id=E8=8E=B7=E5=8F=96=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E6=B5=87=E6=B0=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/config/SecurityConfig.java | 2 +- .../com/ruoyi/device/app/AppController.java | 71 +++++++++++++++++++ .../com/ruoyi/device/domain/AsDevice.java | 6 ++ .../ruoyi/device/service/IAsUserService.java | 5 ++ .../service/impl/AsUserServiceImpl.java | 18 +++++ .../mapper/device/AsWateringRecordMapper.xml | 43 ++++++++--- 6 files changed, 136 insertions(+), 9 deletions(-) create mode 100644 AutoSprout-watering/src/main/java/com/ruoyi/device/app/AppController.java diff --git a/AutoSprout-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/AutoSprout-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 418f23a..83fd1b8 100644 --- a/AutoSprout-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/AutoSprout-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -113,7 +113,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/register", "/captchaImage","/common/receive","/appCaptcha","/appCodeLogin").permitAll() + .antMatchers("/login", "/register", "/captchaImage","/common/receive","/appCaptcha","/appCodeLogin","/app/**").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() diff --git a/AutoSprout-watering/src/main/java/com/ruoyi/device/app/AppController.java b/AutoSprout-watering/src/main/java/com/ruoyi/device/app/AppController.java new file mode 100644 index 0000000..90115ed --- /dev/null +++ b/AutoSprout-watering/src/main/java/com/ruoyi/device/app/AppController.java @@ -0,0 +1,71 @@ +package com.ruoyi.device.app; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.device.domain.AsDevice; +import com.ruoyi.device.domain.AsWateringRecord; +import com.ruoyi.device.service.IAsDeviceService; +import com.ruoyi.device.service.IAsUserService; +import com.ruoyi.device.service.IAsWateringRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/app") +public class AppController extends BaseController +{ + @Resource + private IAsUserService asUserService; + + @Resource + private IAsWateringRecordService asWateringRecordService; + + @Autowired + private IAsDeviceService asDeviceService; + + + /** + * 根据登录用户获取绑定设备 + */ + @GetMapping("/getDeviceInfoByUser") + public AjaxResult list(Long userId) + { + AsDevice device = asUserService.selectDeviceInfoByUser(userId); + return AjaxResult.success(device); + } + + + /** + * 滑动浇水 + */ + @GetMapping(value = "/watering/{deviceId}/{wateringSwitch}") + public AjaxResult watering(@PathVariable("deviceId") Long deviceId,@PathVariable("wateringSwitch") Integer wateringSwitch) + { + AsDevice device = asDeviceService.selectAsDeviceByDeviceId(deviceId); + return asDeviceService.watering(device,wateringSwitch); + } + + /** + * 根据设备id获取更多浇水记录 + */ + @GetMapping("/getWateringRecord") + public TableDataInfo wateringRecord(String deviceId) + { + startPage(); + List asWateringRecords = asWateringRecordService.selectAsWateringRecordList(AsWateringRecord.builder().deviceId(Long.parseLong(deviceId)).build()); + return getDataTable(asWateringRecords); + } + +} diff --git a/AutoSprout-watering/src/main/java/com/ruoyi/device/domain/AsDevice.java b/AutoSprout-watering/src/main/java/com/ruoyi/device/domain/AsDevice.java index d427ff3..75bb7dc 100644 --- a/AutoSprout-watering/src/main/java/com/ruoyi/device/domain/AsDevice.java +++ b/AutoSprout-watering/src/main/java/com/ruoyi/device/domain/AsDevice.java @@ -4,9 +4,12 @@ import java.util.Date; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import lombok.NoArgsConstructor; /** * 设备列表对象 as_device @@ -16,6 +19,9 @@ import com.ruoyi.common.core.domain.BaseEntity; */ @Data @TableName(value = "as_device") +@Builder +@AllArgsConstructor +@NoArgsConstructor public class AsDevice extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/AutoSprout-watering/src/main/java/com/ruoyi/device/service/IAsUserService.java b/AutoSprout-watering/src/main/java/com/ruoyi/device/service/IAsUserService.java index 872fd8c..87c9a4e 100644 --- a/AutoSprout-watering/src/main/java/com/ruoyi/device/service/IAsUserService.java +++ b/AutoSprout-watering/src/main/java/com/ruoyi/device/service/IAsUserService.java @@ -1,6 +1,7 @@ package com.ruoyi.device.service; import com.ruoyi.common.core.domain.entity.AsUser; +import com.ruoyi.device.domain.AsDevice; import java.util.List; @@ -177,4 +178,8 @@ public interface IAsUserService */ AsUser selectUserByPhone(String phone); + /** + * 根据登录用户获取是否有绑定设备 + */ + AsDevice selectDeviceInfoByUser(Long userId); } diff --git a/AutoSprout-watering/src/main/java/com/ruoyi/device/service/impl/AsUserServiceImpl.java b/AutoSprout-watering/src/main/java/com/ruoyi/device/service/impl/AsUserServiceImpl.java index c81cc95..2b9eff5 100644 --- a/AutoSprout-watering/src/main/java/com/ruoyi/device/service/impl/AsUserServiceImpl.java +++ b/AutoSprout-watering/src/main/java/com/ruoyi/device/service/impl/AsUserServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.device.mapper.AsDeviceMapper; import com.ruoyi.device.mapper.AsUserMapper; import com.ruoyi.device.service.IAsUserService; import com.ruoyi.system.service.ISysConfigService; +import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -383,4 +384,21 @@ public class AsUserServiceImpl implements IAsUserService public AsUser selectUserByPhone(String phone) { return asUserMapper.selectUserByPhone(phone); } + + /** + * 根据登录用户获取绑定设备 + * 根据登录用户获取是否有绑定设备,没有则显示添加设备页面,如果有则从列表中取一条记录展示 + * 土壤湿度,水流强度,是否离线等 + * @param userId 用户id + * @return 用户设备信息 + */ + @Override + public AsDevice selectDeviceInfoByUser(Long userId) { + AsDevice asDevice = AsDevice.builder().userId(userId).build(); + List asDevices = asDeviceMapper.selectAsDeviceList(asDevice); + if(ObjectUtils.isNotEmpty(asDevices) && asDevices.size() !=0 ){ + return asDevices.get(0); + } + return null; + } } diff --git a/AutoSprout-watering/src/main/resources/mapper/device/AsWateringRecordMapper.xml b/AutoSprout-watering/src/main/resources/mapper/device/AsWateringRecordMapper.xml index 2fd1ead..ff4a500 100644 --- a/AutoSprout-watering/src/main/resources/mapper/device/AsWateringRecordMapper.xml +++ b/AutoSprout-watering/src/main/resources/mapper/device/AsWateringRecordMapper.xml @@ -8,20 +8,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + - select device_id, water_time, pulse_mode, start_mode, spraying_time, user_name from as_watering_record + select device_id, water_time, start_mode, spraying_time, pulse_mode, pulse_mode_param, water_intensity, start_moisture, end_moisture, user_name, create_time from as_watering_record @@ -30,33 +41,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where device_id = #{deviceId} - + insert into as_watering_record water_time, - pulse_mode, start_mode, spraying_time, + pulse_mode, + pulse_mode_param, + water_intensity, + start_moisture, + end_moisture, user_name, - + create_time, + #{waterTime}, - #{pulseMode}, #{startMode}, #{sprayingTime}, + #{pulseMode}, + #{pulseModeParam}, + #{waterIntensity}, + #{startMoisture}, + #{endMoisture}, #{userName}, - + #{createTime}, + + update as_watering_record water_time = #{waterTime}, - pulse_mode = #{pulseMode}, start_mode = #{startMode}, spraying_time = #{sprayingTime}, + pulse_mode = #{pulseMode}, + pulse_mode_param = #{pulseModeParam}, + water_intensity = #{waterIntensity}, + start_moisture = #{startMoisture}, + end_moisture = #{endMoisture}, user_name = #{userName}, + create_time = #{createTime}, where device_id = #{deviceId}