无关风月
2024-07-11 eb6b6dbb35a9f029e0b7d269773685c19fd40976
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java
@@ -4,9 +4,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.competition.entity.Participant;
import com.dsh.competition.entity.PaymentCompetition;
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;
@@ -15,17 +17,20 @@
import com.dsh.competition.model.ParticipantVo;
import com.dsh.competition.model.SaveParticipant;
import com.dsh.competition.service.IParticipantService;
import com.dsh.competition.service.IPaymentCompetitionService;
import com.dsh.competition.service.UserCompetitionService;
import com.dsh.competition.util.CodeGenerateUtils;
import com.dsh.competition.util.JuHeUtil;
import com.dsh.competition.util.ResultUtil;
import com.dsh.competition.util.ToolUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author zhibing.pu
@@ -40,12 +45,16 @@
    @Resource
    private StudentClient studentClient;
    @Autowired
    private UserCompetitionService userCompetitionService;
    @Autowired
    private IPaymentCompetitionService paymentCompetitionService;
    /**
     * 添加参赛人员信息
     *
     * @param uid
     * @param addParticipant
     * @return
@@ -54,12 +63,12 @@
    @Override
    public ResultUtil addParticipant(Integer uid, AddParticipant addParticipant) throws Exception {
        Participant one = this.getOne(new QueryWrapper<Participant>().eq("appUserId", uid).eq("phone", addParticipant.getPhone()).eq("state", 1));
        if(null != one){
        if (null != one) {
            return ResultUtil.error("电话号码重复");
        }
        if(ToolUtil.isNotEmpty(addParticipant.getName()) && ToolUtil.isNotEmpty(addParticipant.getIdcard())){
        if (ToolUtil.isNotEmpty(addParticipant.getName()) && ToolUtil.isNotEmpty(addParticipant.getIdcard())) {
            Boolean aBoolean = JuHeUtil.idcardAuthentication(addParticipant.getIdcard(), addParticipant.getName());
            if(!aBoolean){
            if (!aBoolean) {
                return ResultUtil.error("身份证和姓名不匹配");
            }
        }
@@ -68,10 +77,13 @@
        BeanUtils.copyProperties(addParticipant, participant);
        participant.setHeight(Double.valueOf(addParticipant.getHeight()).intValue());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        if(ToolUtil.isNotEmpty(addParticipant.getBirthday())){
        if (ToolUtil.isNotEmpty(addParticipant.getBirthday())) {
            Date parse = sdf.parse(addParticipant.getBirthday());
            participant.setBirthday(parse);
        }
        String s = CodeGenerateUtils.generateOrderSn();
        String substring = s.substring(1);
        participant.setId(Integer.valueOf(substring));
        participant.setAppUserId(uid);
        participant.setState(1);
        participant.setInsertTime(new Date());
@@ -82,15 +94,26 @@
    /**
     * 获取参赛人员列表
     *
     * @param uid
     * @return
     * @throws Exception
     */
    @Override
    public List<ParticipantVo> queryParticipantList(Integer uid) throws Exception {
        //拿到学员列表
        List<TStudent> tStudents = studentClient.queryStudentList(uid);
        List<ParticipantVo> listVo1 = new ArrayList<>();
        //利用HashMap去重身份证
        LinkedHashMap<String, ParticipantVo> linkedHashMap = new LinkedHashMap<>();
        SimpleDateFormat sdf_year = new SimpleDateFormat("yyyy");
        //查出临时表里的数据,也去重
        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,30 +121,77 @@
            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());
            if(null != student){
            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);
            }else{
                participantVo.setIsStudent(1);
            } else {
                participantVo.setResidueClassHour(0);
            }
            participantVo.setPhone(participant.getPhone());
            participantVo.setHeight(participant.getHeight());
            participantVo.setWeight(participant.getWeight());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(null != participant.getBirthday()){
            if (null != participant.getBirthday()) {
                String format = sdf.format(participant.getBirthday());
                participantVo.setBirthday(format);
            }
            participantVo.setGender(participant.getGender());
            listVo.add(participantVo);
            if (participant.getIdcard() == null || participant.getIdcard().isEmpty()) {
                listVo1.add(participantVo);
                continue;
            }
            linkedHashMap.put(participant.getIdcard(), participantVo);
//            listVo.add(participantVo);
        }
        return listVo;
        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);
            if (tStudent.getIdCard() == null || tStudent.getIdCard().isEmpty()) {
                listVo1.add(participantVo);
                continue;
            }
            linkedHashMap.put(tStudent.getIdCard(), participantVo);
        }
        listVo1.addAll(linkedHashMap.values());
