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

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

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