From c036557db88c6297b9a626a892dce35c14ab8ee5 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期四, 09 十一月 2023 18:30:31 +0800 Subject: [PATCH] 11.6 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java | 211 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 183 insertions(+), 28 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java index 663fffb..8b5b7a9 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java @@ -2,15 +2,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.HonorRules; import com.dsh.account.entity.StudentHonor; +import com.dsh.account.entity.TStudent; +import com.dsh.account.feignclient.competition.ParticipantClient; +import com.dsh.account.feignclient.course.CoursePackageClient; +import com.dsh.account.feignclient.course.model.CoursePackage; import com.dsh.account.feignclient.other.HonorDeClient; +import com.dsh.account.feignclient.other.SiteClient; import com.dsh.account.mapper.StudentHonorMapper; import com.dsh.account.model.vo.medalDetail.GongVo; import com.dsh.account.model.vo.medalDetail.StuMedalVo; import com.dsh.account.service.StudentHonorService; +import com.dsh.account.service.TAppUserService; +import com.dsh.account.service.TStudentService; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -26,46 +36,191 @@ @Service public class StudentHonorServiceImpl extends ServiceImpl<StudentHonorMapper, StudentHonor> implements StudentHonorService { + @Resource + private CoursePackageClient coursePackageClient; + + @Resource + private ParticipantClient participantClient; + + @Resource + private SiteClient siteClient; + @Autowired private HonorDeClient honorDeClient; + + @Autowired + private TStudentService studentService; + @Override public List<GongVo> queryStuOfMedalData(Integer stuId) { List<GongVo> voList = new ArrayList<>(); - List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() - .eq("stuId", stuId)); - if (studentHonors.size() > 0){ - studentHonors.forEach( stuoHo -> { - GongVo vo = new GongVo(); - vo.setMedalType(stuoHo.getHonorType()); - switch (stuoHo.getHonorType()){ - case 1: - vo.setMedalName("俱乐部之星"); - break; - case 2: - vo.setMedalName("运动达人"); - break; - case 3: - vo.setMedalName("社区之王"); - break; - case 4: - vo.setMedalName("深度玩家"); - break; - default: - break; - } - voList.add(vo); - }); +// List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() +// .eq("stuId", stuId)); +// + TStudent student = studentService.getById(stuId); +// +// +// if (studentHonors.size() > 0){ +// studentHonors.forEach( stuoHo -> { +// GongVo vo = new GongVo(); +// vo.setMedalType(stuoHo.getHonorType()); +// switch (stuoHo.getHonorType()){ +// case 1: +// vo.setMedalName("俱乐部之星"); +// break; +// case 2: +// vo.setMedalName("运动达人"); +// break; +// case 3: +// vo.setMedalName("社区之王"); +// break; +// case 4: +// vo.setMedalName("深度玩家"); +// break; +// default: +// break; +// } +// voList.add(vo); +// }); +// } + Integer count1 =coursePackageClient.counts(stuId); + if (count1>0){ + GongVo vo = new GongVo(); + vo.setMedalType(1); + vo.setMedalName("俱乐部之星"); + voList.add(vo); } + + Integer count2 = participantClient.counts(stuId); + if (count2>0){ + GongVo vo = new GongVo(); + vo.setMedalType(2); + vo.setMedalName("运动达人"); + voList.add(vo); + } + + Integer count3 = siteClient.counts(student.getAppUserId()); + if (count3>0){ + GongVo vo = new GongVo(); + vo.setMedalType(3); + vo.setMedalName("社区之王"); + voList.add(vo); + } + + + Integer count4 = coursePackageClient.counts1(stuId); + if (count4>0){ + GongVo vo = new GongVo(); + vo.setMedalType(4); + vo.setMedalName("深度玩家"); + voList.add(vo); + } + + return voList; } + + @Override public List<StuMedalVo> queryHonorDetails(Integer stuId) { - List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() - .in("stuId",stuId)); - List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList()); - return honorDeClient.getStuHonors(collect); + List<StuMedalVo> studentHonors = new ArrayList<>(); +// List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList()); + + Integer count1 =coursePackageClient.counts(stuId); + if (count1>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(1); + vo.setMedalName("俱乐部之星"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(1); + integers.add(count1); + HonorRules honorRules = honorDeClient.getHonor(integers); + if (count1<Integer.valueOf(honorRules.getCondition())){ + vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1); + vo.setNextLevel(Integer.valueOf(honorRules.getLevel())); + vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count1)); + vo.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + Integer count2 = participantClient.counts(stuId); + if (count2>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(2); + vo.setMedalName("运动达人"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(2); + integers.add(count2); + HonorRules honorRules = honorDeClient.getHonor(integers); + if (count2<Integer.valueOf(honorRules.getCondition())){ + vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1); + vo.setNextLevel(Integer.valueOf(honorRules.getLevel())); + vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count2)); + vo.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + TStudent student = studentService.getById(stuId); + + Integer count3 = siteClient.counts(student.getAppUserId()); + if (count3>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(3); + vo.setMedalName("社区之王"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(3); + integers.add(count3); + HonorRules honorRules = honorDeClient.getHonor(integers); + if (count3<Integer.valueOf(honorRules.getCondition())){ + vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1); + vo.setNextLevel(Integer.valueOf(honorRules.getLevel())); + vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count3)); + vo.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + + Integer count4 = coursePackageClient.counts1(stuId); + if (count4>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(4); + vo.setMedalName("深度玩家"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(4); + integers.add(count4); + HonorRules honorRules = honorDeClient.getHonor(integers); + if (count4<Integer.valueOf(honorRules.getCondition())){ + vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1); + vo.setNextLevel(Integer.valueOf(honorRules.getLevel())); + vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count4)); + vo.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + + + return studentHonors; } } -- Gitblit v1.7.1