推荐算法 用户考核 头像上传

Change-Id: Iaac96768d5238142f5ed445f5cc64ccedd239d0f
diff --git a/src/main/java/com/pt5/pthouduan/service/ExamService.java b/src/main/java/com/pt5/pthouduan/service/ExamService.java
new file mode 100644
index 0000000..93dbbcd
--- /dev/null
+++ b/src/main/java/com/pt5/pthouduan/service/ExamService.java
@@ -0,0 +1,103 @@
+package com.pt5.pthouduan.service;
+
+import com.pt5.pthouduan.entity.Invites;
+import com.pt5.pthouduan.entity.User;
+import com.pt5.pthouduan.entity.UserTrafficStat;
+import com.pt5.pthouduan.mapper.InvitesMapper;
+import com.pt5.pthouduan.mapper.UserMapper;
+import com.pt5.pthouduan.mapper.UserTrafficMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class ExamService {
+    @Autowired
+    private UserTrafficMapper userTrafficMapper;
+    @Autowired
+    private UserMapper userMapper;
+    //所有用户月度下载量考核
+    public Map<String, Object> MonthDownload(LocalDate startDate,LocalDate endDate){
+        Map<String, Object> result = new HashMap<>();
+        List<Map<String, Object>> users = userMapper.selectAllUsersBasicInfo();
+        for (Map<String, Object> user : users) {
+            // 获取 gradeId,这里转为数字
+            Object gradeIdObj = user.get("grade_id");
+            int gradeId = (gradeIdObj instanceof Number) ? ((Number) gradeIdObj).intValue() : 0;
+            UserTrafficStat userTrafficStat=userTrafficMapper.getUserTrafficStats((String) user.get("passkey"),startDate,endDate);
+            System.out.println(gradeId+" "+userTrafficStat.getTotalUploaded()+"  "+userTrafficStat.getTotalDownloaded());
+            // 根据 gradeId 的值审核下载量
+            if (gradeId == 1) {
+                if(userTrafficStat.getTotalDownloaded()<1073741824){
+                    if(userTrafficStat.getTotalUploaded()< 1073741824L *50)
+                        failure((String) user.get("username"),gradeId);
+                }
+            } else if (gradeId == 2) {
+                if(userTrafficStat.getTotalDownloaded()< 1073741824L *3){
+                    if(userTrafficStat.getTotalUploaded()< 1073741824L *50)
+                        failure((String) user.get("username"),gradeId);
+                }
+            } else if (gradeId == 3) {
+                if(userTrafficStat.getTotalDownloaded()< 1073741824L *5){
+                    if(userTrafficStat.getTotalUploaded()< 1073741824L *50)
+                        failure((String) user.get("username"),gradeId);
+                }
+            }
+        }
+        result.put("success", true);
+        result.put("message", "用户月度考核完毕");
+        return result;
+    }
+    //考核失败
+    void failure(String username,int gradeId){
+        System.out.println("failure"+username+gradeId);
+        if(gradeId == 1){
+            userMapper.deleteByUsername(username);
+        }else{
+            userMapper.updateGrade(username,gradeId-1);
+        }
+    }
+    //所有用户季度上传量考核
+    public Map<String, Object> QuarterUpload(LocalDate startDate,LocalDate endDate){
+        Map<String, Object> result = new HashMap<>();
+        List<Map<String, Object>> users = userMapper.selectAllUsersBasicInfo();
+        for (Map<String, Object> user : users) {
+            // 获取 gradeId,这里转为数字
+            Object gradeIdObj = user.get("grade_id");
+            int gradeId = (gradeIdObj instanceof Number) ? ((Number) gradeIdObj).intValue() : 0;
+            UserTrafficStat userTrafficStat=userTrafficMapper.getUserTrafficStats((String) user.get("passkey"),startDate,endDate);
+            // 根据 gradeId 的值审核上传
+            if (gradeId == 1) {
+                if(userTrafficStat.getTotalUploaded()< 1073741824L *50){
+                    failure((String) user.get("username"),gradeId);
+                }
+            } else if (gradeId == 2) {
+                if(userTrafficStat.getTotalUploaded()< 1073741824L*60){
+                    failure((String) user.get("username"),gradeId);
+                }
+            } else if (gradeId == 3) {
+                System.out.println("here");
+                if(userTrafficStat.getTotalUploaded()< 1073741824L*70){
+                    System.out.println("failure");
+                    failure((String) user.get("username"),gradeId);
+                }
+            }else if (gradeId == 4) {
+                if(userTrafficStat.getTotalUploaded()< 1073741824L*80){
+                    failure((String) user.get("username"),gradeId);
+                }
+            }else if (gradeId == 5) {
+                if(userTrafficStat.getTotalUploaded()< 1073741824L*100){
+                    failure((String) user.get("username"),gradeId);
+                }
+            }
+        }
+        result.put("success", true);
+        result.put("message", "用户季度考核完毕");
+        return result;
+    }
+}
\ No newline at end of file