From b27efc697f2f81e0d0f247a2708e58af52a5df9b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 23 十月 2025 15:14:33 +0800
Subject: [PATCH] bug修改,后台新增修改用户积分
---
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java | 234 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 188 insertions(+), 46 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 292229c..1adf03e 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
@@ -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,21 @@
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 io.undertow.util.DateUtils;
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 +46,16 @@
@Resource
private StudentClient studentClient;
+ @Autowired
+ private UserCompetitionService userCompetitionService;
-
+ @Autowired
+ private IPaymentCompetitionService paymentCompetitionService;
/**
* 添加参赛人员信息
+ *
* @param uid
* @param addParticipant
* @return
@@ -54,12 +64,16 @@
@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())){
+// Participant two = this.getOne(new QueryWrapper<Participant>().eq("appUserId", uid).eq("idcard", addParticipant.getIdcard()).eq("state", 1));
+// if (null != two) {
+// return ResultUtil.error("身份证号码重复");
+// }
+ 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,60 +82,141 @@
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());
this.save(participant);
+ TStudent tStudent = new TStudent();
+ tStudent.setAppUserId(uid);
+ tStudent.setName(addParticipant.getName());
+ tStudent.setPhone(addParticipant.getPhone());
+ if (ToolUtil.isNotEmpty(addParticipant.getBirthday())){
+ Date parse = sdf.parse(addParticipant.getBirthday());
+ tStudent.setBirthday(parse);
+ }else{
+ String birthDateStr = addParticipant.getIdcard().substring(6, 14);
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+ Date parse = dateFormat.parse(birthDateStr);
+ tStudent.setBirthday(parse);
+ }
+ tStudent.setSex(addParticipant.getGender());
+ tStudent.setIdCard(addParticipant.getIdcard());
+ tStudent.setState(1);
+ tStudent.setInsertTime(new Date());
+ tStudent.setHeadImg(addParticipant.getHeadImg());
+ tStudent.setIsDefault(2);
+ studentClient.addStudent(tStudent);
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<>();
- SimpleDateFormat sdf_year = new SimpleDateFormat("yyyy");
- for (Participant participant : list) {
+// for (Participant participant : list) {
+// ParticipantVo participantVo = new ParticipantVo();
+// participantVo.setId(participant.getId());
+// participantVo.setName(participant.getName());
+// participantVo.setIdcard(participant.getIdcard());
+// if (null != participant.getBirthday()){
+// Integer age = Integer.valueOf(sdf_year.format(new Date())) - Integer.valueOf(sdf_year.format(participant.getBirthday()));
+// participantVo.setAge(age);
+// }else{
+// participantVo.setAge(18);
+//
+// }
+// Student student = null;
+// if(ToolUtil.isNotEmpty(participant.getPhone())){
+// student = studentClient.queryStudentByPhone(participant.getPhone());
+// }
+// //设为不是学员
+// participantVo.setIsStudent(0);
+//
+// if (null != student) {
+// Integer integer = coursePackagePaymentClient.queryResidueClassHour(student.getId());
+// participantVo.setResidueClassHour(integer);
+// } else {
+// participantVo.setResidueClassHour(0);
+// }
+// participantVo.setPhone(participant.getPhone());
+// participantVo.setHeight(participant.getHeight());
+// participantVo.setWeight(participant.getWeight());
+// participantVo.setHeadImg(participant.getHeadImg());
+// 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);
+// }
+
+ for (TStudent tStudent : tStudents) {
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.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);
- Student student = studentClient.queryStudentByPhone(participant.getPhone());
- if(null != student){
- Integer integer = coursePackagePaymentClient.queryResidueClassHour(student.getId());
- participantVo.setResidueClassHour(integer);
- }else{
- participantVo.setResidueClassHour(0);
+ Integer integer = coursePackagePaymentClient.queryResidueClassHour(tStudent.getId());
+ participantVo.setResidueClassHour(integer);
+ participantVo.setPhone(tStudent.getPhone());
+ if (tStudent.getHeight()!=null){
+ participantVo.setHeight(tStudent.getHeight().intValue());
}
- participantVo.setPhone(participant.getPhone());
- participantVo.setHeight(participant.getHeight());
- participantVo.setWeight(participant.getWeight());
+ participantVo.setWeight(tStudent.getWeight());
+ participantVo.setHeadImg(tStudent.getHeadImg());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- if(null != participant.getBirthday()){
- String format = sdf.format(participant.getBirthday());
+ if (null != tStudent.getBirthday()) {
+ String format = sdf.format(tStudent.getBirthday());
participantVo.setBirthday(format);
}
- participantVo.setGender(participant.getGender());
- listVo.add(participantVo);
+ participantVo.setGender(tStudent.getSex());
+ participantVo.setIsStudent(1);
+ if (tStudent.getIdCard() == null || tStudent.getIdCard().isEmpty()) {
+ listVo1.add(participantVo);
+ continue;
+ }
+ linkedHashMap.put(tStudent.getIdCard(), participantVo);
}
- return listVo;
+ listVo1.addAll(linkedHashMap.values());
+ return listVo1;
}
/**
* 修改参赛人员信息
+ *
* @param editParticipant
* @return
* @throws Exception
@@ -129,12 +224,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 +240,8 @@
participant.setGender(editParticipant.getGender());
participant.setIdcard(editParticipant.getIdcard());
participant.setName(editParticipant.getName());
- if(ToolUtil.isNotEmpty(editParticipant.getBirthday())){
+ participant.setHeadImg(editParticipant.getHeadImg());
+ if (ToolUtil.isNotEmpty(editParticipant.getBirthday())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
participant.setBirthday(sdf.parse(editParticipant.getBirthday()));
}
@@ -156,15 +252,22 @@
/**
* 删除参赛人员信息
+ *
* @param id
* @return
* @throws Exception
*/
@Override
- public ResultUtil delParticipant(Integer id) throws Exception {
- Participant participant = this.getById(id);
- participant.setState(3);
- this.updateById(participant);
+ public ResultUtil delParticipant(Integer id, Integer isStudent) throws Exception {
+ if(isStudent == 1){
+ TStudent tStudent = studentClient.queryById(id);
+ tStudent.setState(3);
+ studentClient.updateAppUser(tStudent);
+ }else{
+ Participant participant = this.getById(id);
+ participant.setState(3);
+ this.updateById(participant);
+ }
return ResultUtil.success();
}
@@ -172,38 +275,77 @@
@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());
+ }
+ competitionUser.setInsertTime(userCompetition.getInsertTime());
+ 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