| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package com.zxyj.controller;
- import com.zxyj.common.Result;
- import com.zxyj.dto.ApplyPackageDTO;
- import com.zxyj.entity.TaskPlanInstance;
- import com.zxyj.entity.TaskPlanItem;
- import com.zxyj.entity.TaskTemplatePackage;
- import com.zxyj.entity.TaskTemplateItem;
- import com.zxyj.service.TaskPlanService;
- import com.zxyj.service.TaskTemplatePackageService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- import java.util.Map;
- @Tag(name = "套餐市场", description = "家长浏览、购买、应用套餐等接口")
- @RestController
- @RequestMapping("/api/market")
- public class MarketController {
- @Autowired
- private TaskTemplatePackageService packageService;
- @Autowired
- private TaskPlanService planService;
- /**
- * 获取公开套餐列表 (市场)
- */
- @Operation(summary = "获取公开套餐列表")
- @PostMapping("/packages")
- public Result<List<TaskTemplatePackage>> getPublicPackages(@RequestBody(required = false) Map<String, Object> params) {
- String category = params != null && params.get("category") != null ? params.get("category").toString() : null;
- List<TaskTemplatePackage> packages = packageService.getPublicPackages(category);
- return Result.success(packages);
- }
- /**
- * 获取套餐详情
- */
- @Operation(summary = "获取套餐详情")
- @PostMapping("/packages/{id}")
- public Result<TaskTemplatePackage> getPackageDetail(@PathVariable Long id) {
- TaskTemplatePackage pkg = packageService.getPackageById(id);
- return Result.success(pkg);
- }
- /**
- * 获取套餐的任务项列表
- */
- @Operation(summary = "获取套餐任务项列表")
- @PostMapping("/packages/{id}/items")
- public Result<List<TaskTemplateItem>> getPackageItems(@PathVariable Long id) {
- List<TaskTemplateItem> items = packageService.getPackageItems(id);
- return Result.success(items);
- }
- /**
- * 通过分享码获取套餐
- */
- @Operation(summary = "通过分享码获取套餐")
- @PostMapping("/share/{code}")
- public Result<TaskTemplatePackage> getPackageByShareCode(@PathVariable String code) {
- TaskTemplatePackage pkg = packageService.getPackageByShareCode(code);
- if (pkg == null) {
- return Result.error("分享码无效");
- }
- return Result.success(pkg);
- }
- /**
- * 购买并应用套餐
- */
- @Operation(summary = "购买并应用套餐")
- @PostMapping("/packages/{id}/purchase")
- public Result<TaskPlanInstance> purchasePackage(
- @PathVariable Long id,
- @RequestBody ApplyPackageDTO dto,
- @RequestAttribute("userId") Long userId,
- @RequestAttribute("familyId") Long familyId) {
-
- dto.setPackageId(id);
- TaskPlanInstance instance = planService.applyPackage(dto, familyId);
- return Result.success(instance);
- }
- /**
- * 获取我的任务计划列表
- */
- @Operation(summary = "获取我的任务计划")
- @PostMapping("/plans")
- public Result<List<TaskPlanInstance>> getMyPlans(@RequestAttribute("familyId") Long familyId) {
- List<TaskPlanInstance> plans = planService.getFamilyPlans(familyId);
- return Result.success(plans);
- }
- /**
- * 获取计划详情
- */
- @Operation(summary = "获取计划详情")
- @PostMapping("/plans/{id}")
- public Result<TaskPlanInstance> getPlanDetail(@PathVariable Long id) {
- TaskPlanInstance plan = planService.getPlanById(id);
- return Result.success(plan);
- }
- /**
- * 获取计划的任务项
- */
- @Operation(summary = "获取计划任务项")
- @PostMapping("/plans/{id}/items")
- public Result<List<TaskPlanItem>> getPlanItems(@PathVariable Long id) {
- List<TaskPlanItem> items = planService.getPlanItems(id);
- return Result.success(items);
- }
- /**
- * 取消计划
- */
- @Operation(summary = "取消计划")
- @PostMapping("/plans/{id}/cancel")
- public Result<Boolean> cancelPlan(@PathVariable Long id) {
- boolean success = planService.cancelPlan(id);
- return Result.success(success);
- }
- }
|