package xuan.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.*; import xuan.entity.CoinConsumeRecord; import xuan.service.CoinConsumeRecordService; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/api/coin-consume") public class CoinConsumeController { @Autowired private CoinConsumeRecordService recordService; @PostMapping("/save") public Map saveRecord(@RequestBody CoinConsumeRecord record) { Map result = new HashMap<>(); try { CoinConsumeRecord saved = recordService.saveRecord(record); result.put("success", true); result.put("data", saved); } catch (Exception e) { result.put("success", false); result.put("error", e.getMessage()); } return result; } @GetMapping("/list") public Map getRecords( @RequestParam String userId, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) { Map result = new HashMap<>(); try { Page pageResult = recordService.findByUserId(userId, page, size); Map data = new HashMap<>(); data.put("records", pageResult.getContent()); data.put("total", pageResult.getTotalElements()); data.put("page", page); data.put("size", size); data.put("totalPages", pageResult.getTotalPages()); result.put("success", true); result.put("data", data); } catch (Exception e) { result.put("success", false); result.put("error", e.getMessage()); } return result; } @GetMapping("/all") public Map getAllRecords(@RequestParam String userId) { Map result = new HashMap<>(); try { List records = recordService.findByUserId(userId); result.put("success", true); result.put("data", records); } catch (Exception e) { result.put("success", false); result.put("error", e.getMessage()); } return result; } @GetMapping("/type") public Map getRecordsByType( @RequestParam String userId, @RequestParam String type) { Map result = new HashMap<>(); try { List records = recordService.findByUserIdAndType(userId, type); result.put("success", true); result.put("data", records); } catch (Exception e) { result.put("success", false); result.put("error", e.getMessage()); } return result; } }