diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/security/rest/AuthController.java b/fys-system/src/main/java/com/fuyuanshen/modules/security/rest/AuthController.java index 2ddfd7a..a32331d 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/security/rest/AuthController.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/security/rest/AuthController.java @@ -141,17 +141,11 @@ public class AuthController { } - - - - - @Log("app用户登录") @ApiOperation("app用户登录") @AnonymousPostMapping(value = "/app/login") public ResponseEntity APPLogin(@Validated @RequestBody AppAuthUserDto authUser, HttpServletRequest request) throws Exception { - // 1. 构建查询参数 APPUserQuery appUserQuery = new APPUserQuery(); appUserQuery.setPhoneNumber(authUser.getPhoneNumber()); @@ -172,7 +166,6 @@ public class AuthController { throw new BadRequestException("登录密码错误"); } - // 4. 加载用户详情 JwtUserDto jwtUser = userDetailsService.loadUserByUsername(appUser.getUsername(),appUser.getUserType()); diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/DeviceImportParams.java b/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/DeviceImportParams.java index 9246cf1..edbdd49 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/DeviceImportParams.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/DeviceImportParams.java @@ -3,6 +3,7 @@ package com.fuyuanshen.modules.system.listener.excel; import com.fuyuanshen.modules.system.mapper.DeviceMapper; import com.fuyuanshen.modules.system.mapper.DeviceTypeMapper; import com.fuyuanshen.modules.system.mapper.UserMapper; +import com.fuyuanshen.modules.system.service.DeviceAssignmentsService; import com.fuyuanshen.modules.system.service.DeviceService; import lombok.*; import org.springframework.web.multipart.MultipartFile; @@ -19,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; public class DeviceImportParams { private DeviceService deviceService; + private DeviceAssignmentsService deviceAssignmentsService; private DeviceMapper deviceMapper; private UserMapper userMapper; private DeviceTypeMapper deviceTypeMapper; diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/UploadDeviceDataListener.java b/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/UploadDeviceDataListener.java index 5195113..d065e49 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/UploadDeviceDataListener.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/system/listener/excel/UploadDeviceDataListener.java @@ -7,9 +7,13 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.fuyuanshen.modules.system.domain.DeviceAssignments; import com.fuyuanshen.modules.system.domain.DeviceType; +import com.fuyuanshen.modules.system.domain.User; import com.fuyuanshen.modules.system.domain.dto.DeviceQueryCriteria; +import com.fuyuanshen.modules.system.enums.DeviceActiveStatusEnum; import com.fuyuanshen.modules.system.mapper.UserMapper; +import com.fuyuanshen.utils.SecurityUtils; import lombok.extern.slf4j.Slf4j; import com.fuyuanshen.constants.DeviceConstants; import com.fuyuanshen.modules.system.domain.Device; @@ -24,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.nio.file.Files; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -149,6 +154,7 @@ public class UploadDeviceDataListener implements ReadListener impleme /** - * 删除设备分配记录 + * 删除设备分配记录(分配记录id) + * + * @param ids + */ + public void deleteAssign1(List ids) { + Long currentUserId = SecurityUtils.getCurrentUserId(); + // Step 1: 查询所有传入的设备(根据 ID) + // List deviceAssignments = deviceAssignmentsMapper.selectBatchIds(ids); + QueryWrapper wrapper = new QueryWrapper<>(); + // wrapper.eq("active", DeviceActiveStatusEnum.INACTIVE.getCode()); + wrapper.in("device_id", ids); + wrapper.eq("assigner_id", currentUserId); + List deviceAssignments = deviceAssignmentsMapper.selectList(wrapper); + // Step 2: 使用 Java Stream 过滤出 customer_id 不为 null 的设备 + Set nonNullCustomerIds = deviceAssignments.stream().filter(device -> !StringUtils.isNotEmpty(device.getAssigneeName())).map(DeviceAssignments::getId).collect(Collectors.toSet()); + if (CollectionUtil.isEmpty(nonNullCustomerIds)) { + throw new BadRequestException("已分配的设备不允许删除!!!"); + } + + // QueryWrapper de = new QueryWrapper<>(); + // wrapper.eq("active", DeviceActiveStatusEnum.INACTIVE.getCode()); + // wrapper.in("device_id", ids); + // wrapper.eq("assignee_id", currentUserId); + // deviceAssignmentsMapper.delete(de); + + deviceAssignmentsMapper.deleteBatchIds(nonNullCustomerIds); + } + + + /** + * 删除设备分配记录(分配记录id) * * @param ids */ @Override public void deleteAssign(List ids) { - // Step 1: 查询所有传入的设备(根据 ID) List deviceAssignments = deviceAssignmentsMapper.selectBatchIds(ids); // Step 2: 使用 Java Stream 过滤出 customer_id 不为 null 的设备 - Set nonNullCustomerIds = deviceAssignments.stream().filter(device -> device.getActive() == 1).map(DeviceAssignments::getId).collect(Collectors.toSet()); - // Step 3: 从原始 ids 中“去掉”这些非空 customer_id 的设备 ID - List remainingIds = ids.stream().filter(id -> !nonNullCustomerIds.contains(id)).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(remainingIds)) { + Set nonNullCustomerIds = deviceAssignments.stream() + .filter(device -> !StringUtils.isNotEmpty(device.getAssigneeName())) + .map(DeviceAssignments::getId).collect(Collectors.toSet()); + if (CollectionUtil.isEmpty(nonNullCustomerIds)) { throw new BadRequestException("已分配的设备不允许删除!!!"); } + deviceAssignmentsMapper.deleteBatchIds(ids); } diff --git a/fys-system/src/main/resources/mapper/system/DeviceMapper.xml b/fys-system/src/main/resources/mapper/system/DeviceMapper.xml index 23d4261..a86e78b 100644 --- a/fys-system/src/main/resources/mapper/system/DeviceMapper.xml +++ b/fys-system/src/main/resources/mapper/system/DeviceMapper.xml @@ -43,7 +43,7 @@ d.device_pic, d.device_mac, d.device_sn, d.update_by,d.device_imei, d.update_time, d.device_type, d.remark, d.binding_status,t.type_name, da.assignee_id AS customerId, da.assignee_name AS customerName, da.active AS deviceStatus, - da.assigned_at AS create_time , da.assigner_name AS create_by , da.id AS assignId + da.assigned_at AS create_time , da.assigner_name AS create_by , da.id AS assignId from device d LEFT JOIN device_type t ON d.device_type = t.id LEFT JOIN device_assignments da ON da.device_id = d.id @@ -85,12 +85,11 @@ - - order by d.id desc + ORDER BY create_time DESC - SELECT dt.* - FROM device_type dt + SELECT DISTINCT dt.* + FROM device_type dt JOIN device_type_grants dg ON dt.id = dg.device_type_id