[测评系统]--测评系统核心代码库
wzp
2025-08-01 95eb8a2a75cbeebcb3393d404c1952bd59b8989a
feat: 新增第三方接口访问
7个文件已修改
92 ■■■■■ 已修改文件
src/main/java/com/ots/framework/config/ResourcesConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/framework/config/ShiroConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/system/user/domain/User.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/system/user/mapper/UserMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/system/user/service/IUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/system/user/service/UserServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/project/tool/report/LAQ/chart/LAQTest.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ots/framework/config/ResourcesConfig.java
@@ -1,6 +1,7 @@
package com.ots.framework.config;
import com.ots.framework.interceptor.RepeatSubmitInterceptor;
import com.ots.framework.interceptor.SignatureVerifyInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -17,6 +18,8 @@
    private String indexUrl;
    @Autowired
    private RepeatSubmitInterceptor repeatSubmitInterceptor;
    @Autowired
    private SignatureVerifyInterceptor signatureVerifyInterceptor;
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
@@ -35,6 +38,7 @@
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
        registry.addInterceptor(signatureVerifyInterceptor).addPathPatterns("/**");
    }
    /**
src/main/java/com/ots/framework/config/ShiroConfig.java
@@ -207,6 +207,8 @@
        filterChainDefinitionMap.put("/exam/testMember/shareAdd", "anon");
        filterChainDefinitionMap.put("/exam/testMember/shareInput", "anon");
        filterChainDefinitionMap.put("/exam/testMember/shareUrl", "anon");
        //签名验证,API接口匿名访问
        filterChainDefinitionMap.put("/api/**", "anon");
        
        
        Map<String, Filter> filters = new LinkedHashMap<String, Filter>();
src/main/java/com/ots/project/system/user/domain/User.java
@@ -54,6 +54,9 @@
    
    private String password;
    
    //API密码
    private String apiPassword;
    private String salt;
    
    private String userType;
@@ -76,6 +79,9 @@
    
    @Excel(name = "最后登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
    private Date loginDate;
    //回调地址
    private String callbackUrl;
    
    @Excels({
            @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@@ -235,6 +241,21 @@
    public void setUserType(String userType) {
        this.userType = userType;
    }
    public String getApiPassword() {
        return apiPassword;
    }
    public void setApiPassword(String apiPassword) {
        this.apiPassword = apiPassword;
    }
    public String getCallbackUrl() {
        return callbackUrl;
    }
    public void setCallbackUrl(String callbackUrl) {
        this.callbackUrl = callbackUrl;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@@ -247,11 +268,13 @@
                .append("sex", getSex())
                .append("avatar", getAvatar())
                .append("password", getPassword())
                .append("apiPassword", getApiPassword())
                .append("salt", getSalt())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("loginIp", getLoginIp())
                .append("loginDate", getLoginDate())
                .append("callbackUrl", getCallbackUrl())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
src/main/java/com/ots/project/system/user/mapper/UserMapper.java
@@ -37,4 +37,11 @@
    User checkEmailUnique(String email);
    int updateHintState(@Param("userId")String userId,@Param("type") Integer type);
    /**
     * 根据tokenId查询回调url
     * @param tokenId
     * @return
     */
    String selectCallbackUrlByTokenId(@Param("tokenId") String tokenId);
}
src/main/java/com/ots/project/system/user/service/IUserService.java
@@ -47,4 +47,11 @@
    int changeHintStatus(String userId, Integer type);
    /**
     * 根据tokenId查询回调url
     * @param tokenId
     * @return
     */
    String selectCallbackUrlByTokenId(String tokenId);
}
src/main/java/com/ots/project/system/user/service/UserServiceImpl.java
@@ -325,4 +325,15 @@
        }
        return 0;
    }
    /**
     * 根据tokenId查询回调url
     * @param tokenId
     * @return
     */
    @Override
    public String selectCallbackUrlByTokenId(String tokenId) {
        return userMapper.selectCallbackUrlByTokenId(tokenId);
    }
}
src/main/java/com/ots/project/tool/report/LAQ/chart/LAQTest.java
@@ -1,54 +1,24 @@
package com.ots.project.tool.report.LAQ.chart;
import com.alibaba.fastjson.JSON;
import com.aspose.words.Chart;
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.Paragraph;
import com.microsoft.schemas.vml.CTTextbox;
import com.ots.common.utils.StringUtils;
import com.ots.common.utils.poi.ExcelUtil;
import com.ots.common.utils.poi.WordUtil;
import com.ots.project.tool.report.LAQ.LAQReport;
import com.ots.project.tool.report.LAQ.LAQTemplate;
import com.ots.project.tool.report.MAQ.base.RowData;
import com.ots.project.tool.report.MAQ.base.SeriesData;
import javafx.scene.chart.ScatterChart;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ooxml.POIXMLDocument;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.Units;
import org.apache.poi.xddf.usermodel.chart.AxisPosition;
import org.apache.poi.xddf.usermodel.chart.XDDFCategoryAxis;
import org.apache.poi.xddf.usermodel.chart.XDDFChartData;
import org.apache.poi.xddf.usermodel.chart.XDDFValueAxis;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.usermodel.XWPFChart;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.chart.*;
import org.openxmlformats.schemas.officeDocument.x2006.math.CTText;
import org.openxmlformats.schemas.officeDocument.x2006.math.CTUnSignedInteger;
import org.openxmlformats.schemas.officeDocument.x2006.math.impl.CTUnSignedIntegerImpl;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTxbxContent;
import java.awt.*;
import java.io.*;
import java.math.BigInteger;
import java.util.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;