package com.dsh.account.service.impl; 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.communityWorldCup.WorldCupCompetitorClient; 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.HonorRulesClient; 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; /** *

* 学员-荣耀中间表 服务实现类 *

* * @author jqs * @since 2023-07-04 */ @Service public class StudentHonorServiceImpl extends ServiceImpl implements StudentHonorService { @Resource private CoursePackageClient coursePackageClient; @Resource private ParticipantClient participantClient; @Resource private SiteClient siteClient; @Resource private HonorDeClient honorDeClient; @Autowired private TStudentService studentService; @Resource private HonorRulesClient honorRulesClient; @Resource private WorldCupCompetitorClient worldCupCompetitorClient; @Autowired private StudentHonorService studentHonorService; @Override public List queryStuOfMedalData(Integer stuId, Integer appUserId) { List voList = new ArrayList<>(); List list = studentHonorService.list(new QueryWrapper() .eq("appUserId", appUserId)); for (StudentHonor studentHonor : list) { GongVo vo = new GongVo(); vo.setMedalType(studentHonor.getHonorType()); switch (studentHonor.getHonorType()){ case 1: vo.setMedalName("俱乐部之星"); break; case 2: vo.setMedalName("运动达人"); break; case 3: vo.setMedalName("社区之王"); break; case 4: vo.setMedalName("深度玩家"); break; case 5: vo.setMedalName("常胜将军"); break; case 6: vo.setMedalName("越战越勇"); break; default: break; } voList.add(vo); } return voList; } @Override public List queryHonorDetails(Integer appUserId) { List list = new ArrayList<>(); List studentHonors = this.list(new QueryWrapper().eq("appUserId", appUserId)); for (StudentHonor studentHonor : studentHonors) { StuMedalVo vo = new StuMedalVo(); vo.setMedalType(studentHonor.getHonorType()); switch (studentHonor.getHonorType()){ case 1: vo.setMedalName("俱乐部之星"); break; case 2: vo.setMedalName("运动达人"); break; case 3: vo.setMedalName("社区之王"); break; case 4: vo.setMedalName("深度玩家"); break; case 5: vo.setMedalName("常胜将军"); break; case 6: vo.setMedalName("越战越勇"); break; } //拿到当前对应的rule对象 List integers = new ArrayList<>(); integers.add(studentHonor.getHonorType()); integers.add(studentHonor.getNumber()); HonorRules honorRules = honorDeClient.getHonor(integers); if (studentHonor.getNumber() < 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()) - studentHonor.getNumber())); vo.setIsTopLevel(2); } else { vo.setLevelNum(10); vo.setNextLevel(10); vo.setIsTopLevel(1); } list.add(vo); } return list; } }