From f88cfa02e36752e4acad7adc4b045155e8e50f21 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 08 十二月 2023 09:16:29 +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 |  264 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 264 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..0d8edbd 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,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.*;
 
 /**
  * @author zhibing.pu
@@ -12,4 +33,247 @@
  */
 @Service
 public class ParticipantServiceImpl extends ServiceImpl<ParticipantMapper, Participant> implements IParticipantService {
+
+    @Resource
+    private CoursePackagePaymentClient coursePackagePaymentClient;
+
+    @Resource
+    private StudentClient studentClient;
+
+
+    /**
+     * 添加参赛人员信息
+     *
+     * @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  List<CompetitionUser> getPeopleFromId1(Page<UserCompetition> participantPage, Integer id, Integer state) {
+        return this.baseMapper.getPeopleFromId1(participantPage, id, state);
+    }
+
+    @Override
+    public List<CompetitionUser> getPeoples(Integer id, Integer state) {
+        return this.baseMapper.getPeoples(id, state);
+    }
 }

--
Gitblit v1.7.1