From acad524bfb7f376c09ff8e6600fab207780156e1 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期四, 23 十一月 2023 18:46:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java | 146 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 140 insertions(+), 6 deletions(-) diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java index eab7639..2d1d64e 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java @@ -1,23 +1,31 @@ package com.dsh.competition.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.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; import com.dsh.competition.model.AddParticipant; import com.dsh.competition.model.EditParticipant; import com.dsh.competition.model.ParticipantVo; import com.dsh.competition.model.SaveParticipant; import com.dsh.competition.service.IParticipantService; +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.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.*; /** * @author zhibing.pu @@ -25,6 +33,15 @@ */ @Service public class ParticipantServiceImpl extends ServiceImpl<ParticipantMapper, Participant> implements IParticipantService { + + @Resource + private CoursePackagePaymentClient coursePackagePaymentClient; + + @Resource + private StudentClient studentClient; + + + /** @@ -40,8 +57,24 @@ if(null != one){ return ResultUtil.error("电话号码重复"); } + if(ToolUtil.isNotEmpty(addParticipant.getName()) && ToolUtil.isNotEmpty(addParticipant.getIdcard())){ + Boolean aBoolean = JuHeUtil.idcardAuthentication(addParticipant.getIdcard(), addParticipant.getName()); + if(!aBoolean){ + return ResultUtil.error("身份证和姓名不匹配"); + } + } + Participant participant = new Participant(); BeanUtils.copyProperties(addParticipant, participant); + participant.setHeight(Double.valueOf(addParticipant.getHeight()).intValue()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + 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()); @@ -50,6 +83,9 @@ } + + + /** * 获取参赛人员列表 * @param uid @@ -58,9 +94,21 @@ */ @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()); @@ -68,9 +116,72 @@ participantVo.setIdcard(participant.getIdcard()); Integer age = Integer.valueOf(sdf_year.format(new Date())) - Integer.valueOf(sdf_year.format(participant.getBirthday())); participantVo.setAge(age); - listVo.add(participantVo); + 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); + } + participantVo.setPhone(participant.getPhone()); + participantVo.setHeight(participant.getHeight()); + participantVo.setWeight(participant.getWeight()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if(null != participant.getBirthday()){ + String format = sdf.format(participant.getBirthday()); + participantVo.setBirthday(format); + } + participantVo.setGender(participant.getGender()); + 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; } @@ -86,10 +197,23 @@ if(null != one && one.getId().compareTo(editParticipant.getId()) != 0){ return ResultUtil.error("电话号码重复"); } + if(ToolUtil.isNotEmpty(editParticipant.getName()) && ToolUtil.isNotEmpty(editParticipant.getIdcard())){ + Boolean aBoolean = JuHeUtil.idcardAuthentication(editParticipant.getIdcard(), editParticipant.getName()); + if(!aBoolean){ + return ResultUtil.error("身份证和姓名不匹配"); + } + } Participant participant = this.getById(editParticipant.getId()); participant.setHeight(editParticipant.getHeight()); participant.setWeight(editParticipant.getWeight()); participant.setPhone(editParticipant.getPhone()); + participant.setGender(editParticipant.getGender()); + participant.setIdcard(editParticipant.getIdcard()); + participant.setName(editParticipant.getName()); + if(ToolUtil.isNotEmpty(editParticipant.getBirthday())){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + participant.setBirthday(sdf.parse(editParticipant.getBirthday())); + } this.updateById(participant); return ResultUtil.success(); } @@ -142,4 +266,14 @@ this.save(one); } } + + @Override + public Page<CompetitionUser> getPeopleFromId(Page<UserCompetition> participantPage, Integer id, Integer state) { + return this.baseMapper.getPeopleFromId(participantPage,id,state); + } + + @Override + public List<CompetitionUser> getPeoples(Integer id, Integer state) { + return this.baseMapper.getPeoples(id,state); + } } -- Gitblit v1.7.1