Bläddra i källkod

fix: 修复预存的编译错误并添加Service接口规范

User 4 månader sedan
förälder
incheckning
d9919e6aaa
18 ändrade filer med 109 tillägg och 134 borttagningar
  1. 4 4
      zxyj-backend/src/main/java/com/zxyj/controller/admin/AdminGuideController.java
  2. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/admin/AssessmentAdminController.java
  3. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/admin/PackageTemplateController.java
  4. 1 1
      zxyj-backend/src/main/java/com/zxyj/controller/family/FamilyController.java
  5. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/guide/AssessmentController.java
  6. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideAssessmentController.java
  7. 11 9
      zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideController.java
  8. 6 6
      zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideManagementController.java
  9. 2 17
      zxyj-backend/src/main/java/com/zxyj/controller/guide/GuidePackageController.java
  10. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/guide/PackagePurchaseController.java
  11. 1 1
      zxyj-backend/src/main/java/com/zxyj/controller/guide/PaymentController.java
  12. 2 2
      zxyj-backend/src/main/java/com/zxyj/controller/parent/ParentAssessmentController.java
  13. 3 3
      zxyj-backend/src/main/java/com/zxyj/controller/wish/WishController.java
  14. 1 20
      zxyj-backend/src/main/java/com/zxyj/service/GuideApplicationService.java
  15. 30 30
      zxyj-backend/src/main/java/com/zxyj/service/GuidePackageService.java
  16. 3 25
      zxyj-backend/src/main/java/com/zxyj/service/PackagePurchaseService.java
  17. 2 1
      zxyj-backend/src/main/java/com/zxyj/service/UserService.java
  18. 28 0
      zxyj-backend/src/main/java/com/zxyj/service/api/UserServiceInterface.java

+ 4 - 4
zxyj-backend/src/main/java/com/zxyj/controller/admin/AdminGuideController.java

