diff --git a/src/main/kotlin/com/msksbr/bookmgr/controller/AdminBorrowController.kt b/src/main/kotlin/com/msksbr/bookmgr/controller/AdminBorrowController.kt index 549a38d..8cdcea1 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/controller/AdminBorrowController.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/controller/AdminBorrowController.kt @@ -7,8 +7,7 @@ import org.springframework.web.bind.annotation.RestController * 路径前缀(待定):/api/admin/borrows * * 计划接口: -* - 全量借阅记录查询 -* - 手动归还 +* - 全量搜索借阅记录 */ @RestController class AdminBorrowController { diff --git a/src/main/kotlin/com/msksbr/bookmgr/controller/AuthController.kt b/src/main/kotlin/com/msksbr/bookmgr/controller/AuthController.kt index eafe002..aca6c52 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/controller/AuthController.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/controller/AuthController.kt @@ -2,7 +2,7 @@ package com.msksbr.bookmgr.controller import com.msksbr.bookmgr.config.IpExtractor import com.msksbr.bookmgr.config.JwtUtils -import com.msksbr.bookmgr.dto.UserLoginDTO +import com.msksbr.bookmgr.dto.UserLoginDto import com.msksbr.bookmgr.script.log import com.msksbr.bookmgr.service.AuthService import com.msksbr.bookmgr.template.Result @@ -44,7 +44,7 @@ class AuthController( fun login( @Valid @RequestBody - loginDTO: UserLoginDTO, + loginDTO: UserLoginDto, request: HttpServletRequest ): Result { log.info("[Auth] login attempt: user={}, ip={}", loginDTO.username, ipExtractor.getRealIp(request)) diff --git a/src/main/kotlin/com/msksbr/bookmgr/dto/BorrowInfoDto.kt b/src/main/kotlin/com/msksbr/bookmgr/dto/BorrowInfoDto.kt new file mode 100644 index 0000000..a9ba63e --- /dev/null +++ b/src/main/kotlin/com/msksbr/bookmgr/dto/BorrowInfoDto.kt @@ -0,0 +1,14 @@ +package com.msksbr.bookmgr.dto + +import com.msksbr.bookmgr.entity.Book +import java.util.Date + +class BorrowInfoDto( + val id: Long, + val book: Book, + val userId: Long, + val username: String, + val borrowTime: Date, + val returnTime: Date?, + val string: String +) \ No newline at end of file diff --git a/src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDTO.kt b/src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDto.kt similarity index 95% rename from src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDTO.kt rename to src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDto.kt index a6d862b..8b14f08 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDTO.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/dto/UserLoginDto.kt @@ -11,7 +11,7 @@ import jakarta.validation.constraints.NotBlank * * 字段类型为可空 String?,但运行时被 @Valid + @NotBlank 保证非空 */ -data class UserLoginDTO( +data class UserLoginDto( @NotBlank(message = "username is required") val username: String?, @NotBlank(message = "password is required") diff --git a/src/main/kotlin/com/msksbr/bookmgr/service/AdminBorrowService.kt b/src/main/kotlin/com/msksbr/bookmgr/service/AdminBorrowService.kt new file mode 100644 index 0000000..fcf0628 --- /dev/null +++ b/src/main/kotlin/com/msksbr/bookmgr/service/AdminBorrowService.kt @@ -0,0 +1,5 @@ +package com.msksbr.bookmgr.service + +interface AdminBorrowService { + fun searchBorrows(query: String): Result +} \ No newline at end of file diff --git a/src/main/kotlin/com/msksbr/bookmgr/service/AuthService.kt b/src/main/kotlin/com/msksbr/bookmgr/service/AuthService.kt index a64a574..42fc24f 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/service/AuthService.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/service/AuthService.kt @@ -1,6 +1,6 @@ package com.msksbr.bookmgr.service -import com.msksbr.bookmgr.dto.UserLoginDTO +import com.msksbr.bookmgr.dto.UserLoginDto import com.msksbr.bookmgr.entity.User /* @@ -13,5 +13,5 @@ interface AuthService { * @param loginDTO 包含 username 和 password 的请求体 * @return 验证成功返回对应的 User 实体,失败返回 null */ - fun login(loginDTO: UserLoginDTO): User? + fun login(loginDTO: UserLoginDto): User? } diff --git a/src/main/kotlin/com/msksbr/bookmgr/service/BorrowService.kt b/src/main/kotlin/com/msksbr/bookmgr/service/BorrowService.kt new file mode 100644 index 0000000..b945431 --- /dev/null +++ b/src/main/kotlin/com/msksbr/bookmgr/service/BorrowService.kt @@ -0,0 +1,9 @@ +package com.msksbr.bookmgr.service + +interface BorrowService { + fun getAllMyBorrows(userId: Long): Result + fun searchMyBorrows(query: String): Result + fun getOneBorrow(borrowId: Long): Result + fun borrowBook(bookId: Long): Result + fun returnBook(borrowId: Long): Result +} \ No newline at end of file diff --git a/src/main/kotlin/com/msksbr/bookmgr/service/impl/AuthServiceImpl.kt b/src/main/kotlin/com/msksbr/bookmgr/service/impl/AuthServiceImpl.kt index f8ee38f..6653aeb 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/service/impl/AuthServiceImpl.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/service/impl/AuthServiceImpl.kt @@ -1,7 +1,7 @@ package com.msksbr.bookmgr.service.impl import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper -import com.msksbr.bookmgr.dto.UserLoginDTO +import com.msksbr.bookmgr.dto.UserLoginDto import com.msksbr.bookmgr.entity.User import com.msksbr.bookmgr.mapper.UserMapper import com.msksbr.bookmgr.service.AuthService @@ -29,7 +29,7 @@ class AuthServiceImpl( * @param loginDTO 包含 username 和 password * @return 验证成功返回 User,失败返回 null */ - override fun login(loginDTO: UserLoginDTO): User? { + override fun login(loginDTO: UserLoginDto): User? { val user = userMapper.selectOne( QueryWrapper() .eq("username", loginDTO.username) diff --git a/src/main/kotlin/com/msksbr/bookmgr/service/impl/DashBoardServiceImpl.kt b/src/main/kotlin/com/msksbr/bookmgr/service/impl/DashBoardServiceImpl.kt index 23c363f..85f338d 100644 --- a/src/main/kotlin/com/msksbr/bookmgr/service/impl/DashBoardServiceImpl.kt +++ b/src/main/kotlin/com/msksbr/bookmgr/service/impl/DashBoardServiceImpl.kt @@ -30,6 +30,7 @@ class DashBoardServiceImpl( return Result.success(bookJsonList) } + // @TODO: 改成返回BorrowInfoDto override fun getAllBorrowRecords(): Result { val borrowRecordList = borrowRecordMapper.selectList(null) val borrowRecordJsonList = borrowRecordList.map { borrowRecord ->