From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 11 七月 2024 10:47:51 +0800 Subject: [PATCH] 玩湃微信商户认证代码 --- cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java | 303 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 303 insertions(+), 0 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 d33d306..b8b31e8 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,10 +1,36 @@ 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.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; +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.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.*; +import java.util.stream.Collectors; /** * @author zhibing.pu @@ -12,4 +38,281 @@ */ @Service public class ParticipantServiceImpl extends ServiceImpl<ParticipantMapper, Participant> implements IParticipantService { + + @Resource + private CoursePackagePaymentClient coursePackagePaymentClient; + + @Resource + private StudentClient studentClient; + + @Autowired + private UserCompetitionService userCompetitionService; + + @Autowired + private IPaymentCompetitionService paymentCompetitionService; + + + /** + * 添加参赛人员信息 + * + * @param uid + * @param addParticipant + * @return + * @throws Exception + */ + @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) { + 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()); + this.save(participant); + return ResultUtil.success(); + } + + + /** + * 获取参赛人员列表 + * + * @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<>(); + for (Participant participant : list) { + ParticipantVo participantVo = new ParticipantVo(); + participantVo.setId(participant.getId()); + participantVo.setName(participant.getName()); + 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() == 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); + + } + + 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 + */ + @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) { + 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(); + } + + + /** + * 删除参赛人员信息 + * + * @param id + * @return + * @throws Exception + */ + @Override + public ResultUtil delParticipant(Integer id) throws Exception { + Participant participant = this.getById(id); + participant.setState(3); + this.updateById(participant); + return ResultUtil.success(); + } + + + @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())) { + one.setName(saveParticipant.getName()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getBirthday())) { + one.setBirthday(saveParticipant.getBirthday()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getGender())) { + one.setGender(saveParticipant.getGender()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getHeight())) { + one.setHeight(saveParticipant.getHeight()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getWeight())) { + one.setWeight(saveParticipant.getWeight()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getPhone())) { + one.setPhone(saveParticipant.getPhone()); + } + if (ToolUtil.isNotEmpty(saveParticipant.getIdcard())) { + one.setIdcard(saveParticipant.getIdcard()); + } + this.updateById(one); + } 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); + } + @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); + } } -- Gitblit v1.7.1