|
@@ -27,9 +27,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Base64;
|
|
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
import java.util.Comparator;
|
|
import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
@@ -55,9 +53,6 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
@Override
|
|
@Override
|
|
|
public MainExamEvaluationVo queryById(Long id) {
|
|
public MainExamEvaluationVo queryById(Long id) {
|
|
|
MainExamEvaluationVo vo = baseMapper.selectVoByIdWithImages(id);
|
|
MainExamEvaluationVo vo = baseMapper.selectVoByIdWithImages(id);
|
|
|
- if (vo != null) {
|
|
|
|
|
- encodeDetailFieldInVo(vo);
|
|
|
|
|
- }
|
|
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -65,7 +60,6 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
public TableDataInfo<MainExamEvaluationVo> queryPageList(MainExamEvaluationBo bo, PageQuery pageQuery) {
|
|
public TableDataInfo<MainExamEvaluationVo> queryPageList(MainExamEvaluationBo bo, PageQuery pageQuery) {
|
|
|
QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
Page<MainExamEvaluationVo> result = baseMapper.selectVoPageWithImages(pageQuery.build(), lqw);
|
|
Page<MainExamEvaluationVo> result = baseMapper.selectVoPageWithImages(pageQuery.build(), lqw);
|
|
|
- result.getRecords().forEach(this::encodeDetailFieldInVo);
|
|
|
|
|
return TableDataInfo.build(result);
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -73,7 +67,6 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
public List<MainExamEvaluationVo> queryList(MainExamEvaluationBo bo) {
|
|
public List<MainExamEvaluationVo> queryList(MainExamEvaluationBo bo) {
|
|
|
QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
QueryWrapper<MainExamEvaluation> lqw = buildQueryWrapper(bo);
|
|
|
List<MainExamEvaluationVo> list = baseMapper.selectVoList(lqw);
|
|
List<MainExamEvaluationVo> list = baseMapper.selectVoList(lqw);
|
|
|
- list.forEach(this::encodeDetailFieldInVo);
|
|
|
|
|
return list;
|
|
return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -127,7 +120,6 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean insertByBo(MainExamEvaluationBo bo) {
|
|
public Boolean insertByBo(MainExamEvaluationBo bo) {
|
|
|
- decodeDetailFieldInBo(bo);
|
|
|
|
|
MainExamEvaluation add = BeanUtil.toBean(bo, MainExamEvaluation.class);
|
|
MainExamEvaluation add = BeanUtil.toBean(bo, MainExamEvaluation.class);
|
|
|
if (StringUtils.isBlank(add.getTenantId()) && add.getPositionId() != null) {
|
|
if (StringUtils.isBlank(add.getTenantId()) && add.getPositionId() != null) {
|
|
|
MainPosition position = mainPositionMapper.selectById(add.getPositionId());
|
|
MainPosition position = mainPositionMapper.selectById(add.getPositionId());
|
|
@@ -148,7 +140,6 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean updateByBo(MainExamEvaluationBo bo) {
|
|
public Boolean updateByBo(MainExamEvaluationBo bo) {
|
|
|
- decodeDetailFieldInBo(bo);
|
|
|
|
|
MainExamEvaluation update = BeanUtil.toBean(bo, MainExamEvaluation.class);
|
|
MainExamEvaluation update = BeanUtil.toBean(bo, MainExamEvaluation.class);
|
|
|
validEntityBeforeSave(update);
|
|
validEntityBeforeSave(update);
|
|
|
|
|
|
|
@@ -432,28 +423,4 @@ public class MainExamEvaluationServiceImpl implements IMainExamEvaluationService
|
|
|
}
|
|
}
|
|
|
return tenantId;
|
|
return tenantId;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- private void decodeDetailFieldInBo(MainExamEvaluationBo bo) {
|
|
|
|
|
- if (StringUtils.isNotBlank(bo.getDetail())) {
|
|
|
|
|
- try {
|
|
|
|
|
- // 现在的逻辑:前端强制 Base64 编码,后端强制解码,不再猜测
|
|
|
|
|
- String decoded = new String(Base64.getDecoder().decode(bo.getDetail()), StandardCharsets.UTF_8);
|
|
|
|
|
- bo.setDetail(decoded);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- // 如果解码失败,说明传来的不是 Base64(可能是旧数据或异常),记录日志并保持原样
|
|
|
|
|
- log.error("详情字段解码异常,内容可能是原始 HTML。内容长度: {}", bo.getDetail().length());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void encodeDetailFieldInVo(MainExamEvaluationVo vo) {
|
|
|
|
|
- if (StringUtils.isNotBlank(vo.getDetail())) {
|
|
|
|
|
- try {
|
|
|
|
|
- String encoded = Base64.getEncoder().encodeToString(vo.getDetail().getBytes(StandardCharsets.UTF_8));
|
|
|
|
|
- vo.setDetail(encoded);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.warn("详情字段Base64编码失败,使用原始值", e);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|