Commit 470f3589d484d09cdc4d0f60a4516476846cff59
1 parent
1e77ace1
用户设备关系
Showing
9 changed files
with
85 additions
and
41 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/DeviceUserController.java
| ... | ... | @@ -57,8 +57,9 @@ public class DeviceUserController { |
| 57 | 57 | @Operation(summary = "删除设备用户关系") |
| 58 | 58 | @Parameter(name = "id", description = "编号", required = true) |
| 59 | 59 | @PreAuthorize("@ss.hasPermission('garden:device-user:delete')") |
| 60 | - public CommonResult<Boolean> deleteDeviceUser(@RequestParam("id") Long id) { | |
| 61 | - deviceUserService.deleteDeviceUser(id); | |
| 60 | + public CommonResult<Boolean> deleteDeviceUser(@RequestParam("user_id") @NotNull Long userId, | |
| 61 | + @RequestParam("device_no") @NotBlank String deviceNo) { | |
| 62 | + deviceUserService.deleteDeviceUser(userId, deviceNo); | |
| 62 | 63 | return success(true); |
| 63 | 64 | } |
| 64 | 65 | |
| ... | ... | @@ -82,7 +83,7 @@ public class DeviceUserController { |
| 82 | 83 | |
| 83 | 84 | @GetMapping("/page") |
| 84 | 85 | @Operation(summary = "获得设备用户关系分页") |
| 85 | - @PreAuthorize("@ss.hasPermission('garden:device-user:query')") | |
| 86 | + //@PreAuthorize("@ss.hasPermission('garden:device-user:query')") | |
| 86 | 87 | public CommonResult<PageResult<DeviceUserRespVO>> getDeviceUserPage(@Valid DeviceUserPageReqVO pageReqVO) { |
| 87 | 88 | PageResult<DeviceUserDO> pageResult = deviceUserService.getDeviceUserPage(pageReqVO); |
| 88 | 89 | return success(BeanUtils.toBean(pageResult, DeviceUserRespVO.class)); | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserPageReqVO.java
| ... | ... | @@ -32,7 +32,7 @@ public class DeviceUserPageReqVO extends PageParam { |
| 32 | 32 | @Schema(description = "设备名称", example = "张三") |
| 33 | 33 | private String deviceName; |
| 34 | 34 | |
| 35 | - @Schema(description = "设备状态") | |
| 36 | - private Integer deviceState; | |
| 35 | + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT") | |
| 36 | + private String deviceState; | |
| 37 | 37 | |
| 38 | 38 | } |
| 39 | 39 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserRespVO.java
| ... | ... | @@ -44,9 +44,9 @@ public class DeviceUserRespVO { |
| 44 | 44 | @ExcelProperty("设备名称") |
| 45 | 45 | private String deviceName; |
| 46 | 46 | |
| 47 | - @Schema(description = "设备状态 1:在线;2:离线;3:未知", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 48 | - @ExcelProperty("设备状态 1:在线;2:离线;3:未知") | |
| 49 | - private Integer deviceState; | |
| 47 | + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 48 | + @ExcelProperty("连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT") | |
| 49 | + private String deviceState; | |
| 50 | 50 | |
| 51 | 51 | @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") |
| 52 | 52 | @ExcelProperty("创建人") | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java
| 1 | 1 | package com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | +import jakarta.validation.Valid; | |
| 4 | 5 | import lombok.*; |
| 5 | 6 | import java.util.*; |
| 6 | 7 | import jakarta.validation.constraints.*; |
| ... | ... | @@ -9,8 +10,6 @@ import jakarta.validation.constraints.*; |
| 9 | 10 | @Data |
| 10 | 11 | public class DeviceUserSaveReqVO { |
| 11 | 12 | |
| 12 | - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12043") | |
| 13 | - private Long id; | |
| 14 | 13 | |
| 15 | 14 | @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22641") |
| 16 | 15 | @NotNull(message = "归属(一级部门id)不能为空") |
| ... | ... | @@ -28,28 +27,29 @@ public class DeviceUserSaveReqVO { |
| 28 | 27 | @NotEmpty(message = "提交人用户不能为空") |
| 29 | 28 | private String userName; |
| 30 | 29 | |
| 31 | - @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | |
| 32 | - @NotEmpty(message = "产品名称不能为空") | |
| 33 | - private String productName; | |
| 34 | - | |
| 35 | - @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 36 | - @NotEmpty(message = "设备标识不能为空") | |
| 37 | - private String deviceNo; | |
| 38 | - | |
| 39 | - @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | |
| 40 | - @NotEmpty(message = "设备名称不能为空") | |
| 41 | - private String deviceName; | |
| 42 | - | |
| 43 | - @Schema(description = "设备状态 1:在线;2:离线;3:未知", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 44 | - @NotEmpty(message = "设备状态不能为空") | |
| 45 | - private Integer deviceState; | |
| 46 | - | |
| 47 | - @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | |
| 48 | - @NotEmpty(message = "创建人不能为空") | |
| 49 | - private String creatorName; | |
| 50 | - | |
| 51 | - @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") | |
| 52 | - @NotEmpty(message = "更新者不能为空") | |
| 53 | - private String updaterName; | |
| 30 | + @Schema(description = "设备信息") | |
| 31 | + @NotNull | |
| 32 | + @Size(min = 1, message = "道路信息不能为空") | |
| 33 | + @Valid | |
| 34 | + private List<DeviceInfoDO> deviceInfoList; | |
| 35 | + | |
| 36 | + @Data | |
| 37 | + public static class DeviceInfoDO { | |
| 38 | + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | |
| 39 | + @NotEmpty(message = "产品名称不能为空") | |
| 40 | + private String productName; | |
| 41 | + | |
| 42 | + @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 43 | + @NotEmpty(message = "设备标识不能为空") | |
| 44 | + private String deviceNo; | |
| 45 | + | |
| 46 | + @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") | |
| 47 | + @NotEmpty(message = "设备名称不能为空") | |
| 48 | + private String deviceName; | |
| 49 | + | |
| 50 | + @Schema(description = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 51 | + @NotEmpty(message = "连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT") | |
| 52 | + private String deviceState; | |
| 53 | + } | |
| 54 | 54 | |
| 55 | 55 | } |
| 56 | 56 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java
| ... | ... | @@ -56,9 +56,9 @@ public class DeviceUserDO extends BaseDO { |
| 56 | 56 | */ |
| 57 | 57 | private String deviceName; |
| 58 | 58 | /** |
| 59 | - * 设备状态 1:在线;2:离线;3:未知 | |
| 59 | + * 连接状态 : 在线:ONLINE || 离线:OFFLINE || 未连接:INIT | |
| 60 | 60 | */ |
| 61 | - private Integer deviceState; | |
| 61 | + private String deviceState; | |
| 62 | 62 | /** |
| 63 | 63 | * 创建人 |
| 64 | 64 | */ | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/deviceuser/DeviceUserMapper.java
| ... | ... | @@ -8,6 +8,7 @@ import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; |
| 8 | 8 | import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; |
| 9 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; |
| 11 | +import org.apache.ibatis.annotations.Param; | |
| 11 | 12 | |
| 12 | 13 | /** |
| 13 | 14 | * 设备用户关系 Mapper |
| ... | ... | @@ -29,4 +30,6 @@ public interface DeviceUserMapper extends BaseMapperX<DeviceUserDO> { |
| 29 | 30 | .orderByDesc(DeviceUserDO::getId)); |
| 30 | 31 | } |
| 31 | 32 | |
| 33 | + int deleteDeviceUser(@Param("userId") Long userId, @Param("deviceNo") String deviceNo); | |
| 34 | + | |
| 32 | 35 | } |
| 33 | 36 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserService.java
| ... | ... | @@ -6,6 +6,8 @@ import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; |
| 6 | 6 | import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; |
| 7 | 7 | import com.zteits.urbanops.framework.common.pojo.PageResult; |
| 8 | 8 | import com.zteits.urbanops.framework.common.pojo.PageParam; |
| 9 | +import jakarta.validation.constraints.NotNull; | |
| 10 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | 11 | |
| 10 | 12 | /** |
| 11 | 13 | * 设备用户关系 Service 接口 |
| ... | ... | @@ -59,4 +61,12 @@ public interface DeviceUserService { |
| 59 | 61 | */ |
| 60 | 62 | PageResult<DeviceUserDO> getDeviceUserPage(DeviceUserPageReqVO pageReqVO); |
| 61 | 63 | |
| 64 | + | |
| 65 | + /** | |
| 66 | + * 删除设备用户关系 | |
| 67 | + * | |
| 68 | + * @param userId 编号 | |
| 69 | + */ | |
| 70 | + Integer deleteDeviceUser(Long userId, String deviceNo); | |
| 71 | + | |
| 62 | 72 | } |
| 63 | 73 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java
| 1 | 1 | package com.zteits.urbanops.module.garden.service.deviceuser; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; | |
| 4 | 5 | import org.springframework.stereotype.Service; |
| 5 | 6 | import jakarta.annotation.Resource; |
| 6 | 7 | import org.springframework.validation.annotation.Validated; |
| 7 | 8 | import org.springframework.transaction.annotation.Transactional; |
| 8 | 9 | |
| 10 | +import java.time.LocalDateTime; | |
| 9 | 11 | import java.util.*; |
| 10 | 12 | import com.zteits.urbanops.module.garden.controller.admin.deviceuser.vo.*; |
| 11 | 13 | import com.zteits.urbanops.module.garden.dal.dataobject.deviceuser.DeviceUserDO; |
| ... | ... | @@ -34,18 +36,35 @@ public class DeviceUserServiceImpl implements DeviceUserService { |
| 34 | 36 | |
| 35 | 37 | @Override |
| 36 | 38 | public Long createDeviceUser(DeviceUserSaveReqVO createReqVO) { |
| 39 | + LocalDateTime now = LocalDateTime.now(); | |
| 40 | + String userId = SecurityFrameworkUtils.getLoginUserId() + ""; | |
| 41 | + String userName = SecurityFrameworkUtils.getLoginUserNickname(); | |
| 42 | + List<DeviceUserDO> list = new ArrayList<>(); | |
| 43 | + createReqVO.getDeviceInfoList().forEach(deviceInfo -> { | |
| 44 | + DeviceUserDO deviceUser = new DeviceUserDO(); | |
| 45 | + deviceUser.setDeviceNo(deviceInfo.getDeviceNo()); | |
| 46 | + deviceUser.setDeviceName(deviceInfo.getDeviceName()); | |
| 47 | + deviceUser.setProductName(deviceInfo.getProductName()); | |
| 48 | + deviceUser.setCompanyId(createReqVO.getCompanyId()); | |
| 49 | + deviceUser.setDeptId(createReqVO.getDeptId()); | |
| 50 | + deviceUser.setUserId(Long.parseLong(userId)); | |
| 51 | + deviceUser.setUserName(userName); | |
| 52 | + deviceUser.setCreateTime( now); | |
| 53 | + deviceUser.setCreator(userId); | |
| 54 | + deviceUser.setCreatorName(userName); | |
| 55 | + deviceUser.setUpdater(userId); | |
| 56 | + deviceUser.setUpdateTime( now); | |
| 57 | + list.add(deviceUser); | |
| 58 | + }); | |
| 37 | 59 | // 插入 |
| 38 | - DeviceUserDO deviceUser = BeanUtils.toBean(createReqVO, DeviceUserDO.class); | |
| 39 | - deviceUserMapper.insert(deviceUser); | |
| 40 | - | |
| 41 | - // 返回 | |
| 42 | - return deviceUser.getId(); | |
| 60 | + deviceUserMapper.insert( list); | |
| 61 | + return 1L; | |
| 43 | 62 | } |
| 44 | 63 | |
| 45 | 64 | @Override |
| 46 | 65 | public void updateDeviceUser(DeviceUserSaveReqVO updateReqVO) { |
| 47 | 66 | // 校验存在 |
| 48 | - validateDeviceUserExists(updateReqVO.getId()); | |
| 67 | + //validateDeviceUserExists(updateReqVO.getId()); | |
| 49 | 68 | // 更新 |
| 50 | 69 | DeviceUserDO updateObj = BeanUtils.toBean(updateReqVO, DeviceUserDO.class); |
| 51 | 70 | deviceUserMapper.updateById(updateObj); |
| ... | ... | @@ -82,4 +101,9 @@ public class DeviceUserServiceImpl implements DeviceUserService { |
| 82 | 101 | return deviceUserMapper.selectPage(pageReqVO); |
| 83 | 102 | } |
| 84 | 103 | |
| 104 | + @Override | |
| 105 | + public Integer deleteDeviceUser(Long userId, String deviceNo) { | |
| 106 | + return deviceUserMapper.deleteDeviceUser(userId, deviceNo); | |
| 107 | + } | |
| 108 | + | |
| 85 | 109 | } |
| 86 | 110 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/resources/mapper/deviceuser/DeviceUserMapper.xml
| ... | ... | @@ -9,4 +9,10 @@ |
| 9 | 9 | 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ |
| 10 | 10 | --> |
| 11 | 11 | |
| 12 | + <delete id="deleteDeviceUser"> | |
| 13 | + DELETE FROM garden_device_user | |
| 14 | + WHERE user_id = #{userId} | |
| 15 | + AND device_no = #{deviceNo} | |
| 16 | + | |
| 17 | + </delete> | |
| 12 | 18 | </mapper> |
| 13 | 19 | \ No newline at end of file | ... | ... |