소스 검색

chore: auto bump version and changelog [skip ci]

iwt 1 개월 전
부모
커밋
2a2062677c
99개의 변경된 파일23개의 추가작업 그리고 201개의 파일을 삭제
  1. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminButlerController.java
  2. 0 14
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminController.java
  3. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminNoticeController.java
  4. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminSubscriptionController.java
  5. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminSupplierController.java
  6. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminVendorController.java
  7. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/DimensionAdminController.java
  8. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplyManageController.java
  9. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/assessment/AssessmentResultController.java
  10. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/butler/ButlerController.java
  11. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideOrderController.java
  12. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/controller/stats/StatsController.java
  13. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/AIService.java
  14. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/ActivityAdminService.java
  15. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/ActivityFeedbackService.java
  16. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/ActivityRegistrationService.java
  17. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/AfterSalesService.java
  18. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/ArticleCommentService.java
  19. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/ArticleService.java
  20. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentAppointmentService.java
  21. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentOrderService.java
  22. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentPermissionService.java
  23. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentQuotaService.java
  24. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentService.java
  25. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/BeijingNutritionService.java
  26. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/ButlerService.java
  27. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/ButlerSessionService.java
  28. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/ChatMirrorService.java
  29. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/CircleChallengeService.java
  30. 0 7
      cfc-backend/src/main/java/com/etotem/cfc/service/CircleMatchService.java
  31. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/CircleService.java
  32. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/CommissionDistService.java
  33. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/CommissionService.java
  34. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/CompatibilityService.java
  35. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/ContactService.java
  36. 0 6
      cfc-backend/src/main/java/com/etotem/cfc/service/ContentRecommendService.java
  37. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/DanReportUploadService.java
  38. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/DietRecordService.java
  39. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/EcomSupplierService.java
  40. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/EmotionAlertService.java
  41. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/EmotionCheckinService.java
  42. 0 9
      cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java
  43. 0 6
      cfc-backend/src/main/java/com/etotem/cfc/service/FamilyChallengeService.java
  44. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/FamilyCommissionService.java
  45. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/FamilyEarningsService.java
  46. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/FamilyHealthScoreService.java
  47. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/FamilyMemberService.java
  48. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/FinanceCheckinService.java
  49. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/FiveDimensionScoreService.java
  50. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/FiveDimensionSelfCheckService.java
  51. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/FoodService.java
  52. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/GameRecordService.java
  53. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/GrowthPlanService.java
  54. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/GrowthTaskService.java
  55. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/GuideApplicationService.java
  56. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/HealthCheckinService.java
  57. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/HealthCircleService.java
  58. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/HealthInteractionService.java
  59. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/HealthReportService.java
  60. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/IndicatorService.java
  61. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/InsurancePlanningService.java
  62. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/InsurancePolicyService.java
  63. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/InteractionLogService.java
  64. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/InventoryService.java
  65. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/NutritionDeficiencyService.java
  66. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/NutritionProductService.java
  67. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/PendingRefundService.java
  68. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/PointsExchangeService.java
  69. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/PointsService.java
  70. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/PpointConfigService.java
  71. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/PpointService.java
  72. 0 4
      cfc-backend/src/main/java/com/etotem/cfc/service/ProductOrderService.java
  73. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/ProductRecommendationService.java
  74. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/ProductService.java
  75. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/PromotionMaterialService.java
  76. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/RecommendationService.java
  77. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/RelationshipQualityService.java
  78. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/RelationshipQuestionnaireService.java
  79. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/SupplyHierarchyService.java
  80. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/SupplySettlementService.java
  81. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/SupplySystemService.java
  82. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/TaskReminderService.java
  83. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java
  84. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/TaskStatsService.java
  85. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/TaskTemplatePackageService.java
  86. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/TeacherService.java
  87. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/TianpanService.java
  88. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/UserAddressService.java
  89. 0 2
      cfc-backend/src/main/java/com/etotem/cfc/service/UserOperationLogService.java
  90. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/UserSegmentationService.java
  91. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/WithdrawalService.java
  92. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/service/impl/HealthPlanServiceImpl.java
  93. 0 1
      cfc-backend/src/main/java/com/etotem/cfc/task/OrderTimeoutCancelTask.java
  94. 0 3
      cfc-backend/src/main/java/com/etotem/cfc/task/VirtualPayTimeoutTask.java
  95. 1 1
      cfc-web/.last_build_commit
  96. 2 2
      cfc-web/package-lock.json
  97. 1 1
      cfc-web/package.json
  98. 9 0
      cfc-web/public/CHANGELOG-v1.0.md
  99. 10 1
      cfc-web/public/CHANGELOG.md

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminButlerController.java

