package xuan.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import xuan.entity.ShareRecord; import xuan.repository.ShareRecordRepository; import java.util.HashMap; import java.util.Map; import java.util.UUID; @RestController @RequestMapping("/api/share") public class ShareController { @Autowired private ShareRecordRepository shareRecordRepository; @PostMapping("/create") public Map createShare(@RequestBody Map params) { Map result = new HashMap<>(); try { String type = (String) params.get("type"); String resultData = (String) params.get("resultData"); String name = (String) params.get("name"); ShareRecord shareRecord = new ShareRecord(); shareRecord.setShareId(UUID.randomUUID().toString().replace("-", "").substring(0, 16)); shareRecord.setType(type); shareRecord.setResultData(resultData); shareRecord.setName(name); shareRecordRepository.save(shareRecord); result.put("success", true); result.put("shareId", shareRecord.getShareId()); result.put("message", "分享链接创建成功"); } catch (Exception e) { result.put("success", false); result.put("error", "创建分享链接失败:" + e.getMessage()); } return result; } @GetMapping("/view/{shareId}") public Map viewShare(@PathVariable String shareId) { Map result = new HashMap<>(); try { ShareRecord shareRecord = shareRecordRepository.findByShareId(shareId) .orElse(null); if (shareRecord == null) { result.put("success", false); result.put("error", "分享链接不存在或已过期"); return result; } if (shareRecord.getExpireTime() != null && shareRecord.getExpireTime().before(new java.util.Date())) { result.put("success", false); result.put("error", "分享链接已过期"); return result; } result.put("success", true); result.put("data", shareRecord); } catch (Exception e) { result.put("success", false); result.put("error", "获取分享数据失败:" + e.getMessage()); } return result; } }