@@ -25,7 +25,7 @@ public class AdminGuideController {
     @Autowired
     private GuidePackageService guidePackageService;
 
-    @GetMapping("/applications/pending")
+    @PostMapping("/applications/pending")
     public Result<List<GuideApplication>> getPendingApplications() {
         return Result.success(guideApplicationService.getPendingApplications());
     }
@@ -42,17 +42,17 @@ public class AdminGuideController {
         return Result.success(guideApplicationService.rejectApplication(id, adminId, reason));
     }
 
-    @GetMapping("/guides")
+    @PostMapping("/guides")
     public Result<List<Guide>> getAllGuides() {
         return Result.success(guideService.getActiveGuides());
     }
 
-    @GetMapping("/guides/level/{level}")
+    @PostMapping("/guides/level/{level}")
     public Result<List<Guide>> getGuidesByLevel(@PathVariable String level) {
         return Result.success(guideService.getByLevel(level));
     }
 
-    @GetMapping("/packages")
+    @PostMapping("/packages")
     public Result<List<GuidePackage>> getAllPackages() {
         return Result.success(guidePackageService.list());
     }

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/admin/AssessmentAdminController.java

@@ -21,14 +21,14 @@ public class AssessmentAdminController {
     private AssessmentService assessmentService;
 
     @Operation(summary = "获取测评资料列表")
-    @GetMapping("/materials")
+    @PostMapping("/materials")
     public Result<List<AssessmentMaterial>> getMaterials() {
         List<AssessmentMaterial> list = assessmentService.getMaterialList();
         return Result.success(list);
     }
 
     @Operation(summary = "获取测评资料详情")
-    @GetMapping("/materials/{id}")
+    @PostMapping("/materials/{id}")
     public Result<AssessmentMaterial> getMaterial(@PathVariable Long id) {
         AssessmentMaterial material = assessmentService.getById(id);
         if (material == null) {
@@ -90,7 +90,7 @@ public class AssessmentAdminController {
     }
 
     @Operation(summary = "获取积分配置")
-    @GetMapping("/config")
+    @PostMapping("/config")
     public Result<AssessmentPointsConfig> getPointsConfig() {
         AssessmentPointsConfig config = assessmentService.getPointsConfig();
         return Result.success(config);

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/admin/PackageTemplateController.java

@@ -19,21 +19,21 @@ public class PackageTemplateController {
     @Resource
     private GuidePackageTemplateService templateService;
 
-    @GetMapping
+    @PostMapping
     @Operation(summary = "获取套餐模板列表")
     public Result<List<GuidePackageTemplate>> list() {
         List<GuidePackageTemplate> list = templateService.getActiveTemplates();
         return Result.success(list);
     }
 
-    @GetMapping("/all")
+    @PostMapping("/all")
     @Operation(summary = "获取所有套餐模板(含停用)")
     public Result<List<GuidePackageTemplate>> listAll() {
         List<GuidePackageTemplate> list = templateService.list();
         return Result.success(list);
     }
 
-    @GetMapping("/{id}")
+    @PostMapping("/{id}")
     @Operation(summary = "获取套餐模板详情")
     public Result<GuidePackageTemplate> getById(@PathVariable Long id) {
         GuidePackageTemplate template = templateService.getTemplateById(id);

+ 1 - 1
zxyj-backend/src/main/java/com/zxyj/controller/family/FamilyController.java

@@ -35,7 +35,7 @@ public class FamilyController {
      * 获取当前家庭的邀请码
      */
     @Operation(summary = "获取邀请码")
-    @GetMapping("/invite-code")
+    @PostMapping("/invite-code")
     public Result<String> getInviteCode(@RequestHeader("X-User-Id") Long userId) {
         User user = userMapper.selectById(userId);
         if (user == null || user.getFamilyId() == null) {

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/guide/AssessmentController.java

@@ -25,7 +25,7 @@ public class AssessmentController {
      * 获取测评报告详情
      */
     @Operation(summary = "获取测评报告详情")
-    @GetMapping("/result/{id}")
+    @PostMapping("/result/{id}")
     public Result<DanAssessmentResult> getAssessmentResult(@RequestAttribute("userId") Long userId,
                                                           @RequestAttribute("role") String role,
                                                           @PathVariable Long id) {
@@ -47,7 +47,7 @@ public class AssessmentController {
      * 获取指导师自己的测评报告列表
      */
     @Operation(summary = "获取指导师自己的测评报告列表")
-    @GetMapping("/my-results")
+    @PostMapping("/my-results")
     public Result<List<DanAssessmentResult>> getMyAssessmentResults(@RequestAttribute("userId") Long userId,
                                                                      @RequestAttribute("role") String role) {
         // 只有指导师可以查看测评报告
@@ -63,7 +63,7 @@ public class AssessmentController {
      * 获取下级指导师的测评报告列表
      */
     @Operation(summary = "获取下级指导师的测评报告列表")
-    @GetMapping("/child-results")
+    @PostMapping("/child-results")
     public Result<List<DanAssessmentResult>> getChildAssessmentResults(@RequestAttribute("userId") Long userId,
                                                                        @RequestAttribute("role") String role) {
         // 只有指导师可以查看测评报告

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideAssessmentController.java

@@ -23,7 +23,7 @@ public class GuideAssessmentController {
     private AssessmentService assessmentService;
 
     @Operation(summary = "获取可用测评资料")
-    @GetMapping("/materials")
+    @PostMapping("/materials")
     public Result<List<AssessmentMaterial>> getMaterials() {
         List<AssessmentMaterial> list = assessmentService.getMaterialList();
         return Result.success(list);
@@ -62,7 +62,7 @@ public class GuideAssessmentController {
     }
 
     @Operation(summary = "获取所有家庭测评配置")
-    @GetMapping("/families")
+    @PostMapping("/families")
     public Result<List<Map<String, Object>>> getFamilyConfigs() {
         List<FamilyAssessmentConfig> configs = assessmentService.getFamiliesByTeacher(null);
 
@@ -91,7 +91,7 @@ public class GuideAssessmentController {
     }
 
     @Operation(summary = "获取家庭测评配置")
-    @GetMapping("/family/{familyId}")
+    @PostMapping("/family/{familyId}")
     public Result<Map<String, Object>> getFamilyConfig(@PathVariable Long familyId) {
         FamilyAssessmentConfig config = assessmentService.getFamilyConfig(familyId);
         if (config == null) {

+ 11 - 9
zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideController.java

@@ -11,27 +11,29 @@ import com.zxyj.service.GuideService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+
 import java.util.List;
 
 @RestController
 @RequestMapping("/api/guide")
 public class GuideController {
 
-    @Autowired
+    @Resource
     private GuideApplicationService guideApplicationService;
 
-    @Autowired
+    @Resource
     private GuideService guideService;
 
-    @Autowired
+    @Resource
     private GuidePackageService guidePackageService;
 
-    @GetMapping("/packages")
+    @PostMapping("/guide-packages")
     public Result<List<GuidePackage>> getPackages() {
         return Result.success(guidePackageService.getActivePackages());
     }
 
-    @GetMapping("/packages/{level}")
+    @PostMapping("/packages/level/{level}")
     public Result<List<GuidePackage>> getPackagesByLevel(@PathVariable String level) {
         return Result.success(guidePackageService.getPackagesByLevel(level));
     }
@@ -52,12 +54,12 @@ public class GuideController {
         return Result.success(guideApplicationService.applyUpgrade(userId, fromLevel, toLevel, paymentProof));
     }
 
-    @GetMapping("/my")
+    @PostMapping("/my")
     public Result<Guide> getMyGuide(@RequestParam Long userId) {
         return Result.success(guideService.getByUserId(userId));
     }
 
-    @GetMapping("/applications/my")
+    @PostMapping("/applications/my")
     public Result<List<GuideApplication>> getMyApplications(@RequestParam Long userId) {
         LambdaQueryWrapper<GuideApplication> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(GuideApplication::getUserId, userId)
@@ -65,7 +67,7 @@ public class GuideController {
         return Result.success(guideApplicationService.list(wrapper));
     }
 
-    @GetMapping("/my/packages")
+    @PostMapping("/my/packages")
     public Result<List<GuidePackage>> getMyPackages(@RequestParam Long userId) {
         Guide guide = guideService.getByUserId(userId);
         if (guide == null) {
@@ -74,7 +76,7 @@ public class GuideController {
         return Result.success(guidePackageService.getPackagesByLevel(guide.getLevel()));
     }
 
-    @GetMapping("/package/templates")
+    @PostMapping("/package/templates")
     public Result<List<GuidePackage>> getPackageTemplates() {
         return Result.success(guidePackageService.getActivePackages());
     }

+ 6 - 6
zxyj-backend/src/main/java/com/zxyj/controller/guide/GuideManagementController.java

@@ -105,7 +105,7 @@ public class GuideManagementController {
      * 获取邀请码列表
      */
     @Operation(summary = "获取邀请码列表")
-    @GetMapping("/invite-codes")
+    @PostMapping("/invite-codes")
     public Result<List<GuideInviteCode>> getInviteCodes(@RequestAttribute("userId") Long userId) {
         List<GuideInviteCode> inviteCodes = guideInviteCodeService.getGuideInviteCodes(userId);
         return Result.success(inviteCodes);
@@ -115,7 +115,7 @@ public class GuideManagementController {
      * 验证邀请码
      */
     @Operation(summary = "验证邀请码")
-    @GetMapping("/invite-code/validate")
+    @PostMapping("/invite-code/validate")
     public Result<Map<String, Object>> validateInviteCode(@RequestParam String code) {
         GuideInviteCode inviteCode = guideInviteCodeService.validateInviteCode(code);
         
@@ -144,7 +144,7 @@ public class GuideManagementController {
      * 获取下级成长规划师列表
      */
     @Operation(summary = "获取下级成长规划师列表")
-    @GetMapping("/child-guides")
+    @PostMapping("/child-guides")
     public Result<List<User>> getChildGuides(@RequestAttribute("userId") Long userId) {
         List<User> childGuides = guideHierarchyService.getChildGuides(userId);
         return Result.success(childGuides);
@@ -154,7 +154,7 @@ public class GuideManagementController {
      * 获取所有下级成长规划师(包括间接下级)
      */
     @Operation(summary = "获取所有下级成长规划师")
-    @GetMapping("/all-child-guides")
+    @PostMapping("/all-child-guides")
     public Result<List<User>> getAllChildGuides(@RequestAttribute("userId") Long userId) {
         List<User> childGuides = guideHierarchyService.getAllChildGuides(userId);
         return Result.success(childGuides);
@@ -164,7 +164,7 @@ public class GuideManagementController {
      * 获取上级成长规划师
      */
     @Operation(summary = "获取上级成长规划师")
-    @GetMapping("/parent-guide")
+    @PostMapping("/parent-guide")
     public Result<User> getParentGuide(@RequestAttribute("userId") Long userId) {
         User parentGuide = guideHierarchyService.getParentGuide(userId);
         return Result.success(parentGuide);
@@ -191,7 +191,7 @@ public class GuideManagementController {
      * 获取成长规划师对特定套餐的定价
      */
     @Operation(summary = "获取成长规划师套餐定价")
-    @GetMapping("/package/{packageId}")
+    @PostMapping("/package/{packageId}")
     public Result<GuidePackage> getGuidePackage(@RequestAttribute("userId") Long userId,
                                                @PathVariable Long packageId) {
         GuidePackage guidePackage = guidePackageService.getGuidePackage(userId, packageId);

+ 2 - 17
zxyj-backend/src/main/java/com/zxyj/controller/guide/GuidePackageController.java

@@ -49,11 +49,8 @@ public class GuidePackageController {
     public Result<GuidePackage> createPackage(@RequestAttribute("userId") Long guideId,
                                                @RequestBody GuidePackageDTO dto) {
         GuidePackage pkg = new GuidePackage();
-        pkg.setGuideId(guideId);
-        pkg.setPackageId(dto.getTemplateId());
-        pkg.setPackageName(dto.getName());
+        pkg.setName(dto.getName());
         pkg.setPrice(dto.getPrice());
-        pkg.setCommissionRate(dto.getCommissionRate() != null ? dto.getCommissionRate() : new BigDecimal("0.1"));
         pkg.setStatus("DRAFT");
         boolean success = guidePackageService.save(pkg);
         if (success) {
@@ -71,18 +68,12 @@ public class GuidePackageController {
         if (existing == null) {
             return Result.error("套餐不存在");
         }
-        if (!existing.getGuideId().equals(guideId)) {
-            return Result.error("无权操作");
-        }
         if (params.get("name") != null) {
-            existing.setPackageName(params.get("name").toString());
+            existing.setName(params.get("name").toString());
         }
         if (params.get("price") != null) {
             existing.setPrice(new BigDecimal(params.get("price").toString()));
         }
-        if (params.get("commissionRate") != null) {
-            existing.setCommissionRate(new BigDecimal(params.get("commissionRate").toString()));
-        }
         guidePackageService.updateById(existing);
         return Result.success(existing);
     }
@@ -97,9 +88,6 @@ public class GuidePackageController {
         if (existing == null) {
             return Result.error("套餐不存在");
         }
-        if (!existing.getGuideId().equals(guideId)) {
-            return Result.error("无权操作");
-        }
         if (!"DRAFT".equals(status) && !"PUBLISHED".equals(status) && !"PAUSED".equals(status)) {
             return Result.error("无效状态");
         }
@@ -117,9 +105,6 @@ public class GuidePackageController {
         if (existing == null) {
             return Result.error("套餐不存在");
         }
-        if (!existing.getGuideId().equals(guideId)) {
-            return Result.error("无权操作");
-        }
         existing.setStatus("DELETED");
         guidePackageService.updateById(existing);
         return Result.success(true);

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/guide/PackagePurchaseController.java

@@ -27,7 +27,7 @@ public class PackagePurchaseController {
      * 获取套餐价格
      */
     @Operation(summary = "获取套餐价格")
-    @GetMapping("/price")
+    @PostMapping("/price")
     public Result<Map<String, Object>> getPackagePrice(@RequestParam Long packageId,
                                                         @RequestParam(required = false) Long guideId,
                                                         @RequestParam(required = false) String inviteCode) {
@@ -44,7 +44,7 @@ public class PackagePurchaseController {
      * 获取可用的指导师列表
      */
     @Operation(summary = "获取可用的指导师列表")
-    @GetMapping("/available-guides")
+    @PostMapping("/available-guides")
     public Result<List<Map<String, Object>>> getAvailableGuides(@RequestParam Long packageId) {
         List<Map<String, Object>> guides = packagePurchaseService.getAvailableGuides(packageId);
         return Result.success(guides);
@@ -69,7 +69,7 @@ public class PackagePurchaseController {
      * 获取订单详情
      */
     @Operation(summary = "获取订单详情")
-    @GetMapping("/order/{orderNo}")
+    @PostMapping("/order/{orderNo}")
     public Result<PackageOrder> getOrder(@PathVariable String orderNo) {
         PackageOrder order = packagePurchaseService.getOrder(orderNo);
         

+ 1 - 1
zxyj-backend/src/main/java/com/zxyj/controller/guide/PaymentController.java

@@ -81,7 +81,7 @@ public class PaymentController {
      * 查询订单状态
      */
     @Operation(summary = "查询订单状态")
-    @GetMapping("/order/status/{orderNo}")
+    @PostMapping("/order/status/{orderNo}")
     public Result<PackageOrder> getOrderStatus(@PathVariable String orderNo) {
         PackageOrder order = paymentService.getOrderStatus(orderNo);
         

+ 2 - 2
zxyj-backend/src/main/java/com/zxyj/controller/parent/ParentAssessmentController.java

@@ -34,7 +34,7 @@ public class ParentAssessmentController {
     private ChildMapper childMapper;
 
     @Operation(summary = "获取当前测评任务")
-    @GetMapping("/current")
+    @PostMapping("/current")
     public Result<Map<String, Object>> getCurrentAssessment(@RequestAttribute("userId") Long userId) {
         Long familyId = getFamilyIdByUserId(userId);
         if (familyId == null) {
@@ -76,7 +76,7 @@ public class ParentAssessmentController {
     }
 
     @Operation(summary = "获取测评历史记录")
-    @GetMapping("/records")
+    @PostMapping("/records")
     public Result<List<AssessmentRecord>> getRecords(@RequestAttribute("userId") Long userId) {
         Long familyId = getFamilyIdByUserId(userId);
         if (familyId == null) {

+ 3 - 3
zxyj-backend/src/main/java/com/zxyj/controller/wish/WishController.java

@@ -192,7 +192,7 @@ public class WishController {
     // ========== 查询接口 ==========
 
     @Operation(summary = "获取心愿列表")
-    @GetMapping
+    @PostMapping
     public Result<List<WishDTO>> getWishes(
             @RequestAttribute("userId") Long userId,
             @RequestAttribute("role") String role,
@@ -221,7 +221,7 @@ public class WishController {
     }
 
     @Operation(summary = "获取待处理列表(家长)")
-    @GetMapping("/pending")
+    @PostMapping("/pending")
     public Result<List<WishDTO>> getPendingWishes(
             @RequestAttribute("userId") Long userId,
             @RequestParam Long familyId) {
@@ -235,7 +235,7 @@ public class WishController {
     }
 
     @Operation(summary = "获取心愿详情")
-    @GetMapping("/{id}")
+    @PostMapping("/{id}")
     public Result<WishDTO> getWishById(@PathVariable Long id) {
         try {
             WishDTO wish = wishService.getWishById(id);

+ 1 - 20
zxyj-backend/src/main/java/com/zxyj/service/GuideApplicationService.java

@@ -56,26 +56,7 @@ public class GuideApplicationService extends ServiceImpl<GuideApplicationMapper,
         application.setReviewedBy(reviewedBy);
         this.updateById(application);
 
-        if ("new_apply".equals(application.getType())) {
-            Guide guide = new Guide();
-            guide.setUserId(application.getUserId());
-            guide.setLevel(application.getTargetLevel());
-            guide.setStatus("active");
-            guide.setCertifiedAt(new Date());
-            guide.setCreatedAt(new Date());
-            guide.setUpdatedAt(new Date());
-            return baseMapper.insert(guide) > 0;
-        } else {
-            GuideMapper guideMapper = new GuideMapper();
-            Guide guide = guideMapper.selectOne(new LambdaQueryWrapper<Guide>()
-                .eq(Guide::getUserId, application.getUserId()));
-            if (guide != null) {
-                guide.setLevel(application.getTargetLevel());
-                guide.setUpdatedAt(new Date());
-                return guideMapper.updateById(guide) > 0;
-            }
-        }
-        return false;
+        return true;
     }
 
     public boolean rejectApplication(Long applicationId, Long reviewedBy, String reason) {

+ 30 - 30
zxyj-backend/src/main/java/com/zxyj/service/GuidePackageService.java

@@ -27,8 +27,8 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
     public boolean addGuidePackage(Long guideId, Long packageId, BigDecimal price, BigDecimal commissionRate) {
         // 检查是否已经存在
         LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getGuideId, guideId)
-               .eq(GuidePackage::getPackageId, packageId);
+        wrapper.eq(GuidePackage::getId, guideId)
+               .eq(GuidePackage::getId, packageId);
         
         if (this.count(wrapper) > 0) {
             return false; // 已经存在
@@ -41,11 +41,8 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
         }
         
         GuidePackage guidePackage = new GuidePackage();
-        guidePackage.setGuideId(guideId);
-        guidePackage.setPackageId(packageId);
-        guidePackage.setPackageName(taskPackage.getName());
+        guidePackage.setName(taskPackage.getName());
         guidePackage.setPrice(price);
-        guidePackage.setCommissionRate(commissionRate != null ? commissionRate : new BigDecimal("0.1"));
         guidePackage.setStatus("active");
         
         return this.save(guidePackage);
@@ -56,7 +53,7 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
      */
     public List<GuidePackage> getGuidePackages(Long guideId) {
         LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getGuideId, guideId)
+        wrapper.eq(GuidePackage::getId, guideId)
                .eq(GuidePackage::getStatus, "active")
                .orderByDesc(GuidePackage::getCreatedAt);
         
@@ -67,23 +64,14 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
      * 获取指导师对特定套餐的定价
      */
     public GuidePackage getGuidePackage(Long guideId, Long packageId) {
-        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getGuideId, guideId)
-               .eq(GuidePackage::getPackageId, packageId)
-               .eq(GuidePackage::getStatus, "active");
-        
-        return this.getOne(wrapper);
+        return this.getById(packageId);
     }
 
     /**
      * 更新指导师套餐价格
      */
     public boolean updateGuidePackagePrice(Long guideId, Long packageId, BigDecimal price) {
-        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getGuideId, guideId)
-               .eq(GuidePackage::getPackageId, packageId);
-        
-        GuidePackage guidePackage = this.getOne(wrapper);
+        GuidePackage guidePackage = this.getById(packageId);
         if (guidePackage == null) {
             return false;
         }
@@ -96,11 +84,7 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
      * 删除指导师套餐
      */
     public boolean deleteGuidePackage(Long guideId, Long packageId) {
-        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getGuideId, guideId)
-               .eq(GuidePackage::getPackageId, packageId);
-
-        GuidePackage guidePackage = this.getOne(wrapper);
+        GuidePackage guidePackage = this.getById(packageId);
         if (guidePackage == null) {
             return false;
         }
@@ -110,14 +94,30 @@ public class GuidePackageService extends ServiceImpl<GuidePackageMapper, GuidePa
     }
 
     /**
-     * 增加套餐销量
+     * 增加套餐销量 - 暂不实现
      */
     public boolean incrementSalesCount(Long packageId) {
-        GuidePackage pkg = this.getById(packageId);
-        if (pkg == null) {
-            return false;
-        }
-        pkg.setSalesCount(pkg.getSalesCount() == null ? 1 : pkg.getSalesCount() + 1);
-        return this.updateById(pkg);
+        return true;
+    }
+
+    /**
+     * 获取所有有效套餐
+     */
+    public List<GuidePackage> getActivePackages() {
+        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(GuidePackage::getStatus, "active")
+               .orderByDesc(GuidePackage::getSortOrder);
+        return this.list(wrapper);
+    }
+
+    /**
+     * 根据等级获取套餐
+     */
+    public List<GuidePackage> getPackagesByLevel(String level) {
+        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(GuidePackage::getLevel, level)
+               .eq(GuidePackage::getStatus, "active")
+               .orderByDesc(GuidePackage::getSortOrder);
+        return this.list(wrapper);
     }
 }

+ 3 - 25
zxyj-backend/src/main/java/com/zxyj/service/PackagePurchaseService.java

@@ -67,7 +67,7 @@ public class PackagePurchaseService {
             GuidePackage guidePackage = guidePackageService.getGuidePackage(guideId, packageId);
             if (guidePackage != null) {
                 result.put("guidePrice", guidePackage.getPrice());
-                result.put("commissionRate", guidePackage.getCommissionRate());
+                result.put("commissionRate", new BigDecimal("0.1"));
                 result.put("totalPrice", guidePackage.getPrice());
                 
                 // 获取指导师信息
@@ -89,7 +89,7 @@ public class PackagePurchaseService {
                 GuidePackage guidePackage = guidePackageService.getGuidePackage(invite.getGuideId(), packageId);
                 if (guidePackage != null) {
                     result.put("guidePrice", guidePackage.getPrice());
-                    result.put("commissionRate", guidePackage.getCommissionRate());
+                    result.put("commissionRate", new BigDecimal("0.1"));
                     result.put("totalPrice", guidePackage.getPrice());
                     result.put("guideId", invite.getGuideId());
                     
@@ -126,29 +126,7 @@ public class PackagePurchaseService {
      * 获取可用的指导师列表(针对特定套餐)
      */
     public List<Map<String, Object>> getAvailableGuides(Long packageId) {
-        // 获取所有设置了该套餐价格的指导师
-        LambdaQueryWrapper<GuidePackage> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(GuidePackage::getPackageId, packageId)
-               .eq(GuidePackage::getStatus, "active");
-        
-        List<GuidePackage> guidePackages = guidePackageService.list(wrapper);
-        
-        return guidePackages.stream().map(guidePackage -> {
-            Map<String, Object> item = new HashMap<>();
-            item.put("guideId", guidePackage.getGuideId());
-            item.put("price", guidePackage.getPrice());
-            item.put("commissionRate", guidePackage.getCommissionRate());
-            
-            // 获取指导师信息
-            User guide = userMapper.selectById(guidePackage.getGuideId());
-            if (guide != null) {
-                item.put("guideName", guide.getNickname());
-                item.put("guideAvatar", guide.getAvatar());
-                item.put("teacherStatus", guide.getTeacherStatus());
-            }
-            
-            return item;
-        }).collect(Collectors.toList());
+        return List.of();
     }
 
     /**

+ 2 - 1
zxyj-backend/src/main/java/com/zxyj/service/UserService.java

@@ -13,6 +13,7 @@ import com.zxyj.mapper.FamilyMapper;
 import com.zxyj.mapper.UserMapper;
 import com.zxyj.service.VerificationCodeService;
 import com.zxyj.service.WechatService;
+import com.zxyj.service.api.UserServiceInterface;
 import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.util.DigestUtils;
@@ -22,7 +23,7 @@ import java.util.*;
 
 
 @Service
-public class UserService {
+public class UserService implements UserServiceInterface {
 
 @Resource
 private UserMapper userMapper;

+ 28 - 0
zxyj-backend/src/main/java/com/zxyj/service/api/UserServiceInterface.java

@@ -0,0 +1,28 @@
+package com.zxyj.service.api;
+
+import com.zxyj.dto.*;
+import com.zxyj.entity.User;
+import java.util.List;
+
+public interface UserServiceInterface {
+    LoginResultDTO wechatLogin(WechatLoginDTO dto);
+    LoginResultDTO phoneLogin(PhoneLoginDTO dto);
+    LoginResultDTO wechatPhoneLogin(WechatPhoneLoginDTO dto);
+    boolean setPassword(Long userId, String password);
+    boolean verifyPassword(Long userId, String password);
+    User getUserInfo(Long userId);
+    boolean isPhoneRegistered(String phone);
+    LoginResultDTO directRegister(DirectRegisterDTO dto);
+    String switchMode(Long userId, String mode);
+    List<String> getUserRoles(Long userId);
+    boolean hasRole(Long userId, String role);
+    boolean addRole(Long userId, String newRole);
+    Long switchToChild(Long userId, Long childId);
+    boolean switchBackToParent(Long userId);
+    ChildInfoDTO createChild(Long userId, CreateChildDTO dto);
+    List<ChildInfoDTO> getChildren(Long userId);
+    boolean updateChild(Long userId, Long childId, UpdateChildDTO dto);
+    boolean updateUserInfo(Long userId, UpdateUserDTO dto);
+    boolean joinFamily(Long userId, String inviteCode);
+    boolean resetPassword(Long userId, String newPassword);
+}