nickchange
2023-10-27 0f638db757941ab42466286a8ff5d0532dc59e10
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java
@@ -7,6 +7,7 @@
import com.dsh.competition.entity.UserCompetition;
import com.dsh.competition.feignclient.account.StudentClient;
import com.dsh.competition.feignclient.account.model.Student;
import com.dsh.competition.feignclient.account.model.TStudent;
import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
import com.dsh.competition.feignclient.model.CompetitionUser;
import com.dsh.competition.mapper.ParticipantMapper;
@@ -23,9 +24,7 @@
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * @author zhibing.pu
@@ -80,6 +79,9 @@
    }
    /**
     * 获取参赛人员列表
     * @param uid
@@ -88,9 +90,39 @@
     */
    @Override
    public List<ParticipantVo> queryParticipantList(Integer uid) throws Exception {
        //拿到学员列表
        List<TStudent> tStudents = studentClient.queryStudentList(uid);
        //利用HashMap去重身份证
        LinkedHashMap<String,ParticipantVo> linkedHashMap =new LinkedHashMap<>();
        SimpleDateFormat sdf_year = new SimpleDateFormat("yyyy");
        for (TStudent tStudent : tStudents) {
            ParticipantVo participantVo = new ParticipantVo();
            participantVo.setId(tStudent.getId());
            participantVo.setName(tStudent.getName());
            participantVo.setIdcard(tStudent.getIdCard());
            Integer age = Integer.valueOf(sdf_year.format(new Date())) - Integer.valueOf(sdf_year.format(tStudent.getBirthday()));
            participantVo.setAge(age);
            Integer integer = coursePackagePaymentClient.queryResidueClassHour(tStudent.getId());
            participantVo.setResidueClassHour(integer);
            participantVo.setPhone(tStudent.getPhone());
            participantVo.setHeight(tStudent.getHeight().intValue());
            participantVo.setWeight(tStudent.getWeight());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(null != tStudent.getBirthday()){
                String format = sdf.format(tStudent.getBirthday());
                participantVo.setBirthday(format);
            }
            participantVo.setGender(tStudent.getSex());
            participantVo.setIsStudent(1);
            linkedHashMap.put(tStudent.getIdCard(),participantVo);
        }
        //查出临时表里的数据,也去重
        List<Participant> list = this.list(new QueryWrapper<Participant>().eq("appUserId", uid).eq("state", 1));
        List<ParticipantVo> listVo = new ArrayList<>();
        SimpleDateFormat sdf_year = new SimpleDateFormat("yyyy");
        for (Participant participant : list) {
            ParticipantVo participantVo = new ParticipantVo();
            participantVo.setId(participant.getId());
@@ -98,10 +130,16 @@
            participantVo.setIdcard(participant.getIdcard());
            Integer age = Integer.valueOf(sdf_year.format(new Date())) - Integer.valueOf(sdf_year.format(participant.getBirthday()));
            participantVo.setAge(age);
            Student student = studentClient.queryStudentByPhone(participant.getPhone());
            Student student = studentClient.queryStudentByPhone(participant.getPhone()==null?"0":participant.getPhone());
            //设为不是学员
            participantVo.setIsStudent(0);
            if(null != student){
                Integer integer = coursePackagePaymentClient.queryResidueClassHour(student.getId());
                participantVo.setResidueClassHour(integer);
                participantVo.setIsStudent(1);
            }else{
                participantVo.setResidueClassHour(0);
            }
@@ -114,9 +152,18 @@
                participantVo.setBirthday(format);
            }
            participantVo.setGender(participant.getGender());
            linkedHashMap.put(participant.getIdcard(),participantVo);
            listVo.add(participantVo);
        }
        return listVo;
        List<ParticipantVo> listVo1 = new ArrayList<>(linkedHashMap.values());
        return listVo1;
    }