Bläddra i källkod

refactor(api): 合并重复接口-删除死代码GuidePackageController,统一所有接口为POST

E2E Test Bot 4 veckor sedan
förälder
incheckning
74885102f7

+ 0 - 5
cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideController.java

@@ -103,11 +103,6 @@ public class GuideController {
         return Result.success(guidePackageService.getPackagesByLevel(level));
     }
 
-    @PostMapping("/package/templates")
-    public Result<List<GuidePackage>> getPackageTemplates() {
-        return Result.success(guidePackageService.getActivePackages());
-    }
-
     @PostMapping("/parent-invite/generate")
     public Result<Map<String, Object>> generateParentInvite(@RequestBody Map<String, Object> params,
         @RequestAttribute("userId") Long userId,

+ 0 - 151
cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuidePackageController.java

@@ -1,151 +0,0 @@
-package com.etotem.cfc.controller.guide;
-
-import com.etotem.cfc.common.Result;
-import com.etotem.cfc.dto.GuidePackageDTO;
-import com.etotem.cfc.entity.GuidePackage;
-import com.etotem.cfc.entity.GuidePackageTemplate;
-import com.etotem.cfc.service.GuidePackageService;
-import com.etotem.cfc.service.GuidePackageTemplateService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-import com.etotem.cfc.util.ParamUtils;
-
-@Tag(name = "成长规划师任务模板", description = "成长规划师任务模板管理接口")
-@RestController
-@RequestMapping("/api/guide/packages")
-public class GuidePackageController {
-
-    @Resource
-    private GuidePackageService guidePackageService;
-
-    @Resource
-    private GuidePackageTemplateService guidePackageTemplateService;
-
-    @PostMapping("/my")
-    @Operation(summary = "获取我的任务模板")
-    public Result<List<GuidePackage>> getMyPackagesAlias(@RequestAttribute("userId") Long guideId) {
-        List<GuidePackage> packages = guidePackageService.getGuidePackages(guideId);
-        return Result.success(packages);
-    }
-
-    @PostMapping("/list")
-    @Operation(summary = "获取我的任务模板列表")
-    public Result<List<GuidePackage>> getMyPackages(@RequestAttribute("userId") Long guideId) {
-        List<GuidePackage> packages = guidePackageService.getGuidePackages(guideId);
-        return Result.success(packages);
-    }
-
-    @PostMapping("/detail")
-    @Operation(summary = "获取任务模板详情")
-    public Result<GuidePackage> getPackageDetail(@RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        GuidePackage pkg = guidePackageService.getById(id);
-        if (pkg == null) {
-            return Result.error("任务模板不存在");
-        }
-        return Result.success(pkg);
-    }
-
-    @PostMapping("/create")
-    @Operation(summary = "创建任务模板")
-    public Result<GuidePackage> createPackage(@RequestAttribute("userId") Long guideId,
-                                               @RequestBody GuidePackageDTO dto) {
-        GuidePackage pkg = new GuidePackage();
-        pkg.setGuideId(guideId);
-        pkg.setPackageId(dto.getTemplateId());
-        pkg.setName(dto.getName());
-        pkg.setPrice(dto.getPrice());
-        pkg.setDescription(dto.getDescription());
-        pkg.setValidityDays(dto.getValidityMonths());
-        pkg.setCommissionRate(dto.getCommissionRate());
-        pkg.setSortOrder(0);
-        pkg.setStatus("DRAFT");
-        boolean success = guidePackageService.save(pkg);
-        if (success) {
-            return Result.success(pkg);
-        }
-        return Result.error("创建失败");
-    }
-
-    @PostMapping("/update")
-    @Operation(summary = "更新任务模板")
-    public Result<GuidePackage> updatePackage(@RequestAttribute("userId") Long guideId,
-                                               @RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        GuidePackage existing = guidePackageService.getById(id);
-        if (existing == null) {
-            return Result.error("任务模板不存在");
-        }
-        if (params.get("name") != null) {
-            existing.setName(params.get("name").toString());
-        }
-        if (params.get("price") != null) {
-            existing.setPrice(Integer.valueOf(params.get("price").toString()));
-        }
-        guidePackageService.updateById(existing);
-        return Result.success(existing);
-    }
-
-    @PostMapping("/update-status")
-    @Operation(summary = "更新任务模板状态")
-    public Result<Boolean> updateStatus(@RequestAttribute("userId") Long guideId,
-                                        @RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        String status = params.get("status").toString();
-        GuidePackage existing = guidePackageService.getById(id);
-        if (existing == null) {
-            return Result.error("任务模板不存在");
-        }
-        if (!"DRAFT".equals(status) && !"PUBLISHED".equals(status) && !"PAUSED".equals(status)) {
-            return Result.error("无效状态");
-        }
-        existing.setStatus(status);
-        guidePackageService.updateById(existing);
-        return Result.success(true);
-    }
-
-    @PostMapping("/delete")
-    @Operation(summary = "删除任务模板")
-    public Result<Boolean> deletePackage(@RequestAttribute("userId") Long guideId,
-                                         @RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        GuidePackage existing = guidePackageService.getById(id);
-        if (existing == null) {
-            return Result.error("任务模板不存在");
-        }
-        existing.setStatus("DELETED");
-        guidePackageService.updateById(existing);
-        return Result.success(true);
-    }
-
-    @PostMapping("/templates")
-    @Operation(summary = "获取任务模板模板列表")
-    public Result<List<GuidePackageTemplate>> getTemplates() {
-        List<GuidePackageTemplate> templates = guidePackageTemplateService.list();
-        return Result.success(templates);
-    }
-
-    @PostMapping("/template-detail")
-    @Operation(summary = "获取模板详情")
-    public Result<GuidePackageTemplate> getTemplateDetail(@RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        GuidePackageTemplate template = guidePackageTemplateService.getById(id);
-        if (template == null) {
-            return Result.error("模板不存在");
-        }
-        return Result.success(template);
-    }
-
-    @PostMapping("/increment-sales")
-    @Operation(summary = "增加任务模板销量")
-    public Result<Boolean> incrementSales(@RequestBody Map<String, Object> params) {
-        Long id = ParamUtils.getLong(params.get("id"));
-        boolean success = guidePackageService.incrementSalesCount(id);
-        return Result.success(success);
-    }
-}

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

@@ -190,7 +190,7 @@ public class PaymentController {
      * 生成支付二维码图片
      */
     @Operation(summary = "生成支付二维码")
-    @GetMapping("/qrcode")
+    @PostMapping("/qrcode")
     public void generateQrCode(String text, HttpServletResponse response) throws Exception {
         int size = 280;
         Hashtable<EncodeHintType, Object> hints = new Hashtable<>();

+ 1 - 1
cfc-backend/src/main/java/com/etotem/cfc/controller/notice/NoticeController.java

@@ -21,7 +21,7 @@ public class NoticeController {
     private NoticeMapper noticeMapper;
 
     @Operation(summary = "获取已发布公告列表")
-    @GetMapping("/list")
+    @PostMapping("/list")
     public Result<List<Notice>> list() {
         LambdaQueryWrapper<Notice> q = new LambdaQueryWrapper<>();
         q.eq(Notice::getStatus, "active");

+ 24 - 24
cfc-frontend/utils/api.js

@@ -186,7 +186,7 @@ export const wechatPhoneLogin = (data) => {
 
 // 获取平台公告
 export const getNotices = () => {
-  return request('/api/notices/list', 'GET')
+  return request('/api/notices/list', 'POST', {})
 }
 
 // 微信静默登录
@@ -439,7 +439,7 @@ export const getTaskHistory = (memberId, page = 1, size = 10) => {
 }
 
 export const deleteTask = (taskId) => {
-  return request(`/api/tasks/${taskId}`, 'DELETE')
+  return request(`/api/tasks/${taskId}`, 'POST', { _method: 'DELETE' })
 }
 
 export const batchCompleteTasks = (taskIds) => {
@@ -574,11 +574,11 @@ export const requestWishExchange = (id) => {
 }
 
 export const confirmWishReceived = (id) => {
-  return request(`/api/wishes/${id}/confirm`, 'PUT', {})
+  return request(`/api/wishes/${id}/confirm`, 'POST', {})
 }
 
 export const cancelWish = (id, reason) => {
-  return request(`/api/wishes/${id}`, 'DELETE', { reason })
+  return request(`/api/wishes/${id}`, 'POST', { _method: 'DELETE', reason })
 }
 
 // ===
@@ -601,7 +601,7 @@ export const confirmBind = (data) => {
 
 // 解除绑定
 export const unbindFamily = (id) => {
-  return request(`/api/guide/bind/${id}`, 'DELETE')
+  return request(`/api/guide/bind/${id}`, 'POST', { _method: 'DELETE' })
 }
 
 // 创建任务模板
@@ -611,7 +611,7 @@ export const createPackage = (data) => {
 
 // 更新任务模板
 export const updatePackage = (id, data) => {
-  return request(`/api/packages/${id}`, 'PUT', data)
+  return request('/api/packages/' + id, 'POST', Object.assign({ _method: 'PUT' }, data))
 }
 
 // 获取任务模板详情
@@ -641,12 +641,12 @@ export const addPackageItem = (packageId, data) => {
 
 // 更新任务项
 export const updatePackageItem = (itemId, data) => {
-  return request(`/api/packages/items/${itemId}`, 'PUT', data)
+  return request('/api/packages/items/' + itemId, 'POST', { _method: 'PUT' }, data)
 }
 
 // 删除任务项
 export const deletePackageItem = (itemId) => {
-  return request(`/api/packages/items/${itemId}`, 'DELETE')
+  return request('/api/packages/items/' + itemId, 'POST', { _method: 'DELETE' })
 }
 
 // 获取任务模板任务项
@@ -706,12 +706,12 @@ export const generateInviteCode = () => {
 
 // 获取邀请码列表
 export const getInviteCodes = () => {
-  return request('/api/guide/invite-codes', 'GET')
+  return request('/api/guide/invite-codes', 'POST', {})
 }
 
 // 验证邀请码
 export const validateInviteCode = (code) => {
-  return request('/api/guide/invite-code/validate', 'GET', null, { code })
+  return request('/api/guide/invite-code/validate', 'POST', { code })
 }
 
 export const checkTeamInviteStatus = (inviteCode) => {
@@ -728,17 +728,17 @@ export const leaveCurrentTeam = () => {
 
 // 获取下级成长规划师列表
 export const getChildGuides = () => {
-  return request('/api/guide/child-guides', 'GET')
+  return request('/api/guide/child-guides', 'POST', {})
 }
 
 // 获取所有下级成长规划师
 export const getAllChildGuides = () => {
-  return request('/api/guide/all-child-guides', 'GET')
+  return request('/api/guide/all-child-guides', 'POST', {})
 }
 
 // 获取上级成长规划师
 export const getParentGuide = () => {
-  return request('/api/guide/parent-guide', 'GET')
+  return request('/api/guide/parent-guide', 'POST', {})
 }
 
 // ===== 训练方案管理 =====
@@ -815,32 +815,32 @@ export const addGuidePackage = (guideId, packageId, price, commissionRate) => {
 
 // 获取成长规划师套餐列表
 export const getGuidePackages = (guideId) => {
-  return request('/api/guide/packages', 'GET', null, { guideId })
+  return request('/api/guide/packages/my', 'POST', { guideId: guideId })
 }
 
 // 获取成长规划师套餐定价
 export const getGuidePackage = (guideId, packageId) => {
-  return request('/api/guide/package/' + packageId, 'GET', null, { guideId })
+  return request('/api/guide/package/' + packageId, 'POST', { guideId: guideId })
 }
 
 // 更新成长规划师套餐价格
 export const updateGuidePackagePrice = (guideId, packageId, price) => {
-  return request('/api/guide/package/' + packageId, 'PUT', { guideId, price })
+  return request('/api/guide/package/' + packageId + '/update', 'POST', { guideId: guideId, price: price })
 }
 
 // 删除成长规划师套餐
 export const deleteGuidePackage = (guideId, packageId) => {
-  return request('/api/guide/package/' + packageId, 'DELETE', null, { guideId })
+  return request('/api/guide/package/' + packageId + '/delete', 'POST', { guideId: guideId })
 }
 
 // 获取套餐价格
 export const getPackagePrice = (packageId, guideId, inviteCode) => {
-  return request('/api/package/price', 'GET', null, { packageId, guideId, inviteCode })
+  return request('/api/package/price', 'POST', { packageId, guideId, inviteCode })
 }
 
 // 获取可用的成长规划师列表
 export const getAvailableGuides = (packageId) => {
-  return request('/api/package/available-guides', 'GET', null, { packageId })
+  return request('/api/package/available-guides', 'POST', { packageId })
 }
 
 // 创建套餐订单
@@ -850,7 +850,7 @@ export const createPackageOrder = (data) => {
 
 // 获取订单状态
 export const getOrderStatus = (orderNo) => {
-  return request('/api/payment/order/status/' + orderNo, 'GET')
+  return request('/api/payment/order/status/' + orderNo, 'POST', {})
 }
 
 // 创建微信支付订单
@@ -1045,7 +1045,7 @@ export const getGameLeaderboard = (params) => {
 
 // 邀请码相关
 export const getInviteCode = () => {
-  return request('/api/family/invite-code', 'GET')
+  return request('/api/family/invite-code', 'POST', {})
 }
 
 export const generateFamilyInviteCode = () => {
@@ -2201,7 +2201,7 @@ export const listInteractions = (data) => {
 }
 
 export const getInteractionTypes = () => {
-  return request('/api/family/interaction/types', 'GET', {})
+  return request('/api/family/interaction/types', 'POST', {})
 }
 
 // ===== 鍏崇郴闂嵎 =====
@@ -2214,11 +2214,11 @@ export const submitQuestionnaire = (data) => {
 }
 
 export const getQuestionnaireSnapshot = (memberId) => {
-  return request('/api/family/questionnaire/snapshot/' + memberId, 'GET', {})
+  return request('/api/family/questionnaire/snapshot/' + memberId, 'POST', {})
 }
 
 export const getQuestionnaireHistory = (memberId) => {
-  return request('/api/family/questionnaire/history/' + memberId, 'GET', {})
+  return request('/api/family/questionnaire/history/' + memberId, 'POST', {})
 }
 
 // ===== 五维家庭自检(P0-1)=====