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.

360 lines
9.6 KiB

package com.gyf.csams.module
data class ApiResponse<T>(val code:Int=200,val message:String,val body:T?=null)
class Simple {
companion object {
fun success(message: String): ApiResponse<Any> {
return ApiResponse(code = 200, message = message, body = null)
}
fun error(message: String): ApiResponse<Any> {
return ApiResponse(code = 500, message = message, body = null)
}
}
}
/**
* 客户端类型
*
*/
enum class ClientType{
//前台
Foreground,
//后台
Background
}
/**
* 一般信息
*
*/
abstract class PersonInfoVo{
abstract val name:String
abstract val headImg: String?
abstract val desc: String
}
enum class Duty(val desc:String, val level:Int){
Teacher("老师",1),
PamphaBhusal("总部长",2),
SecretaryOfTheMinister("秘书部部长",3),
PropagandaDepartment("宣传部部长",3),
LiaisonMinister("外联部部长",3),
SecretaryDepartmentOfficer("秘书部干事",4),
PublicityDepartmentOfficer("宣传部干事",4),
LiaisonOfficer("外联部干事",4)
}
/**
* 个人信息
*
*/
abstract class OwnInfoVo : PersonInfoVo(){
abstract val token: Token
}
data class ManagerInfoVo(val duty: Duty,
override val name: String,
override val headImg: String?,
override val desc: String
): PersonInfoVo()
data class UserInfoVo(override val name: String, override val headImg: String?, override val desc: String):
PersonInfoVo()
/**
* 管理员个人信息
*
* @property account 管理员账号
* @property name 姓名
* @property duty 职务
* @property headImg 头像
* @property desc 个人简介
*/
data class ManagerVo(
val account: String,
val duty: Duty,
override val token: Token,
override val name: String,
override val headImg: String?,
override val desc: String
) : OwnInfoVo()
data class UserRegVo(val studentId: String, val name: String)
/**
* 用户个人信息
*
* @property studentId 学号
* @property name 姓名
* @property headImg 头像
* @property desc 个人简介
*/
data class UserVo(
val studentId: String,
val manager: ManagerVo?=null,
override val token: Token,
override val name: String,
override val headImg: String?,
override val desc: String,
val associationVo: AssociationVo?,
val isHead: Boolean?
) : OwnInfoVo()
sealed class BaseLoginVo{
abstract val password: String
abstract val device: String
abstract val clientType: ClientType
}
sealed class ClientBaseVo {
abstract val token: Token
abstract val clientType: ClientType
}
data class UserLoginVo(val studentId: String,
override val password: String, override val device: String,
override val clientType: ClientType = ClientType.Foreground
): BaseLoginVo()
data class UserResDto(val password:String)
data class ManagerLoginVo(val account:String,
override val password:String, override val device:String): BaseLoginVo() {
override val clientType: ClientType = ClientType.Background
}
data class Token(val token:String, val createTime:Long, val id:Int)
data class LeaveMessageVo(val message: String, override val token: Token,
override val clientType: ClientType = ClientType.Foreground
): ClientBaseVo()
data class OnlyToken(override val token: Token, override val clientType: ClientType): ClientBaseVo()
data class LeaveMessageDto(val message: String,val user: UserInfoVo)
data class ImageFileDto(val filepath:String,val md5:String,val createTime: Long,val url:String)
data class InitManagerDto(val account: String, val originPassword: String, val duty: Duty)
data class PageDto(val currentPage:Long,val pageSize:Int=10)
data class NotificationDto(val receiverId:Int, val receiverClient: ClientType, override val token: Token,
val page: PageDto?, override val clientType: ClientType =receiverClient
): ClientBaseVo()
data class NotificationVo(val title:String,val content:String,val id:Int,val createTime: Long)
data class SearchAssociationVo(val name:String, val desc:String,
override val clientType: ClientType = ClientType.Foreground, override val token: Token
): ClientBaseVo()
data class ShowAssociationVo(val id: Int,
override val token: Token,
override val clientType: ClientType = ClientType.Foreground
): ClientBaseVo()
data class QueryAssociationMembers(val id:Int,
val name:String?=null,
override val token: Token,
override val clientType: ClientType = ClientType.Foreground
): ClientBaseVo()
/**
* 社团级别
*
*/
enum class AssociationLevel {
A,
B,
C,
D
}
/**
* 所属院系
*
*/
enum class AssociationFaculty(val desc: String, val range: IntRange) {
ForeignLanguageDept("外语系", 0..0),
CivilEngineeringDept("土木工程", 1..10),
SEM("经理管理学院", 11..20),
MechanicalEngineeringDept("机械工程", 21..30),
TransportationDept("交通运输", 31..40),
ArchitectureAndArts("建筑与艺术", 41..50),
ElectricalDept("电气", 51..60),
MaterialsDept("材料", 61..70),
MessageDept("信息", 71..80),
MathematicsDept("数理", 81..90),
GraduateStudent("研究生", 91..99)
}
abstract class BaseAssociationVo{
abstract val associationId: Int
abstract val name: String
abstract val desc: String
abstract val logo:String
abstract val faculty: AssociationFaculty
abstract val level: AssociationLevel?
}
/**
* 社团列表
*
*/
class AssociationVo(
override val associationId: Int,
override val name: String,
override val desc: String,
override val logo: String,
override val faculty: AssociationFaculty,
override val level: AssociationLevel?
) : BaseAssociationVo()
//审核状态
enum class CheckStatus(val desc: String){
WaitFirst("等待初审"),
AcceptFirst("初审受理"),
WaitLast("等待复审"),
AcceptLast("复审受理"),
Finish("审核完成")
}
/**
* 活动照片
*
* @property path
*/
data class AssociationActPhotoVo(val path:String)
data class AssociationMainVo(val associationVo: AssociationVo, val head: UserInfoVo,
val photos:List<AssociationActPhotoVo>?=null)
data class AuditCheckVo(val checkStatus: CheckStatus, val applyTime: Long,
val firstCause:String, val lastCause:String?)
//前台社团注册资料
data class AssociationCheckVo(
override val associationId: Int,
override val name: String,
override val desc: String,
override val logo: String,
override val faculty: AssociationFaculty,
override val level: AssociationLevel?,
val fileId:Int,
val auditCheckVo: AuditCheckVo
): BaseAssociationVo()
/**
* 社团注册资料表单
*
* @property name
* @property desc
* @property fileId
*/
data class AssociationRegVo(val associationId:Int?,
val name: String,
val desc: String, val fileId: Int,
override val clientType: ClientType = ClientType.Foreground,
override val token: Token
): ClientBaseVo()
abstract class AuditVo{
abstract val audit: AuditLoggingVo
}
/**
* 社团注册审核记录
*
*
*/
data class AuditAssociationVo(val name:String, val desc:String,
val logo:String, override val audit: AuditLoggingVo
): AuditVo()
/**
* 通用审核记录
*
* @property id
* @property user
* @property applyTime
* @property manager
* @property acceptTime
* @property cause
* @property result
* @property auditTime
* @property nextAudit
*/
data class AuditLoggingVo(val id:Int, val user: UserInfoVo, val applyTime: Long, val manager: ManagerInfoVo?,
val acceptTime:Long?, val cause:String?, val result:Boolean?,
val auditTime:Long?, val nextAudit: AuditLoggingVo?)
/**
* 资料受理
*
* @property auditId
* @property clientType
*/
data class AcceptVo(val auditId:Int,
override val clientType: ClientType = ClientType.Background,
override val token: Token
): ClientBaseVo()
/**
*资料审核
*
* @property auditId
* @property result
* @property cause
* @property clientType
*/
data class CheckVo(val auditId:Int, val result:Boolean, val cause:String,
override val clientType: ClientType = ClientType.Background, override val token: Token
): ClientBaseVo()
data class BaseActivityVo(
val activityName:String,
val activityTime: Long,
val activityAddress:String,
val activityDesc:String,
val activitySize:Int
)
/**
* 前台活动申请书
*
* @property activityId
* @property clientType
*/
data class ActivityApplyVo(val activityId:Int?,
val associationId: Int,
val baseActivityVo: BaseActivityVo,
override val token: Token,
override val clientType: ClientType = ClientType.Foreground
): ClientBaseVo()
/**
* 后台活动申请书
*
* @property auditId
* @property activityName
* @property activityTime
* @property activityAddress
* @property activityDesc
* @property activitySize
*/
data class AuditActVo(val auditId:Int, val activityName:String, val activityTime: Long,
val activityAddress:String,
val activityDesc:String, val activitySize:Int,
override val audit: AuditLoggingVo
): AuditVo()