@@ -56,7 +56,6 @@ public class AdminButlerController {
         }
         wrapper.orderByDesc(ButlerProfile::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<ButlerProfile> result = butlerProfileMapper.selectPage(pageParam, wrapper);
 
@@ -135,7 +134,6 @@ public class AdminButlerController {
         }
         wrapper.orderByDesc(ButlerServiceRecord::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<ButlerServiceRecord> result = butlerServiceRecordMapper.selectPage(pageParam, wrapper);
 
@@ -166,7 +164,6 @@ public class AdminButlerController {
         }
         wrapper.orderByDesc(ButlerCommissionSettlement::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<ButlerCommissionSettlement> result = butlerCommissionSettlementMapper.selectPage(pageParam, wrapper);
 

+ 0 - 14
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminController.java

@@ -98,7 +98,6 @@ public class AdminController {
             wrapper.like(User::getPhone, String.valueOf(params.get("phone")));
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -186,7 +185,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(User::getUpdatedAt).last("LIMIT 50");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<User> users = userMapper.selectList(wrapper);
         // 清除密码
         for (User u : users) {
@@ -276,7 +274,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(Task::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<Task> result = taskMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -313,7 +310,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(Reward::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<Reward> result = rewardMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -466,7 +462,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(PointsLog::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<PointsLog> result = pointsLogMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -500,7 +495,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(Family::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<Family> result = familyMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -529,14 +523,12 @@ public class AdminController {
         LambdaQueryWrapper<User> parentWrapper = new LambdaQueryWrapper<>();
         parentWrapper.eq(User::getFamilyId, id).eq(User::getRole, "parent");
         SortUtil.applySort(parentWrapper);
-        SortUtil.applySort(parentWrapper);
         java.util.List<User> parents = userMapper.selectList(parentWrapper);
 
         // 查询孩子
         LambdaQueryWrapper<FamilyMember> childWrapper = new LambdaQueryWrapper<>();
         childWrapper.eq(FamilyMember::getFamilyId, id);
         SortUtil.applySort(childWrapper);
-        SortUtil.applySort(childWrapper);
         java.util.List<FamilyMember> children = familyMemberMapper.selectList(childWrapper);
 
         Map<String, Object> result = new HashMap<>();
@@ -658,7 +650,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(TaskTemplate::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<TaskTemplate> result = taskTemplateMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -711,7 +702,6 @@ public class AdminController {
             .isNotNull(User::getRealName)
             .orderByDesc(User::getUpdatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
@@ -819,7 +809,6 @@ public class AdminController {
             .isNotNull(User::getRealName)
             .orderByDesc(User::getUpdatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
@@ -1138,7 +1127,6 @@ public class AdminController {
 
         Page<MemberUpgradeRecord> pageParam = new Page<>(page, size);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<MemberUpgradeRecord> result = memberUpgradeRecordMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }
@@ -1353,7 +1341,6 @@ public class AdminController {
             LambdaQueryWrapper<User> userWrapper = new LambdaQueryWrapper<>();
             userWrapper.like(User::getNickname, kw).select(User::getId);
             SortUtil.applySort(userWrapper);
-            SortUtil.applySort(userWrapper);
             java.util.List<User> matchedUsers = userMapper.selectList(userWrapper);
             java.util.List<Long> matchedIds = new java.util.ArrayList<>();
             for (User u : matchedUsers) { matchedIds.add(u.getId()); }
@@ -1365,7 +1352,6 @@ public class AdminController {
         }
         wrapper.orderByDesc(AssessmentAppointment::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<AssessmentAppointment> result = assessmentAppointmentMapper.selectPage(pageParam, wrapper);
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminNoticeController.java

@@ -36,7 +36,6 @@ public class AdminNoticeController {
         q.orderByDesc(Notice::getCreatedAt);
         q.last("LIMIT " + ((page - 1) * size) + "," + size);
 
-        SortUtil.applySort(q);
         SortUtil.applySort(q);
         List<Notice> list = noticeMapper.selectList(q);
         return Result.success(list);

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminSubscriptionController.java

@@ -40,7 +40,6 @@ public class AdminSubscriptionController {
         }
         wrapper.orderByDesc(MemberSubscription::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<MemberSubscription> subs = subscriptionMapper.selectList(wrapper);
         List<Map<String, Object>> list = new ArrayList<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminSupplierController.java

@@ -37,7 +37,6 @@ public class AdminSupplierController {
         }
         wrapper.orderByDesc(EcomSupplier::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<EcomSupplier> result = ecomSupplierMapper.selectPage(pageParam, wrapper);
 
         Map<String, Object> data = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminVendorController.java

@@ -44,7 +44,6 @@ public class AdminVendorController {
 
         wrapper.orderByDesc(User::getUpdatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
 
         Map<String, Object> data = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/DimensionAdminController.java

@@ -67,7 +67,6 @@ public class DimensionAdminController {
         LambdaQueryWrapper<HealthDataSourceRecord> wrapper = new LambdaQueryWrapper<HealthDataSourceRecord>()
             .orderByDesc(HealthDataSourceRecord::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<HealthDataSourceRecord> result = dataSourceRecordMapper.selectPage(pageParam, wrapper);
         return Result.success(result);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplyManageController.java

@@ -56,7 +56,6 @@ public class SupplyManageController {
 
         wrapper.orderByDesc(User::getUpdatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
 
         Map<String, Object> data = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/assessment/AssessmentResultController.java

@@ -82,7 +82,6 @@ public class AssessmentResultController {
                 .orderByDesc(DanAssessmentResult::getAssessmentDate)
                 .last("LIMIT " + size);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<DanAssessmentResult> results = danAssessmentResultMapper.selectList(wrapper);
 
         List<AssessmentHistoryItemDTO> list = new ArrayList<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/butler/ButlerController.java

@@ -72,7 +72,6 @@ public class ButlerController {
                 .eq(User::getReferrerId, userId)
                 .orderByDesc(User::getUpdatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideOrderController.java

@@ -40,7 +40,6 @@ public class GuideOrderController {
 
         Page<PackageOrder> pagination = new Page<>(page, size);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<PackageOrder> result = packageOrderMapper.selectPage(pagination, wrapper);
 
         Map<String, Object> response = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/stats/StatsController.java

@@ -96,7 +96,6 @@ public class StatsController {
         CompletableFuture<List<Task>> recentTasksFuture = CompletableFuture.supplyAsync(() -> {
             QueryWrapper<Task> q = new QueryWrapper<Task>().orderByDesc("created_at").last("LIMIT 5");
             SortUtil.applySort(q);
-            SortUtil.applySort(q);
             return taskMapper.selectList(q);
         }, taskExecutor);
 

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/AIService.java

@@ -402,7 +402,6 @@ public class AIService {
         recentQ.orderByDesc(AiConversationSummary::getCreatedAt);
         recentQ.last("LIMIT 5");
         SortUtil.applySort(recentQ);
-        SortUtil.applySort(recentQ);
         List<AiConversationSummary> recentList = aiConversationSummaryMapper.selectList(recentQ);
         List<String> summaries = recentList.stream()
                 .map(AiConversationSummary::getSummaryText)
@@ -416,7 +415,6 @@ public class AIService {
         LambdaQueryWrapper<AiUserFact> factQ = new LambdaQueryWrapper<>();
         factQ.eq(AiUserFact::getUserId, userId);
         SortUtil.applySort(factQ);
-        SortUtil.applySort(factQ);
         List<AiUserFact> facts = aiUserFactMapper.selectList(factQ);
         if (!facts.isEmpty()) {
             Map<String, String> factMap = new LinkedHashMap<>();
@@ -487,7 +485,6 @@ public class AIService {
         recentQ.orderByDesc(AiConversationSummary::getCreatedAt);
         recentQ.last("LIMIT 3");
         SortUtil.applySort(recentQ);
-        SortUtil.applySort(recentQ);
         List<AiConversationSummary> recentList = aiConversationSummaryMapper.selectList(recentQ);
         List<String> summaries = recentList.stream()
                 .map(AiConversationSummary::getSummaryText)
@@ -501,7 +498,6 @@ public class AIService {
         LambdaQueryWrapper<AiUserFact> factQ = new LambdaQueryWrapper<>();
         factQ.eq(AiUserFact::getUserId, userId);
         SortUtil.applySort(factQ);
-        SortUtil.applySort(factQ);
         List<AiUserFact> facts = aiUserFactMapper.selectList(factQ);
         if (!facts.isEmpty()) {
             StringBuilder factSb = new StringBuilder();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/ActivityAdminService.java

@@ -48,7 +48,6 @@ public class ActivityAdminService {
         }
         wrapper.orderByDesc(Activity::getUpdatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<Activity> pageResult = activityMapper.selectPage(new Page<>(page, size), wrapper);
         Map<String, Object> data = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/ActivityFeedbackService.java

@@ -35,7 +35,6 @@ public class ActivityFeedbackService {
         wrapper.eq("activity_id", activityId)
                .orderByDesc("created_at");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ActivityFeedback> list = activityFeedbackMapper.selectList(wrapper);
         return Result.success(list);
     }

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/ActivityRegistrationService.java

@@ -132,7 +132,6 @@ public class ActivityRegistrationService {
         }
         wrapper.orderByDesc(ActivityRegistration::getRegisteredAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<ActivityRegistration> pageResult = registrationMapper.selectPage(new Page<>(page, size), wrapper);
         List<Map<String, Object>> records = pageResult.getRecords().stream().map(reg -> {
             Map<String, Object> item = new HashMap<>();
@@ -159,7 +158,6 @@ public class ActivityRegistrationService {
             .eq(ActivityRegistration::getActivityId, activityId).orderByDesc(ActivityRegistration::getRegisteredAt);
         if (status != null && !status.isEmpty()) wrapper.eq(ActivityRegistration::getStatus, status);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ActivityRegistration> list = registrationMapper.selectList(wrapper);
         List<Map<String, Object>> result = list.stream().map(reg -> {
             Map<String, Object> item = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/AfterSalesService.java

@@ -64,7 +64,6 @@ public class AfterSalesService {
             wrapper.eq(AfterSalesRequest::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<AfterSalesRequest> list = afterSalesRequestMapper.selectList(wrapper);
         return Result.success(list);
     }

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/ArticleCommentService.java

@@ -153,7 +153,6 @@ public class ArticleCommentService {
         }
         wrapper.orderByDesc(ArticleComment::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return articleCommentMapper.selectList(wrapper);
     }
 
@@ -177,7 +176,6 @@ public class ArticleCommentService {
 
         wrapper.orderByDesc(ArticleComment::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ArticleComment> comments = articleCommentMapper.selectList(wrapper);
 
         Map<Long, User> userCache = new HashMap<>();
@@ -226,7 +224,6 @@ public class ArticleCommentService {
         }
         wrapper.orderByDesc(ArticleComment::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<ArticleComment> p = articleCommentMapper.selectPage(new Page<>(page, size), wrapper);
         Page<Map<String, Object>> result = new Page<>(p.getCurrent(), p.getSize(), p.getTotal());

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/ArticleService.java

@@ -170,7 +170,6 @@ public class ArticleService {
                 .eq(Article::getId, articleId);
         articleMapper.update(null, wrapper);
 
-        SortUtil.applySort(wrapper);
 
         // 2. Save reading record
         ArticleReadingRecord record = new ArticleReadingRecord();

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentAppointmentService.java

@@ -96,7 +96,6 @@ public class AssessmentAppointmentService extends ServiceImpl<AssessmentAppointm
         wrapper.eq(AssessmentAppointment::getUserId, userId);
         wrapper.orderByDesc(AssessmentAppointment::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return assessmentAppointmentMapper.selectList(wrapper);
     }
 
@@ -105,7 +104,6 @@ public class AssessmentAppointmentService extends ServiceImpl<AssessmentAppointm
         wrapper.eq(AssessmentAppointment::getGuideId, guideId);
         wrapper.orderByDesc(AssessmentAppointment::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return assessmentAppointmentMapper.selectList(wrapper);
     }
 
@@ -114,7 +112,6 @@ public class AssessmentAppointmentService extends ServiceImpl<AssessmentAppointm
         wrapper.eq(AssessmentAppointment::getAssessorId, assessorId);
         wrapper.orderByDesc(AssessmentAppointment::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return assessmentAppointmentMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentOrderService.java

@@ -246,7 +246,6 @@ public class AssessmentOrderService extends ServiceImpl<AssessmentOrderMapper, A
                    .orderByDesc(AssessmentAppointment::getCreatedAt)
                    .last("LIMIT 1");
             SortUtil.applySort(wrapper);
-            SortUtil.applySort(wrapper);
             List<AssessmentAppointment> list = assessmentAppointmentMapper.selectList(wrapper);
             if (list != null && !list.isEmpty()) {
                 order.setAppointmentId(list.get(0).getId());

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentPermissionService.java

@@ -66,7 +66,6 @@ public class AssessmentPermissionService {
                .eq(DanAssessmentResult::getStatus, "completed")
                .orderByDesc(DanAssessmentResult::getAssessmentDate);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return danAssessmentResultMapper.selectList(wrapper);
     }
@@ -80,7 +79,6 @@ public class AssessmentPermissionService {
                .eq(DanAssessmentResult::getStatus, "completed")
                .orderByDesc(DanAssessmentResult::getAssessmentDate);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return danAssessmentResultMapper.selectList(wrapper);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentQuotaService.java

@@ -81,7 +81,6 @@ public class AssessmentQuotaService {
                 .gt(AssessmentQuota::getValidityEnd, new Date())
                 .orderByDesc(AssessmentQuota::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return mapper.selectList(wrapper);
     }
 

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/AssessmentService.java

@@ -161,7 +161,6 @@ public class AssessmentService extends ServiceImpl<AssessmentMaterialMapper, Ass
         LambdaQueryWrapper<FamilyAssessmentConfig> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyAssessmentConfig::getIsEnabled, 1);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return familyConfigMapper.selectList(wrapper);
     }
 
@@ -172,7 +171,6 @@ public class AssessmentService extends ServiceImpl<AssessmentMaterialMapper, Ass
         LambdaQueryWrapper<FamilyAssessmentConfig> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyAssessmentConfig::getCreatedBy, teacherId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return familyConfigMapper.selectList(wrapper);
     }
 
@@ -202,7 +200,6 @@ public class AssessmentService extends ServiceImpl<AssessmentMaterialMapper, Ass
         wrapper.eq(AssessmentRecord::getFamilyId, familyId);
         wrapper.orderByDesc(AssessmentRecord::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return recordMapper.selectList(wrapper);
     }
 
@@ -283,7 +280,6 @@ public class AssessmentService extends ServiceImpl<AssessmentMaterialMapper, Ass
         wrapper.eq(DanAssessmentResult::getTeacherId, guideId);
         wrapper.orderByDesc(DanAssessmentResult::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return danAssessmentResultMapper.selectList(wrapper);
     }
 

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/BeijingNutritionService.java

@@ -257,7 +257,6 @@ public class BeijingNutritionService {
         configWrapper.eq(MealConfig::getFamilyId, familyId);
         configWrapper.eq(MealConfig::getConfigDateType, isWeekend(date) ? "weekend" : "weekday");
         SortUtil.applySort(configWrapper);
-        SortUtil.applySort(configWrapper);
         List<MealConfig> mealConfigs = mealConfigMapper.selectList(configWrapper);
         
         // 2. 收集参与成员
@@ -283,7 +282,6 @@ public class BeijingNutritionService {
             LambdaQueryWrapper<FamilyMember> memberWrapper = new LambdaQueryWrapper<>();
             memberWrapper.eq(FamilyMember::getFamilyId, familyId);
             SortUtil.applySort(memberWrapper);
-            SortUtil.applySort(memberWrapper);
             List<FamilyMember> allMembers = familyMemberMapper.selectList(memberWrapper);
             for (FamilyMember m : allMembers) {
                 participantIds.add(m.getId());
@@ -339,7 +337,6 @@ public class BeijingNutritionService {
                 LambdaQueryWrapper<HealthGutFlora> floraWrapper = new LambdaQueryWrapper<>();
                 floraWrapper.eq(HealthGutFlora::getReportId, report.getId());
                 SortUtil.applySort(floraWrapper);
-                SortUtil.applySort(floraWrapper);
                 List<HealthGutFlora> floraList = healthGutFloraMapper.selectList(floraWrapper);
                 
                 Map<String, String> bacteriaStatus = new HashMap<>();

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/ButlerService.java

@@ -182,7 +182,6 @@ public class ButlerService {
                 .eq(User::getButlerStatus, "approved")
                 .orderByDesc(User::getUpdatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         java.util.List<User> butlers = userMapper.selectList(wrapper);
         return Result.success(butlers);
     }
@@ -211,7 +210,6 @@ public class ButlerService {
 
         wrapper.orderByDesc(User::getUpdatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<User> result = userMapper.selectPage(pageParam, wrapper);
 
         Map<String, Object> data = new HashMap<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/ButlerSessionService.java

@@ -90,7 +90,6 @@ public class ButlerSessionService {
             wrapper.eq(ButlerSession::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return butlerSessionMapper.selectPage(pageParam, wrapper);
     }
 

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/ChatMirrorService.java

@@ -103,7 +103,6 @@ public class ChatMirrorService {
         queryWrapper.eq(ChatConversation::getUserId, userId)
                    .orderByDesc(ChatConversation::getLastMessageAt);
         
-        SortUtil.applySort(queryWrapper);
         SortUtil.applySort(queryWrapper);
         return chatConversationMapper.selectList(queryWrapper);
     }
@@ -118,7 +117,6 @@ public class ChatMirrorService {
         queryWrapper.eq(ChatMessage::getConversationId, conversationId)
                    .orderByAsc(ChatMessage::getCreatedAt);
         
-        SortUtil.applySort(queryWrapper);
         SortUtil.applySort(queryWrapper);
         return chatMessageMapper.selectList(queryWrapper);
     }

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/CircleChallengeService.java

@@ -24,12 +24,10 @@ public class CircleChallengeService {
                 .eq(CircleChallenge::getCircleId, circleId)
                 .eq(CircleChallenge::getStatus, "active");
         SortUtil.applySort(cw);
-        SortUtil.applySort(cw);
         List<CircleChallenge> active = circleChallengeMapper.selectList(cw);
         if (active.isEmpty()) {
             autoCreateChallenges(circleId);
             SortUtil.applySort(cw);
-            SortUtil.applySort(cw);
             active = circleChallengeMapper.selectList(cw);
         }
         return active;
@@ -80,7 +78,6 @@ public class CircleChallengeService {
                 .eq(CircleChallenge::getStatus, "completed")
                 .orderByDesc(CircleChallenge::getEndDate);
         SortUtil.applySort(cw);
-        SortUtil.applySort(cw);
         return circleChallengeMapper.selectList(cw);
     }
 }

+ 0 - 7
cfc-backend/src/main/java/com/etotem/cfc/service/CircleMatchService.java

@@ -130,7 +130,6 @@ public class CircleMatchService {
             LambdaQueryWrapper<ActivityRegistration> regWrapper = new LambdaQueryWrapper<ActivityRegistration>()
                     .eq(ActivityRegistration::getChildId, memberId);
             SortUtil.applySort(regWrapper);
-            SortUtil.applySort(regWrapper);
             List<ActivityRegistration> myRegs = activityRegistrationMapper.selectList(regWrapper);
 
             for (ActivityRegistration reg : myRegs) {
@@ -141,7 +140,6 @@ public class CircleMatchService {
                         .eq(ActivityRegistration::getActivityId, reg.getActivityId())
                         .ne(ActivityRegistration::getChildId, memberId);
                 SortUtil.applySort(sameActWrapper);
-                SortUtil.applySort(sameActWrapper);
                 List<ActivityRegistration> sameAct = activityRegistrationMapper.selectList(sameActWrapper);
 
                 if (!sameAct.isEmpty()) {
@@ -176,7 +174,6 @@ public class CircleMatchService {
                     .ne(DanAssessmentResult::getChildId, memberId)
                     .orderByDesc(DanAssessmentResult::getAssessmentDate);
             SortUtil.applySort(qw);
-            SortUtil.applySort(qw);
             List<DanAssessmentResult> others = danAssessmentResultMapper.selectList(qw);
 
             // 按memberId去重取最新
@@ -218,7 +215,6 @@ public class CircleMatchService {
                     .ne(DanAssessmentResult::getChildId, memberId)
                     .orderByDesc(DanAssessmentResult::getAssessmentDate);
             SortUtil.applySort(qw);
-            SortUtil.applySort(qw);
             List<DanAssessmentResult> others = danAssessmentResultMapper.selectList(qw);
 
             Map<Long, DanAssessmentResult> latestByChild = new HashMap<>();
@@ -267,7 +263,6 @@ public class CircleMatchService {
                     .ne(HealthReport::getUserId, memberId)
                     .orderByDesc(HealthReport::getReportDate);
             SortUtil.applySort(othersHw);
-            SortUtil.applySort(othersHw);
             List<HealthReport> others = healthReportMapper.selectList(othersHw);
 
             Map<Long, HealthReport> latestByUser = new HashMap<>();
@@ -388,14 +383,12 @@ public class CircleMatchService {
                     .eq(Family::getTeacherId, teacherId)
                     .ne(Family::getId, member.getFamilyId());
             SortUtil.applySort(familyQw);
-            SortUtil.applySort(familyQw);
             List<Family> sameTeacherFamilies = familyMapper.selectList(familyQw);
 
             for (Family f : sameTeacherFamilies) {
                 LambdaQueryWrapper<FamilyMember> childQw = new LambdaQueryWrapper<FamilyMember>()
                         .eq(FamilyMember::getFamilyId, f.getId());
                 SortUtil.applySort(childQw);
-                SortUtil.applySort(childQw);
                 List<FamilyMember> siblings = familyMemberMapper.selectList(childQw);
                 if (!siblings.isEmpty()) {
                     Map<String, Object> circle = getOrCreateRecommendation(

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/CircleService.java

@@ -38,7 +38,6 @@ public class CircleService extends ServiceImpl<SocialCircleMapper, SocialCircle>
                 .eq(SocialCircleMember::getMemberId, memberId)
                 .eq(SocialCircleMember::getMemberType, memberType);
         SortUtil.applySort(mw);
-        SortUtil.applySort(mw);
         List<SocialCircleMember> myMemberships = socialCircleMemberMapper.selectList(mw);
 
         if (myMemberships.isEmpty()) {
@@ -84,7 +83,6 @@ public class CircleService extends ServiceImpl<SocialCircleMapper, SocialCircle>
                 .eq(SocialCircleMember::getMemberId, memberId)
                 .eq(SocialCircleMember::getMemberType, "child");
         SortUtil.applySort(mw);
-        SortUtil.applySort(mw);
         List<SocialCircleMember> existing = socialCircleMemberMapper.selectList(mw);
         List<Long> joinedCircleIds = existing.stream()
                 .map(SocialCircleMember::getCircleId)

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/CommissionDistService.java

@@ -81,7 +81,6 @@ public class CommissionDistService {
                 .in(ReferralTree::getLevel, 1, 2)
                 .orderByAsc(ReferralTree::getLevel);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ReferralTree> referrals = referralTreeMapper.selectList(wrapper);
 
         if (referrals == null || referrals.isEmpty()) {
@@ -177,7 +176,6 @@ public class CommissionDistService {
                 .eq(CommissionDistLog::getLevel2UserId, userId)
                 .orderByDesc(CommissionDistLog::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return commissionDistLogMapper.selectList(wrapper);
     }
 
@@ -190,7 +188,6 @@ public class CommissionDistService {
                 .and(w -> w.eq(CommissionDistLog::getLevel1UserId, userId)
                         .or().eq(CommissionDistLog::getLevel2UserId, userId));
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<CommissionDistLog> list = commissionDistLogMapper.selectList(wrapper);
         return list.stream()
                 .mapToInt(r -> {
@@ -219,7 +216,6 @@ public class CommissionDistService {
                     .or().eq(CommissionDistLog::getLevel2UserId, levelUserId));
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return commissionDistLogMapper.selectPage(pageParam, wrapper);
     }
 }

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/CommissionService.java

@@ -429,7 +429,6 @@ public class CommissionService {
             wrapper.eq(CommissionRecord::getLevel, 2);
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<CommissionRecord> allRecords = commissionRecordMapper.selectList(wrapper);
 
@@ -685,7 +684,6 @@ public class CommissionService {
         LambdaQueryWrapper<CommissionRecord> purchaseWrapper = new LambdaQueryWrapper<CommissionRecord>()
                 .eq(CommissionRecord::getReferrerId, userId);
         SortUtil.applySort(purchaseWrapper);
-        SortUtil.applySort(purchaseWrapper);
         List<CommissionRecord> allRecords = commissionRecordMapper.selectList(purchaseWrapper);
 
         long distinctBuyers = allRecords.stream()

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/CompatibilityService.java

@@ -99,7 +99,6 @@ public class CompatibilityService {
         LambdaQueryWrapper<FamilyMember> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyMember> members = familyMemberMapper.selectList(wrapper);
         if (members.isEmpty()) return dashboard;
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/ContactService.java

@@ -27,7 +27,6 @@ public class ContactService {
             .eq(Contact::getUserId, userId)
             .orderByDesc(Contact::getIntimacyLevel);
         SortUtil.applySort(query);
-        SortUtil.applySort(query);
         List<Contact> list = contactMapper.selectList(query);
         return Result.success(toDTOList(list));
     }

+ 0 - 6
cfc-backend/src/main/java/com/etotem/cfc/service/ContentRecommendService.java

@@ -126,7 +126,6 @@ public class ContentRecommendService {
                     .or().like(Article::getRelatedDimensions, dimensionCode.trim()));
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<Article> allArticles = articleMapper.selectList(wrapper);
         if (allArticles.isEmpty()) return new ArrayList<>();
@@ -220,7 +219,6 @@ public class ContentRecommendService {
                     .or().like(Article::getRelatedDimensions, dimensionCode.trim()));
         }
 
-        SortUtil.applySort(articleWrapper);
         SortUtil.applySort(articleWrapper);
         List<Article> articles = articleMapper.selectList(articleWrapper);
         for (Article a : articles) {
@@ -269,7 +267,6 @@ private List<RecommendItemVO> recommendProducts(String dimensionCode, Long userI
                 .or().eq(Product::getDomain, dimensionCode.trim()));
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<Product> allProducts = productMapper.selectList(wrapper);
         if (allProducts.isEmpty()) return new ArrayList<>();
@@ -297,7 +294,6 @@ private List<RecommendItemVO> recommendProducts(String dimensionCode, Long userI
                 orderWrapper.eq(ProductOrder::getBuyerId, userId);
             }
             SortUtil.applySort(orderWrapper);
-            SortUtil.applySort(orderWrapper);
             userOrders = productOrderMapper.selectList(orderWrapper);
         }
 
@@ -375,7 +371,6 @@ private List<RecommendItemVO> recommendProducts(String dimensionCode, Long userI
                 .or().eq(Activity::getDimensionCode, dimensionCode.trim()));
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<Activity> allActivities = activityMapper.selectList(wrapper);
         if (allActivities.isEmpty()) return new ArrayList<>();
@@ -498,7 +493,6 @@ private List<RecommendItemVO> recommendProducts(String dimensionCode, Long userI
             return ids;
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ProductOrder> orders = productOrderMapper.selectList(wrapper);
         for (ProductOrder o : orders) {
             ids.add(o.getProductId());

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/DanReportUploadService.java

@@ -272,7 +272,6 @@ if (!DanReportUpload.DIM_MIND.equals(dimension) && !DanReportUpload.DIM_WISDOM.e
             q.eq(DanReportUpload::getDimension, dimension);
         }
         SortUtil.applySort(q);
-        SortUtil.applySort(q);
         List<DanReportUpload> list = uploadMapper.selectList(q);
         java.util.List<DanReportUploadVO> result = new java.util.ArrayList<>();
         for (DanReportUpload u : list) {

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/DietRecordService.java

@@ -106,7 +106,6 @@ public class DietRecordService {
         wrapper.eq(DietRecord::getMemberId, memberId)
                .eq(DietRecord::getRecordDate, date);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<DietRecord> records = dietRecordMapper.selectList(wrapper);
         summary.put("records", records);
         return summary;
@@ -129,7 +128,6 @@ public class DietRecordService {
                .ge(DietRecord::getRecordDate, startDate)
                .le(DietRecord::getRecordDate, endDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<DietRecord> records = dietRecordMapper.selectList(wrapper);
         trend.put("records", records);
         trend.put("days", records.size());

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/EcomSupplierService.java

@@ -28,7 +28,6 @@ public class EcomSupplierService {
             wrapper.like(EcomSupplier::getName, keyword.trim());
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<EcomSupplier> result = supplierMapper.selectPage(pageParam, wrapper);
         Map<String, Object> data = new HashMap<>();
         data.put("records", result.getRecords());

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/EmotionAlertService.java

@@ -147,7 +147,6 @@ public class EmotionAlertService {
                 .eq(resolved != null, EmotionAlert::getResolved, resolved)
                 .orderByDesc(EmotionAlert::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<EmotionAlert> all = emotionAlertMapper.selectList(wrapper);
         int total = all.size();
         int fromIndex = (page - 1) * size;

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/EmotionCheckinService.java

@@ -90,7 +90,6 @@ public class EmotionCheckinService {
                 .eq(EmotionCheckin::getChildId, childId)
                 .orderByDesc(EmotionCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<EmotionCheckin> list = emotionCheckinMapper.selectList(wrapper);
 
         FamilyMember child = familyMemberMapper.selectById(childId);
@@ -128,7 +127,6 @@ public class EmotionCheckinService {
                 .eq(EmotionCheckin::getChildId, childId)
                 .orderByDesc(EmotionCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<EmotionCheckin> all = emotionCheckinMapper.selectList(wrapper);
 
         Calendar cal = Calendar.getInstance();
@@ -207,7 +205,6 @@ public class EmotionCheckinService {
                 .eq(EmotionCheckin::getChildId, childId)
                 .orderByDesc(EmotionCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<EmotionCheckin> all = emotionCheckinMapper.selectList(wrapper);
 
         Map<String, Integer> breakdown = new HashMap<>();
@@ -238,7 +235,6 @@ public class EmotionCheckinService {
                 .eq(EmotionCheckin::getChildId, childId)
                 .orderByDesc(EmotionCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<EmotionCheckin> all = emotionCheckinMapper.selectList(wrapper);
 
         Calendar cal = Calendar.getInstance();

+ 0 - 9
cfc-backend/src/main/java/com/etotem/cfc/service/EnergyService.java

@@ -346,7 +346,6 @@ public class EnergyService {
                 .gt(Task::getCreatedAt, cal.getTime())
                 .ne(Task::getIsTemplate, 1);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<Task> tasks = taskMapper.selectList(wrapper);
         if (tasks.isEmpty()) return 0;
         long completed = tasks.stream().filter(t -> "completed".equals(t.getStatus())).count();
@@ -608,7 +607,6 @@ public class EnergyService {
         LambdaQueryWrapper<GameRecord> gw = new LambdaQueryWrapper<GameRecord>()
                 .eq(GameRecord::getChildId, memberId);
         SortUtil.applySort(gw);
-        SortUtil.applySort(gw);
         List<GameRecord> games = gameRecordMapper.selectList(gw);
         if (!games.isEmpty()) {
             double avgScore = games.stream()
@@ -633,7 +631,6 @@ public class EnergyService {
         LambdaQueryWrapper<GameRecord> gw = new LambdaQueryWrapper<GameRecord>()
                 .eq(GameRecord::getChildId, memberId);
         SortUtil.applySort(gw);
-        SortUtil.applySort(gw);
         List<GameRecord> games = gameRecordMapper.selectList(gw);
         if (!games.isEmpty()) {
             double avgScore = games.stream()
@@ -684,7 +681,6 @@ public class EnergyService {
                 .orderByDesc(StreakMilestone::getDays)
                 .last("LIMIT 1");
         SortUtil.applySort(mw);
-        SortUtil.applySort(mw);
         List<StreakMilestone> milestones = streakMilestoneMapper.selectList(mw);
         int maxMilestone = 30;
         if (!milestones.isEmpty() && milestones.get(0).getDays() != null) {
@@ -721,7 +717,6 @@ public class EnergyService {
                 .orderByDesc(DanAssessmentResult::getAssessmentDate)
                 .last("LIMIT 3");
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         List<DanAssessmentResult> results = danAssessmentResultMapper.selectList(qw);
         if (results.isEmpty()) return 0;
 
@@ -762,7 +757,6 @@ public class EnergyService {
                 .gt(PointsLog::getAmount, 0)
                 .gt(PointsLog::getCreatedAt, oneYearAgo);
         SortUtil.applySort(earnedWrapper);
-        SortUtil.applySort(earnedWrapper);
         List<PointsLog> earnedLogs = pointsLogMapper.selectList(earnedWrapper);
         int earned = earnedLogs.stream()
                 .mapToInt(pl -> pl.getAmount() != null ? pl.getAmount() : 0)
@@ -774,7 +768,6 @@ public class EnergyService {
                 .ne(Task::getStatus, "cancelled")
                 .gt(Task::getCreatedAt, oneYearAgo);
         SortUtil.applySort(taskWrapper);
-        SortUtil.applySort(taskWrapper);
         List<Task> tasks = taskMapper.selectList(taskWrapper);
         int available = tasks.stream()
                 .mapToInt(t -> t.getPoints() != null ? t.getPoints() : 0)
@@ -1121,7 +1114,6 @@ public class EnergyService {
                 .ne(Task::getStatus, "cancelled")
                 .gt(Task::getCreatedAt, since);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<Task> tasks = taskMapper.selectList(wrapper);
 
@@ -1508,7 +1500,6 @@ public class EnergyService {
         }
         wrapper.orderByDesc(EnergyLog::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return energyLogMapper.selectPage(pageParam, wrapper);
     }
 

+ 0 - 6
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyChallengeService.java

@@ -53,7 +53,6 @@ public class FamilyChallengeService {
                 .in(FamilyChallenge::getStatus, "active", "pending")
                 .orderByDesc(FamilyChallenge::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyChallenge> active = familyChallengeMapper.selectList(wrapper);
 
         for (FamilyChallenge c : active) {
@@ -64,7 +63,6 @@ public class FamilyChallengeService {
             }
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         active = familyChallengeMapper.selectList(wrapper);
 
@@ -130,7 +128,6 @@ public class FamilyChallengeService {
             LambdaQueryWrapper<FamilyMember> mw = new LambdaQueryWrapper<FamilyMember>()
                     .eq(FamilyMember::getFamilyId, familyId);
             SortUtil.applySort(mw);
-            SortUtil.applySort(mw);
             List<FamilyMember> members = familyMemberMapper.selectList(mw);
             for (FamilyMember m : members) {
                 FamilyChallengeParticipant participant = new FamilyChallengeParticipant();
@@ -347,7 +344,6 @@ public class FamilyChallengeService {
         LambdaQueryWrapper<FamilyChallengeProgress> pw = new LambdaQueryWrapper<FamilyChallengeProgress>()
                 .eq(FamilyChallengeProgress::getChallengeId, challenge.getId());
         SortUtil.applySort(pw);
-        SortUtil.applySort(pw);
         List<FamilyChallengeProgress> progresses = familyChallengeProgressMapper.selectList(pw);
         int totalProgress = 0;
         for (FamilyChallengeProgress p : progresses) {
@@ -429,7 +425,6 @@ public class FamilyChallengeService {
                 .eq(FamilyChallenge::getStatus, "completed")
                 .orderByDesc(FamilyChallenge::getEndDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyChallenge> history = familyChallengeMapper.selectList(wrapper);
         fillProgress(history);
         return history;
@@ -448,7 +443,6 @@ public class FamilyChallengeService {
             LambdaQueryWrapper<FamilyChallengeProgress> pw = new LambdaQueryWrapper<FamilyChallengeProgress>()
                     .eq(FamilyChallengeProgress::getChallengeId, c.getId());
             SortUtil.applySort(pw);
-            SortUtil.applySort(pw);
             List<FamilyChallengeProgress> progresses = familyChallengeProgressMapper.selectList(pw);
 
             int total = 0;

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyCommissionService.java

@@ -78,7 +78,6 @@ public class FamilyCommissionService {
                 .eq(FamilyCommission::getPromoterFamilyId, familyId)
                 .eq(FamilyCommission::getStatus, "paid");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyCommission> list = familyCommissionMapper.selectList(wrapper);
         BigDecimal total = BigDecimal.ZERO;
         for (FamilyCommission c : list) {

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyEarningsService.java

@@ -280,7 +280,6 @@ public class FamilyEarningsService {
         
         wrapper.orderByDesc(FamilyEarningsRecord::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return familyEarningsRecordMapper.selectList(wrapper);
     }
     

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyHealthScoreService.java

@@ -36,7 +36,6 @@ public class FamilyHealthScoreService {
         LambdaQueryWrapper<FamilyMember> wrapper = new LambdaQueryWrapper<FamilyMember>()
                 .eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyMember> allMembers = familyMemberMapper.selectList(wrapper);
 
         List<FamilyMember> children = new ArrayList<>();

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/FamilyMemberService.java

@@ -596,7 +596,6 @@ public class FamilyMemberService {
             query.eq(FamilyMemberLog::getMemberId, memberId);
         }
         SortUtil.applySort(query);
-        SortUtil.applySort(query);
         List<FamilyMemberLog> logs = familyMemberLogMapper.selectList(query);
         return Result.success(logs);
     }

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/FinanceCheckinService.java

@@ -44,7 +44,6 @@ public class FinanceCheckinService {
         }
         wrapper.orderByDesc(FinanceCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return financeCheckinMapper.selectList(wrapper);
     }
 
@@ -171,7 +170,6 @@ task.setExecutorId(memberId);
             wrapper.eq(FinanceCheckin::getChildId, memberId);
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<FinanceCheckin> all = financeCheckinMapper.selectList(wrapper);
         long totalCheckins = all.size();

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/FiveDimensionScoreService.java

@@ -71,7 +71,6 @@ public class FiveDimensionScoreService {
                 .orderByDesc(FiveDimensionScore::getAssessedAt)
                 .last("LIMIT " + Math.min(limit, 100));
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         return fiveDimensionScoreMapper.selectList(qw);
     }
 
@@ -81,7 +80,6 @@ public class FiveDimensionScoreService {
                 .eq(FiveDimensionScore::getFamilyId, familyId)
                 .orderByDesc(FiveDimensionScore::getAssessedAt);
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         List<FiveDimensionScore> all = fiveDimensionScoreMapper.selectList(qw);
         // 按 dimensionCode 分组取最新一条
         Map<String, Optional<FiveDimensionScore>> grouped = all.stream()
@@ -105,7 +103,6 @@ public class FiveDimensionScoreService {
         if (toDate != null) qw.le(FiveDimensionScore::getAssessedAt, toDate);
         qw.orderByAsc(FiveDimensionScore::getAssessedAt);
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         return fiveDimensionScoreMapper.selectList(qw);
     }
 }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/FiveDimensionSelfCheckService.java

@@ -252,7 +252,6 @@ public class FiveDimensionSelfCheckService {
                 .orderByDesc(FiveDimensionSelfCheck::getCreatedAt)
                 .last("LIMIT " + limit);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FiveDimensionSelfCheck> records = selfCheckMapper.selectList(wrapper);
         List<SelfCheckResultVO> result = new ArrayList<>();
         for (FiveDimensionSelfCheck record : records) {

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/FoodService.java

@@ -40,7 +40,6 @@ public class FoodService {
             wrapper.orderByAsc(Food::getSortOrder);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return foodMapper.selectList(wrapper);
     }
 
@@ -89,7 +88,6 @@ public class FoodService {
             wrapper.orderByAsc(Food::getSortOrder).orderByAsc(Food::getId);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return foodMapper.selectPage(new Page<>(page, size), wrapper);
     }
 

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/GameRecordService.java

@@ -77,7 +77,6 @@ log.warn("游戏能量发放失败: memberId={}, gameCode={}, error={}",
         int offset = (page - 1) * size;
         wrapper.last("LIMIT " + size + " OFFSET " + offset);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<GameRecord> records = gameRecordMapper.selectList(wrapper);
 
@@ -118,7 +117,6 @@ log.warn("游戏能量发放失败: memberId={}, gameCode={}, error={}",
         SortUtil.applySort(wrapper);
         long totalGames = gameRecordMapper.selectCount(wrapper);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<GameRecord> all = gameRecordMapper.selectList(wrapper);
         int totalPoints = 0;

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/GrowthPlanService.java

@@ -36,7 +36,6 @@ public class GrowthPlanService {
         wrapper.eq(GrowthPlan::getChildId, memberId);
         wrapper.orderByDesc(GrowthPlan::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return growthPlanMapper.selectList(wrapper);
     }
 
@@ -45,7 +44,6 @@ public class GrowthPlanService {
         wrapper.eq(GrowthPlan::getTeacherId, teacherId);
         wrapper.orderByDesc(GrowthPlan::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return growthPlanMapper.selectList(wrapper);
     }
 
@@ -56,7 +54,6 @@ public class GrowthPlanService {
         wrapper.orderByDesc(GrowthPlan::getCreatedAt);
         wrapper.last("LIMIT 1");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<GrowthPlan> list = growthPlanMapper.selectList(wrapper);
         return list.isEmpty() ? null : list.get(0);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/GrowthTaskService.java

@@ -56,7 +56,6 @@ public List<Map<String, Object>> getTaskList(Long userId, Map<String, String> pa
 		queryWrapper.eq(GrowthTask::getDimension, dimension);
 	}
 
-	SortUtil.applySort(queryWrapper);
 	SortUtil.applySort(queryWrapper);
 	List<GrowthTask> tasks = growthTaskMapper.selectList(queryWrapper);
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/GuideApplicationService.java

@@ -216,7 +216,6 @@ public class GuideApplicationService extends ServiceImpl<GuideApplicationMapper,
         wrapper.eq(GuideApplicationRecord::getApplicationId, applicationId)
                .orderByAsc(GuideApplicationRecord::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return guideApplicationRecordMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/HealthCheckinService.java

@@ -59,7 +59,6 @@ public class HealthCheckinService {
         }
         wrapper.orderByDesc(HealthCheckin::getCheckinDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<HealthCheckin> list = healthCheckinMapper.selectList(wrapper);
         // Filter by yearMonth if provided (format: "2024-01")
         if (yearMonth != null && yearMonth.length() == 7) {

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/HealthCircleService.java

@@ -38,7 +38,6 @@ public class HealthCircleService {
                 .eq(HealthCircleMember::getFamilyId, familyId)
                 .eq(HealthCircleMember::getStatus, "active");
         SortUtil.applySort(mw);
-        SortUtil.applySort(mw);
         List<HealthCircleMember> memberships = healthCircleMemberMapper.selectList(mw);
         if (memberships.isEmpty()) return new ArrayList<>();
 
@@ -50,7 +49,6 @@ public class HealthCircleService {
                 .in(HealthCircle::getId, circleIds)
                 .eq(HealthCircle::getStatus, "active");
         SortUtil.applySort(cw);
-        SortUtil.applySort(cw);
         return healthCircleMapper.selectList(cw);
     }
 
@@ -158,7 +156,6 @@ public class HealthCircleService {
                 .eq(HealthCircleMember::getCircleId, circleId)
                 .eq(HealthCircleMember::getStatus, "active");
         SortUtil.applySort(mw);
-        SortUtil.applySort(mw);
         List<HealthCircleMember> members = healthCircleMemberMapper.selectList(mw);
 
         List<Map<String, Object>> familyScores = new ArrayList<>();
@@ -189,7 +186,6 @@ public class HealthCircleService {
                 .eq(CircleChallenge::getCircleId, circleId)
                 .orderByDesc(CircleChallenge::getCreatedAt);
         SortUtil.applySort(cw);
-        SortUtil.applySort(cw);
         return circleChallengeMapper.selectList(cw);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/HealthInteractionService.java

@@ -56,7 +56,6 @@ public class HealthInteractionService {
                 .eq(HealthInteraction::getActionId, actionId)
                 .gt(HealthInteraction::getCreatedAt, sinceDate);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<HealthInteraction> existing = healthInteractionMapper.selectList(wrapper);
         return existing != null && !existing.isEmpty();

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/HealthReportService.java

@@ -741,7 +741,6 @@ public class HealthReportService {
         indicatorWrapper.in(HealthIndicator::getCategory, "神经递质与激素", "短链脂肪酸");
         indicatorWrapper.orderByAsc(HealthIndicator::getSortOrder);
         SortUtil.applySort(indicatorWrapper);
-        SortUtil.applySort(indicatorWrapper);
         return healthIndicatorMapper.selectList(indicatorWrapper);
     }
 
@@ -784,7 +783,6 @@ public class HealthReportService {
                 .eq(HealthReport::getStatus, "active")
                 .orderByDesc(HealthReport::getReportDate);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         p = healthReportMapper.selectPage(p, wrapper);
 
         List<Map<String, Object>> records = new ArrayList<>();
@@ -992,7 +990,6 @@ public class HealthReportService {
         wrapper.eq(HealthReportDraft::getStatus, "pending")
                 .orderByDesc(HealthReportDraft::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         p = draftMapper.selectPage(p, wrapper);
         return p.getRecords();
     }

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/IndicatorService.java

@@ -26,7 +26,6 @@ public class IndicatorService {
         if (status != null) qw.eq(IndicatorDefinition::getStatus, status);
         qw.orderByAsc(IndicatorDefinition::getSortOrder);
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         return indicatorDefinitionMapper.selectList(qw);
     }
 
@@ -56,7 +55,6 @@ public class IndicatorService {
         qw.eq(IndicatorValue::getSourceType, sourceType);
         qw.eq(IndicatorValue::getSourceId, sourceId);
         SortUtil.applySort(qw);
-        SortUtil.applySort(qw);
         return indicatorValueMapper.selectList(qw);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/InsurancePlanningService.java

@@ -77,7 +77,6 @@ public class InsurancePlanningService {
                                     .map(m -> m.getId())
                                     .collect(Collectors.toList()));
             SortUtil.applySort(policyWrapper);
-            SortUtil.applySort(policyWrapper);
             allPolicies = insurancePolicyMapper.selectList(policyWrapper);
         }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/InsurancePolicyService.java

@@ -30,7 +30,6 @@ public class InsurancePolicyService {
         }
         wrapper.orderByDesc(InsurancePolicy::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return insurancePolicyMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/InteractionLogService.java

@@ -104,7 +104,6 @@ public class InteractionLogService {
         }
         wrapper.orderByDesc(InteractionLog::getHappenedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<InteractionLog> pageResult = interactionLogMapper.selectPage(new Page<>(page, size), wrapper);
         Page<InteractionLogVO> voPage = new Page<>(pageResult.getCurrent(), pageResult.getSize(), pageResult.getTotal());

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/InventoryService.java

@@ -145,7 +145,6 @@ public class InventoryService {
             wrapper.eq(InventoryInboundOrder::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<InventoryInboundOrder> result = inboundOrderMapper.selectPage(pageParam, wrapper);
         Map<String, Object> data = new HashMap<>();
         data.put("records", result.getRecords());
@@ -190,7 +189,6 @@ public class InventoryService {
             } catch (Exception ignored) {}
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<InventoryTransaction> result = transactionMapper.selectPage(pageParam, wrapper);
         // 补充商品名称
         List<Map<String, Object>> enrichedRecords = new ArrayList<>();
@@ -354,7 +352,6 @@ public class InventoryService {
             wrapper.eq(InventoryCountingRecord::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<InventoryCountingRecord> result = countingRecordMapper.selectPage(pageParam, wrapper);
         Map<String, Object> data = new HashMap<>();
         data.put("records", result.getRecords());
@@ -562,7 +559,6 @@ public class InventoryService {
             } catch (Exception ignored) {}
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<InventoryTransaction> result = transactionMapper.selectPage(pageParam, wrapper);
         List<Map<String, Object>> enrichedRecords = new ArrayList<>();
         for (InventoryTransaction tx : result.getRecords()) {

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/NutritionDeficiencyService.java

@@ -57,7 +57,6 @@ public class NutritionDeficiencyService {
         }
         wrapper.orderByDesc(NutritionDeficiencyRecord::getSeverity);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return recordMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/NutritionProductService.java

@@ -83,7 +83,6 @@ public class NutritionProductService {
         wrapper.eq(NutritionProduct::getStatus, 1);
         wrapper.orderByDesc(NutritionProduct::getUpdateTime);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return nutritionProductMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/PendingRefundService.java

@@ -183,7 +183,6 @@ public class PendingRefundService {
             wrapper.eq(PendingRefund::getOrderType, orderType);
         }
         
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return pendingRefundMapper.selectPage(pageParam, wrapper);
     }

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/PointsExchangeService.java

@@ -58,7 +58,6 @@ public class PointsExchangeService {
         }
         wrapper.orderByAsc(PointsExchangeProduct::getSortOrder);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return pointsExchangeProductMapper.selectPage(pageParam, wrapper);
     }
 
@@ -297,7 +296,6 @@ public class PointsExchangeService {
         wrapper.eq(PointsExchangeRecord::getUserId, userId)
                .orderByDesc(PointsExchangeRecord::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return pointsExchangeRecordMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/PointsService.java

@@ -195,7 +195,6 @@ public class PointsService implements PointsServiceInterface {
         }
         wrapper.orderByDesc(PointsLog::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return pointsLogMapper.selectPage(pageParam, wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/PpointConfigService.java

@@ -148,7 +148,6 @@ public class PpointConfigService {
         LambdaQueryWrapper<CategoryPpoint> wrapper = new LambdaQueryWrapper<CategoryPpoint>()
                 .orderByDesc(CategoryPpoint::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<CategoryPpoint> page = categoryPpointMapper.selectPage(pageParam, wrapper);
         List<CategoryPpoint> records = page.getRecords();
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/PpointService.java

@@ -125,7 +125,6 @@ public class PpointService {
             wrapper.eq(ProductPpoint::getProductId, productId);
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         Page<ProductPpoint> page = productPpointMapper.selectPage(pageParam, wrapper);
         List<ProductPpoint> records = page.getRecords();

+ 0 - 4
cfc-backend/src/main/java/com/etotem/cfc/service/ProductOrderService.java

@@ -951,7 +951,6 @@ public class ProductOrderService {
             wrapper.and(w -> w.like(ProductOrder::getProductName, kw).or().like(ProductOrder::getOrderNo, kw));
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ProductOrder> list = orderMapper.selectList(wrapper);
         return Result.success(list.stream().map(ProductOrderDTO::from).collect(Collectors.toList()));
     }
@@ -1006,7 +1005,6 @@ public class ProductOrderService {
             wrapper.eq(ProductOrder::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ProductOrder> list = orderMapper.selectList(wrapper);
         return Result.success(list.stream().map(ProductOrderDTO::from).collect(Collectors.toList()));
     }
@@ -1018,7 +1016,6 @@ public class ProductOrderService {
             wrapper.eq(ProductOrder::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ProductOrder> list = orderMapper.selectList(wrapper);
         return Result.success(list.stream().map(ProductOrderDTO::from).collect(Collectors.toList()));
     }
@@ -1050,7 +1047,6 @@ public class ProductOrderService {
             } catch (Exception ignored) {}
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         Page<ProductOrder> result = orderMapper.selectPage(pageParam, wrapper);
         List<ProductOrderDTO> records = result.getRecords().stream()
             .map(ProductOrderDTO::from)

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/ProductRecommendationService.java

@@ -67,7 +67,6 @@ public class ProductRecommendationService {
             mappingQw.eq(ProductDimensionMapping::getDimensionCode, dimensionCode);
         }
         SortUtil.applySort(mappingQw);
-        SortUtil.applySort(mappingQw);
         List<ProductDimensionMapping> mappings = dimensionMappingMapper.selectList(mappingQw);
 
         if (mappings != null && !mappings.isEmpty()) {
@@ -121,7 +120,6 @@ public class ProductRecommendationService {
                 domainQw.notIn(Product::getId, purchasedIds);
             }
             SortUtil.applySort(domainQw);
-            SortUtil.applySort(domainQw);
             List<Product> domainMatched = productMapper.selectList(domainQw);
             candidates.addAll(domainMatched);
         }
@@ -248,7 +246,6 @@ public class ProductRecommendationService {
         qw.eq(memberId != null, FiveDimensionScore::getMemberId, memberId);
         qw.orderByDesc(FiveDimensionScore::getAssessedAt);
 
-        SortUtil.applySort(qw);
         SortUtil.applySort(qw);
         List<FiveDimensionScore> records = fiveDimensionScoreMapper.selectList(qw);
 

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/ProductService.java

@@ -100,7 +100,6 @@ wrapper.in(Product::getId, productIds)
             wrapper.like(Product::getName, query.getKeyword());
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         IPage<Product> result = productMapper.selectPage(page, wrapper);
         boolean isGuest = (userId == null);
         String memberLevel = null;
@@ -250,7 +249,6 @@ wrapper.in(Product::getId, productIds)
             wrapper.eq(Product::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<Product> list = productMapper.selectList(wrapper);
         List<ProductDTO> dtos = list.stream().map(ProductDTO::from).collect(Collectors.toList());
         return Result.success(dtos);
@@ -260,7 +258,6 @@ wrapper.in(Product::getId, productIds)
      * 管理员分页查询商品列表
      */
     public Page<Product> adminProductList(Page<Product> pageParam, LambdaQueryWrapper<Product> wrapper) {
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return productMapper.selectPage(pageParam, wrapper);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/PromotionMaterialService.java

@@ -36,7 +36,6 @@ public class PromotionMaterialService {
         wrapper.orderByAsc(PromotionMaterial::getSortOrder);
         wrapper.orderByDesc(PromotionMaterial::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return promotionMaterialMapper.selectPage(new Page<>(pageNum, pageSize), wrapper);
     }
 

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/RecommendationService.java

@@ -245,7 +245,6 @@ public class RecommendationService {
                 .orderByDesc(ProductDimensionMapping::getMatchScore)
                 .last("LIMIT " + maxLimit);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<ProductDimensionMapping> mappings = productDimensionMappingMapper.selectList(wrapper);
 
@@ -285,7 +284,6 @@ public class RecommendationService {
                 .eq(RepurchaseReminderRecord::getPurchased, 0)
                 .orderByDesc(RepurchaseReminderRecord::getSentAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<RepurchaseReminderRecord> records = repurchaseReminderRecordMapper.selectList(wrapper);
 

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/RelationshipQualityService.java

@@ -48,7 +48,6 @@ public class RelationshipQualityService {
         LambdaQueryWrapper<FamilyMember> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyMember> members = familyMemberMapper.selectList(wrapper);
 
         List<RelationshipScoreVO> result = new ArrayList<>();
@@ -113,7 +112,6 @@ public class RelationshipQualityService {
         LambdaQueryWrapper<FamilyMember> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyMember> members = familyMemberMapper.selectList(wrapper);
 
         List<HealthAlertVO> alerts = new ArrayList<>();
@@ -156,7 +154,6 @@ public class RelationshipQualityService {
         LambdaQueryWrapper<FamilyMember> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<FamilyMember> members = familyMemberMapper.selectList(wrapper);
 
         List<MilestoneVO> milestones = new ArrayList<>();

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/RelationshipQuestionnaireService.java

@@ -194,7 +194,6 @@ public class RelationshipQuestionnaireService {
         LambdaQueryWrapper<RelationshipQuestionnaireSnapshot> snapWrapper = new LambdaQueryWrapper<>();
         snapWrapper.eq(RelationshipQuestionnaireSnapshot::getFamilyMemberId, memberId);
         SortUtil.applySort(snapWrapper);
-        SortUtil.applySort(snapWrapper);
         List<RelationshipQuestionnaireSnapshot> snapshots = snapshotMapper.selectList(snapWrapper);
 
         if (snapshots.isEmpty()) {
@@ -211,7 +210,6 @@ public class RelationshipQuestionnaireService {
         respWrapper.in(RelationshipQuestionnaireResponse::getSnapshotId, snapshotIds)
                 .orderByDesc(RelationshipQuestionnaireResponse::getCalculatedAt);
 
-        SortUtil.applySort(respWrapper);
         SortUtil.applySort(respWrapper);
         return responseMapper.selectList(respWrapper);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/SupplyHierarchyService.java

@@ -202,7 +202,6 @@ public class SupplyHierarchyService extends ServiceImpl<SupplyHierarchyMapper, S
         }
         wrapper.orderByDesc(SupplyHierarchyChangeRequest::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return changeRequestMapper.selectList(wrapper);
     }
 

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/SupplySettlementService.java

@@ -90,7 +90,6 @@ public class SupplySettlementService extends ServiceImpl<SupplySettlementMapper,
         LambdaQueryWrapper<SupplySettlementDetail> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SupplySettlementDetail::getSettlementId, settlementId);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<SupplySettlementDetail> items = supplySettlementDetailMapper.selectList(wrapper);
         return Result.success(items);
     }
@@ -137,7 +136,6 @@ public class SupplySettlementService extends ServiceImpl<SupplySettlementMapper,
                 .ge(ProductOrder::getCreatedAt, periodStart)
                 .le(ProductOrder::getCreatedAt, periodEnd);
 
-        SortUtil.applySort(orderWrapper);
         SortUtil.applySort(orderWrapper);
         List<ProductOrder> orders = productOrderMapper.selectList(orderWrapper);
         if (orders.isEmpty()) {
@@ -149,7 +147,6 @@ public class SupplySettlementService extends ServiceImpl<SupplySettlementMapper,
         LambdaQueryWrapper<SupplySettlementDetail> existingWrapper = new LambdaQueryWrapper<>();
         existingWrapper.in(SupplySettlementDetail::getOrderId, orderIds);
         SortUtil.applySort(existingWrapper);
-        SortUtil.applySort(existingWrapper);
         List<SupplySettlementDetail> existingDetails = supplySettlementDetailMapper.selectList(existingWrapper);
         Set<Long> existingOrderIds = existingDetails.stream()
                 .map(SupplySettlementDetail::getOrderId)

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/SupplySystemService.java

@@ -102,7 +102,6 @@ public class SupplySystemService extends ServiceImpl<SupplySystemMapper, SupplyS
         wrapper.eq(SupplySystemMember::getSystemId, systemId)
                .eq(SupplySystemMember::getStatus, "active");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return supplySystemMemberMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/TaskReminderService.java

@@ -93,7 +93,6 @@ public class TaskReminderService {
         wrapper.orderByDesc(Task::getCreatedAt);
         int offset = (page - 1) * size;
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<Task> tasks = taskMapper.selectList(wrapper);
 
         Map<String, Object> result = new HashMap<>();

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java

@@ -282,7 +282,6 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
             );
         }
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return taskMapper.selectList(wrapper);
     }
@@ -566,7 +565,6 @@ return result;
         .eq(Task::getStatus, "completed")
         .orderByDesc(Task::getCompletedAt);
 
-    SortUtil.applySort(wrapper);
     SortUtil.applySort(wrapper);
     return taskMapper.selectList(wrapper);
   }
@@ -946,7 +944,6 @@ return 0; // 达到每日扣分上限
         }
         wrapper.orderByDesc(Task::getCreatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return taskMapper.selectPage(new Page<>(page, size), wrapper);
     }
 

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/TaskStatsService.java

@@ -51,7 +51,6 @@ public class TaskStatsService {
         }
         wrapper.orderByDesc(Task::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<Task> tasks = taskMapper.selectList(wrapper);
         return buildStats(tasks, null, null);
@@ -109,7 +108,6 @@ public class TaskStatsService {
         }
         wrapper.orderByDesc(Task::getCreatedAt);
 
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return taskMapper.selectList(wrapper);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/TaskTemplatePackageService.java

@@ -110,7 +110,6 @@ public class TaskTemplatePackageService {
 
         wrapper.orderByDesc("created_at");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return packageMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/TeacherService.java

@@ -109,7 +109,6 @@ public class TeacherService {
         
         wrapper.orderByDesc(AssessmentAppointment::getAppointmentDate);
         
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         List<AssessmentAppointment> appointments = appointmentMapper.selectList(wrapper);
         

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/TianpanService.java

@@ -94,7 +94,6 @@ public class TianpanService {
         LambdaQueryWrapper<FamilyMember> memberWrapper = new LambdaQueryWrapper<>();
         memberWrapper.eq(FamilyMember::getFamilyId, familyId);
         SortUtil.applySort(memberWrapper);
-        SortUtil.applySort(memberWrapper);
         List<FamilyMember> members = familyMemberMapper.selectList(memberWrapper);
 
         // 构建成员传统数据

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/UserAddressService.java

@@ -23,7 +23,6 @@ public class UserAddressService {
             .orderByDesc(UserAddress::getIsDefault)
             .orderByDesc(UserAddress::getUpdatedAt);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return userAddressMapper.selectList(wrapper);
     }
 

+ 0 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/UserOperationLogService.java

@@ -114,7 +114,6 @@ public class UserOperationLogService {
         
         wrapper.orderByDesc(UserOperationLog::getCreatedAt);
         
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return logMapper.selectPage(pageParam, wrapper);
     }
@@ -128,7 +127,6 @@ public class UserOperationLogService {
         wrapper.orderByDesc(UserOperationLog::getCreatedAt);
         wrapper.last("LIMIT " + limit);
         
-        SortUtil.applySort(wrapper);
         SortUtil.applySort(wrapper);
         return logMapper.selectList(wrapper);
     }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/UserSegmentationService.java

@@ -51,7 +51,6 @@ public class UserSegmentationService {
         w.eq(UserTriggerRule::getUserId, userId).eq(UserTriggerRule::getStatus, "active");
         if (triggerType != null) w.eq(UserTriggerRule::getTriggerType, triggerType);
         SortUtil.applySort(w);
-        SortUtil.applySort(w);
         return userTriggerRuleMapper.selectList(w);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/WithdrawalService.java

@@ -99,7 +99,6 @@ public class WithdrawalService {
             wrapper.eq(WithdrawalRequest::getStatus, status);
         }
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return withdrawalRequestMapper.selectPage(pageParam, wrapper);
     }
 }

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/impl/HealthPlanServiceImpl.java

@@ -40,7 +40,6 @@ public class HealthPlanServiceImpl implements HealthPlanService {
         wrapper.eq("family_id", familyId);
         wrapper.orderByDesc("created_at");
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         return healthPlanMapper.selectList(wrapper);
     }
 

+ 0 - 1
cfc-backend/src/main/java/com/etotem/cfc/task/OrderTimeoutCancelTask.java

@@ -38,7 +38,6 @@ public class OrderTimeoutCancelTask {
             .eq(ProductOrder::getStatus, "pending")
             .lt(ProductOrder::getCreatedAt, timeoutTime);
         SortUtil.applySort(wrapper);
-        SortUtil.applySort(wrapper);
         List<ProductOrder> timeoutOrders = orderMapper.selectList(wrapper);
 
         if (timeoutOrders.isEmpty()) {

+ 0 - 3
cfc-backend/src/main/java/com/etotem/cfc/task/VirtualPayTimeoutTask.java

@@ -81,21 +81,18 @@ public class VirtualPayTimeoutTask {
                 .eq(AssessmentOrder::getStatus, "pending")
                 .lt(AssessmentOrder::getCreatedAt, timeoutTime);
         SortUtil.applySort(assessmentWrapper);
-        SortUtil.applySort(assessmentWrapper);
         List<AssessmentOrder> assessmentOrders = assessmentOrderMapper.selectList(assessmentWrapper);
 
         LambdaQueryWrapper<PaymentOrder> paymentWrapper = new LambdaQueryWrapper<PaymentOrder>()
                 .eq(PaymentOrder::getStatus, "pending")
                 .lt(PaymentOrder::getCreatedAt, timeoutTime);
         SortUtil.applySort(paymentWrapper);
-        SortUtil.applySort(paymentWrapper);
         List<PaymentOrder> paymentOrders = paymentOrderMapper.selectList(paymentWrapper);
 
         LambdaQueryWrapper<MemberSubscriptionOrder> subWrapper = new LambdaQueryWrapper<MemberSubscriptionOrder>()
                 .eq(MemberSubscriptionOrder::getStatus, "pending")
                 .lt(MemberSubscriptionOrder::getCreatedAt, timeoutTime);
         SortUtil.applySort(subWrapper);
-        SortUtil.applySort(subWrapper);
         List<MemberSubscriptionOrder> subOrders = memberSubscriptionOrderMapper.selectList(subWrapper);
 
         // 2. 每单处理:解析 openid → queryOrder → 已支付解锁 / 未支付关单 / 失败跳过

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-3ba0359b68536f743301257dbc9b473dcc52510c
+fa66edfbf935c5a4557be6245cf2a4cad1117684

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.969",
+  "version": "1.0.970",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.969",
+      "version": "1.0.970",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.970",
+  "version": "1.0.971",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 9 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,15 @@
 
 ---
 
+## v1.0.971 (2026-08-11)
+
+### 新功能
+- 通关解锁后端全链路 - 2表迁移+UnlockGateService(8判定)+/api/unlock/status+sandbox个人/全家门禁+5处触发钩子+管理端接口
+
+### Bug 修复
+- 雷达图销毁后停止初始化重试 + 成长页定期调研改名成长回看并防御空项点击
+
+
 ## v1.0.970 (2026-08-11)
 
 ### 新功能

+ 10 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.970
+> 当前版本: v1.0.971
 
 ## 历史版本
 
@@ -8,6 +8,15 @@
 
 ---
 
+## v1.0.971 (2026-08-11)
+
+### 新功能
+- 通关解锁后端全链路 - 2表迁移+UnlockGateService(8判定)+/api/unlock/status+sandbox个人/全家门禁+5处触发钩子+管理端接口
+
+### Bug 修复
+- 雷达图销毁后停止初始化重试 + 成长页定期调研改名成长回看并防御空项点击
+
+
 ## v1.0.970 (2026-08-11)
 
 ### 新功能