diff --git a/src/main/java/com/zsc/edu/gateway/IotGatewayApplication.java b/src/main/java/com/zsc/edu/gateway/IotGatewayApplication.java index 20186d0..9523a7c 100644 --- a/src/main/java/com/zsc/edu/gateway/IotGatewayApplication.java +++ b/src/main/java/com/zsc/edu/gateway/IotGatewayApplication.java @@ -2,6 +2,7 @@ package com.zsc.edu.gateway; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; /** * @author zhuang diff --git a/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MyMetaObjectHandler.java b/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MyMetaObjectHandler.java index 0dc1614..b119c60 100644 --- a/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MyMetaObjectHandler.java +++ b/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MyMetaObjectHandler.java @@ -6,6 +6,7 @@ import com.zsc.edu.gateway.framework.security.UserDetailsImpl; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import java.time.LocalDateTime; @@ -20,17 +21,22 @@ public class MyMetaObjectHandler implements MetaObjectHandler { public void insertFill(MetaObject metaObject) { UserDetailsImpl userInfo = SecurityUtil.getUserInfo(); - - this.strictInsertFill(metaObject, "createTime", LocalDateTime::now, LocalDateTime.class); - this.strictInsertFill(metaObject, "createdBy", userInfo::getUsername, String.class); + if (userInfo.getUsername() == null) { + userInfo.setUsername("system"); + } + this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); + this.strictInsertFill(metaObject, "createBy", String.class, userInfo.getUsername()); } @Override public void updateFill(MetaObject metaObject) { UserDetailsImpl userInfo = SecurityUtil.getUserInfo(); + if (userInfo.getUsername() == null) { + userInfo.setUsername("system"); + } this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class); - this.strictUpdateFill(metaObject, "updatedBy", userInfo::getUsername, String.class); + this.strictUpdateFill(metaObject, "updateBy", userInfo::getUsername, String.class); } diff --git a/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MybatisPlusConfig.java b/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MybatisPlusConfig.java index f9ca8de..fe0ecf1 100644 --- a/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MybatisPlusConfig.java +++ b/src/main/java/com/zsc/edu/gateway/framework/mybatisplus/MybatisPlusConfig.java @@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration; /** * @author Yao */ -@MapperScan(basePackages = "com.zsc.edu.gateway.modules.*.repo") +@MapperScan(basePackages = "com.zsc.edu.gateway.modules.**.repo") @Configuration public class MybatisPlusConfig { diff --git a/src/main/java/com/zsc/edu/gateway/modules/attachment/controller/AttachmentController.java b/src/main/java/com/zsc/edu/gateway/modules/attachment/controller/AttachmentController.java index 072c267..43eb21b 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/attachment/controller/AttachmentController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/attachment/controller/AttachmentController.java @@ -81,6 +81,7 @@ public class AttachmentController { /** * 批量上传附件 + * TODO mutipartFile */ @PostMapping("uploadMultipleFiles") public List uploadMultipleFiles( @@ -101,6 +102,6 @@ public class AttachmentController { */ @DeleteMapping("delete/{id}") public Boolean delete(@PathVariable("id") String id) { - return service.delete(id); + return service.removeById(id); } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/attachment/service/AttachmentService.java b/src/main/java/com/zsc/edu/gateway/modules/attachment/service/AttachmentService.java index 950b3c6..fc3d0fb 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/attachment/service/AttachmentService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/attachment/service/AttachmentService.java @@ -23,6 +23,4 @@ public interface AttachmentService extends IService { Attachment.Wrapper loadAsWrapper(String id); List selectList(List dis); - - Boolean delete(String id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/attachment/service/impl/AttachmentServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/attachment/service/impl/AttachmentServiceImpl.java index 1b0d0f0..c205f99 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/attachment/service/impl/AttachmentServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/attachment/service/impl/AttachmentServiceImpl.java @@ -18,6 +18,7 @@ import org.apache.tika.Tika; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.io.*; @@ -45,13 +46,11 @@ public class AttachmentServiceImpl extends ServiceImpl().in(Attachment::getId, dis)); } - @Override - public Boolean delete(String id) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(BulletinAttachment::getAttachmentId, id); - List bulletinAttachments = bulletin.selectList(wrapper); - if (!bulletinAttachments.isEmpty()) { - bulletin.delete(wrapper); - } - return removeById(id); - } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java index c7e1a8d..923757e 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java @@ -1,15 +1,17 @@ package com.zsc.edu.gateway.modules.iot.device.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto; import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto; +import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto; import com.zsc.edu.gateway.modules.iot.device.entity.Device; +import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery; import com.zsc.edu.gateway.modules.iot.device.service.DeviceService; +import com.zsc.edu.gateway.modules.iot.record.entity.Record; import com.zsc.edu.gateway.modules.iot.record.service.RecordService; +import com.zsc.edu.gateway.modules.iot.record.service.impl.RecordServiceImpl; import lombok.AllArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.web.PageableDefault; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -64,15 +66,12 @@ public class DeviceController { * 查询设备 * * @param query 设备的查询表单 - * @param pageable 分页参数 + * @param page 分页参数 * @return Page 设备分页数据 */ @GetMapping - public Page page( - DeviceQuery query, - @PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return service.page(query, pageable); + public IPage page(Page page, DeviceQuery query) { + return service.page(page, query); } /** @@ -82,8 +81,8 @@ public class DeviceController { * @return 被删除的设备 */ @DeleteMapping("{id}") - public Device delete(@PathVariable("id") Long id) { - return service.deleteById(id); + public Boolean delete(@PathVariable("id") Long id) { + return service.removeById(id); } /** @@ -112,24 +111,19 @@ public class DeviceController { } else { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("服务执行失败"); } -// service.serve(dto); -// return ResponseEntity.ok("服务执行成功"); } - /** - * 查询设备上报记录 - * - * @param clientId 设备的查询表单 - * @param pageable 分页参数 - * @return Page 设备分页数据 - */ - @GetMapping("record") - public Page pageRecord( - String clientId, - @PageableDefault(sort = {"recordTime"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return recordService.page(clientId, pageable); - } +// /** +// * 查询设备上报记录 +// * +// * @param clientId 设备的查询表单 +// * @param page 分页参数 +// * @return Page 设备分页数据 +// */ +// @GetMapping("record") +// public Page pageRecord(String clientId,Page page) Pageable pageable) { +// return recordService.page(clientId, pageable); +// } /** * 查询设备上报记录 diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java index ac88cff..fae404a 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java @@ -3,7 +3,7 @@ package com.zsc.edu.gateway.modules.iot.device.entity; import com.baomidou.mybatisplus.annotation.IEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; -import com.zsc.edu.gateway.framework.common.enums.IState; +import com.zsc.edu.gateway.common.enums.IState; import com.zsc.edu.gateway.modules.iot.product.entity.Product; import com.zsc.edu.gateway.modules.system.entity.BaseEntity; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java index b10b620..6182b23 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java @@ -3,7 +3,6 @@ package com.zsc.edu.gateway.modules.iot.device.query; import com.zsc.edu.gateway.modules.iot.device.entity.Device; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java index c50546b..4b598ae 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java @@ -5,17 +5,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zsc.edu.gateway.modules.iot.device.entity.Device; import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import java.util.Optional; /** * @author zhuang */ public interface DeviceRepository extends BaseMapper { @Select("select * from iot_device where name=#{name}") - Optional findByName(@Param("name") String name); + Device findByName(@Param("name") String name); IPage page(Page page, @Param("query") DeviceQuery query); + + Device selectById(@Param("id") Long id); + + @Select("select * from iot_device where client_id=#{clientId} and status=#{status} and online=#{online}") + Device findByClientIdAndStateAndOnline(@Param("clientId") String clientId, + @Param("status") Device.Status status, + @Param("online") Boolean online); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java index 8c3dec0..2264a60 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java @@ -1,9 +1,13 @@ package com.zsc.edu.gateway.modules.iot.device.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto; import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto; +import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto; import com.zsc.edu.gateway.modules.iot.device.entity.Device; +import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery; import java.util.List; @@ -13,4 +17,10 @@ public interface DeviceService extends IService { List batchCreate(BatchDeviceDto dto); Device update(DeviceDto dto, Long id); + + IPage page(Page page, DeviceQuery query); + + Device detail(Long id); + + Boolean serve(DeviceServeDto dto); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java index 996cb80..1811b88 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java @@ -1,14 +1,17 @@ package com.zsc.edu.gateway.modules.iot.device.service.impl; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zsc.edu.gateway.exception.ConstraintException; +import com.zsc.edu.gateway.exception.OutlineException; import com.zsc.edu.gateway.framework.redis.RedisUtils; import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto; import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto; +import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto; import com.zsc.edu.gateway.modules.iot.device.entity.Device; import com.zsc.edu.gateway.modules.iot.device.mapper.DeviceMapper; import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery; @@ -18,9 +21,9 @@ import com.zsc.edu.gateway.modules.iot.product.entity.Product; import com.zsc.edu.gateway.modules.iot.product.repo.ProductRepository; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.*; @@ -28,26 +31,27 @@ import java.util.*; /** * @author 15864 */ -@AllArgsConstructor @Slf4j @Service +//@RequiredArgsConstructor public class DeviceServiceImpl extends ServiceImpl implements DeviceService { - @Value("${gatherer.version}") - private String gatherer; - private final DeviceMapper mapper; + // @Value("${gatherer.version}") +// private String gatherer; @Resource - private final ProductRepository productRepo; + private DeviceMapper mapper; @Resource - private final DeviceRepository repo; - private final RedisUtils redisUtils; + private ProductRepository productRepo; + @Resource + private RedisUtils redisUtils; + /** * 新建设备 */ @Override public Device create(DeviceDto dto) { - if (repo.findByName(dto.getName()).isPresent()) { + if (baseMapper.findByName(dto.getName()) == null) { throw new ConstraintException("该设备已存在!"); } Device device = mapper.toEntity(dto); @@ -62,26 +66,30 @@ public class DeviceServiceImpl extends ServiceImpl imp @Override public List batchCreate(BatchDeviceDto dto) { List devices = new ArrayList<>(); - productRepo.findById(dto.getProductId()).ifPresent(product -> { - String[] names = new String[dto.getNum()]; - for (int i = 0; i < dto.getNum(); i++) { - String name = String.format("%s%05d", dto.getPrefix(), i + 1); - names[i] = name; - DeviceDto deviceDto = new DeviceDto(); - deviceDto.setName(name); - deviceDto.setProductId(product.id); - deviceDto.setExtendParams(dto.getExtendParams()); - deviceDto.setProperties(dto.getProperties()); - deviceDto.setFirmwareVersion(dto.getFirmwareVersion()); - Device device = mapper.toEntity(deviceDto); - Integer typeCode = Integer.valueOf(product.getType()); - device.setClientId(String.format("%s%02d%02d%05d", gatherer, typeCode, 3, i + 1)); - } - if (!findByNameIn(names).isEmpty()) { - throw new ConstraintException("设备已存在!"); - } - }); - repo.insert(devices); + Product product = productRepo.selectById(dto.getProductId()); + if (product == null) { + throw new ConstraintException("该产品不存在!"); + } + String[] names = new String[dto.getNum()]; + for (int i = 0; i < dto.getNum(); i++) { + String name = String.format("%s%05d", dto.getPrefix(), i + 1); + names[i] = name; + DeviceDto deviceDto = new DeviceDto(); + deviceDto.setName(name); + deviceDto.setProductId(product.getId()); + deviceDto.setExtendParams(dto.getExtendParams()); + deviceDto.setProperties(dto.getProperties()); + deviceDto.setFirmwareVersion(dto.getFirmwareVersion()); + Device device = mapper.toEntity(deviceDto); + Integer typeCode = Integer.valueOf(product.getType()); + device.setClientId(String.format("%s%02d%02d%05d", "001", typeCode, 3, i + 1)); + } + + if (!findByNameIn(names).isEmpty()) { + throw new ConstraintException("设备已存在!"); + } + + baseMapper.insert(devices); return devices; } @@ -96,7 +104,7 @@ public class DeviceServiceImpl extends ServiceImpl imp */ @Override public Device update(DeviceDto dto, Long id) { - Device device = repo.selectById(id); + Device device = baseMapper.selectById(id); if (!device.getName().equals(dto.getName())) { throw new ConstraintException("deviceName", dto.getName(), "设备名称已存在"); } @@ -115,72 +123,33 @@ public class DeviceServiceImpl extends ServiceImpl imp * @param query 查询表单 * @param page 分页参数 */ + @Override public IPage page(Page page, DeviceQuery query) { - return repo.page(page, query); + return baseMapper.page(page, query); } /** - * 删除设备 - * - * @param id 设备id - * @return 删除设备 - */ - public Device delete(Long id) { - return deleteById(id); - } - - /** - * 通过Id查找设备 + * 通过Id查找设备详情 * * @param id - * @return 查找设备 - */ - public Device getById(Long id) { - return findById(id).orElseThrow(NotExistException::new); - } - - /** - * 通过factoryId查找设备 - * - * @param factoryId - * @return 查找设备 - */ - public Optional getByFactoryId(String factoryId) { - return repo.findByFactoryId(factoryId); - } - - - /** - * 查询设备详情 - * - * @param id - * @return Lamp 设备数据 + * @return 设备详情 */ + @Override public Device detail(Long id) { - Device device = getOne(id); - Hibernate.initialize(device.product); - return device; - } - - public Device findByName(String name) { - return repo.findByName(name).orElseThrow(NotExistException::new); + return baseMapper.selectById(id); } - /** - * 批量删除 - * - * @param ids 编号数组 - * @return - */ - public Long[] batchDelete(Long[] ids) { - repo.deleteAllByIdInBatch(Arrays.asList(ids)); - return ids; - } - - public Optional findByClientIdAndStateAndOnline(String clientId, Device.Status status, Boolean isOnline) { - return repo.findByClientIdAndStateAndOnline(clientId.trim(), status, isOnline); - } +// /** +// * 批量删除 +// * +// * @param ids 编号数组 +// * @return +// */ +// public Long[] batchDelete(Long[] ids) { +// repo.deleteAllByIdInBatch(Arrays.asList(ids)); +// return ids; +// } /** * 物模型配置的服务 @@ -188,13 +157,14 @@ public class DeviceServiceImpl extends ServiceImpl imp * @param dto * @return */ + @Override public Boolean serve(DeviceServeDto dto) { - Optional deviceOptional = findByClientIdAndStateAndOnline(dto.clientId, Device.Status.已激活, true); - if (deviceOptional.isPresent()) { + Device device = baseMapper.findByClientIdAndStateAndOnline(dto.clientId, Device.Status.ACTIVATED, true); + if (device != null) { JSONObject json = (JSONObject) JSON.toJSON(dto); json.put("type", "serve"); // amqpTemplate.convertAndSend(exchange, "send", json); - redisUtils.set("serve:sendTime:" + dto.serveName + ":" + dto.clientId, new Date()); + redisUtils.set("serve:sendTime:" + dto.serveName + ":" + dto.clientId, String.valueOf(new Date())); return true; } else { throw new OutlineException("设备[" + dto.clientId + "]不在线!"); diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java index 8f2aa0d..6583785 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java @@ -1,12 +1,12 @@ package com.zsc.edu.gateway.modules.iot.product.controller; -import com.zsc.gateway.framework.log.Log; -import com.zsc.gateway.module.iot.product.domain.Product; -import com.zsc.gateway.module.iot.product.dto.ProductDto; -import com.zsc.gateway.module.iot.product.query.ProductQuery; -import com.zsc.gateway.module.iot.product.service.ProductService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import com.zsc.edu.gateway.modules.iot.product.query.ProductQuery; +import com.zsc.edu.gateway.modules.iot.product.service.impl.ProductServiceImpl; import lombok.AllArgsConstructor; -import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault; @@ -15,12 +15,15 @@ import org.springframework.web.bind.annotation.*; import java.util.Collection; +/** + * @author zhuang + */ @AllArgsConstructor @RestController @RequestMapping("api/rest/product") public class ProductController { - private final ProductService service; + private final ProductServiceImpl service; /** @@ -30,7 +33,6 @@ public class ProductController { * @return */ @PostMapping - @Log(module = "产品", action = Log.Action.新建) public Product create(@RequestBody ProductDto dto) { return service.create(dto); } @@ -42,7 +44,6 @@ public class ProductController { * @return 更新后的产品 */ @PatchMapping("{id}") - @Log(module = "产品", action = Log.Action.修改) public Product update(@RequestBody ProductDto dto, @PathVariable("id") Long id) { return service.update(dto, id); } @@ -52,29 +53,25 @@ public class ProductController { * 查询产品 * * @param query 产品的查询表单 - * @param pageable 分页参数 + * @param page 分页参数 * @return Page 产品分页数据 */ @GetMapping - @Log(module = "产品", action = Log.Action.其他) - public Page page( - ProductQuery query, - @PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return service.page(query, pageable); + public IPage page(Page page, ProductQuery query) { + return service.page(page, query); } - /** - * 模糊查询部门,最多返回5条数据 - * - * @param query 查询参数 - * @return 部门列表 - */ - @GetMapping("fuzzy") - @PreAuthorize("hasAnyAuthority('DEVICE_CREATE', 'DEVICE_UPDATE')") - public Collection fuzzyQuery(ProductQuery query) { - return service.list(query.name); - } +// /** +// * 模糊查询部门,最多返回5条数据 +// * +// * @param query 查询参数 +// * @return 部门列表 +// */ +// @GetMapping("fuzzy") +// @PreAuthorize("hasAnyAuthority('DEVICE_CREATE', 'DEVICE_UPDATE')") +// public Collection fuzzyQuery(ProductQuery query) { +// return service.list(query.name); +// } /** * 删除产品 @@ -83,9 +80,8 @@ public class ProductController { * @return 被删除的产品 */ @DeleteMapping("{id}") - @Log(module = "产品", action = Log.Action.删除) - public Product delete(@PathVariable("id") Long id) { - return service.deleteById(id); + public Boolean delete(@PathVariable("id") Long id) { + return service.removeById(id); } /** @@ -96,7 +92,6 @@ public class ProductController { * @return 任务 */ @GetMapping("{id}") - @Log(module = "产品详情", action = Log.Action.其他) public Product detail(@PathVariable("id") Long id) { return service.detail(id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/dto/ProductDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/dto/ProductDto.java index 20ec86e..dc18754 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/dto/ProductDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/dto/ProductDto.java @@ -1,7 +1,7 @@ package com.zsc.edu.gateway.modules.iot.product.dto; -import com.zsc.gateway.module.iot.product.domain.Product; -import com.zsc.gateway.module.iot.tsl.dto.ParamDto; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/entity/Product.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/entity/Product.java index f512d1e..7868e70 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/entity/Product.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/entity/Product.java @@ -23,6 +23,7 @@ import java.util.Set; @AllArgsConstructor @TableName("iot_product") public class Product extends BaseEntity { + //TODO 部门ID /** * 产品名称 */ diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/mapper/ProductMapper.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/mapper/ProductMapper.java index a3bf805..1546881 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/mapper/ProductMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/mapper/ProductMapper.java @@ -1,12 +1,14 @@ package com.zsc.edu.gateway.modules.iot.product.mapper; -import com.zsc.gateway.module.common.domain.BaseMapper; -import com.zsc.gateway.module.iot.product.domain.Product; -import com.zsc.gateway.module.iot.product.dto.ProductDto; -import com.zsc.gateway.module.iot.tsl.mapper.ParamMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; -@Mapper(componentModel = "spring", uses = {ParamMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) +/** + * @author lenovo + */ +@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface ProductMapper extends BaseMapper { } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/query/ProductQuery.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/query/ProductQuery.java index 6ff1d5b..d0443ce 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/query/ProductQuery.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/query/ProductQuery.java @@ -2,6 +2,9 @@ package com.zsc.edu.gateway.modules.iot.product.query; import lombok.Data; +/** + * @author zhuang + */ @Data public class ProductQuery { /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/repo/ProductRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/repo/ProductRepository.java index f7215e7..d59bfa8 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/repo/ProductRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/repo/ProductRepository.java @@ -2,13 +2,22 @@ package com.zsc.edu.gateway.modules.iot.product.repo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import com.zsc.edu.gateway.modules.iot.product.query.ProductQuery; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; -import java.util.Optional; /** * @author Yao */ public interface ProductRepository extends BaseMapper { - Optional findById(Long id); + @Select("select * from iot_product where name=#{name}") + Product findByName(@Param("name") String name); + + IPage page(Page page, @Param("query") ProductQuery query); + + Product selectById(@Param("id") Long id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java index 1ecbe88..927a042 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java @@ -1,84 +1,19 @@ package com.zsc.edu.gateway.modules.iot.product.service; -import com.zsc.gateway.exception.ConstraintException; -import com.zsc.gateway.exception.NotExistException; -import com.zsc.gateway.module.common.service.BaseService; -import com.zsc.gateway.module.iot.product.domain.Product; -import com.zsc.gateway.module.iot.product.dto.ProductDto; -import com.zsc.gateway.module.iot.product.mapper.ProductMapper; -import com.zsc.gateway.module.iot.product.query.ProductQuery; -import com.zsc.gateway.module.iot.product.repo.ProductRepo; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import com.zsc.edu.gateway.modules.iot.product.query.ProductQuery; -import java.util.Collection; +/** + * @author zhuang + */ +public interface ProductService extends IService { + Product create(ProductDto dto); -@Service -public class ProductService extends BaseService { + Product update(ProductDto dto, Long id); - ProductMapper mapper; - - public ProductService(ProductRepo repo, ProductMapper productMapper) { - this.repo = repo; - this.mapper = productMapper; - } - - /** - * 新建产品 - */ - public Product create(ProductDto dto) { - if (repo.existsByName(dto.getName())) { - throw new ConstraintException("该设备已存在!"); - } - Product product = mapper.toEntity(dto); - return save(product); - } - - /** - * 更新产品 - */ - public Product update(ProductDto dto, Long id) { - Product product = getOne(id); - if (!product.getName().equals(dto.getName()) && repo.existsByName(dto.getName())) { - throw new ConstraintException("deviceName", dto.getName(), "设备名称已存在"); - } - mapper.convert(dto, product); - return save(product); - } - - /** - * 分页查询产品 - * - * @param query 查询表单 - * @param pageable 分页参数 - */ - public Page page(ProductQuery query, Pageable pageable) { - return repo.page(query, pageable); - } - - /** - * 删除产品 - * - * @param id 事件id - * @return 删除事件 - */ - public Product delete(Long id) { - return deleteById(id); - } - - public Product detail(Long id) { - return getOne(id); - } - - public Product findByName(String name) { - return repo.findByName(name).orElseThrow(() -> new NotExistException("产品不存在")); - } - - public Collection list(String name) { - ProductQuery query = new ProductQuery(); - query.setName(name); - return page(query, PageRequest.of(0, 5)).getContent(); - } + IPage page(Page page, ProductQuery query); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/Record.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/Record.java index ee12ea0..e4c5b15 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/Record.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/Record.java @@ -1,21 +1,27 @@ package com.zsc.edu.gateway.modules.iot.record.entity; -import lombok.Data; -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; import java.util.Date; import java.util.Map; -@Data -@Document(collection = "t_record") +/** + * @author zhuang + */ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@TableName("iot_record") public class Record { - @Id + @TableId private String id; private String clientId; - private String AttachmentId; + private String attachmentId; private Map content; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepo.java deleted file mode 100644 index f5b5c67..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepo.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.zsc.edu.gateway.modules.iot.record.repo; - -import com.zsc.gateway.module.iot.record.domain.Record; -import org.springframework.data.mongodb.repository.MongoRepository; -import org.springframework.data.mongodb.repository.Query; - -import java.util.Date; -import java.util.List; - -public interface RecordRepo extends MongoRepository { - - List findAllByClientIdAndRecordTimeAfter(String clientId, Date recordTime); - - @Query("{'content.recordTimeStr': {$eq: ?0}}") - List findByRecordTimeStr(String recordTimeStr); - - -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepository.java new file mode 100644 index 0000000..72dd00c --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/repo/RecordRepository.java @@ -0,0 +1,21 @@ +package com.zsc.edu.gateway.modules.iot.record.repo; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zsc.edu.gateway.modules.iot.record.entity.Record; +import org.mapstruct.Mapper; +import org.springframework.data.mongodb.repository.Query; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author zhuang + */ +public interface RecordRepository extends BaseMapper { + + List findAllByClientIdAndRecordTimeAfter(String clientId, LocalDateTime recordTime); + + List findByRecordTimeStr(String recordTimeStr); + + +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordService.java index 0e2fc1f..b96b604 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordService.java @@ -1,52 +1,18 @@ package com.zsc.edu.gateway.modules.iot.record.service; -import com.google.common.base.Strings; -import com.google.common.collect.Lists; -import com.zsc.gateway.module.iot.record.domain.Record; -import com.zsc.gateway.module.iot.record.repo.RecordRepo; -import com.zsc.gateway.module.utils.RedisUtils; -import lombok.AllArgsConstructor; -import org.springframework.data.domain.Example; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.iot.record.entity.Record; -import java.util.Comparator; -import java.util.Date; import java.util.List; -import java.util.Optional; -@AllArgsConstructor -@Service -public class RecordService { +/** + * @author zhuang + */ +public interface RecordService extends IService { + Record create(Record record); - RecordRepo repo; + List page(IPage page, String clientId); - RedisUtils redisUtils; - - public Record create(Record record) { - return repo.save(record); - } - - public Page page(String clientId, Pageable pageable) { - Record record = new Record(); - if (!Strings.isNullOrEmpty(clientId)) { - record.setClientId(clientId); - } - Example example = Example.of(record); - return repo.findAll(example, pageable); - } - - public List recordPhoto(String clientId) { - Date recordTime = (Date) redisUtils.get("serve:sendTime:photograph:" + clientId); - List records = repo.findAllByClientIdAndRecordTimeAfter(clientId, recordTime); - Optional first = records.stream().sorted(Comparator.comparing(Record::getRecordTime).reversed()).findFirst(); - if (first.isPresent()) { - String recordTimeStr = (String) first.get().getContent().get("recordTimeStr"); - return repo.findByRecordTimeStr(recordTimeStr); - } else { - return Lists.newArrayList(); - } - - } + List recordPhoto(String clientId); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java index 51d1945..c808292 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java @@ -1,15 +1,12 @@ package com.zsc.edu.gateway.modules.iot.tsl.controller; -import com.zsc.gateway.framework.log.Log; -import com.zsc.gateway.module.iot.tsl.domain.Event; -import com.zsc.gateway.module.iot.tsl.dto.EventDto; -import com.zsc.gateway.module.iot.tsl.query.EventQuery; -import com.zsc.gateway.module.iot.tsl.service.EventService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.dto.EventDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; +import com.zsc.edu.gateway.modules.iot.tsl.query.EventQuery; +import com.zsc.edu.gateway.modules.iot.tsl.service.EventService; import lombok.AllArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -29,7 +26,6 @@ public class EventController { * @return */ @PostMapping - @Log(module = "事件", action = Log.Action.新建) public Event create(@RequestBody EventDto dto) { return service.create(dto); } @@ -41,7 +37,6 @@ public class EventController { * @return 更新后的事件 */ @PatchMapping("{id}") - @Log(module = "产品", action = Log.Action.修改) public Event update(@RequestBody EventDto dto, @PathVariable("id") Long id) { return service.update(dto, id); } @@ -51,29 +46,24 @@ public class EventController { * 查询事件 * * @param query 事件的查询表单 - * @param pageable 分页参数 + * @param page 分页参数 * @return Page 事件分页数据 */ @GetMapping - @Log(module = "事件", action = Log.Action.其他) - public Page page( - EventQuery query, - @PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return service.page(query, pageable); + public IPage page(Page page, EventQuery query) { + return service.page(page, query); } - /** - * 查询事件 - * - * @param query 事件的查询表单 - * @return Page 事件分页数据 - */ - @GetMapping("list") - @Log(module = "事件", action = Log.Action.其他) - public List list(EventQuery query) { - return service.findByProductId(query.productId); - } +// /** +// * 查询事件 +// * +// * @param query 事件的查询表单 +// * @return Page 事件分页数据 +// */ +// @GetMapping("list") +// public List list(EventQuery query) { +// return service.findByProductId(query.productId); +// } /** * 删除事件 @@ -82,9 +72,8 @@ public class EventController { * @return 被删除的事件 */ @DeleteMapping("{id}") - @Log(module = "事件", action = Log.Action.删除) - public Event delete(@PathVariable("id") Long id) { - return service.deleteById(id); + public Boolean delete(@PathVariable("id") Long id) { + return service.removeById(id); } /** @@ -95,7 +84,6 @@ public class EventController { * @return 任务 */ @GetMapping("{id}") - @Log(module = "事件详情", action = Log.Action.其他) public Event detail(@PathVariable("id") Long id) { return service.detail(id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/PropertyController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/PropertyController.java index 6accac7..6e65af3 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/PropertyController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/PropertyController.java @@ -1,15 +1,12 @@ package com.zsc.edu.gateway.modules.iot.tsl.controller; -import com.zsc.gateway.framework.log.Log; -import com.zsc.gateway.module.iot.tsl.domain.Property; -import com.zsc.gateway.module.iot.tsl.dto.PropertyDto; -import com.zsc.gateway.module.iot.tsl.query.PropertyQuery; -import com.zsc.gateway.module.iot.tsl.service.PropertyService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.dto.PropertyDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; +import com.zsc.edu.gateway.modules.iot.tsl.query.PropertyQuery; +import com.zsc.edu.gateway.modules.iot.tsl.service.PropertyService; import lombok.AllArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -32,7 +29,6 @@ public class PropertyController { * @return */ @PostMapping - @Log(module = "属性", action = Log.Action.新建) public Property create(@RequestBody PropertyDto dto) { return service.create(dto); } @@ -44,7 +40,6 @@ public class PropertyController { * @return 更新后的属性 */ @PatchMapping("{id}") - @Log(module = "属性", action = Log.Action.修改) public Property update(@RequestBody PropertyDto dto, @PathVariable("id") Long id) { return service.update(dto, id); } @@ -54,29 +49,24 @@ public class PropertyController { * 查询属性 * * @param query 属性的查询表单 - * @param pageable 分页参数 + * @param page 分页参数 * @return Page 属性分页数据 */ @GetMapping - @Log(module = "属性", action = Log.Action.其他) - public Page page( - PropertyQuery query, - @PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return service.page(query, pageable); + public IPage page(Page page, PropertyQuery query) { + return service.page(page, query); } - /** - * 查询属性 - * - * @param query 属性的查询表单 - * @return Page 属性分页数据 - */ - @GetMapping("list") - @Log(module = "属性", action = Log.Action.其他) - public List list(PropertyQuery query) { - return service.findByProductIdAndIoType(query); - } +// /** +// * 查询属性 +// * +// * @param query 属性的查询表单 +// * @return Page 属性分页数据 +// */ +// @GetMapping("list") +// public List list(PropertyQuery query) { +// return service.findByProductIdAndIoType(query); +// } /** * 删除属性 @@ -85,9 +75,8 @@ public class PropertyController { * @return 被删除的属性 */ @DeleteMapping("{id}") - @Log(module = "属性", action = Log.Action.删除) - public Property delete(@PathVariable("id") Long id) { - return service.deleteById(id); + public Boolean delete(@PathVariable("id") Long id) { + return service.removeById(id); } /** @@ -98,7 +87,6 @@ public class PropertyController { * @return 任务 */ @GetMapping("{id}") - @Log(module = "属性详情", action = Log.Action.其他) public Property detail(@PathVariable("id") Long id) { return service.detail(id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java index acac70a..91a7bc2 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java @@ -1,18 +1,14 @@ package com.zsc.edu.gateway.modules.iot.tsl.controller; -import com.zsc.gateway.framework.log.Log; -import com.zsc.gateway.module.iot.tsl.domain.Serve; -import com.zsc.gateway.module.iot.tsl.dto.ServeDto; -import com.zsc.gateway.module.iot.tsl.query.ServeQuery; -import com.zsc.gateway.module.iot.tsl.service.ServeService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ServeDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Serve; +import com.zsc.edu.gateway.modules.iot.tsl.query.ServeQuery; +import com.zsc.edu.gateway.modules.iot.tsl.service.ServeService; import lombok.AllArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.*; -import java.util.List; /** * @author Yao @@ -32,7 +28,6 @@ public class ServeController { * @return */ @PostMapping - @Log(module = "服务", action = Log.Action.新建) public Serve create(@RequestBody ServeDto dto) { return serveService.create(dto); } @@ -44,7 +39,6 @@ public class ServeController { * @return 更新后的服务 */ @PatchMapping("{id}") - @Log(module = "服务", action = Log.Action.修改) public Serve update(@RequestBody ServeDto dto, @PathVariable("id") Long id) { return serveService.update(dto, id); } @@ -54,29 +48,24 @@ public class ServeController { * 查询服务 * * @param query 服务的查询表单 - * @param pageable 服务参数 + * @param page 服务参数 * @return Page 服务分页数据 */ @GetMapping - @Log(module = "服务", action = Log.Action.其他) - public Page page( - ServeQuery query, - @PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable - ) { - return serveService.page(query, pageable); - } - - /** - * 查询服务 - * - * @param query 服务的查询表单 - * @return Page 服务分页数据 - */ - @GetMapping("list") - @Log(module = "服务", action = Log.Action.其他) - public List list(ServeQuery query) { - return serveService.findByProductId(query.productId); + public IPage page(Page page, ServeQuery query) { + return serveService.page(page, query); } +// +// /** +// * 查询服务 +// * +// * @param query 服务的查询表单 +// * @return Page 服务分页数据 +// */ +// @GetMapping("list") +// public List list(ServeQuery query) { +// return serveService.findByProductId(query.productId); +// } /** * 删除服务 @@ -85,9 +74,8 @@ public class ServeController { * @return 被删除的服务 */ @DeleteMapping("{id}") - @Log(module = "服务", action = Log.Action.删除) - public Serve delete(@PathVariable("id") Long id) { - return serveService.deleteById(id); + public Boolean delete(@PathVariable("id") Long id) { + return serveService.removeById(id); } /** @@ -98,7 +86,6 @@ public class ServeController { * @return 任务 */ @GetMapping("{id}") - @Log(module = "服务详情", action = Log.Action.其他) public Serve detail(@PathVariable("id") Long id) { return serveService.detail(id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java index 9ef5f6d..c509a3d 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.iot.tsl.dto; -import com.zsc.gateway.module.iot.tsl.domain.Event; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java index 52e1004..bd6d4bf 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java @@ -1,7 +1,7 @@ package com.zsc.edu.gateway.modules.iot.tsl.dto; -import com.zsc.gateway.module.iot.tsl.domain.DataType; -import com.zsc.gateway.module.iot.tsl.domain.Param; +import com.zsc.edu.gateway.modules.iot.tsl.entity.DataType; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Param; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/PropertyDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/PropertyDto.java index b6a5e5a..9c7cba1 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/PropertyDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/PropertyDto.java @@ -1,7 +1,7 @@ package com.zsc.edu.gateway.modules.iot.tsl.dto; -import com.zsc.gateway.module.iot.tsl.domain.DataType; -import com.zsc.gateway.module.iot.tsl.domain.Property; +import com.zsc.edu.gateway.modules.iot.tsl.entity.DataType; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ServeDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ServeDto.java index d14fc6e..b15836c 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ServeDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ServeDto.java @@ -6,6 +6,9 @@ import lombok.NoArgsConstructor; import java.util.Set; +/** + * @author zhuang + */ @Data @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/BaseParam.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/BaseParam.java index 10c6d3f..17afd94 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/BaseParam.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/BaseParam.java @@ -1,25 +1,25 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; -import javax.persistence.*; import java.io.Serializable; /** * @author rehtd - * @description 物模型事件 + * @description 物模型事件 */ -@Getter @Setter -@MappedSuperclass +@Getter +@NoArgsConstructor +@AllArgsConstructor public class BaseParam implements Serializable { /** * 序列化主键(有数据库提供,非自增) */ - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "basic_seq") - @SequenceGenerator(name = "basic_seq", sequenceName = "seq_basic") private Long id = -1L; /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/DataType.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/DataType.java index 84aa9ba..8b87047 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/DataType.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/DataType.java @@ -1,34 +1,57 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; -import com.zsc.gateway.module.common.enums.IState; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.zsc.edu.gateway.common.enums.IState; -public enum DataType implements IState { +/** + * @author lenovo + */ + +public enum DataType implements IEnum, IState { /** * 整型 */ - INT, + INT(1, "整型"), /** * 单精度浮点型 */ - FLOAT, + FLOAT(2, "单精度浮点型"), /** * 双精度浮点型 */ - DOUBLE, + DOUBLE(3, "双精度浮点型"), /** * 布尔型 */ - BOOLEAN, + BOOLEAN(4, "布尔型"), /** * 字符串 */ - STRING, + STRING(5, "字符串"), /** * 日期型 */ - DATE, + DATE(6, "日期型"), /** * 透传 */ - RAW + RAW(7, "透传"); + + private final int value; + private final String description; + + DataType(int value, String description) { + this.value = value; + this.description = description; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return this.description; + } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java index 4e571f0..dc27964 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java @@ -1,22 +1,27 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zsc.edu.gateway.common.enums.IState; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; +import org.springframework.context.annotation.ImportSelector; -import javax.persistence.*; import java.util.Set; /** * @author Yao * @desciption 物模型服务 */ -@NoArgsConstructor -@Getter @Setter -@Entity +@Getter +@NoArgsConstructor +@AllArgsConstructor +@TableName("iot_event") public class Event extends BaseParam { private Long productId; @@ -24,26 +29,40 @@ public class Event extends BaseParam { /** * 事件类型 */ - @Enumerated private Type type; /** * 服务输出的参数 */ - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - @Fetch(FetchMode.SUBSELECT) + @TableField(exist = false) private Set outputs; - public enum Type { + public enum Type implements IEnum, IState { /** * 主动 */ - 主动, + ACTIVE(1, "主动"), /** * 被动 */ - 被动 + PASSIVE(2, "被动"); + + private final int value; + private final String description; + + Type(int value, String description) { + this.value = value; + this.description = description; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return this.description; + } } - } - diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java index 23c6de8..5f613c3 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java @@ -1,18 +1,21 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zsc.edu.gateway.common.enums.IState; +import lombok.*; /** * @author Yao - * @desciption 参数 + * @desciption 参数 */ -@NoArgsConstructor -@Getter @Setter -@Entity +@Getter +@EqualsAndHashCode(callSuper = false) +@NoArgsConstructor +@AllArgsConstructor +@TableName("iot_param") public class Param extends BaseParam { /** * 数据类型 @@ -31,18 +34,36 @@ public class Param extends BaseParam { private Type type; - public enum Type { + public enum Type implements IEnum, IState { /** * 物模型输入 */ - INPUT, + INPUT(1, "Input"), /** * 物模型输出 */ - OUTPUT, + OUTPUT(2, "Output"), /** * 读写属性 */ - RW + RW(3, "Read Write"); + + private final int value; + private final String description; + + Type(int value, String description) { + this.value = value; + this.description = description; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return this.description; + } } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Property.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Property.java index 3ee1dc6..4739fca 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Property.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Property.java @@ -1,20 +1,25 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; +import com.baomidou.mybatisplus.annotation.IEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zsc.edu.gateway.common.enums.IState; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import javax.persistence.Entity; -import javax.persistence.Enumerated; /** * @author Yao - * @desciption 物模型属性 + * @desciption 物模型属性 */ -@NoArgsConstructor -@Getter @Setter -@Entity +@Getter +@NoArgsConstructor +@AllArgsConstructor +@TableName("iot_property") public class Property extends BaseParam { private Long productId; @@ -26,18 +31,35 @@ public class Property extends BaseParam { /** * 读写类型 */ - @Enumerated private IoType ioType; - public enum IoType { + public enum IoType implements IEnum, IState { /** * 可读写 */ - 读写, + READ_WRITE(1, "可读写"), /** * 只读 */ - 只读 + READ_ONLY(2, "只读"); + + private final int value; + private final String description; + + IoType(int value, String description) { + this.value = value; + this.description = description; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return this.description; + } } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Serve.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Serve.java index 1fec62d..ec18b60 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Serve.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Serve.java @@ -1,25 +1,22 @@ package com.zsc.edu.gateway.modules.iot.tsl.entity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.OneToMany; import java.util.Set; /** * @author Yao * @desciption 物模型服务 */ -@NoArgsConstructor -@Getter @Setter -@Entity +@Getter +@NoArgsConstructor +@AllArgsConstructor +@TableName("iot_serve") public class Serve extends BaseParam { private Long productId; @@ -27,15 +24,13 @@ public class Serve extends BaseParam { /** * 服务所需参数 */ - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - @Fetch(FetchMode.SUBSELECT) + @TableField(exist = false) private Set inputs; /** * 服务输出的参数 */ - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - @Fetch(FetchMode.SUBSELECT) + @TableField(exist = false) private Set outputs; } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/EventMapper.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/EventMapper.java index b5f7a38..748c0d9 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/EventMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/EventMapper.java @@ -1,11 +1,11 @@ package com.zsc.edu.gateway.modules.iot.tsl.mapper; -import com.zsc.gateway.module.common.domain.BaseMapper; -import com.zsc.gateway.module.iot.tsl.domain.Event; -import com.zsc.gateway.module.iot.tsl.dto.EventDto; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.modules.iot.tsl.dto.EventDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; -@Mapper(componentModel = "spring", uses = {ParamMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) +@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface EventMapper extends BaseMapper { } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ParamMapper.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ParamMapper.java index 2bfd5cc..3aeed26 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ParamMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ParamMapper.java @@ -1,8 +1,8 @@ package com.zsc.edu.gateway.modules.iot.tsl.mapper; -import com.zsc.gateway.module.common.domain.BaseMapper; -import com.zsc.gateway.module.iot.tsl.domain.Param; -import com.zsc.gateway.module.iot.tsl.dto.ParamDto; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Param; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/PropertyMapper.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/PropertyMapper.java index 80a0af9..0f3ea54 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/PropertyMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/PropertyMapper.java @@ -1,8 +1,8 @@ package com.zsc.edu.gateway.modules.iot.tsl.mapper; -import com.zsc.gateway.module.common.domain.BaseMapper; -import com.zsc.gateway.module.iot.tsl.domain.Property; -import com.zsc.gateway.module.iot.tsl.dto.PropertyDto; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.modules.iot.tsl.dto.PropertyDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ServeMapper.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ServeMapper.java index fc28f7c..7e1b6ed 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ServeMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/mapper/ServeMapper.java @@ -1,11 +1,11 @@ package com.zsc.edu.gateway.modules.iot.tsl.mapper; -import com.zsc.gateway.module.common.domain.BaseMapper; -import com.zsc.gateway.module.iot.tsl.domain.Serve; -import com.zsc.gateway.module.iot.tsl.dto.ServeDto; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ServeDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Serve; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; -@Mapper(componentModel = "spring", uses = {ParamMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE) +@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface ServeMapper extends BaseMapper { } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/EventQuery.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/EventQuery.java index d176342..7942959 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/EventQuery.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/EventQuery.java @@ -2,6 +2,9 @@ package com.zsc.edu.gateway.modules.iot.tsl.query; import lombok.Data; +/** + * @author zhuang + */ @Data public class EventQuery { diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/PropertyQuery.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/PropertyQuery.java index c69f972..1a51c37 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/PropertyQuery.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/query/PropertyQuery.java @@ -1,8 +1,11 @@ package com.zsc.edu.gateway.modules.iot.tsl.query; -import com.zsc.gateway.module.iot.tsl.domain.Property; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; import lombok.Data; +/** + * @author zhuang + */ @Data public class PropertyQuery { /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepo.java deleted file mode 100644 index 4694148..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepo.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.zsc.edu.gateway.modules.iot.tsl.repo; - -import com.querydsl.core.BooleanBuilder; -import com.querydsl.core.types.Predicate; -import com.zsc.gateway.module.iot.tsl.domain.Event; -import com.zsc.gateway.module.iot.tsl.query.EventQuery; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; - -import java.util.List; -import java.util.Optional; - -/** - * @author Yao - */ -public interface EventRepo extends BaseRepo { - - default BooleanBuilder predicate(EventQuery query) { - BooleanBuilder predicate = new BooleanBuilder(); - return predicate; - } - - default Page page(EventQuery query, Pageable pageable) { - Predicate predicate = predicate(query); - if (pageable == null) { - return page(predicate, Sort.by(Sort.Direction.ASC, "id")); - } - return page(predicate, pageable); - } - - Optional findByName(String name); - - List findByProductId(Long productId); -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java new file mode 100644 index 0000000..47c332e --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java @@ -0,0 +1,26 @@ +package com.zsc.edu.gateway.modules.iot.tsl.repo; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; +import com.zsc.edu.gateway.modules.iot.tsl.query.EventQuery; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Optional; + +/** + * @author Yao + */ +public interface EventRepository extends BaseMapper { + @Select("select * from iot_event where name=#{name}") + Event findByName(String name); + +// List findByProductId(Long productId); + + IPage page(Page page, @Param("query") EventQuery query); + + Event selectById(@Param("id") Long id); +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepo.java deleted file mode 100644 index ad596b5..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepo.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.zsc.edu.gateway.modules.iot.tsl.repo; - -import com.querydsl.core.BooleanBuilder; -import com.querydsl.core.types.Predicate; -import com.zsc.gateway.module.iot.tsl.domain.Property; -import com.zsc.gateway.module.iot.tsl.query.PropertyQuery; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; - -import java.util.List; - -public interface PropertyRepo extends BaseRepo { - - default BooleanBuilder predicate(PropertyQuery query) { - BooleanBuilder predicate = new BooleanBuilder(); - return predicate; - } - - default Page page(PropertyQuery query, Pageable pageable) { - Predicate predicate = predicate(query); - if (pageable == null) { - return page(predicate, Sort.by(Sort.Direction.ASC, "id")); - } - return page(predicate, pageable); - } - - List findByProductIdAndIoType(Long productId, Property.IoType ioType); -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepository.java new file mode 100644 index 0000000..ad6b7a3 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/PropertyRepository.java @@ -0,0 +1,20 @@ +package com.zsc.edu.gateway.modules.iot.tsl.repo; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; +import com.zsc.edu.gateway.modules.iot.tsl.query.PropertyQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface PropertyRepository extends BaseMapper { + + + IPage page(Page page, @Param("query") PropertyQuery query); + + Property selectById(@Param("id") Long id); +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepo.java deleted file mode 100644 index 3ea62b6..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepo.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.zsc.edu.gateway.modules.iot.tsl.repo; - -import com.querydsl.core.BooleanBuilder; -import com.querydsl.core.types.Predicate; -import com.zsc.gateway.module.iot.tsl.domain.Serve; -import com.zsc.gateway.module.iot.tsl.query.ServeQuery; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; - -import java.util.List; -import java.util.Optional; - -/** - * @author Yao - */ -public interface ServeRepo extends BaseRepo { - default BooleanBuilder predicate(ServeQuery query) { - BooleanBuilder predicate = new BooleanBuilder(); - - return predicate; - } - - default Page page(ServeQuery query, Pageable pageable) { - Predicate predicate = predicate(query); - if (pageable == null) { - return page(predicate, Sort.by(Sort.Direction.ASC, "id")); - } - return page(predicate, pageable); - } - - Optional findByName(String name); - - List findByProductId(Long productId); - -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepository.java new file mode 100644 index 0000000..0897909 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/ServeRepository.java @@ -0,0 +1,30 @@ +package com.zsc.edu.gateway.modules.iot.tsl.repo; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Serve; +import com.zsc.edu.gateway.modules.iot.tsl.query.PropertyQuery; +import com.zsc.edu.gateway.modules.iot.tsl.query.ServeQuery; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Optional; + +/** + * @author Yao + */ +public interface ServeRepository extends BaseMapper { + @Select("select * from iot_serve where name=#{name}") + Serve findByName(@Param("name") String name); + +// List findByProductId(Long productId); + + IPage page(Page page, @Param("query") ServeQuery query); + + Serve selectById(@Param("id") Long id); + +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java index 8d79f1b..2550d2e 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java @@ -1,85 +1,30 @@ package com.zsc.edu.gateway.modules.iot.tsl.service; -import com.zsc.gateway.exception.ConstraintException; -import com.zsc.gateway.exception.NotExistException; -import com.zsc.gateway.module.common.service.BaseService; -import com.zsc.gateway.module.iot.tsl.domain.Event; -import com.zsc.gateway.module.iot.tsl.dto.EventDto; -import com.zsc.gateway.module.iot.tsl.mapper.EventMapper; -import com.zsc.gateway.module.iot.tsl.query.EventQuery; -import com.zsc.gateway.module.iot.tsl.repo.EventRepo; -import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.iot.tsl.dto.EventDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; +import com.zsc.edu.gateway.modules.iot.tsl.query.EventQuery; /** - * @author Yao + * @author zhuang */ -@Service -public class EventService extends BaseService { +public interface EventService extends IService { + Event create(EventDto dto); - EventMapper mapper; + Event update(EventDto dto, Long id); - public EventService(EventRepo repo, EventMapper mapper) { - this.repo = repo; - this.mapper = mapper; - } + IPage page(Page page, EventQuery query); - /** - * 新建物模型事件 - */ - public Event create(EventDto dto) { - if (repo.findByName(dto.getName()).isPresent()) { - throw new ConstraintException("该事件已存在!"); - } - Event event = mapper.toEntity(dto); - return save(event); - } - - /** - * 更新物模型事件 - */ - public Event update(EventDto dto, Long id) { - Event event = this.getOne(id); - BeanUtils.copyProperties(dto, event); - return save(event); - } - - /** - * 分页查询物模型事件 - * - * @param query 查询表单 - * @param pageable 分页参数 - */ - public Page page(EventQuery query, Pageable pageable) { - return repo.page(query, pageable); - } - - /** - * 删除物模型事件 - * - * @param id 事件id - * @return 删除事件 - */ - public Event delete(Long id) { - return deleteById(id); - } - - - /** - * 根据产品ID查找事件 - * - * @param productId 产品id - * @return - */ - public List findByProductId(Long productId) { - return repo.findByProductId(productId); - } - - public Event detail(Long id) { - return repo.findById(id).orElseThrow(NotExistException::new); - } + // /** + // * 根据产品ID查找事件 + // * + // * @param productId 产品id + // * @return + // */ + // public List findByProductId(Long productId) { + // return repo.findByProductId(productId); + // } + Event detail(Long id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/PropertyService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/PropertyService.java index 49942fa..25baf89 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/PropertyService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/PropertyService.java @@ -1,81 +1,30 @@ package com.zsc.edu.gateway.modules.iot.tsl.service; -import com.zsc.gateway.exception.NotExistException; -import com.zsc.gateway.module.common.service.BaseService; -import com.zsc.gateway.module.iot.tsl.domain.Property; -import com.zsc.gateway.module.iot.tsl.dto.PropertyDto; -import com.zsc.gateway.module.iot.tsl.mapper.PropertyMapper; -import com.zsc.gateway.module.iot.tsl.query.PropertyQuery; -import com.zsc.gateway.module.iot.tsl.repo.PropertyRepo; -import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.iot.tsl.dto.PropertyDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; +import com.zsc.edu.gateway.modules.iot.tsl.query.PropertyQuery; /** - * @author 15864 + * @author zhuang */ -@Service -public class PropertyService extends BaseService { +public interface PropertyService extends IService { + Property create(PropertyDto dto); - PropertyMapper mapper; + Property update(PropertyDto dto, Long id); - public PropertyService(PropertyRepo repo, PropertyMapper mapper) { - this.repo = repo; - this.mapper = mapper; - } + IPage page(Page page, PropertyQuery query); - /** - * 新建物模型属性 - */ - public Property create(PropertyDto dto) { - Property property = mapper.toEntity(dto); - return save(property); - } - - /** - * 更新属性 - */ - public Property update(PropertyDto dto, Long id) { - Property property = this.getOne(id); - BeanUtils.copyProperties(dto, property); - return save(property); - } - - /** - * 分页查询物模型属性 - * - * @param query 查询表单 - * @param pageable 分页参数 - */ - public Page page(PropertyQuery query, Pageable pageable) { - return repo.page(query, pageable); - } - - /** - * 删除属性 - * - * @param id 属性id - * @return 删除属性 - */ - public Property delete(Long id) { - return deleteById(id); - } - - - /** - * 根据产品ID查找属性 - * - * @param query 查询表单 - * @return - */ - public List findByProductIdAndIoType(PropertyQuery query) { - return repo.findByProductIdAndIoType(query.productId, query.type); - } - - public Property detail(Long id) { - return repo.findById(id).orElseThrow(() -> new NotExistException("属性不存在")); - } + // /** + // * 根据产品ID查找属性 + // * + // * @param query 查询表单 + // * @return + // */ + // public List findByProductIdAndIoType(PropertyQuery query) { + // return repo.findByProductIdAndIoType(query.productId, query.type); + // } + Property detail(Long id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java index f34cd97..77436e7 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java @@ -1,86 +1,31 @@ package com.zsc.edu.gateway.modules.iot.tsl.service; -import com.zsc.gateway.exception.ConstraintException; -import com.zsc.gateway.exception.NotExistException; -import com.zsc.gateway.module.common.service.BaseService; -import com.zsc.gateway.module.iot.tsl.domain.Serve; -import com.zsc.gateway.module.iot.tsl.dto.ServeDto; -import com.zsc.gateway.module.iot.tsl.mapper.ServeMapper; -import com.zsc.gateway.module.iot.tsl.query.ServeQuery; -import com.zsc.gateway.module.iot.tsl.repo.ServeRepo; -import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.List; - +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ServeDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Serve; +import com.zsc.edu.gateway.modules.iot.tsl.query.ServeQuery; /** - * @author 15864 + * @author zhuang */ -@Service -public class ServeService extends BaseService { +public interface ServeService extends IService { + Serve create(ServeDto dto); - ServeMapper mapper; + Serve update(ServeDto dto, Long id); - public ServeService(ServeRepo repo, ServeMapper mapper) { - this.repo = repo; - this.mapper = mapper; - } + IPage page(Page page, ServeQuery query); - /** - * 新建功能 - */ - public Serve create(ServeDto dto) { - if (repo.findByName(dto.getName()).isPresent()) { - throw new ConstraintException("该事件已存在!"); - } - Serve entity = mapper.toEntity(dto); - return save(entity); - } - - /** - * 更新功能 - */ - public Serve update(ServeDto dto, Long id) { - Serve serve = this.getOne(id); - BeanUtils.copyProperties(dto, serve); - return save(serve); - } - - /** - * 分页查询功能 - * - * @param query 查询表单 - * @param pageable 分页参数 - */ - public Page page(ServeQuery query, Pageable pageable) { - return repo.page(query, pageable); - } - - /** - * 删除事件 - * - * @param id 功能id - * @return 删除功能 - */ - public Serve delete(Long id) { - return deleteById(id); - } - - - /** - * 根据产品ID查找服务 - * - * @param productId 产品id - * @return - */ - public List findByProductId(Long productId) { - return repo.findByProductId(productId); - } - - public Serve detail(Long id) { - return repo.findById(id).orElseThrow(NotExistException::new); - } + // + // /** + // * 根据产品ID查找服务 + // * + // * @param productId 产品id + // * @return + // */ + // public List findByProductId(Long productId) { + // return repo.findByProductId(productId); + // } + Serve detail(Long id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java new file mode 100644 index 0000000..ddee181 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java @@ -0,0 +1,74 @@ +package com.zsc.edu.gateway.modules.iot.tsl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zsc.edu.gateway.exception.ConstraintException; +import com.zsc.edu.gateway.modules.iot.tsl.dto.EventDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Event; +import com.zsc.edu.gateway.modules.iot.tsl.mapper.EventMapper; +import com.zsc.edu.gateway.modules.iot.tsl.query.EventQuery; +import com.zsc.edu.gateway.modules.iot.tsl.repo.EventRepository; +import com.zsc.edu.gateway.modules.iot.tsl.service.EventService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +/** + * @author Yao + */ +@Service +public class EventServiceImpl extends ServiceImpl implements EventService { + + EventMapper mapper; + EventRepository repo; + + + /** + * 新建物模型事件 + */ + @Override + public Event create(EventDto dto) { + if (repo.findByName(dto.getName()) != null) { + throw new ConstraintException("该事件已存在!"); + } + Event event = mapper.toEntity(dto); + save(event); + return event; + } + + /** + * 更新物模型事件 + */ + @Override + public Event update(EventDto dto, Long id) { + Event event = repo.selectById(id); + BeanUtils.copyProperties(dto, event); + updateById(event); + return event; + } + + /** + * 分页查询物模型事件 + * + * @param query 查询表单 + * @param page 分页参数 + */ + @Override + public IPage page(Page page, EventQuery query) { + return repo.page(page, query); + } + + // /** +// * 根据产品ID查找事件 +// * +// * @param productId 产品id +// * @return +// */ +// public List findByProductId(Long productId) { +// return repo.findByProductId(productId); +// } + @Override + public Event detail(Long id) { + return repo.selectById(id); + } +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/PropertyServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/PropertyServiceImpl.java new file mode 100644 index 0000000..8de563d --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/PropertyServiceImpl.java @@ -0,0 +1,73 @@ +package com.zsc.edu.gateway.modules.iot.tsl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zsc.edu.gateway.modules.iot.tsl.dto.PropertyDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Property; +import com.zsc.edu.gateway.modules.iot.tsl.mapper.PropertyMapper; +import com.zsc.edu.gateway.modules.iot.tsl.query.PropertyQuery; +import com.zsc.edu.gateway.modules.iot.tsl.repo.PropertyRepository; +import com.zsc.edu.gateway.modules.iot.tsl.service.PropertyService; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +/** + * @author 15864 + */ +@AllArgsConstructor +@Service +public class PropertyServiceImpl extends ServiceImpl implements PropertyService { + + PropertyMapper mapper; + @Resource + private final PropertyRepository repo; + + /** + * 新建物模型属性 + */ + @Override + public Property create(PropertyDto dto) { + Property property = mapper.toEntity(dto); + save(property); + return property; + } + + /** + * 更新属性 + */ + @Override + public Property update(PropertyDto dto, Long id) { + Property property = repo.selectById(id); + BeanUtils.copyProperties(dto, property); + updateById(property); + return property; + } + + /** + * 分页查询物模型属性 + * + * @param query 查询表单 + * @param page 分页参数 + */ + @Override + public IPage page(Page page, PropertyQuery query) { + return repo.page(page, query); + } + + // /** +// * 根据产品ID查找属性 +// * +// * @param query 查询表单 +// * @return +// */ +// public List findByProductIdAndIoType(PropertyQuery query) { +// return repo.findByProductIdAndIoType(query.productId, query.type); +// } + @Override + public Property detail(Long id) { + return repo.selectById(id); + } +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java new file mode 100644 index 0000000..7eb76db --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java @@ -0,0 +1,79 @@ +package com.zsc.edu.gateway.modules.iot.tsl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zsc.edu.gateway.exception.ConstraintException; +import com.zsc.edu.gateway.modules.iot.tsl.dto.ServeDto; +import com.zsc.edu.gateway.modules.iot.tsl.entity.Serve; +import com.zsc.edu.gateway.modules.iot.tsl.mapper.ServeMapper; +import com.zsc.edu.gateway.modules.iot.tsl.query.ServeQuery; +import com.zsc.edu.gateway.modules.iot.tsl.repo.ServeRepository; +import com.zsc.edu.gateway.modules.iot.tsl.service.ServeService; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + + +/** + * @author 15864 + */ +@AllArgsConstructor +@Service +public class ServeServiceImpl extends ServiceImpl implements ServeService { + + ServeMapper mapper; + @Resource + private final ServeRepository repo; + + /** + * 新建功能 + */ + @Override + public Serve create(ServeDto dto) { + if (repo.findByName(dto.getName()) != null) { + throw new ConstraintException("该事件已存在!"); + } + Serve entity = mapper.toEntity(dto); + save(entity); + return entity; + } + + /** + * 更新功能 + */ + @Override + public Serve update(ServeDto dto, Long id) { + Serve serve = repo.selectById(id); + BeanUtils.copyProperties(dto, serve); + updateById(serve); + return serve; + } + + /** + * 分页查询功能 + * + * @param query 查询表单 + * @param page 分页参数 + */ + @Override + public IPage page(Page page, ServeQuery query) { + return repo.page(page, query); + } + + // +// /** +// * 根据产品ID查找服务 +// * +// * @param productId 产品id +// * @return +// */ +// public List findByProductId(Long productId) { +// return repo.findByProductId(productId); +// } + @Override + public Serve detail(Long id) { + return repo.selectById(id); + } +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/entity/MessageType.java b/src/main/java/com/zsc/edu/gateway/modules/notice/entity/MessageType.java index 6d06c41..bcd16d5 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/entity/MessageType.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/entity/MessageType.java @@ -1,14 +1,14 @@ package com.zsc.edu.gateway.modules.notice.entity; import com.baomidou.mybatisplus.annotation.IEnum; -import com.zsc.edu.gateway.framework.common.enums.IState; +import com.zsc.edu.gateway.common.enums.IState; /** * 消息类型 * * @author zhuang */ -public enum MessageType implements IEnum,IState { +public enum MessageType implements IEnum, IState { other(1,"其他"), resetThePassword(2,"重置密码"); diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/BulletinMapper.java b/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/BulletinMapper.java index 87d17ff..e1e6390 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/BulletinMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/BulletinMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.notice.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.notice.dto.BulletinDto; import com.zsc.edu.gateway.modules.notice.entity.Bulletin; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/MessageMapper.java b/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/MessageMapper.java index 71c3604..b6158fb 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/MessageMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/mapper/MessageMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.notice.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.notice.dto.UserMessageDto; import com.zsc.edu.gateway.modules.notice.entity.Message; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/repo/BulletinRepository.java b/src/main/java/com/zsc/edu/gateway/modules/notice/repo/BulletinRepository.java index eb0a431..443289e 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/repo/BulletinRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/repo/BulletinRepository.java @@ -1,8 +1,5 @@ package com.zsc.edu.gateway.modules.notice.repo; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java deleted file mode 100644 index 12e302f..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.zsc.edu.gateway.modules.notice.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.zsc.edu.gateway.modules.notice.entity.MessageAttachment; - -public interface MessageAttachmentService extends IService { -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/UserMessageService.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/UserMessageService.java index 4f774f0..1aaef3c 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/service/UserMessageService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/service/UserMessageService.java @@ -28,7 +28,7 @@ public interface UserMessageService extends IService { Integer countUnread(UserDetailsImpl userDetails); - Integer markAsRead(UserDetailsImpl userDetails, List messageIds); + boolean markAsRead(UserDetailsImpl userDetails, List messageIds); IPage getAdminMessagePage(Page page, AdminMessageQuery query); diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/BulletinServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/BulletinServiceImpl.java index 465e726..dc11800 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/BulletinServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/BulletinServiceImpl.java @@ -73,10 +73,10 @@ public class BulletinServiceImpl extends ServiceImpl implements BulletinUserService { - - /** - * 已读公告,每次已读自动获取用户id与公告id加入联表 - * - * @param userDetails userDetails - * @param id id - * return true - */ - @Override - public Boolean isRead(UserDetailsImpl userDetails, Long id) { - if (id == null || userDetails.getId() == null) { - throw new IllegalArgumentException("Bulletin ID and User ID cannot be null"); - } - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("bulletin_id", id) - .eq("user_id", userDetails.getId()); - BulletinUser existingUser = getOne(queryWrapper); - if (existingUser == null) { - BulletinUser newUser = new BulletinUser(); - newUser.setBulletinId(id); - newUser.setUserId(userDetails.getId()); - newUser.setIsRead(false); - save(newUser); - } else { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("bulletin_id", id).eq("user_id", userDetails.getId()).set("is_read", false); - } - return true; - } - - /** - * 更新公告后修改已读状态 - * - * @param id id - */ - @Override - public void toggleIsRead(Long id) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("bulletin_id", id).set("is_read", true); - } - -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java deleted file mode 100644 index 32e0d62..0000000 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.zsc.edu.gateway.modules.notice.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zsc.edu.gateway.modules.notice.entity.MessageAttachment; -import com.zsc.edu.gateway.modules.notice.repo.MessageAttachmentRepository; -import com.zsc.edu.gateway.modules.notice.service.MessageAttachmentService; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Service; - -/** - * @author zhuang - */ -@Service -@AllArgsConstructor -public class MessageAttachmentServiceImpl extends ServiceImpl implements MessageAttachmentService { -} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/UserMessageServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/UserMessageServiceImpl.java index b20b20b..ca6b78e 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/UserMessageServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/UserMessageServiceImpl.java @@ -2,7 +2,6 @@ package com.zsc.edu.gateway.modules.notice.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -17,7 +16,6 @@ import com.zsc.edu.gateway.modules.notice.query.AdminMessageQuery; import com.zsc.edu.gateway.modules.notice.query.UserMessageQuery; import com.zsc.edu.gateway.modules.notice.repo.MessageRepository; import com.zsc.edu.gateway.modules.notice.repo.UserMessageRepository; -import com.zsc.edu.gateway.modules.notice.service.MessageAttachmentService; import com.zsc.edu.gateway.modules.notice.service.UserMessageService; import com.zsc.edu.gateway.modules.notice.vo.AdminMessageVo; import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo; @@ -47,7 +45,6 @@ public class UserMessageServiceImpl extends ServiceImpl messageIds) { + public boolean markAsRead(UserDetailsImpl userDetails, List messageIds) { if (CollectionUtils.isEmpty(messageIds)) { throw new RuntimeException("messageIds is NULL!"); } - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("user_id", userDetails.getId()).in("message_id", messageIds); - updateWrapper.set("is_read", true); - updateWrapper.set("read_time", LocalDateTime.now()); - return userMessageRepository.update(updateWrapper); + return this.lambdaUpdate().eq(UserMessage::getUserId, userDetails.getId()) + .in(UserMessage::getMessageId, messageIds) + .set(UserMessage::getIsRead, true) + .set(UserMessage::getReadTime, LocalDateTime.now()) + .update(); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/AuthorityMapper.java b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/AuthorityMapper.java index 52d0254..7a770e8 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/AuthorityMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/AuthorityMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.system.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.system.dto.AuthorityDto; import com.zsc.edu.gateway.modules.system.entity.Authority; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/DeptMapper.java b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/DeptMapper.java index 022b2a0..028c139 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/DeptMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/DeptMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.system.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.system.dto.DeptDto; import com.zsc.edu.gateway.modules.system.entity.Dept; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleAuthorityMapper.java b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleAuthorityMapper.java index f7fc2b5..5e08302 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleAuthorityMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleAuthorityMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.system.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.system.dto.RoleAuthorityDto; import com.zsc.edu.gateway.modules.system.entity.RoleAuthority; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleMapper.java b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleMapper.java index 844ad2d..ec03476 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/RoleMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.system.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.system.dto.RoleDto; import com.zsc.edu.gateway.modules.system.entity.Role; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/UserMapper.java b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/UserMapper.java index 8b10001..8819b6c 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/mapper/UserMapper.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/mapper/UserMapper.java @@ -1,6 +1,6 @@ package com.zsc.edu.gateway.modules.system.mapper; -import com.zsc.edu.gateway.framework.common.mapstruct.BaseMapper; +import com.zsc.edu.gateway.common.mapstruct.BaseMapper; import com.zsc.edu.gateway.modules.system.dto.UserCreateDto; import com.zsc.edu.gateway.modules.system.entity.User; import org.mapstruct.Mapper; diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/DeptServiceImpl.java index 7322921..0907396 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/DeptServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/system/service/impl/DeptServiceImpl.java @@ -1,8 +1,8 @@ package com.zsc.edu.gateway.modules.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zsc.edu.gateway.common.util.TreeUtil; import com.zsc.edu.gateway.exception.ConstraintException; -import com.zsc.edu.gateway.framework.common.util.TreeUtil; import com.zsc.edu.gateway.modules.system.dto.DeptDto; import com.zsc.edu.gateway.modules.system.entity.Dept; import com.zsc.edu.gateway.modules.system.mapper.DeptMapper; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 88aca07..64c8e2d 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -16,6 +16,11 @@ spring: username: gitea password: gitea driver-class-name: org.postgresql.Driver + data: + redis: + host: 43.139.10.64 + port: 16379 + password: servlet: multipart: max-file-size: 40MB @@ -45,3 +50,4 @@ spring: storage: attachment: ./storage/attachment temp: ./storage/temp + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ade6a93..b82bfc9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,4 +4,6 @@ spring: docker: compose: enabled: false - \ No newline at end of file + +gatherer: + version: 001 \ No newline at end of file diff --git a/src/main/resources/mappers/iotMappers/DeviceMapper.xml b/src/main/resources/mappers/iotMappers/DeviceMapper.xml index 64f37fe..1f78c61 100644 --- a/src/main/resources/mappers/iotMappers/DeviceMapper.xml +++ b/src/main/resources/mappers/iotMappers/DeviceMapper.xml @@ -2,7 +2,7 @@ - + @@ -15,6 +15,70 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/iotMappers/EventMapper.xml b/src/main/resources/mappers/iotMappers/EventMapper.xml new file mode 100644 index 0000000..6bc15c8 --- /dev/null +++ b/src/main/resources/mappers/iotMappers/EventMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/iotMappers/ProductMapper.xml b/src/main/resources/mappers/iotMappers/ProductMapper.xml new file mode 100644 index 0000000..be47d63 --- /dev/null +++ b/src/main/resources/mappers/iotMappers/ProductMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/iotMappers/PropertyMapper.xml b/src/main/resources/mappers/iotMappers/PropertyMapper.xml new file mode 100644 index 0000000..51cd2dc --- /dev/null +++ b/src/main/resources/mappers/iotMappers/PropertyMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/iotMappers/ServeMapper.xml b/src/main/resources/mappers/iotMappers/ServeMapper.xml new file mode 100644 index 0000000..ba412a0 --- /dev/null +++ b/src/main/resources/mappers/iotMappers/ServeMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file