EvaluateObjectServiceImpl.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.xjrsoft.module.evaluate.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import com.github.yulichang.base.MPJBaseServiceImpl;
  4. import com.xjrsoft.common.enums.DeleteMark;
  5. import com.xjrsoft.common.enums.EnabledMark;
  6. import com.xjrsoft.common.exception.MyException;
  7. import com.xjrsoft.module.evaluate.dto.AddEvaluateExecuterDto;
  8. import com.xjrsoft.module.evaluate.dto.AddEvaluateObjectDto;
  9. import com.xjrsoft.module.evaluate.dto.EvaluateObjectListDto;
  10. import com.xjrsoft.module.evaluate.dto.SaveEvaluateObjectDto;
  11. import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
  12. import com.xjrsoft.module.evaluate.entity.EvaluateManage;
  13. import com.xjrsoft.module.evaluate.entity.EvaluateObject;
  14. import com.xjrsoft.module.evaluate.mapper.EvaluateExecuterMapper;
  15. import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
  16. import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
  17. import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
  18. import com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo;
  19. import com.xjrsoft.module.evaluate.vo.EvaluateObjectListVo;
  20. import lombok.AllArgsConstructor;
  21. import org.springframework.stereotype.Service;
  22. import java.util.ArrayList;
  23. import java.util.Date;
  24. import java.util.List;
  25. import java.util.Random;
  26. /**
  27. * @title: 评价管理
  28. * @Author dzx
  29. * @Date: 2024-01-16
  30. * @Version 1.0
  31. */
  32. @Service
  33. @AllArgsConstructor
  34. public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObjectMapper, EvaluateObject> implements IEvaluateObjectService {
  35. private final EvaluateManageMapper evaluateManageMapper;
  36. private final EvaluateObjectMapper evaluateObjectMapper;
  37. private final EvaluateExecuterMapper evaluateExecuterMapper;
  38. @Override
  39. public List<EvaluateObjectListVo> getObjectList(Long id) {
  40. List<EvaluateObjectListVo> objectList = evaluateObjectMapper.getObjectList(id);
  41. List<EvaluateExecuterVo> allExecuterList = evaluateObjectMapper.getExecuterList(id);
  42. for (EvaluateObjectListVo objectVo : objectList) {
  43. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  44. for (EvaluateExecuterVo executerVo : allExecuterList) {
  45. if(objectVo.getId().equals(executerVo.getEvaluateObjectId())){
  46. executerList.add(executerVo);
  47. }
  48. }
  49. objectVo.setExecuterCount(executerList.size());
  50. objectVo.setExecuterList(executerList);
  51. }
  52. return objectList;
  53. }
  54. @Override
  55. public Boolean save(SaveEvaluateObjectDto dto) {
  56. EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
  57. if(manage == null){
  58. throw new MyException("未查询到信息,evaluateManageId不正确");
  59. }
  60. Date createDate = new Date();
  61. long createUserId = StpUtil.getLoginIdAsLong();
  62. for (AddEvaluateObjectDto objectDto : dto.getObjectList()) {
  63. EvaluateObject evaluateObject = new EvaluateObject();
  64. evaluateObject.setObjectId(Long.parseLong(objectDto.getObjectId()));
  65. evaluateObject.setEvaluateManageId(Long.parseLong(dto.getEvaluateManageId()));
  66. evaluateObject.setDeleteMark(DeleteMark.NODELETE.getCode());
  67. evaluateObject.setCreateDate(createDate);
  68. evaluateObject.setCreateUserId(createUserId);
  69. evaluateObject.setEnabledMark(EnabledMark.ENABLED.getCode());
  70. evaluateObject.setBaseGradeId(Long.parseLong(objectDto.getGradeId()));
  71. evaluateObjectMapper.insert(evaluateObject);
  72. for (AddEvaluateExecuterDto executerDto : objectDto.getExecuterList()) {
  73. EvaluateExecuter executer = new EvaluateExecuter();
  74. executer.setCreateDate(createDate);
  75. executer.setCreateUserId(createUserId);
  76. executer.setEvaluateManageId(Long.parseLong(dto.getEvaluateManageId()));
  77. executer.setEvaluateObjectId(evaluateObject.getId());
  78. executer.setUserId(Long.parseLong(executerDto.getExecuterId()));
  79. executer.setStatus(0);
  80. evaluateExecuterMapper.insert(executer);
  81. }
  82. }
  83. return true;
  84. }
  85. @Override
  86. public List<EvaluateObjectListVo> getNewObjectList(EvaluateObjectListDto dto) {
  87. List<EvaluateObjectListVo> newObjectList = evaluateObjectMapper.getNewObjectList(dto);
  88. List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
  89. for (EvaluateObjectListVo objectListVo : newObjectList) {
  90. List<EvaluateExecuterVo> dataList = new ArrayList<>();
  91. for (EvaluateExecuterVo executerVo : newExecuterList) {
  92. if(!executerVo.getClassId().equals(objectListVo.getClassId())){
  93. continue;
  94. }
  95. dataList.add(executerVo);
  96. }
  97. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  98. if("random15".equals(dto.getExecuterCount()) && dataList.size() > 0){
  99. List<Integer> randomList = new ArrayList<>();
  100. Random random = new Random();
  101. while(randomList.size() < 15){
  102. int nextInt = random.nextInt(dataList.size());
  103. if(!randomList.contains(nextInt) && nextInt >= 0){
  104. randomList.add(nextInt);
  105. }
  106. }
  107. for (Integer i : randomList) {
  108. executerList.add(dataList.get(i));
  109. }
  110. }else{
  111. executerList.addAll(dataList);
  112. }
  113. objectListVo.setExecuterList(executerList);
  114. }
  115. return newObjectList;
  116. }
  117. }