hoj二次开发——增加fps格式导入答案功能
原文链接:hoj二次开发——增加fps格式导入答案功能 – 每天进步一点点
修改hoj的时候发现fps格式导入的时候,无法导入答案。后台代码看了看没有解析solution的代码。
注:代码在后续文章里,修改完功能后更新代码。
本文简单介绍一下,后台增加解析fps格式标签的功能。
首先,增加一个表,用来存储答案。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for code_answer
-- ----------------------------
DROP TABLE IF EXISTS `code_answer`;
CREATE TABLE `code_answer` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`pid` bigint(20) NULL DEFAULT NULL COMMENT '题目id',
`code` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '答案代码',
`type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '代码类型',
`gmt_create` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`gmt_modified` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2302 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
在下面路径 创建实体类:src/main/java/top/hcode/hoj/pojo/entity/problem/CodeAnswer.java
package top.hcode.hoj.pojo.entity.problem;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="CodeAnswer", description="")
public class CodeAnswer {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "题目id")
private Long pid;
@ApiModelProperty(value = "代码")
private String code;
@ApiModelProperty(value = "代码类型")
private String type;
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
在ProblemDTO中增加一个 答案列表。List<CodeAnswer>
找到导入fps接口位置:src/main/java/top/hcode/hoj/manager/file/ImportFpsProblemManager.java
这个地方参考codeTemplate就行。
然后在前台实现页面效果:
对应修改后,实现了导入、删除、新增功能。