|
|
@@ -14,6 +14,7 @@ import com.xjrsoft.module.teacher.dto.TeacherAwardDetailPageDto;
|
|
|
import com.xjrsoft.module.teacher.dto.TeacherAwardStatisticsPageDto;
|
|
|
import com.xjrsoft.module.teacher.entity.TeacherAward;
|
|
|
import com.xjrsoft.module.teacher.entity.TeacherAwardItem;
|
|
|
+import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.service.ITeacherAwardItemService;
|
|
|
import com.xjrsoft.module.teacher.service.ITeacherAwardService;
|
|
|
import com.xjrsoft.module.teacher.vo.TeacherAwardDetailPageVo;
|
|
|
@@ -68,58 +69,20 @@ public class TeacherAwardController {
|
|
|
teacherAwardMPJLambdaWrapper
|
|
|
.disableSubLogicDel()
|
|
|
.selectAs(TeacherAwardItem::getIsThesis, TeacherAwardDetailPageVo::getIsThesis)
|
|
|
+ .selectAs(XjrUser::getName, TeacherAwardDetailPageVo::getApplicantUserIdCn)
|
|
|
.select(TeacherAward.class,x -> VoToColumnUtil.fieldsToColumns(TeacherAwardDetailPageVo.class).contains(x.getProperty()))
|
|
|
.leftJoin(TeacherAwardItem.class, TeacherAwardItem::getId, TeacherAward::getTeacherAwardItemId)
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, TeacherAward::getApplicantUserId)
|
|
|
.eq(dto.getApplicantUserId() != null && dto.getApplicantUserId() > 0,TeacherAward::getApplicantUserId, dto.getApplicantUserId())
|
|
|
.eq(dto.getIsThesis() != null,TeacherAwardItem::getIsThesis, dto.getIsThesis())
|
|
|
- .like(dto.getCompetitionName() != null && !dto.getCompetitionName().equals(""),TeacherAward::getCompetitionName, dto.getCompetitionName())
|
|
|
+ .like(dto.getApplicantUserIdCn() != null && dto.getApplicantUserIdCn().equals(""), XjrUser::getName, dto.getApplicantUserIdCn())
|
|
|
+ .like(dto.getWholeCompetitionName() != null && !dto.getWholeCompetitionName().equals(""),TeacherAward::getWholeCompetitionName, dto.getWholeCompetitionName())
|
|
|
+ .eq(TeacherAward::getStatus, 1)
|
|
|
.orderByDesc(TeacherAward::getCreateDate)
|
|
|
;
|
|
|
IPage<TeacherAwardDetailPageVo> page = teacherAwardService.selectJoinListPage(ConventPage.getPage(dto), TeacherAwardDetailPageVo.class, teacherAwardMPJLambdaWrapper);
|
|
|
|
|
|
- //处理父级
|
|
|
- LambdaQueryWrapper<TeacherAwardItem> teacherAwardItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- teacherAwardItemLambdaQueryWrapper
|
|
|
- .orderByDesc(TeacherAwardItem::getId)
|
|
|
- .select(TeacherAwardItem.class,x -> VoToColumnUtil.fieldsToColumns(TeacherAwardItemPageVo.class).contains(x.getProperty()));
|
|
|
- List<TeacherAwardItem> list = teacherAwardItemService.list(teacherAwardItemLambdaQueryWrapper);
|
|
|
- List<TeacherAwardItemVo> itemVos = BeanUtil.copyToList(list, TeacherAwardItemVo.class);
|
|
|
-
|
|
|
- for(TeacherAwardDetailPageVo t : page.getRecords()){
|
|
|
- List<TeacherAwardItemVo> ancestors = findAncestors(itemVos, t.getTeacherAwardItemId());
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- for (int i = 0; i < ancestors.size(); i++) {
|
|
|
- TeacherAwardItemVo teacherAwardItemVo = ancestors.get(i);
|
|
|
- if(teacherAwardItemVo != null && teacherAwardItemVo.getName() != null && !teacherAwardItemVo.getName().equals("")){
|
|
|
- sb.insert(0, ">");
|
|
|
- sb.insert(0, teacherAwardItemVo.getName());
|
|
|
- }
|
|
|
- }
|
|
|
- sb.deleteCharAt(sb.length() - 1);
|
|
|
- t.setWholeCompetitionName(sb.toString());
|
|
|
- }
|
|
|
-
|
|
|
PageOutput<TeacherAwardDetailPageVo> pageOutput = ConventPage.getPageOutput(page, TeacherAwardDetailPageVo.class);
|
|
|
return RT.ok(pageOutput);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private List<TeacherAwardItemVo> findAncestors(List<TeacherAwardItemVo> itemVos, Long targetId) {
|
|
|
- List<TeacherAwardItemVo> ancestors = new ArrayList<>();
|
|
|
- Map<Long, TeacherAwardItemVo> itemMap = itemVos.stream()
|
|
|
- .collect(Collectors.toMap(TeacherAwardItemVo::getId, item -> item));
|
|
|
- findAncestorsHelper(itemMap, targetId, ancestors);
|
|
|
- return ancestors;
|
|
|
- }
|
|
|
-
|
|
|
- private void findAncestorsHelper(Map<Long, TeacherAwardItemVo> itemMap, Long targetId, List<TeacherAwardItemVo> ancestors) {
|
|
|
- if (itemMap.get(targetId) != null) {
|
|
|
- TeacherAwardItemVo teacherAwardItemVo = itemMap.get(targetId);
|
|
|
- ancestors.add(teacherAwardItemVo);
|
|
|
- if(teacherAwardItemVo.getParentId() != null && teacherAwardItemVo.getParentId() > 0){
|
|
|
- findAncestorsHelper(itemMap, teacherAwardItemVo.getParentId(), ancestors);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|