| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.zxyj.controller.family;
- import com.zxyj.common.Result;
- import com.zxyj.dto.CreateRewardDTO;
- import com.zxyj.dto.RewardDTO;
- import com.zxyj.entity.User;
- import com.zxyj.service.RewardService;
- import com.zxyj.service.UserService;
- import javax.annotation.Resource;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- import java.util.Map;
- @RestController
- @RequestMapping("/api/parent")
- public class ParentController {
- @Resource
- private RewardService rewardService;
- @Resource
- private UserService userService;
- /**
- * 家长心愿单 - 创建心愿(直接进入可用列表)
- */
- @PostMapping("/wishlist")
- public Result<Long> createParentWishlist(@RequestAttribute("userId") Long userId,
- @RequestBody CreateRewardDTO dto) {
- // 家长直接创建奖励,状态为available
- Long rewardId = rewardService.createReward(userId, dto);
- return Result.success(rewardId);
- }
- /**
- * 家长心愿单 - 获取列表(所有家庭成员的心愿)
- */
- @PostMapping("/wishlist")
- public Result<List<RewardDTO>> getParentWishlist(@RequestAttribute("userId") Long userId) {
- User user = userService.getUserInfo(userId);
- if (user == null || user.getFamilyId() == null) {
- return Result.error("用户无家庭信息");
- }
-
- // 获取家庭所有可用的奖励(包括孩子创建的待审批心愿)
- List<RewardDTO> rewards = rewardService.getFamilyRewardLibrary(user.getFamilyId());
- return Result.success(rewards);
- }
- /**
- * 家长心愿单 - 获取家庭心愿列表(路由兼容)
- */
- @PostMapping("/wishlist/family")
- public Result<List<RewardDTO>> getFamilyWishlist(@RequestAttribute("userId") Long userId) {
- User user = userService.getUserInfo(userId);
- if (user == null || user.getFamilyId() == null) {
- return Result.error("用户无家庭信息");
- }
-
- List<RewardDTO> rewards = rewardService.getFamilyRewardLibrary(user.getFamilyId());
- return Result.success(rewards);
- }
- /**
- * 家长心愿单 - 审批孩子的心愿并填写积分
- */
- @PostMapping("/wishlist/{id}/approve")
- public Result<Boolean> approveWishlist(@PathVariable Long id,
- @RequestAttribute("userId") Long userId,
- @RequestBody Map<String, Object> params) {
- Integer pointsRequired = params.get("pointsRequired") != null ? (Integer) params.get("pointsRequired") : null;
-
- if (pointsRequired == null || pointsRequired <= 0) {
- return Result.error("请填写有效的积分");
- }
-
- boolean success = rewardService.approveWishlist(id, userId, pointsRequired);
- return Result.success(success);
- }
- /**
- * 家长心愿单 - 兑换家长的心愿
- */
- @PostMapping("/wishlist/{id}/exchange")
- public Result<Map<String, Object>> exchangeParentWishlist(@PathVariable Long id,
- @RequestAttribute("userId") Long userId) {
- // 家长兑换自己的心愿,直接扣积分
- User user = userService.getUserInfo(userId);
- if (user == null) {
- return Result.error("用户不存在");
- }
-
- // 家长积分在user表
- if (user.getTotalPoints() == null) {
- user.setTotalPoints(0);
- }
-
- // TODO: 实现家长兑换逻辑(暂时返回成功)
- Map<String, Object> result = new java.util.HashMap<>();
- result.put("success", true);
- result.put("newBalance", user.getTotalPoints());
- return Result.success(result);
- }
- }
|