| | |
| | | package com.dsh.communityWorldCup.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.communityWorldCup.entity.WorldCup; |
| | | import com.dsh.communityWorldCup.entity.WorldCupPayment; |
| | | import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; |
| | | import com.dsh.communityWorldCup.feignclient.account.StudentClient; |
| | | import com.dsh.communityWorldCup.feignclient.account.model.TStudent; |
| | | import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; |
| | | import com.dsh.communityWorldCup.feignclient.competition.model.Participant; |
| | | import com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper; |
| | | import com.dsh.communityWorldCup.model.MyWorldCupInfo; |
| | | import com.dsh.communityWorldCup.model.MyWorldCupList; |
| | | import com.dsh.communityWorldCup.model.WorldCupListVo; |
| | | import com.dsh.communityWorldCup.model.*; |
| | | import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService; |
| | | import com.dsh.communityWorldCup.service.IWorldCupPaymentService; |
| | | import com.dsh.communityWorldCup.service.IWorldCupService; |
| | | 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 |
| | |
| | | */ |
| | | @Service |
| | | public class WorldCupPaymentParticipantServiceImpl extends ServiceImpl<WorldCupPaymentParticipantMapper, WorldCupPaymentParticipant> implements IWorldCupPaymentParticipantService { |
| | | |
| | | @Autowired |
| | | private IWorldCupPaymentService worldCupPaymentService; |
| | | |
| | | @Resource |
| | | private StudentClient studentClient; |
| | | |
| | | @Resource |
| | | private ParticipantClient participantClient; |
| | | |
| | | @Autowired |
| | | private IWorldCupService worldCupService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | public WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Integer participantId) { |
| | | return this.baseMapper.getWorldCupPaymentParticipant(worldCupId, participantType, participantId); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取社区世界杯我的报名列表 |
| | | * @param myWorldCupList |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<WorldCupListVo> getMyWorldCupList(MyWorldCupList myWorldCupList) { |
| | | int pageNo = (myWorldCupList.getPageNo() - 1) * myWorldCupList.getPageSize(); |
| | | myWorldCupList.setPageNo(pageNo); |
| | | myWorldCupList.setIsStudent(myWorldCupList.getIsStudent() == 0 ? 2 : 1); |
| | | return this.baseMapper.getMyWorldCupList(myWorldCupList); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取已报名的世界杯详情 |
| | | * @param id 社区世界杯支付对应的参与者记录id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MyWorldCupInfo getMyWorldCupInfo(String id) { |
| | | WorldCupPaymentParticipant worldCupPaymentParticipant = this.getById(id); |
| | | Integer worldCupId = worldCupPaymentParticipant.getWorldCupId(); |
| | | WorldCupPayment worldCupPayment = worldCupPaymentService.getById(worldCupPaymentParticipant.getWorldCupPaymentId()); |
| | | WorldCupInfo worldCupInfo = worldCupService.getWorldCupInfo(worldCupId, null, null); |
| | | WorldCup worldCup = worldCupService.getById(worldCupId); |
| | | MyWorldCupInfo myWorldCupInfo = new MyWorldCupInfo(); |
| | | BeanUtils.copyProperties(worldCupInfo, myWorldCupInfo); |
| | | myWorldCupInfo.setUnitPrice(worldCupPayment.getUnitPrice().doubleValue()); |
| | | myWorldCupInfo.setExpense(worldCupPayment.getAmount().doubleValue()); |
| | | myWorldCupInfo.setStatus(worldCup.getStatus()); |
| | | myWorldCupInfo.setRevocable(1); |
| | | //开始前一天不能取消 |
| | | if(worldCup.getStartTime().getTime() < System.currentTimeMillis() + 86400000L){ |
| | | myWorldCupInfo.setRevocable(0); |
| | | } |
| | | List<ParticipantVo> datas = new ArrayList<>(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); |
| | | List<WorldCupPaymentParticipant> list1 = this.list(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupPaymentId", worldCupPaymentParticipant.getWorldCupPaymentId())); |
| | | for (WorldCupPaymentParticipant wcpp : list1) { |
| | | Integer participantType = wcpp.getParticipantType(); |
| | | Integer participantId = wcpp.getParticipantId(); |
| | | ParticipantVo participantVo = new ParticipantVo(); |
| | | //学员 |
| | | if(1 == participantType){ |
| | | TStudent tStudent = studentClient.queryById(participantId); |
| | | participantVo.setId(tStudent.getId()); |
| | | participantVo.setName(tStudent.getName()); |
| | | int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())); |
| | | participantVo.setAge(age); |
| | | participantVo.setIdcard(tStudent.getIdCard()); |
| | | participantVo.setPhone(tStudent.getPhone()); |
| | | participantVo.setIsStudent(1); |
| | | datas.add(participantVo); |
| | | } |
| | | //参赛人员 |
| | | if(2 == participantType){ |
| | | Participant participant = participantClient.getParticipant(participantId); |
| | | participantVo.setId(participant.getId()); |
| | | participantVo.setName(participant.getName()); |
| | | int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())); |
| | | participantVo.setAge(age); |
| | | participantVo.setIdcard(participant.getIdcard()); |
| | | participantVo.setPhone(participant.getPhone()); |
| | | participantVo.setIsStudent(0); |
| | | datas.add(participantVo); |
| | | } |
| | | } |
| | | |
| | | myWorldCupInfo.setParticipants(datas); |
| | | return myWorldCupInfo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取已报过名的参赛人员 |
| | | * @param uid 当前用户 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ParticipantVo> getParticipant(Integer uid) { |
| | | List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("appUserId", uid) |
| | | .eq("payStatus", 2).eq("state", 1)); |
| | | List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); |
| | | List<ParticipantVo> datas = new ArrayList<>(); |
| | | Set<Integer> csry = new HashSet<>(); |
| | | Set<Integer> xy = new HashSet<>(); |
| | | if(collect.size() > 0){ |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); |
| | | List<WorldCupPaymentParticipant> list1 = this.list(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect)); |
| | | for (WorldCupPaymentParticipant worldCupPaymentParticipant : list1) { |
| | | Integer participantType = worldCupPaymentParticipant.getParticipantType(); |
| | | Integer participantId = worldCupPaymentParticipant.getParticipantId(); |
| | | ParticipantVo participantVo = new ParticipantVo(); |
| | | //学员 |
| | | if(1 == participantType && !xy.contains(participantId)){ |
| | | TStudent tStudent = studentClient.queryById(participantId); |
| | | participantVo.setId(tStudent.getId()); |
| | | participantVo.setName(tStudent.getName()); |
| | | int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())); |
| | | participantVo.setAge(age); |
| | | participantVo.setIdcard(tStudent.getIdCard()); |
| | | participantVo.setPhone(tStudent.getPhone()); |
| | | participantVo.setIsStudent(1); |
| | | datas.add(participantVo); |
| | | } |
| | | //参赛人员 |
| | | if(2 == participantType && !csry.contains(participantId)){ |
| | | Participant participant = participantClient.getParticipant(participantId); |
| | | participantVo.setId(participant.getId()); |
| | | participantVo.setName(participant.getName()); |
| | | int age = Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())); |
| | | participantVo.setAge(age); |
| | | participantVo.setIdcard(participant.getIdcard()); |
| | | participantVo.setPhone(participant.getPhone()); |
| | | participantVo.setIsStudent(0); |
| | | datas.add(participantVo); |
| | | } |
| | | } |
| | | } |
| | | return datas; |
| | | } |
| | | } |