You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
csamsserver/src/Dao.kt

79 lines
2.5 KiB

package com.gyf.csams
import org.jetbrains.exposed.dao.IntEntity
import org.jetbrains.exposed.dao.IntEntityClass
import org.jetbrains.exposed.dao.id.EntityID
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.Column
import org.jetbrains.exposed.sql.`java-time`.CurrentDateTime
import org.jetbrains.exposed.sql.`java-time`.CurrentTimestamp
import org.jetbrains.exposed.sql.`java-time`.datetime
import java.time.LocalDateTime
@TableComment("用户")
object Users: IntIdTable(){
@TableComment("学号")
val studentId:Column<String> = varchar(name="student_id",length = 8).uniqueIndex()
@TableComment("姓名")
val name:Column<String> = varchar(name="name",length = 10)
@TableComment("密码")
val password:Column<String> = varchar(name="password",length = 32)
}
class User(id:EntityID<Int>):IntEntity(id){
companion object : IntEntityClass<User>(Users)
var studentId by Users.studentId
var name by Users.name
var password by Users.password
}
@TableComment("用户授权令牌")
object UserTokens: IntIdTable(){
@TableComment("授权学号")
val studentId:Column<String> = reference("student_id",Users.studentId)
@TableComment("令牌")
val token:Column<String> = varchar(name="token",length = 32)
@TableComment("授权ip地址")
val ip:Column<String> = varchar(name="ip",length = 32)
@TableComment("令牌创建时间")
val createTime:Column<LocalDateTime> = datetime("create_time").defaultExpression(CurrentTimestamp())
@TableComment("授权设备")
val device:Column<String> = varchar(name="device",length = 256)
}
class UserToken(id:EntityID<Int>):IntEntity(id){
companion object:IntEntityClass<UserToken>(UserTokens)
var studentId by UserTokens.studentId
var token by UserTokens.token
var ip by UserTokens.ip
var createTime by UserTokens.createTime
var device by UserTokens.device
}
@TableComment("留言")
object LeaveMessages:IntIdTable(){
@TableComment("留言用户")
val studentId:Column<String> = reference("student_id",Users.studentId)
@TableComment("留言内容")
val message:Column<String> = varchar(name = "message",length = 20)
@TableComment("留言创建时间")
val createTime:Column<LocalDateTime> = datetime("create_time").defaultExpression(CurrentDateTime())
}
class LeaveMessage(id:EntityID<Int>):IntEntity(id){
companion object:IntEntityClass<LeaveMessage>(LeaveMessages)
var studentId by LeaveMessages.studentId
var message by LeaveMessages.message
var createTime by LeaveMessages.createTime
}