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