package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.rj.entity.LoveWhoI; import com.rj.service.ILoveWhoIService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; /** * 个人恋爱/择偶自我介绍画像表 前端控制器(love_whoI) * * @author system * @since 2026-04-05 */ @RestController @RequestMapping("/api/loveWhoI") @Tag(name = "个人择偶自我介绍", description = "love_whoI 表 CRUD") public class LoveWhoIController { @Autowired private ILoveWhoIService loveWhoIService; @PostMapping("/add") @Operation(summary = "新增", description = "新增一条个人画像记录") public ResponseEntity> add( @Parameter(description = "实体 JSON", required = true) @RequestBody LoveWhoI body) { Map result = new HashMap<>(); try { if (body.getId() == null || body.getId().trim().isEmpty()) { body.setId(UUID.randomUUID().toString()); } LocalDateTime now = LocalDateTime.now(); body.setCreateTime(now); body.setUpdateTime(now); boolean success = loveWhoIService.save(body); if (success) { result.put("success", true); result.put("message", "添加成功"); result.put("data", body); return ResponseEntity.ok(result); } result.put("success", false); result.put("message", "添加失败"); return ResponseEntity.badRequest().body(result); } catch (Exception e) { result.put("success", false); result.put("message", "添加异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } @GetMapping("/get/{id}") @Operation(summary = "按主键查询", description = "根据 id(UUID)查询") public ResponseEntity> getById( @Parameter(description = "主键 UUID", required = true) @PathVariable String id) { Map result = new HashMap<>(); try { LoveWhoI row = loveWhoIService.getById(id); if (row != null) { result.put("success", true); result.put("message", "查询成功"); result.put("data", row); return ResponseEntity.ok(result); } result.put("success", false); result.put("message", "记录不存在"); return ResponseEntity.notFound().build(); } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } @GetMapping("/list") @Operation(summary = "分页列表", description = "支持 tenantId、myPhone、名字、性别、行业、居住区域等条件") public ResponseEntity> list( @Parameter(description = "页码") @RequestParam(defaultValue = "1") Integer current, @Parameter(description = "每页条数") @RequestParam(defaultValue = "10") Integer size, @Parameter(description = "租户ID(精确)") @RequestParam(required = false) String tenantId, @Parameter(description = "手机号码(模糊)") @RequestParam(required = false) String myPhone, @Parameter(description = "名字(模糊)") @RequestParam(required = false) String name, @Parameter(description = "性别(模糊)") @RequestParam(required = false) String gender, @Parameter(description = "行业(模糊)") @RequestParam(required = false) String industry, @Parameter(description = "居住区域(模糊)") @RequestParam(required = false) String residentialArea, @Parameter(description = "创建开始时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String createStartTime, @Parameter(description = "创建结束时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String createEndTime, @Parameter(description = "修改开始时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String updateStartTime, @Parameter(description = "修改结束时间 yyyy-MM-dd HH:mm:ss") @RequestParam(required = false) String updateEndTime) { Map result = new HashMap<>(); try { Page page = new Page<>(current, size); LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); if (tenantId != null && !tenantId.trim().isEmpty()) { qw.eq(LoveWhoI::getTenantId, tenantId); } if (myPhone != null && !myPhone.trim().isEmpty()) { qw.like(LoveWhoI::getMyPhone, myPhone); } if (name != null && !name.trim().isEmpty()) { qw.like(LoveWhoI::getName, name); } if (gender != null && !gender.trim().isEmpty()) { qw.like(LoveWhoI::getGender, gender); } if (industry != null && !industry.trim().isEmpty()) { qw.like(LoveWhoI::getIndustry, industry); } if (residentialArea != null && !residentialArea.trim().isEmpty()) { qw.like(LoveWhoI::getResidentialArea, residentialArea); } DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); if (createStartTime != null && !createStartTime.trim().isEmpty()) { try { qw.ge(LoveWhoI::getCreateTime, LocalDateTime.parse(createStartTime, formatter)); } catch (Exception e) { result.put("success", false); result.put("message", "创建开始时间格式错误,请使用:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } if (createEndTime != null && !createEndTime.trim().isEmpty()) { try { qw.le(LoveWhoI::getCreateTime, LocalDateTime.parse(createEndTime, formatter)); } catch (Exception e) { result.put("success", false); result.put("message", "创建结束时间格式错误,请使用:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } if (updateStartTime != null && !updateStartTime.trim().isEmpty()) { try { qw.ge(LoveWhoI::getUpdateTime, LocalDateTime.parse(updateStartTime, formatter)); } catch (Exception e) { result.put("success", false); result.put("message", "修改开始时间格式错误,请使用:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } if (updateEndTime != null && !updateEndTime.trim().isEmpty()) { try { qw.le(LoveWhoI::getUpdateTime, LocalDateTime.parse(updateEndTime, formatter)); } catch (Exception e) { result.put("success", false); result.put("message", "修改结束时间格式错误,请使用:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } qw.orderByDesc(LoveWhoI::getUpdateTime); Page p = loveWhoIService.page(page, qw); result.put("success", true); result.put("message", "查询成功"); result.put("data", p.getRecords()); result.put("total", p.getTotal()); result.put("current", p.getCurrent()); result.put("size", p.getSize()); result.put("pages", p.getPages()); return ResponseEntity.ok(result); } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } @PutMapping("/update") @Operation(summary = "更新", description = "按主键 id 更新;修改时间由服务端刷新") public ResponseEntity> update( @Parameter(description = "实体 JSON(须含 id)", required = true) @RequestBody LoveWhoI body) { Map result = new HashMap<>(); try { if (body.getId() == null || body.getId().trim().isEmpty()) { result.put("success", false); result.put("message", "id 不能为空"); return ResponseEntity.badRequest().body(result); } body.setUpdateTime(LocalDateTime.now()); boolean success = loveWhoIService.updateById(body); if (success) { result.put("success", true); result.put("message", "更新成功"); result.put("data", body); return ResponseEntity.ok(result); } result.put("success", false); result.put("message", "更新失败"); return ResponseEntity.badRequest().body(result); } catch (Exception e) { result.put("success", false); result.put("message", "更新异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } @DeleteMapping("/delete/{id}") @Operation(summary = "删除", description = "按主键删除") public ResponseEntity> delete( @Parameter(description = "主键 UUID", required = true) @PathVariable String id) { Map result = new HashMap<>(); try { boolean success = loveWhoIService.removeById(id); if (success) { result.put("success", true); result.put("message", "删除成功"); return ResponseEntity.ok(result); } result.put("success", false); result.put("message", "删除失败"); return ResponseEntity.badRequest().body(result); } catch (Exception e) { result.put("success", false); result.put("message", "删除异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } @DeleteMapping("/batchDelete") @Operation(summary = "批量删除", description = "请求体为 id 字符串列表") public ResponseEntity> batchDelete( @Parameter(description = "主键 UUID 列表", required = true) @RequestBody List ids) { Map result = new HashMap<>(); try { if (ids == null || ids.isEmpty()) { result.put("success", false); result.put("message", "id 列表不能为空"); return ResponseEntity.badRequest().body(result); } boolean success = loveWhoIService.removeByIds(ids); if (success) { result.put("success", true); result.put("message", "批量删除成功,共 " + ids.size() + " 条"); return ResponseEntity.ok(result); } result.put("success", false); result.put("message", "批量删除失败"); return ResponseEntity.badRequest().body(result); } catch (Exception e) { result.put("success", false); result.put("message", "批量删除异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } }