feat: DB interface #3

Merged
SOR2171 merged 4 commits from backend-dev into main 2026-07-27 15:58:22 +08:00
12 changed files with 139 additions and 16 deletions
Showing only changes of commit 1e9d86283b - Show all commits
@@ -10,9 +10,13 @@ import reactor.core.publisher.Mono
interface AccountService : IService<Account>, ReactiveUserDetailsService {
fun findAccountByNameOrEmail(text: String): Mono<Account>
fun askEmailVerifyCode(type: String, email: String, ip: String): Mono<String>
fun registerEmailAccount(vo: EmailRegisterVO): Mono<String>
fun resetEmailAccountPassword(vo: PasswordResetVO): Mono<String>
fun invalidateJwt(headerToken: String?): Boolean
fun jwtTokenRelogin(headerToken: String?): Mono<ReloginVO>?
fun findAccountByName(username: String): Mono<Account>
fun findAccountByEmail(email: String): Mono<Account>
fun existAccountByName(username: String): Mono<Boolean>
fun existAccountByEmail(email: String): Mono<Boolean>
fun resetPasswordByEmail(email: String, encodedPassword: String): Mono<Void>
// fun batchInsert(accounts: List<Account>): Mono<Boolean>
// fun replaceAll(accounts: List<Account>): Mono<Boolean>
// fun exportAll(): Mono<List<Account>>
}
@@ -2,5 +2,14 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Attachment
import reactor.core.publisher.Mono
interface AttachmentService : IService<Attachment>
interface AttachmentService : IService<Attachment> {
fun getAttachmentById(id: Long): Mono<Attachment>
fun listByRelated(relatedTable: String, relatedId: Long): Mono<List<Attachment>>
fun listByUploader(uploadedBy: Long): Mono<List<Attachment>>
fun createAttachment(attachment: Attachment): Mono<Boolean>
fun deleteAttachment(id: Long): Mono<Boolean>
fun deleteByRelated(relatedTable: String, relatedId: Long): Mono<Boolean>
fun exportAllAttachments(): Mono<List<Attachment>>
}
@@ -2,5 +2,16 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.BorrowRecord
import reactor.core.publisher.Mono
interface BorrowRecordService : IService<BorrowRecord>
interface BorrowRecordService : IService<BorrowRecord> {
fun getBorrowRecordById(id: Long): Mono<BorrowRecord>
fun listByItem(itemId: Long): Mono<List<BorrowRecord>>
fun listByBorrower(borrowerId: Long): Mono<List<BorrowRecord>>
fun listByStatus(status: String): Mono<List<BorrowRecord>>
fun listOverdueRecords(): Mono<List<BorrowRecord>>
fun createBorrowRecord(record: BorrowRecord): Mono<Boolean>
fun updateBorrowRecord(record: BorrowRecord): Mono<Boolean>
fun deleteBorrowRecord(id: Long): Mono<Boolean>
fun exportAllBorrowRecords(): Mono<List<BorrowRecord>>
}
@@ -2,5 +2,14 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Category
import reactor.core.publisher.Mono
interface CategoryService : IService<Category>
interface CategoryService : IService<Category> {
fun getCategoryById(id: Long): Mono<Category>
fun listAllCategories(): Mono<List<Category>>
fun listByParentId(parentId: Long): Mono<List<Category>>
fun createCategory(category: Category): Mono<Boolean>
fun updateCategory(category: Category): Mono<Boolean>
fun deleteCategory(id: Long): Mono<Boolean>
fun exportAllCategories(): Mono<List<Category>>
}
@@ -2,5 +2,14 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Department
import reactor.core.publisher.Mono
interface DepartmentService : IService<Department>
interface DepartmentService : IService<Department> {
fun getDepartmentById(id: Long): Mono<Department>
fun listAllDepartments(): Mono<List<Department>>
fun listByParentId(parentId: Long): Mono<List<Department>>
fun createDepartment(department: Department): Mono<Boolean>
fun updateDepartment(department: Department): Mono<Boolean>
fun deleteDepartment(id: Long): Mono<Boolean>
fun exportAllDepartments(): Mono<List<Department>>
}
@@ -2,5 +2,15 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.EmailNotice
import reactor.core.publisher.Mono
interface EmailNoticeService : IService<EmailNotice>
interface EmailNoticeService : IService<EmailNotice> {
fun getEmailNoticeById(id: Long): Mono<EmailNotice>
fun listAllNotices(): Mono<List<EmailNotice>>
fun listEnabledNotices(): Mono<List<EmailNotice>>
fun createEmailNotice(notice: EmailNotice): Mono<Boolean>
fun updateEmailNotice(notice: EmailNotice): Mono<Boolean>
fun deleteEmailNotice(id: Long): Mono<Boolean>
fun toggleEnabled(id: Long): Mono<Boolean>
fun exportAllEmailNotices(): Mono<List<EmailNotice>>
}
@@ -2,5 +2,16 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Evaluation
import reactor.core.publisher.Mono
interface EvaluationService : IService<Evaluation>
interface EvaluationService : IService<Evaluation> {
fun getEvaluationById(id: Long): Mono<Evaluation>
fun listByEvaluator(evaluatorId: Long): Mono<List<Evaluation>>
fun listByRelatedItem(itemId: Long): Mono<List<Evaluation>>
fun listByScore(score: Short): Mono<List<Evaluation>>
fun createEvaluation(evaluation: Evaluation): Mono<Boolean>
fun updateEvaluation(evaluation: Evaluation): Mono<Boolean>
fun deleteEvaluation(id: Long): Mono<Boolean>
fun deleteByEvaluator(evaluatorId: Long): Mono<Boolean>
fun exportAllEvaluations(): Mono<List<Evaluation>>
}
@@ -2,5 +2,16 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.FinanceRecord
import reactor.core.publisher.Mono
interface FinanceRecordService : IService<FinanceRecord>
interface FinanceRecordService : IService<FinanceRecord> {
fun getFinanceRecordById(id: Long): Mono<FinanceRecord>
fun listByType(type: String): Mono<List<FinanceRecord>>
fun listByDateRange(start: String, end: String): Mono<List<FinanceRecord>>
fun listByVendor(vendor: String): Mono<List<FinanceRecord>>
fun listByRelatedItem(itemId: Long): Mono<List<FinanceRecord>>
fun createFinanceRecord(record: FinanceRecord): Mono<Boolean>
fun updateFinanceRecord(record: FinanceRecord): Mono<Boolean>
fun deleteFinanceRecord(id: Long): Mono<Boolean>
fun exportAllFinanceRecords(): Mono<List<FinanceRecord>>
}
@@ -1,6 +1,23 @@
package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Item
import reactor.core.publisher.Mono
interface ItemService : IService<Item>
interface ItemService : IService<Item> {
fun pageItems(page: Page<Item>, keyword: String?, status: String?): Mono<Page<Item>>
fun getItemById(id: Long): Mono<Item>
fun listAvailableItems(): Mono<List<Item>>
fun listInUseItems(): Mono<List<Item>>
fun listItemsByCategory(categoryId: Long): Mono<List<Item>>
fun createItem(item: Item): Mono<Boolean>
fun updateItem(item: Item): Mono<Boolean>
fun removeItemById(id: Long): Mono<Boolean>
fun setPrimaryImage(id: Long, imagePath: String): Mono<Boolean>
fun borrowItem(id: Long, quantity: Int): Mono<Boolean>
fun returnItem(id: Long, quantity: Int): Mono<Boolean>
fun batchInsertItems(items: List<Item>): Mono<Boolean>
fun replaceAllItems(items: List<Item>): Mono<Boolean>
fun exportAllItems(): Mono<List<Item>>
}
@@ -2,5 +2,15 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.ItemTransaction
import reactor.core.publisher.Mono
interface ItemTransactionService : IService<ItemTransaction>
interface ItemTransactionService : IService<ItemTransaction> {
fun getTransactionById(id: Long): Mono<ItemTransaction>
fun listByItem(itemId: Long): Mono<List<ItemTransaction>>
fun listByType(transType: String): Mono<List<ItemTransaction>>
fun listByOperator(operatorId: Long): Mono<List<ItemTransaction>>
fun createTransaction(transaction: ItemTransaction): Mono<Boolean>
fun updateTransaction(transaction: ItemTransaction): Mono<Boolean>
fun deleteTransaction(id: Long): Mono<Boolean>
fun exportAllTransactions(): Mono<List<ItemTransaction>>
}
@@ -2,5 +2,16 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Memo
import reactor.core.publisher.Mono
interface MemoService : IService<Memo>
interface MemoService : IService<Memo> {
fun getMemoById(id: Long): Mono<Memo>
fun searchMemos(keyword: String?): Mono<List<Memo>>
fun listByAuthor(authorId: Long): Mono<List<Memo>>
fun listByRelatedItem(itemId: Long): Mono<List<Memo>>
fun listPublicMemos(): Mono<List<Memo>>
fun createMemo(memo: Memo): Mono<Boolean>
fun updateMemo(memo: Memo): Mono<Boolean>
fun deleteMemo(id: Long): Mono<Boolean>
fun exportAllMemos(): Mono<List<Memo>>
}
@@ -2,5 +2,16 @@ package club.itstudio.itmanager.service
import com.baomidou.mybatisplus.extension.service.IService
import club.itstudio.itmanager.entity.dto.Personnel
import reactor.core.publisher.Mono
interface PersonnelService : IService<Personnel>
interface PersonnelService : IService<Personnel> {
fun getPersonnelById(id: Long): Mono<Personnel>
fun searchPersonnel(keyword: String?): Mono<List<Personnel>>
fun listByDepartment(departmentId: Long): Mono<List<Personnel>>
fun listByRole(role: String): Mono<List<Personnel>>
fun createPersonnel(personnel: Personnel): Mono<Boolean>
fun updatePersonnel(personnel: Personnel): Mono<Boolean>
fun deletePersonnel(id: Long): Mono<Boolean>
fun setActive(id: Long, active: Boolean): Mono<Boolean>
fun exportAllPersonnel(): Mono<List<Personnel>>
}