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就行。

然后在前台实现页面效果:

对应修改后,实现了导入、删除、新增功能。

posted on 2025-03-20 20:11  longkui  阅读(54)  评论(0)    收藏  举报

导航