//        List<ParticipantVo> listVo1 = new ArrayList<>(linkedHashMap.values());
        return listVo1;
    }
    /**
     * 修改参赛人员信息
     *
     * @param editParticipant
     * @return
     * @throws Exception
@@ -129,12 +199,12 @@
    @Override
    public ResultUtil editParticipant(Integer uid, EditParticipant editParticipant) throws Exception {
        Participant one = this.getOne(new QueryWrapper<Participant>().eq("appUserId", uid).eq("phone", editParticipant.getPhone()).eq("state", 1));
        if(null != one && one.getId().compareTo(editParticipant.getId()) != 0){
        if (null != one && one.getId().compareTo(editParticipant.getId()) != 0) {
            return ResultUtil.error("电话号码重复");
        }
        if(ToolUtil.isNotEmpty(editParticipant.getName()) && ToolUtil.isNotEmpty(editParticipant.getIdcard())){
        if (ToolUtil.isNotEmpty(editParticipant.getName()) && ToolUtil.isNotEmpty(editParticipant.getIdcard())) {
            Boolean aBoolean = JuHeUtil.idcardAuthentication(editParticipant.getIdcard(), editParticipant.getName());
            if(!aBoolean){
            if (!aBoolean) {
                return ResultUtil.error("身份证和姓名不匹配");
            }
        }
@@ -145,7 +215,7 @@
        participant.setGender(editParticipant.getGender());
        participant.setIdcard(editParticipant.getIdcard());
        participant.setName(editParticipant.getName());
        if(ToolUtil.isNotEmpty(editParticipant.getBirthday())){
        if (ToolUtil.isNotEmpty(editParticipant.getBirthday())) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            participant.setBirthday(sdf.parse(editParticipant.getBirthday()));
        }
@@ -156,6 +226,7 @@
    /**
     * 删除参赛人员信息
     *
     * @param id
     * @return
     * @throws Exception
@@ -172,38 +243,76 @@
    @Override
    public void saveParticipant(SaveParticipant saveParticipant) throws Exception {
        Participant one = this.getOne(new QueryWrapper<Participant>().eq("appUserId", saveParticipant.getAppUserId()).eq("phone", saveParticipant.getPhone()).eq("state", 1));
        if(null != one){
            if(ToolUtil.isNotEmpty(saveParticipant.getName())){
        if (null != one) {
            if (ToolUtil.isNotEmpty(saveParticipant.getName())) {
                one.setName(saveParticipant.getName());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getBirthday())){
            if (ToolUtil.isNotEmpty(saveParticipant.getBirthday())) {
                one.setBirthday(saveParticipant.getBirthday());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getGender())){
            if (ToolUtil.isNotEmpty(saveParticipant.getGender())) {
                one.setGender(saveParticipant.getGender());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getHeight())){
            if (ToolUtil.isNotEmpty(saveParticipant.getHeight())) {
                one.setHeight(saveParticipant.getHeight());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getWeight())){
            if (ToolUtil.isNotEmpty(saveParticipant.getWeight())) {
                one.setWeight(saveParticipant.getWeight());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getPhone())){
            if (ToolUtil.isNotEmpty(saveParticipant.getPhone())) {
                one.setPhone(saveParticipant.getPhone());
            }
            if(ToolUtil.isNotEmpty(saveParticipant.getIdcard())){
            if (ToolUtil.isNotEmpty(saveParticipant.getIdcard())) {
                one.setIdcard(saveParticipant.getIdcard());
            }
            this.updateById(one);
        }else{
        } else {
            one = new Participant();
            BeanUtils.copyProperties(saveParticipant, one);
            one.setInsertTime(new Date());
            this.save(one);
        }
    }
    @Override
    public Page<CompetitionUser> getPeopleFromId(Page<UserCompetition> participantPage, Integer id, Integer state) {
        return this.baseMapper.getPeopleFromId(participantPage,id,state);
        return this.baseMapper.getPeopleFromId(participantPage, id, state);
    }
    @Override
    public  Page<CompetitionUser> getPeopleFromId1(long offset, long limit, Integer id, Integer state) {
        List<UserCompetition> peopleFromId1 = this.baseMapper.getPeopleFromId1(id, state, offset, limit);
        int count = this.baseMapper.getPeopleFromIdCount(id, state);
        List<CompetitionUser> list = new ArrayList<>();
        for (UserCompetition userCompetition : peopleFromId1) {
            Long paymentCompetitionId = userCompetition.getPaymentCompetitionId();
            PaymentCompetition paymentCompetition = paymentCompetitionService.getById(paymentCompetitionId);
            Participant participant = this.getById(userCompetition.getParticipantId());
            CompetitionUser competitionUser = new CompetitionUser();
            if(null != participant){
                competitionUser.setName(participant.getName());
                competitionUser.setSex(participant.getGender());
                competitionUser.setPhone(participant.getPhone());
                competitionUser.setIdCard(participant.getIdcard());
            }else{
                TStudent tStudent = studentClient.queryById(userCompetition.getParticipantId());
                competitionUser.setName(tStudent.getName());
                competitionUser.setSex(tStudent.getSex());
                competitionUser.setPhone(tStudent.getPhone());
                competitionUser.setIdCard(tStudent.getIdCard());
            }
            if(null != paymentCompetition){
                competitionUser.setState(paymentCompetition.getPayStatus());
            }
            list.add(competitionUser);
        }
        Page<CompetitionUser> page = new Page<>();
        page.setRecords(list);
        page.setTotal(count);
        return page;
    }
    @Override
    public List<CompetitionUser> getPeoples(Integer id, Integer state) {
        return this.baseMapper.getPeoples(id, state);
    }
}