diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml index 2f02094..ee8f4b6 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml @@ -61,7 +61,17 @@ - + + and code = #{request.code} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml index 2f02094..ee8f4b6 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml @@ -61,7 +61,17 @@ - + + and code = #{request.code} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java index d694a52..45d49d1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java @@ -7,24 +7,23 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; import java.math.BigDecimal; +import java.util.Date; /** * 盒子信息对象 box_device - * + * * @author lwh * @date 2024-11-20 */ @Data @TableName("box_device") -public class BoxDevice extends Model -{ +public class BoxDevice extends Model { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键", dataType = "Long") - @TableId(value = "id",type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "创建时间", dataType = "Date") @@ -71,21 +70,37 @@ @TableField("box_name") private String boxName; + @ApiModelProperty(value = "服务端公钥", dataType = "String") + @TableField("server_public_key") + private String serverPublicKey; -@Override -public String toString() { -return "BoxDevice{" -+"id="+id -+"createTime="+createTime -+"updateTime="+updateTime -+"code="+code -+"deviceType="+deviceType -+"ip="+ip -+"area="+area -+"deptId="+deptId -+"longitude="+longitude -+"latitude="+latitude -+"deviceStatus="+deviceStatus -+"boxName="+boxName -+"}"; -}} \ No newline at end of file + @ApiModelProperty(value = "服务端私钥", dataType = "String") + @TableField("server_private_key") + private String serverPrivateKey; + + @ApiModelProperty(value = "客户端公钥", dataType = "String") + @TableField("client_public_key") + private String clientPublicKey; + + @ApiModelProperty(value = "客户端私钥", dataType = "String") + @TableField("client_private_key") + private String clientPrivateKey; + + @Override + public String toString() { + return "BoxDevice{" + + "id=" + id + + "createTime=" + createTime + + "updateTime=" + updateTime + + "code=" + code + + "deviceType=" + deviceType + + "ip=" + ip + + "area=" + area + + "deptId=" + deptId + + "longitude=" + longitude + + "latitude=" + latitude + + "deviceStatus=" + deviceStatus + + "boxName=" + boxName + + "}"; + } +} \ No newline at end of file diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml index 2f02094..ee8f4b6 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml @@ -61,7 +61,17 @@ - + + and code = #{request.code} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java index d694a52..45d49d1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java @@ -7,24 +7,23 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; import java.math.BigDecimal; +import java.util.Date; /** * 盒子信息对象 box_device - * + * * @author lwh * @date 2024-11-20 */ @Data @TableName("box_device") -public class BoxDevice extends Model -{ +public class BoxDevice extends Model { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键", dataType = "Long") - @TableId(value = "id",type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "创建时间", dataType = "Date") @@ -71,21 +70,37 @@ @TableField("box_name") private String boxName; + @ApiModelProperty(value = "服务端公钥", dataType = "String") + @TableField("server_public_key") + private String serverPublicKey; -@Override -public String toString() { -return "BoxDevice{" -+"id="+id -+"createTime="+createTime -+"updateTime="+updateTime -+"code="+code -+"deviceType="+deviceType -+"ip="+ip -+"area="+area -+"deptId="+deptId -+"longitude="+longitude -+"latitude="+latitude -+"deviceStatus="+deviceStatus -+"boxName="+boxName -+"}"; -}} \ No newline at end of file + @ApiModelProperty(value = "服务端私钥", dataType = "String") + @TableField("server_private_key") + private String serverPrivateKey; + + @ApiModelProperty(value = "客户端公钥", dataType = "String") + @TableField("client_public_key") + private String clientPublicKey; + + @ApiModelProperty(value = "客户端私钥", dataType = "String") + @TableField("client_private_key") + private String clientPrivateKey; + + @Override + public String toString() { + return "BoxDevice{" + + "id=" + id + + "createTime=" + createTime + + "updateTime=" + updateTime + + "code=" + code + + "deviceType=" + deviceType + + "ip=" + ip + + "area=" + area + + "deptId=" + deptId + + "longitude=" + longitude + + "latitude=" + latitude + + "deviceStatus=" + deviceStatus + + "boxName=" + boxName + + "}"; + } +} \ No newline at end of file diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java index aeccaf0..9f4b9a2 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java @@ -1,9 +1,10 @@ package com.casic.missiles.modular.device.service; -import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.device.model.BoxDevice; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.model.BoxDevice; + import java.util.List; @@ -16,7 +17,15 @@ * @date 2024-11-20 */ public interface IBoxDeviceService extends IService { -/** -* 盒子信息 分页检索 -*/ -List selectBoxDevicePage(Page page,QueryWrapper query);} + /** + * 盒子信息 分页检索 + */ + List selectBoxDevicePage(Page page, QueryWrapper query); + List selectBoxDeviceList( QueryWrapper query); + + /** + * 盒子key生成 + * @param boxDevice + */ + void genKey(BoxDevice boxDevice); +} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml index 2f02094..ee8f4b6 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml @@ -61,7 +61,17 @@ - + + and code = #{request.code} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java index d694a52..45d49d1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java @@ -7,24 +7,23 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; import java.math.BigDecimal; +import java.util.Date; /** * 盒子信息对象 box_device - * + * * @author lwh * @date 2024-11-20 */ @Data @TableName("box_device") -public class BoxDevice extends Model -{ +public class BoxDevice extends Model { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键", dataType = "Long") - @TableId(value = "id",type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "创建时间", dataType = "Date") @@ -71,21 +70,37 @@ @TableField("box_name") private String boxName; + @ApiModelProperty(value = "服务端公钥", dataType = "String") + @TableField("server_public_key") + private String serverPublicKey; -@Override -public String toString() { -return "BoxDevice{" -+"id="+id -+"createTime="+createTime -+"updateTime="+updateTime -+"code="+code -+"deviceType="+deviceType -+"ip="+ip -+"area="+area -+"deptId="+deptId -+"longitude="+longitude -+"latitude="+latitude -+"deviceStatus="+deviceStatus -+"boxName="+boxName -+"}"; -}} \ No newline at end of file + @ApiModelProperty(value = "服务端私钥", dataType = "String") + @TableField("server_private_key") + private String serverPrivateKey; + + @ApiModelProperty(value = "客户端公钥", dataType = "String") + @TableField("client_public_key") + private String clientPublicKey; + + @ApiModelProperty(value = "客户端私钥", dataType = "String") + @TableField("client_private_key") + private String clientPrivateKey; + + @Override + public String toString() { + return "BoxDevice{" + + "id=" + id + + "createTime=" + createTime + + "updateTime=" + updateTime + + "code=" + code + + "deviceType=" + deviceType + + "ip=" + ip + + "area=" + area + + "deptId=" + deptId + + "longitude=" + longitude + + "latitude=" + latitude + + "deviceStatus=" + deviceStatus + + "boxName=" + boxName + + "}"; + } +} \ No newline at end of file diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java index aeccaf0..9f4b9a2 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java @@ -1,9 +1,10 @@ package com.casic.missiles.modular.device.service; -import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.device.model.BoxDevice; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.model.BoxDevice; + import java.util.List; @@ -16,7 +17,15 @@ * @date 2024-11-20 */ public interface IBoxDeviceService extends IService { -/** -* 盒子信息 分页检索 -*/ -List selectBoxDevicePage(Page page,QueryWrapper query);} + /** + * 盒子信息 分页检索 + */ + List selectBoxDevicePage(Page page, QueryWrapper query); + List selectBoxDeviceList( QueryWrapper query); + + /** + * 盒子key生成 + * @param boxDevice + */ + void genKey(BoxDevice boxDevice); +} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java index ba75ceb..3841ae9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java @@ -1,15 +1,23 @@ package com.casic.missiles.modular.device.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; -import com.casic.missiles.modular.device.service.IBoxDeviceService; -import java.util.List; - +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.modular.device.dao.BoxDeviceMapper; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.security.NoSuchAlgorithmException; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.core.util.RSAUtils.*; /** @@ -20,9 +28,73 @@ * @author lwh * @date 2024-11-20 */ +@Slf4j @Service public class BoxDeviceServiceImpl extends ServiceImpl implements IBoxDeviceService { -@Override -public List selectBoxDevicePage(Page page,QueryWrapper query) { -return this.baseMapper.selectBoxDevicePage(page,query); -}} + + @Override + public boolean save(BoxDevice entity) { + if (isValidCode(entity)) { + throw new ServiceException(500, "盒子编号已存在!"); + } + return super.save(entity); + } + + @Override + public boolean updateById(BoxDevice entity) { + if (isValidCode(entity)) { + throw new ServiceException(500, "盒子编号已存在!"); + } + return super.updateById(entity); + } + + @Override + public List selectBoxDevicePage(Page page, QueryWrapper query) { + return this.baseMapper.selectBoxDevicePage(page, query); + } + + @Override + public List selectBoxDeviceList(QueryWrapper query) { + return this.baseMapper.selectBoxDeviceList(query); + } + + @Override + public void genKey(BoxDevice boxDevice) { + Map keyMap = new HashMap(); + //生成公钥和私钥 + try { + if (boxDevice.getId() == null) { + throw new ServiceException(500, "盒子主键不能为空!"); + } + + boxDevice = getById(boxDevice.getId()); + + if (boxDevice == null) { + throw new ServiceException(500, "盒子不存在!"); + } + keyMap = genKeyPair(); + System.out.println("随机生成的公钥为:" + keyMap.get(RSAPublicKey)); + System.out.println("随机生成的私钥为:" + keyMap.get(RSAPrivateKey)); + boxDevice.setClientPrivateKey(keyMap.get(RSAPrivateKey)); + boxDevice.setClientPublicKey(keyMap.get(RSAPublicKey)); + log.info("box {} gen client key!", boxDevice.getCode()); + + keyMap = genKeyPair(); + boxDevice.setServerPrivateKey(keyMap.get(RSAPrivateKey)); + boxDevice.setServerPublicKey(keyMap.get(RSAPublicKey)); + log.info("box {} gen server key!", boxDevice.getCode()); + updateById(boxDevice); + } catch (NoSuchAlgorithmException e) { + throw new ServiceException(500, "盒子key生成异常!"); + } + } + + private boolean isValidCode(BoxDevice entity) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + if (entity.getId() != null) { + query.ne(BoxDevice::getId, entity.getId()); + } + query.eq(BoxDevice::getCode, entity.getCode()); + return this.count(query) > 0; + } +} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java index a7ec3ef..0796dc9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java @@ -4,18 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.model.response.dto.ResponseDataDTO; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.model.form.IdForms; - -import java.util.List; - -import com.casic.missiles.modular.device.service.IBoxDeviceService; +import com.casic.missiles.model.response.dto.ResponseDataDTO; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; import com.casic.missiles.modular.device.vo.BoxDeviceVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; /** * 盒子信息Controller @@ -34,41 +34,52 @@ this.boxDeviceService = boxDeviceService; } - @ApiOperation(value ="列表查询") + @ApiOperation(value = "列表查询") @GetMapping(value = "/list") public ResponseDataDTO> list(BoxDeviceVO boxDeviceVO) { QueryWrapper query = boxDeviceVO.genQuery(); - return ResponseDataDTO.success(boxDeviceService.list(query)); + return ResponseDataDTO.success(boxDeviceService.selectBoxDeviceList(query)); } - @ApiOperation(value ="分页查询") + @ApiOperation(value = "key生成") + @GetMapping(value = "/key/gen") + public ResponseDataDTO genKey(BoxDevice boxDevice) { + boxDeviceService.genKey(boxDevice); + return ResponseDataDTO.success(); + } + + @ApiOperation(value = "分页查询") @GetMapping(value = "/listPage") public ResponseDataDTO> listPage(BoxDeviceVO boxDeviceVO) { Page page = PageFactory.defaultPage(); QueryWrapper query = boxDeviceVO.genQuery(); - page = boxDeviceService.page(page, query); + List list = boxDeviceService.selectBoxDevicePage(page, query); + page.setRecords(list); return ResponseDataDTO.success(super.packForBT(page)); } - @ApiOperation(value ="新增接口") + @ApiOperation(value = "新增接口") @PostMapping(value = "/add") - public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { - boxDeviceService.save(boxDevice); + public ResponseDataDTO add(@RequestBody BoxDevice boxDevice) { + boxDevice.setUpdateTime(new Date()); + boxDevice.setCreateTime(new Date()); + boxDeviceService.save(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="修改接口") + @ApiOperation(value = "修改接口") @PostMapping(value = "/update") public ResponseDataDTO update(@RequestBody BoxDevice boxDevice) { - boxDeviceService.updateById(boxDevice); + boxDevice.setUpdateTime(new Date()); + boxDeviceService.updateById(boxDevice); return ResponseDataDTO.success(); } - @ApiOperation(value ="删除接口") + @ApiOperation(value = "删除接口") @GetMapping(value = "/delete") public ResponseDataDTO delete(String id) { - boxDeviceService.removeById(id); + boxDeviceService.removeById(id); return ResponseDataDTO.success(); } @@ -79,7 +90,7 @@ return ResponseDataDTO.success(); } - @ApiOperation(value ="详情查询") + @ApiOperation(value = "详情查询") @GetMapping(value = "/detail") public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(boxDeviceService.getById(id)); diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java index ae2e2e2..97fc7f1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/BoxDeviceMapper.java @@ -22,4 +22,6 @@ * 盒子信息 分页检索 */ List selectBoxDevicePage(@Param("page") Page page, @Param("ew") QueryWrapper query); + + List selectBoxDeviceList( @Param("ew")QueryWrapper query); } diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml index 2f02094..ee8f4b6 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml @@ -61,7 +61,17 @@ - + + and code = #{request.code} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java index d694a52..45d49d1 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/model/BoxDevice.java @@ -7,24 +7,23 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; import java.math.BigDecimal; +import java.util.Date; /** * 盒子信息对象 box_device - * + * * @author lwh * @date 2024-11-20 */ @Data @TableName("box_device") -public class BoxDevice extends Model -{ +public class BoxDevice extends Model { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键", dataType = "Long") - @TableId(value = "id",type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "创建时间", dataType = "Date") @@ -71,21 +70,37 @@ @TableField("box_name") private String boxName; + @ApiModelProperty(value = "服务端公钥", dataType = "String") + @TableField("server_public_key") + private String serverPublicKey; -@Override -public String toString() { -return "BoxDevice{" -+"id="+id -+"createTime="+createTime -+"updateTime="+updateTime -+"code="+code -+"deviceType="+deviceType -+"ip="+ip -+"area="+area -+"deptId="+deptId -+"longitude="+longitude -+"latitude="+latitude -+"deviceStatus="+deviceStatus -+"boxName="+boxName -+"}"; -}} \ No newline at end of file + @ApiModelProperty(value = "服务端私钥", dataType = "String") + @TableField("server_private_key") + private String serverPrivateKey; + + @ApiModelProperty(value = "客户端公钥", dataType = "String") + @TableField("client_public_key") + private String clientPublicKey; + + @ApiModelProperty(value = "客户端私钥", dataType = "String") + @TableField("client_private_key") + private String clientPrivateKey; + + @Override + public String toString() { + return "BoxDevice{" + + "id=" + id + + "createTime=" + createTime + + "updateTime=" + updateTime + + "code=" + code + + "deviceType=" + deviceType + + "ip=" + ip + + "area=" + area + + "deptId=" + deptId + + "longitude=" + longitude + + "latitude=" + latitude + + "deviceStatus=" + deviceStatus + + "boxName=" + boxName + + "}"; + } +} \ No newline at end of file diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java index aeccaf0..9f4b9a2 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/IBoxDeviceService.java @@ -1,9 +1,10 @@ package com.casic.missiles.modular.device.service; -import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.device.model.BoxDevice; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.model.BoxDevice; + import java.util.List; @@ -16,7 +17,15 @@ * @date 2024-11-20 */ public interface IBoxDeviceService extends IService { -/** -* 盒子信息 分页检索 -*/ -List selectBoxDevicePage(Page page,QueryWrapper query);} + /** + * 盒子信息 分页检索 + */ + List selectBoxDevicePage(Page page, QueryWrapper query); + List selectBoxDeviceList( QueryWrapper query); + + /** + * 盒子key生成 + * @param boxDevice + */ + void genKey(BoxDevice boxDevice); +} diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java index ba75ceb..3841ae9 100644 --- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java +++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/service/impl/BoxDeviceServiceImpl.java @@ -1,15 +1,23 @@ package com.casic.missiles.modular.device.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; -import com.casic.missiles.modular.device.service.IBoxDeviceService; -import java.util.List; - +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.model.exception.ServiceException; import com.casic.missiles.modular.device.dao.BoxDeviceMapper; import com.casic.missiles.modular.device.model.BoxDevice; +import com.casic.missiles.modular.device.service.IBoxDeviceService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.security.NoSuchAlgorithmException; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.casic.missiles.core.util.RSAUtils.*; /** @@ -20,9 +28,73 @@ * @author lwh * @date 2024-11-20 */ +@Slf4j @Service public class BoxDeviceServiceImpl extends ServiceImpl implements IBoxDeviceService { -@Override -public List selectBoxDevicePage(Page page,QueryWrapper query) { -return this.baseMapper.selectBoxDevicePage(page,query); -}} + + @Override + public boolean save(BoxDevice entity) { + if (isValidCode(entity)) { + throw new ServiceException(500, "盒子编号已存在!"); + } + return super.save(entity); + } + + @Override + public boolean updateById(BoxDevice entity) { + if (isValidCode(entity)) { + throw new ServiceException(500, "盒子编号已存在!"); + } + return super.updateById(entity); + } + + @Override + public List selectBoxDevicePage(Page page, QueryWrapper query) { + return this.baseMapper.selectBoxDevicePage(page, query); + } + + @Override + public List selectBoxDeviceList(QueryWrapper query) { + return this.baseMapper.selectBoxDeviceList(query); + } + + @Override + public void genKey(BoxDevice boxDevice) { + Map keyMap = new HashMap(); + //生成公钥和私钥 + try { + if (boxDevice.getId() == null) { + throw new ServiceException(500, "盒子主键不能为空!"); + } + + boxDevice = getById(boxDevice.getId()); + + if (boxDevice == null) { + throw new ServiceException(500, "盒子不存在!"); + } + keyMap = genKeyPair(); + System.out.println("随机生成的公钥为:" + keyMap.get(RSAPublicKey)); + System.out.println("随机生成的私钥为:" + keyMap.get(RSAPrivateKey)); + boxDevice.setClientPrivateKey(keyMap.get(RSAPrivateKey)); + boxDevice.setClientPublicKey(keyMap.get(RSAPublicKey)); + log.info("box {} gen client key!", boxDevice.getCode()); + + keyMap = genKeyPair(); + boxDevice.setServerPrivateKey(keyMap.get(RSAPrivateKey)); + boxDevice.setServerPublicKey(keyMap.get(RSAPublicKey)); + log.info("box {} gen server key!", boxDevice.getCode()); + updateById(boxDevice); + } catch (NoSuchAlgorithmException e) { + throw new ServiceException(500, "盒子key生成异常!"); + } + } + + private boolean isValidCode(BoxDevice entity) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + if (entity.getId() != null) { + query.ne(BoxDevice::getId, entity.getId()); + } + query.eq(BoxDevice::getCode, entity.getCode()); + return this.count(query) > 0; + } +} diff --git a/casic-web/src/main/resources/config/application-test42.yml b/casic-web/src/main/resources/config/application-test42.yml index d3ce8f5..10c8316 100644 --- a/casic-web/src/main/resources/config/application-test42.yml +++ b/casic-web/src/main/resources/config/application-test42.yml @@ -39,8 +39,8 @@ log: #百万日志存储量 total: 1000000 logging: - level.root: debug - level.com.casic: debug + level.root: error + level.com.casic: info level.com.casic.missiles.netty: error level.com.casic.missiles.modular.neutron: error level.org.springframework.web: info \ No newline at end of file