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.
226 lines
7.3 KiB
226 lines
7.3 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
|
|
}
|
|
|
|
open class BaseTokens:IntIdTable(){
|
|
@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)
|
|
}
|
|
|
|
@TableComment("用户授权令牌")
|
|
object UserTokens: BaseTokens(){
|
|
@TableComment("授权用户")
|
|
val userId:Column<EntityID<Int>> = reference("user_id",Users)
|
|
}
|
|
|
|
class UserToken(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<UserToken>(UserTokens)
|
|
var user by User referencedOn UserTokens.userId
|
|
var token by UserTokens.token
|
|
var ip by UserTokens.ip
|
|
var createTime by UserTokens.createTime
|
|
var device by UserTokens.device
|
|
}
|
|
|
|
@TableComment("管理员授权令牌")
|
|
object ManagerTokens:BaseTokens(){
|
|
@TableComment("授权管理员")
|
|
val managerId:Column<EntityID<Int>> = reference("manager_id",Managers)
|
|
}
|
|
|
|
class ManagerToken(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<ManagerToken>(ManagerTokens)
|
|
var manager by Manager referencedOn ManagerTokens.managerId
|
|
var token by ManagerTokens.token
|
|
var ip by ManagerTokens.ip
|
|
var createTime by ManagerTokens.createTime
|
|
var device by ManagerTokens.device
|
|
}
|
|
|
|
|
|
|
|
@TableComment("留言")
|
|
object LeaveMessages:IntIdTable(){
|
|
@TableComment("留言用户")
|
|
val userId:Column<EntityID<Int>> = reference("user_id",Users)
|
|
|
|
@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 user by User referencedOn LeaveMessages.userId
|
|
var message by LeaveMessages.message
|
|
var createTime by LeaveMessages.createTime
|
|
}
|
|
|
|
@TableComment("图片文件信息")
|
|
object ImageFiles:IntIdTable(){
|
|
@TableComment("上传用户")
|
|
val userId:Column<String> = varchar(name = "user_id",length = 10)
|
|
|
|
@TableComment("文件相对路径")
|
|
val filepath:Column<String> = varchar(name="filepath",length = 50)
|
|
|
|
@TableComment("文件hash")
|
|
val md5:Column<String> = varchar(name="md5",length = 32)
|
|
|
|
@TableComment("文件创建时间")
|
|
val createTime:Column<LocalDateTime> = datetime("create_time").defaultExpression(CurrentDateTime())
|
|
}
|
|
|
|
class ImageFile(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<ImageFile>(ImageFiles)
|
|
var userId by ImageFiles.userId
|
|
var filepath by ImageFiles.filepath
|
|
var md5 by ImageFiles.md5
|
|
var createTime by ImageFiles.createTime
|
|
}
|
|
|
|
@TableComment("社团")
|
|
object Associations:IntIdTable(){
|
|
@TableComment("社团名称")
|
|
val name:Column<String> =varchar(name = "name",length = 10)
|
|
|
|
@TableComment("社团介绍")
|
|
val desc:Column<String> =varchar(name = "desc",length = 30)
|
|
|
|
@TableComment("社团logo")
|
|
val logo:Column<EntityID<Int>> = reference("logo",ImageFiles)
|
|
|
|
@TableComment("社团审核状态")
|
|
val status:Column<Boolean> = bool(name="status").default(false)
|
|
}
|
|
|
|
class Association(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<Association>(Associations)
|
|
var name by Associations.name
|
|
var desc by Associations.desc
|
|
var logo by ImageFile referencedOn Associations.logo
|
|
var status by Associations.status
|
|
}
|
|
|
|
@TableComment("后台管理员")
|
|
object Managers:IntIdTable(){
|
|
@TableComment("帐号")
|
|
val account:Column<String> = varchar(name="account",length=10)
|
|
|
|
@TableComment("密码")
|
|
val password:Column<String> = varchar(name="password",length = 32)
|
|
|
|
@TableComment("职务")
|
|
val duty:Column<String> = varchar(name="duty",length = 32)
|
|
|
|
@TableComment("等级")
|
|
val level:Column<Int> = integer("level")
|
|
}
|
|
|
|
class Manager(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<Manager>(Managers)
|
|
var account by Managers.account
|
|
var password by Managers.password
|
|
var duty by Managers.duty
|
|
var level by Managers.level
|
|
}
|
|
|
|
@TableComment("审核记录")
|
|
object CheckForms:IntIdTable(){
|
|
@TableComment("审核类型")
|
|
val type:Column<String> = varchar(name="type",length = 10)
|
|
|
|
@TableComment("审核人")
|
|
val managerId:Column<EntityID<Int>> = reference("manager_id",Managers)
|
|
|
|
@TableComment("审核理由")
|
|
val cause:Column<String> = varchar("cause",length = 30)
|
|
|
|
@TableComment("审核对象")
|
|
val target:Column<Int> = integer("target")
|
|
|
|
@TableComment("审核时间")
|
|
val createTime:Column<LocalDateTime> = datetime("create_time").defaultExpression(CurrentDateTime())
|
|
}
|
|
|
|
class CheckForm(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<CheckForm>(CheckForms)
|
|
var type by CheckForms.type
|
|
val manager by Manager referrersOn CheckForms.managerId
|
|
var cause by CheckForms.cause
|
|
var target by CheckForms.target
|
|
}
|
|
|
|
@TableComment("通知记录")
|
|
object Notifications:IntIdTable(){
|
|
@TableComment("通知标题")
|
|
val title:Column<String> = varchar(name="title",length = 10)
|
|
|
|
@TableComment("通知内容")
|
|
val content:Column<String> = varchar(name="content",length = 30)
|
|
|
|
@TableComment("接收者")
|
|
val receiverId:Column<Int> = integer(name="receiver_id")
|
|
|
|
@TableComment("接收客户端")
|
|
val receiverClient:Column<String> = varchar(name="receiver_client",length = 10)
|
|
|
|
@TableComment("阅读状态")
|
|
val read:Column<Boolean> = bool("read").default(false)
|
|
|
|
@TableComment("拉取状态")
|
|
val pull:Column<Boolean> = bool("pull").default(false)
|
|
|
|
@TableComment("通知创建时间")
|
|
val createTime:Column<LocalDateTime> = datetime("create_time").defaultExpression(CurrentDateTime())
|
|
}
|
|
|
|
class Notification(id:EntityID<Int>):IntEntity(id){
|
|
companion object:IntEntityClass<Notification>(Notifications)
|
|
var title by Notifications.title
|
|
var content by Notifications.content
|
|
var receiverId by Notifications.receiverId
|
|
var receiverClient by Notifications.receiverClient
|
|
var read by Notifications.read
|
|
var pull by Notifications.pull
|
|
var createTime by Notifications.createTime
|
|
} |