From 77626673e9ca96c35d78a256d812f8744ccb1468 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Tue, 11 Nov 2025 10:51:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=AF=AD=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bjq/AppDeviceBJQ6331Controller.java | 155 +++++++++++++++++ .../device/bjq/AppDeviceHBY335Controller.java | 156 ++++++++++++++++++ .../device/DeviceBJQ6075BizService.java | 1 - .../controller/AppDeviceVoiceController.java | 78 +++++++++ .../fuyuanshen/app/domain/AppDeviceVoice.java | 72 ++++++++ .../app/domain/bo/AppDeviceVoiceBo.java | 71 ++++++++ .../app/mapper/AppDeviceVoiceMapper.java | 32 ++++ .../app/service/IAppDeviceVoiceService.java | 48 ++++++ .../impl/AppDeviceVoiceServiceImpl.java | 101 ++++++++++++ .../mapper/app/AppDeviceVoiceMapper.xml | 57 +++++++ 10 files changed, 770 insertions(+), 1 deletion(-) create mode 100644 fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceBJQ6331Controller.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY335Controller.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppDeviceVoiceController.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppDeviceVoice.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppDeviceVoiceBo.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceVoiceMapper.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceVoiceService.java create mode 100644 fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceVoiceServiceImpl.java create mode 100644 fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceVoiceMapper.xml diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceBJQ6331Controller.java b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceBJQ6331Controller.java new file mode 100644 index 00000000..43b72b69 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceBJQ6331Controller.java @@ -0,0 +1,155 @@ +package com.fuyuanshen.app.controller.device.bjq; + +import com.fuyuanshen.app.domain.bo.AppPersonnelInfoBo; +import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto; +import com.fuyuanshen.app.domain.dto.DeviceInstructDto; +import com.fuyuanshen.app.domain.vo.AppDevice6075DetailVo; +import com.fuyuanshen.common.core.domain.R; +import com.fuyuanshen.common.core.validate.AddGroup; +import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessAnnotation; +import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessBatcAnnotation; +import com.fuyuanshen.common.web.core.BaseController; +import com.fuyuanshen.equipment.domain.dto.AppDeviceSendMsgBo; +import com.fuyuanshen.web.service.device.DeviceBJQ6075BizService; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * BJQ6331便携式工作灯 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/BJQ6331/device") +public class AppDeviceBJQ6331Controller extends BaseController { + + private final DeviceBJQ6075BizService appDeviceService6075; + + + /** + * 获取设备详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { + return R.ok(appDeviceService6075.getInfo(id)); + } + + + /** + * 人员信息登记 1 + */ + @PostMapping(value = "/registerPersonInfo") + public R registerPersonInfo(@Validated(AddGroup.class) @RequestBody AppPersonnelInfoBo bo) { + return toAjax(appDeviceService6075.registerPersonInfo(bo)); + } + + + /** + * 发送信息 2 + */ + @PostMapping(value = "/sendMessage") + @FunctionAccessBatcAnnotation(value = "sendMessage", timeOut = 30, batchMaxTimeOut = 40) + public R sendMessage(@RequestBody AppDeviceSendMsgBo bo) { + return toAjax(appDeviceService6075.sendMessage(bo)); + } + + + /** + * 发送报警信息 3 + */ + @PostMapping(value = "/sendAlarmMessage") + @FunctionAccessBatcAnnotation(value = "sendAlarmMessage", timeOut = 5, batchMaxTimeOut = 10) + public R sendAlarmMessage(@RequestBody AppDeviceSendMsgBo bo) { + return toAjax(appDeviceService6075.sendAlarmMessage(bo)); + } + + + /** + * 上传设备logo图片 4 + */ + @PostMapping("/uploadLogo") + @FunctionAccessAnnotation("uploadLogo") + public R upload(@Validated @ModelAttribute AppDeviceLogoUploadDto bo) { + + MultipartFile file = bo.getFile(); + if (file.getSize() > 1024 * 1024 * 2) { + return R.warn("图片不能大于2M"); + } + appDeviceService6075.uploadDeviceLogo(bo); + + return R.ok(); + } + + + /** + * 灯光模式 5 + * (主光模式) + * 0(关闭灯光),1(强光),2(超强光), 3(工作光), 4(节能光),5(爆闪),6(SOS) + */ + @PostMapping("/lightModeSettings") + public R lightModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightModeSettings(params); + return R.ok(); + } + + + /** + * 灯光模式 6 + * (辅光模式) + * 0(关闭灯光),1(泛光),2(泛光爆闪), 3(警示灯), 4(警示灯/泛光) + */ + @PostMapping("/auxiliaryLightModeSettings") + public R auxiliaryLightModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightModeSettings(params); + return R.ok(); + } + + + /** + * 灯光亮度设置 7 + */ + @PostMapping("/lightBrightnessSettings") + public R lightBrightnessSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightBrightnessSettings(params); + return R.ok(); + } + + /** + * 激光模式设置 8 + */ + @PostMapping("/laserModeSettings") + public R laserModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.laserModeSettings(params); + return R.ok(); + } + + + /** + * 声光报警模式设置 9 + * Sound and light alarm + */ + @PostMapping("/salaModeSettings") + public R salaModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.laserModeSettings(params); + return R.ok(); + } + + + /** + * 获取设备分享详细信息 + * + * @param id 主键 + */ + @GetMapping("/getShareInfo/{id}") + public R getShareInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(appDeviceService6075.getInfo(id)); + } + + +} diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY335Controller.java b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY335Controller.java new file mode 100644 index 00000000..48b27e48 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY335Controller.java @@ -0,0 +1,156 @@ +package com.fuyuanshen.app.controller.device.bjq; + +import com.fuyuanshen.app.domain.bo.AppPersonnelInfoBo; +import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto; +import com.fuyuanshen.app.domain.dto.DeviceInstructDto; +import com.fuyuanshen.app.domain.vo.AppDevice6075DetailVo; +import com.fuyuanshen.common.core.domain.R; +import com.fuyuanshen.common.core.validate.AddGroup; +import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessAnnotation; +import com.fuyuanshen.common.ratelimiter.annotation.FunctionAccessBatcAnnotation; +import com.fuyuanshen.common.web.core.BaseController; +import com.fuyuanshen.equipment.domain.dto.AppDeviceSendMsgBo; +import com.fuyuanshen.web.service.device.DeviceBJQ6075BizService; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * HBY335(LED救生照明线) + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/HBY335/device") +public class AppDeviceHBY335Controller extends BaseController { + + private final DeviceBJQ6075BizService appDeviceService6075; + + + /** + * 获取设备详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(appDeviceService6075.getInfo(id)); + } + + + /** + * 人员信息登记 1 + */ + @PostMapping(value = "/registerPersonInfo") + public R registerPersonInfo(@Validated(AddGroup.class) @RequestBody AppPersonnelInfoBo bo) { + return toAjax(appDeviceService6075.registerPersonInfo(bo)); + } + + + /** + * 发送信息 2 + */ + @PostMapping(value = "/sendMessage") + @FunctionAccessBatcAnnotation(value = "sendMessage", timeOut = 30, batchMaxTimeOut = 40) + public R sendMessage(@RequestBody AppDeviceSendMsgBo bo) { + return toAjax(appDeviceService6075.sendMessage(bo)); + } + + + /** + * 发送报警信息 3 + */ + @PostMapping(value = "/sendAlarmMessage") + @FunctionAccessBatcAnnotation(value = "sendAlarmMessage", timeOut = 5, batchMaxTimeOut = 10) + public R sendAlarmMessage(@RequestBody AppDeviceSendMsgBo bo) { + return toAjax(appDeviceService6075.sendAlarmMessage(bo)); + } + + + /** + * 上传设备logo图片 4 + */ + @PostMapping("/uploadLogo") + @FunctionAccessAnnotation("uploadLogo") + public R upload(@Validated @ModelAttribute AppDeviceLogoUploadDto bo) { + + MultipartFile file = bo.getFile(); + if (file.getSize() > 1024 * 1024 * 2) { + return R.warn("图片不能大于2M"); + } + appDeviceService6075.uploadDeviceLogo(bo); + + return R.ok(); + } + + + /** + * 灯光模式 5 + * (主光模式) + * 0(关闭灯光),1(强光),2(超强光), 3(工作光), 4(节能光),5(爆闪),6(SOS) + */ + @PostMapping("/lightModeSettings") + public R lightModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightModeSettings(params); + return R.ok(); + } + + + /** + * 灯光模式 6 + * (辅光模式) + * 0(关闭灯光),1(泛光),2(泛光爆闪), 3(警示灯), 4(警示灯/泛光) + */ + @PostMapping("/auxiliaryLightModeSettings") + public R auxiliaryLightModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightModeSettings(params); + return R.ok(); + } + + + /** + * 灯光亮度设置 7 + */ + @PostMapping("/lightBrightnessSettings") + public R lightBrightnessSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.lightBrightnessSettings(params); + return R.ok(); + } + + /** + * 激光模式设置 8 + */ + @PostMapping("/laserModeSettings") + public R laserModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.laserModeSettings(params); + return R.ok(); + } + + + /** + * 声光报警模式设置 9 + * Sound and light alarm + */ + @PostMapping("/salaModeSettings") + public R salaModeSettings(@RequestBody DeviceInstructDto params) { + appDeviceService6075.laserModeSettings(params); + return R.ok(); + } + + + /** + * 获取设备分享详细信息 + * + * @param id 主键 + */ + @GetMapping("/getShareInfo/{id}") + public R getShareInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(appDeviceService6075.getInfo(id)); + } + + +} diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQ6075BizService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQ6075BizService.java index 378f6c5c..c543b8be 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQ6075BizService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQ6075BizService.java @@ -69,7 +69,6 @@ public interface DeviceBJQ6075BizService { */ public void recordDeviceLog(Long deviceId, String deviceName, String deviceAction, String content, Long operator); - public boolean registerPersonInfo(AppPersonnelInfoBo bo); public void uploadDeviceLogo2(AppDeviceLogoUploadDto bo); diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppDeviceVoiceController.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppDeviceVoiceController.java new file mode 100644 index 00000000..36829422 --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/controller/AppDeviceVoiceController.java @@ -0,0 +1,78 @@ +package com.fuyuanshen.app.controller; + +import com.fuyuanshen.app.domain.AppDeviceVoice; +import com.fuyuanshen.app.domain.bo.AppDeviceVoiceBo; +import com.fuyuanshen.app.service.IAppDeviceVoiceService; +import com.fuyuanshen.common.core.domain.R; +import com.fuyuanshen.common.core.validate.AddGroup; +import com.fuyuanshen.common.core.validate.EditGroup; +import com.fuyuanshen.common.core.validate.QueryGroup; +import com.fuyuanshen.common.web.core.BaseController; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; +import com.fuyuanshen.common.mybatis.core.page.PageQuery; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.validation.constraints.NotNull; + +import java.util.Arrays; + +/** + * 设备语音Controller + * + * @author Lion Li + * @date 2025-07-02 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/device/voice") +public class AppDeviceVoiceController extends BaseController { + + private final IAppDeviceVoiceService appDeviceVoiceService; + + /** + * 查询设备语音列表 + */ + @GetMapping("/list") + public TableDataInfo list(AppDeviceVoiceBo bo, PageQuery pageQuery) { + return appDeviceVoiceService.queryPageList(bo, pageQuery); + } + + /** + * 获取设备语音详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { + return R.ok(appDeviceVoiceService.queryById(id)); + } + + /** + * 新增设备语音 + */ + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody AppDeviceVoiceBo bo) { + return toAjax(appDeviceVoiceService.insertByBo(bo)); + } + + /** + * 修改设备语音 + */ + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody AppDeviceVoiceBo bo) { + return toAjax(appDeviceVoiceService.updateByBo(bo)); + } + + /** + * 删除设备语音 + * + * @param ids 主键串 + */ + @DeleteMapping("/{ids}") + public R remove(@NotNull(message = "主键不能为空") @PathVariable Long[] ids) { + return toAjax(appDeviceVoiceService.deleteWithValidByIds(Arrays.asList(ids), true)); + } +} \ No newline at end of file diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppDeviceVoice.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppDeviceVoice.java new file mode 100644 index 00000000..a435efac --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/AppDeviceVoice.java @@ -0,0 +1,72 @@ +package com.fuyuanshen.app.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fuyuanshen.common.tenant.core.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 设备语音 + * + * @author Lion Li + * @date 2025-07-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("app_device_voice") +public class AppDeviceVoice extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 视频名称 + */ + private String videoName; + + /** + * 视频链接 + */ + private String videoUrl; + + /** + * 设备di + */ + private Long deviceId; + + /** + * 备注 + */ + private String remark; + + /** + * 文件类型 + * audio/mp3, audio/wav 等 + */ + private String type; + + /** + * 时长(秒) + */ + private Integer duration; + + /** + * 文件大小(字节) + */ + private Long size; + + /** + * 封面图URL + */ + private String cover; + +} diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppDeviceVoiceBo.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppDeviceVoiceBo.java new file mode 100644 index 00000000..f89565f6 --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/domain/bo/AppDeviceVoiceBo.java @@ -0,0 +1,71 @@ +package com.fuyuanshen.app.domain.bo; + +import com.fuyuanshen.common.core.validate.AddGroup; +import com.fuyuanshen.common.core.validate.EditGroup; +import com.fuyuanshen.common.mybatis.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import jakarta.validation.constraints.*; + +/** + * 设备语音业务对象 app_device_voice + * + * @author Lion Li + * @date 2025-07-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AppDeviceVoiceBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 视频名称 + */ + @NotBlank(message = "视频名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String videoName; + + /** + * 视频链接 + */ + @NotBlank(message = "视频链接不能为空", groups = { AddGroup.class, EditGroup.class }) + private String videoUrl; + + /** + * 设备di + */ + @NotNull(message = "设备di不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long deviceId; + + /** + * 备注 + */ + private String remark; + + /** + * 文件类型 + * audio/mp3, audio/wav 等 + */ + private String type; + + /** + * 时长(秒) + */ + private Integer duration; + + /** + * 文件大小(字节) + */ + private Long size; + + /** + * 封面图URL + */ + private String cover; + +} \ No newline at end of file diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceVoiceMapper.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceVoiceMapper.java new file mode 100644 index 00000000..3a2dc470 --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/mapper/AppDeviceVoiceMapper.java @@ -0,0 +1,32 @@ +package com.fuyuanshen.app.mapper; + +import com.fuyuanshen.app.domain.AppDeviceVoice; +import com.fuyuanshen.app.domain.bo.AppDeviceVoiceBo; +import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; +import com.fuyuanshen.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 设备语音Mapper接口 + * + * @author Lion Li + * @date 2025-07-02 + */ +public interface AppDeviceVoiceMapper extends BaseMapperPlus { + + /** + * 分页查询设备语音列表 + */ + Page selectPage(AppDeviceVoiceBo bo, PageQuery pageQuery); + + /** + * 查询设备语音列表 + */ + List selectList(AppDeviceVoiceBo bo); + +} \ No newline at end of file diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceVoiceService.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceVoiceService.java new file mode 100644 index 00000000..d7185cc9 --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/IAppDeviceVoiceService.java @@ -0,0 +1,48 @@ +package com.fuyuanshen.app.service; + +import com.fuyuanshen.app.domain.AppDeviceVoice; +import com.fuyuanshen.app.domain.bo.AppDeviceVoiceBo; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; +import com.fuyuanshen.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 设备语音Service接口 + * + * @author Lion Li + * @date 2025-07-02 + */ +public interface IAppDeviceVoiceService { + + /** + * 查询设备语音 + */ + AppDeviceVoice queryById(Long id); + + /** + * 查询设备语音列表 + */ + TableDataInfo queryPageList(AppDeviceVoiceBo bo, PageQuery pageQuery); + + /** + * 查询设备语音列表 + */ + List queryList(AppDeviceVoiceBo bo); + + /** + * 根据新增业务对象插入设备语音 + */ + Boolean insertByBo(AppDeviceVoiceBo bo); + + /** + * 根据编辑业务对象更新设备语音 + */ + Boolean updateByBo(AppDeviceVoiceBo bo); + + /** + * 校验并批量删除设备语音信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} \ No newline at end of file diff --git a/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceVoiceServiceImpl.java b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceVoiceServiceImpl.java new file mode 100644 index 00000000..2dece69f --- /dev/null +++ b/fys-modules/fys-app/src/main/java/com/fuyuanshen/app/service/impl/AppDeviceVoiceServiceImpl.java @@ -0,0 +1,101 @@ +package com.fuyuanshen.app.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fuyuanshen.app.domain.AppDeviceVoice; +import com.fuyuanshen.app.domain.bo.AppDeviceVoiceBo; +import com.fuyuanshen.app.mapper.AppDeviceVoiceMapper; +import com.fuyuanshen.app.service.IAppDeviceVoiceService; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; +import com.fuyuanshen.common.mybatis.core.page.PageQuery; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 设备语音Service业务层处理 + * + * @author Lion Li + * @date 2025-07-02 + */ +@RequiredArgsConstructor +@Service +public class AppDeviceVoiceServiceImpl implements IAppDeviceVoiceService { + + private final AppDeviceVoiceMapper baseMapper; + + /** + * 查询设备语音 + */ + @Override + public AppDeviceVoice queryById(Long id) { + return baseMapper.selectById(id); + } + + /** + * 查询设备语音列表 + */ + @Override + public TableDataInfo queryPageList(AppDeviceVoiceBo bo, PageQuery pageQuery) { + Page page = baseMapper.selectPage(bo, pageQuery); + return TableDataInfo.build(page); + } + + /** + * 查询设备语音列表 + */ + @Override + public List queryList(AppDeviceVoiceBo bo) { + return baseMapper.selectList(bo); + } + + /** + * 根据新增业务对象插入设备语音 + */ + @Override + public Boolean insertByBo(AppDeviceVoiceBo bo) { + AppDeviceVoice add = new AppDeviceVoice(); + add.setVideoName(bo.getVideoName()); + add.setVideoUrl(bo.getVideoUrl()); + add.setDeviceId(bo.getDeviceId()); + add.setRemark(bo.getRemark()); + add.setType(bo.getType()); + add.setDuration(bo.getDuration()); + add.setSize(bo.getSize()); + add.setCover(bo.getCover()); + return baseMapper.insert(add) > 0; + } + + /** + * 根据编辑业务对象更新设备语音 + */ + @Override + public Boolean updateByBo(AppDeviceVoiceBo bo) { + AppDeviceVoice update = new AppDeviceVoice(); + update.setId(bo.getId()); + update.setVideoName(bo.getVideoName()); + update.setVideoUrl(bo.getVideoUrl()); + update.setDeviceId(bo.getDeviceId()); + update.setRemark(bo.getRemark()); + update.setType(bo.getType()); + update.setDuration(bo.getDuration()); + update.setSize(bo.getSize()); + update.setCover(bo.getCover()); + return baseMapper.updateById(update) > 0; + } + + /** + * 校验并批量删除设备语音信息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (ids == null || ids.isEmpty()) { + return false; + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} \ No newline at end of file diff --git a/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceVoiceMapper.xml b/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceVoiceMapper.xml new file mode 100644 index 00000000..6a38c45e --- /dev/null +++ b/fys-modules/fys-app/src/main/resources/mapper/app/AppDeviceVoiceMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, video_name, video_url, device_id, remark, type, duration, size, cover, tenant_id, create_dept, create_by, create_time, update_by, update_time from app_device_voice + + + + + + + \ No newline at end of file