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.
722 lines
16 KiB
722 lines
16 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
|
|
}
|
|
|
|
/**
|
|
* 职务信息
|
|
*
|
|
* @property desc
|
|
* @property level
|
|
*/
|
|
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);
|
|
|
|
|
|
/**
|
|
* 是否是部门部长
|
|
*
|
|
*/
|
|
fun isMinister(): Boolean {
|
|
return minister.contains(this)
|
|
}
|
|
|
|
fun isOfficer(): Boolean {
|
|
return officer.contains(this)
|
|
}
|
|
|
|
}
|
|
|
|
private val minister =
|
|
arrayOf(Duty.SecretaryOfTheMinister, Duty.LiaisonMinister, Duty.PropagandaDepartment)
|
|
private val officer =
|
|
arrayOf(Duty.SecretaryDepartmentOfficer, Duty.PublicityDepartmentOfficer, Duty.LiaisonOfficer)
|
|
|
|
/**
|
|
* 用户信息
|
|
*
|
|
*/
|
|
abstract class OwnInfoVo : PersonInfoVo() {
|
|
abstract val token: Token
|
|
}
|
|
|
|
|
|
/**
|
|
* 管理员个人信息
|
|
*
|
|
* @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()
|
|
|
|
/**
|
|
* 用户个人信息
|
|
*
|
|
* @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()
|
|
|
|
/**
|
|
* 后台用户信息
|
|
*
|
|
* @property duty
|
|
* @property name
|
|
* @property headImg
|
|
* @property desc
|
|
*/
|
|
data class ManagerInfoVo(
|
|
val duty: Duty,
|
|
override val name: String,
|
|
override val headImg: String?,
|
|
override val desc: String
|
|
) : PersonInfoVo()
|
|
|
|
/**
|
|
* 前台用户信息
|
|
*
|
|
* @property name
|
|
* @property headImg
|
|
* @property desc
|
|
*/
|
|
data class UserInfoVo(
|
|
override val name: String, override val headImg: String?,
|
|
override val desc: String
|
|
) :
|
|
PersonInfoVo()
|
|
|
|
data class InfoUpdateVo(val name:String?=null, val desc:String?=null,
|
|
override val token: Token,
|
|
override val clientType: ClientType
|
|
):ClientBaseVo()
|
|
|
|
/**
|
|
* 用户注册信息
|
|
*
|
|
* @property studentId
|
|
* @property name
|
|
*/
|
|
data class UserRegVo(val studentId: String, val name: String)
|
|
|
|
/**
|
|
* TODO
|
|
*
|
|
*/
|
|
sealed class BaseLoginVo {
|
|
abstract val password: String
|
|
abstract val device: String
|
|
abstract val clientType: ClientType
|
|
}
|
|
|
|
open class Token(open val token:String,open val createTime:Long,open val id:Int)
|
|
|
|
abstract 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 ManagerLoginVo(
|
|
val account: String,
|
|
override val password: String, override val device: String
|
|
) : BaseLoginVo() {
|
|
override val clientType: ClientType = ClientType.Background
|
|
}
|
|
|
|
|
|
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,
|
|
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()
|
|
|
|
/**
|
|
* 交流区
|
|
*
|
|
* @property user
|
|
* @property createTime
|
|
* @property content
|
|
*/
|
|
data class BBSVo(val user: UserInfoVo, val createTime: Long, val content: String)
|
|
|
|
/**
|
|
* 发送评论
|
|
*
|
|
* @property content
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class SendBBSVo(val content:String,
|
|
val activityId: Int,
|
|
override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground
|
|
):ClientBaseVo()
|
|
|
|
/**
|
|
* 搜索评论
|
|
*
|
|
* @property activityId
|
|
*/
|
|
data class SearchCommentVo(val activityId: Int)
|
|
|
|
|
|
|
|
data class LeaveMessageFormatVo(val message: String, val user: UserInfoVo)
|
|
|
|
data class OngoingActVo(val name: String)
|
|
|
|
/**
|
|
* 活动质量汇报单
|
|
*
|
|
* @property applyName 申请人
|
|
* @property activityName 活动名称
|
|
* @property merit 优点
|
|
* @property defect 缺点
|
|
* @property score 星级评价
|
|
*/
|
|
data class QualityReportVo(
|
|
val applyName: String,
|
|
val activityName: String,
|
|
val merit: String,
|
|
val defect: String,
|
|
val score: Int
|
|
)
|
|
/**
|
|
* 社团级别
|
|
*
|
|
*/
|
|
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)
|
|
}
|
|
|
|
data class AssociationVo (
|
|
val associationId: Int,
|
|
val name: String,
|
|
val desc: String,
|
|
val logo: String,
|
|
val faculty: AssociationFaculty,
|
|
val level: AssociationLevel?
|
|
)
|
|
|
|
//审核状态
|
|
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
|
|
)
|
|
|
|
/**
|
|
* 通用审核进度
|
|
*
|
|
* @property checkStatus
|
|
* @property applyTime
|
|
* @property firstCause
|
|
* @property lastCause
|
|
* @property result
|
|
*/
|
|
data class AuditCheckVo(
|
|
val checkStatus: CheckStatus,
|
|
val applyTime: Long,
|
|
val firstCause: String,
|
|
val lastCause: String?,
|
|
val result:Boolean
|
|
)
|
|
|
|
//前台社团注册资料
|
|
data class AssociationCheckVo(
|
|
val associationVo: AssociationVo,
|
|
val fileId: Int,
|
|
val auditCheckVo: AuditCheckVo
|
|
)
|
|
|
|
|
|
/**
|
|
* 社团注册资料表单
|
|
*
|
|
* @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 ActivityVo(
|
|
val activityId: Int?=null,
|
|
val activityName: String,
|
|
val activityTime: Long,
|
|
val activityAddress: String,
|
|
val activityDesc: String,
|
|
val activitySize: Int
|
|
)
|
|
|
|
/**
|
|
* 前台活动申请书
|
|
*
|
|
* @property clientType
|
|
*/
|
|
data class ActivityApplyVo(
|
|
val associationId: Int,
|
|
val activityVo: ActivityVo,
|
|
override val token: Token,
|
|
override val clientType: ClientType = ClientType.Foreground
|
|
) : ClientBaseVo()
|
|
|
|
/**
|
|
* 后台活动申请书
|
|
*
|
|
*/
|
|
data class AuditActVo(
|
|
val activityVo: ActivityVo,
|
|
override val audit: AuditLoggingVo
|
|
) : AuditVo()
|
|
|
|
/**
|
|
* 活动申请书审核进度
|
|
*
|
|
* @property activityVo
|
|
* @property auditCheckVo
|
|
*/
|
|
data class ActivityCheckVo(
|
|
val activityVo: ActivityVo,
|
|
val auditCheckVo: AuditCheckVo
|
|
)
|
|
|
|
/**
|
|
* 活动详情
|
|
*/
|
|
data class ActivityDetailVo(
|
|
val associationVo: AssociationVo,
|
|
val activityVo: ActivityVo
|
|
)
|
|
|
|
/**
|
|
* 活动条件搜索
|
|
*
|
|
* @property associationId
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class SearchActivityVo(val associationId: Int, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
/**
|
|
* 活动id搜索
|
|
*
|
|
* @property activityId
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class ShowActivityVo(val activityId:Int, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
|
|
/**
|
|
* 活动照片
|
|
*
|
|
* @property name
|
|
* @property url
|
|
*/
|
|
data class ActivityPhotoVo(
|
|
val name: String,
|
|
val url: String
|
|
)
|
|
|
|
/**
|
|
* 搜索活动照片
|
|
*
|
|
* @property activityId
|
|
*/
|
|
data class SearchActivityPhotoVo(val activityId: Int)
|
|
|
|
const val MAX_SCORE = 5L
|
|
|
|
/**
|
|
* 活动管理
|
|
*
|
|
* @property association
|
|
* @property score
|
|
*/
|
|
data class ManagerActVo(
|
|
val association: AssociationVo,
|
|
val score: Int,
|
|
val activityVo: ActivityVo
|
|
)
|
|
|
|
|
|
|
|
data class AllOfficerVo(
|
|
val secretariat: List<ManagerInfoVo>,
|
|
val propaganda: List<ManagerInfoVo>,
|
|
val publicRelationsDepartment: List<ManagerInfoVo>
|
|
)
|
|
|
|
|
|
/**
|
|
* 换名申请表
|
|
*
|
|
* @property newName 社团新名
|
|
* @property cause 申请理由
|
|
*/
|
|
data class RenameVo(
|
|
val renameId:Int?=null,
|
|
val newName: String,
|
|
val cause: String
|
|
)
|
|
|
|
/**
|
|
* 前台申请换名
|
|
*
|
|
* @property rename
|
|
*/
|
|
data class RenameApplyVo(
|
|
val associationId: Int,
|
|
val rename:RenameVo,
|
|
override val token: Token,
|
|
override val clientType: ClientType = ClientType.Foreground
|
|
):ClientBaseVo()
|
|
|
|
/**
|
|
* 社团命名审核记录
|
|
*
|
|
* @property renameVo
|
|
* @property audit
|
|
*/
|
|
data class AuditRenameVo(
|
|
val associationVo: AssociationVo,
|
|
val renameVo: RenameVo,
|
|
override val audit: AuditLoggingVo
|
|
):AuditVo()
|
|
|
|
/**
|
|
* 重命名审核进度
|
|
*
|
|
* @property renameVo
|
|
* @property auditCheckVo
|
|
*/
|
|
data class RenameCheckVo(
|
|
val renameVo: RenameVo,
|
|
val auditCheckVo: AuditCheckVo
|
|
)
|
|
|
|
/**
|
|
* 主页轮播
|
|
*
|
|
* @property url
|
|
*/
|
|
data class MainActivityPhotoVo(val url:String, val activityVo: ActivityVo,val associationVo: AssociationVo)
|
|
|
|
/**
|
|
* 更新社团
|
|
*
|
|
* @property associationVo
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class UpdateAssociationVo(val associationVo: AssociationVo,
|
|
override val token: Token,
|
|
override val clientType: ClientType
|
|
):ClientBaseVo()
|
|
|
|
data class ManagerDutyVo(val manager: ManagerInfoVo,val people:Int)
|
|
|
|
data class ManagerDutySumVo(val secretariat:ManagerDutyVo,
|
|
val propaganda:ManagerDutyVo,
|
|
val publicRelationsDepartment:ManagerDutyVo)
|
|
|
|
|
|
data class ExamVo(val questionId:Int?=null,val question:String,val optionsA:String,val optionsB:String,val optionsC:String,val optionsD:String,val rightOption:Int)
|
|
|
|
/**
|
|
* 更新题库
|
|
*
|
|
* @property questions
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class AddExamVo(val questions:List<ExamVo>,
|
|
val deleteIds:List<Int>?=null,
|
|
override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground,
|
|
val associationId:Int):ClientBaseVo()
|
|
|
|
data class SearchExamVo(val associationId:Int, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
|
|
data class ApplyAnswerVo(val examVo: ExamVo,val answer:Int)
|
|
|
|
/**
|
|
* 答卷
|
|
*
|
|
* @property answers
|
|
* @property token
|
|
* @property clientType
|
|
*/
|
|
data class AddAnswerVo(val answers:List<ApplyAnswerVo>,
|
|
override val token: Token,
|
|
val associationId: Int,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
|
|
|
|
data class ShowAnswerVo(val joinId:Int, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
/**
|
|
* 申请入团检查
|
|
*/
|
|
data class ApplyAssociationResultVo(val result:Boolean?=null,val hasPaper:Boolean?=null,val associationVo: AssociationVo?=null)
|
|
|
|
/**
|
|
* 申请入团记录
|
|
*
|
|
*/
|
|
data class JoinAssociationVo(val id:Int,val user: UserInfoVo,
|
|
val associationVo: AssociationVo,
|
|
val hasPaper: Boolean,
|
|
val result: Boolean?=null,
|
|
val applyTime: Long,
|
|
val auditTime: Long?=null)
|
|
|
|
|
|
|
|
/**
|
|
* 审核结果
|
|
*
|
|
* @property joinId
|
|
* @property result
|
|
*/
|
|
data class AuditJoinVo(val joinId:Int, val result:Boolean,
|
|
override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground
|
|
):ClientBaseVo()
|
|
|
|
/**
|
|
* 组成申请社团试卷的题库最小题目数量
|
|
*/
|
|
const val QUESTION_MIN_SIZE=5
|
|
|
|
enum class TendencyType(val desc:String){
|
|
Like("点赞"),
|
|
Collect("收藏")
|
|
}
|
|
|
|
data class TendencyVo(val activityId: Int, val type:TendencyType,
|
|
override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground
|
|
):ClientBaseVo()
|
|
|
|
data class CheckTendencyVo(val activityId: Int, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
data class CheckTendencyResVo(val hasLike:Boolean, val hasCollect:Boolean)
|
|
|
|
data class FindTendencyVo(val type:TendencyType, override val token: Token,
|
|
override val clientType: ClientType=ClientType.Foreground):ClientBaseVo()
|
|
|
|
|
|
|