评论新增了标题1111444

This commit is contained in:
wucongxing8150 2025-06-09 15:25:40 +08:00
parent 8c8b779ab3
commit 56b1b3b7ad
4 changed files with 126 additions and 51 deletions

View File

@ -73,6 +73,7 @@ public class CaseExchangeController {
UserModel user = new UserModel(); UserModel user = new UserModel();
BasicHospitalModel basicHospital = new BasicHospitalModel(); BasicHospitalModel basicHospital = new BasicHospitalModel();
// 此步骤是为了在我的病例交流列表页面少查询
String userId = (String) httpServletRequest.getAttribute("userId"); String userId = (String) httpServletRequest.getAttribute("userId");
if (userId != null) { if (userId != null) {
user = userDao.selectById(Long.valueOf(userId)); user = userDao.selectById(Long.valueOf(userId));
@ -270,43 +271,33 @@ public class CaseExchangeController {
/** /**
* 临床病例库-病例交流-列表 * 临床病例库-病例交流-列表
*/ */
// @PostMapping("/exchange/list") @PostMapping("/exchange/list")
// public Response<Map<String, Object>> getCaseExchangeSearchPage( public Response<Map<String, Object>> getCaseExchangeSearchList(
// @Validated() @Validated()
// @RequestBody getCaseExchangeSearchPage request @RequestBody getCaseExchangeSearchList request
// ) { ) {
// UserModel user = new UserModel(); request.validateForLimit();
// BasicHospitalModel basicHospital = new BasicHospitalModel();
//
// String userId = (String) httpServletRequest.getAttribute("userId"); LambdaQueryWrapper<CaseExchangeModel> selectedQueryWrapper = new LambdaQueryWrapper<>();
// if (userId != null) { selectedQueryWrapper.eq(CaseExchangeModel::getExchangeStatus, 1) // 上线状态
// user = userDao.selectById(Long.valueOf(userId)); .eq(CaseExchangeModel::getIsSelected, 1)
// if (user == null) { .orderByDesc(CaseExchangeModel::getCreatedAt) // 按发布时间倒序
// return Response.error(); .last("LIMIT 3"); // 只取2条记录
// } List<CaseExchangeModel> selectedExchanges = caseExchangeDao.selectList(selectedQueryWrapper);
//
// // 获取当前用户所属医院
// basicHospital = basicHospitalDao.selectById(user.getHospitalId()); Map<String, Object> resultMap = new HashMap<>();
// if (basicHospital == null) {
// return Response.error();
// } // 获取文章数据
// } IPage<CaseExchangeDto> resultPage = caseExchangeDao.getCaseExchangeSearchList(
// request.getLimit(),
// request.validateForPage(); request.getKeyword(),
// request.getIsSelected(),
// Map<String, Object> resultMap = new HashMap<>(); request.handleOrder()
// );
// Page<CaseExchangeDto> page = new Page<>(request.getPage(), request.getPageSize());
//
// // 获取文章数据
// IPage<CaseExchangeDto> resultPage = caseExchangeDao.getCaseExchangeSearchPage(
// page,
// request.getKeyword(),
// request.getUserId(),
// request.getIsSelected(),
// request.handleOrder()
// );
//
// for (CaseExchangeDto dto : resultPage.getRecords()) { // for (CaseExchangeDto dto : resultPage.getRecords()) {
// // 查找用户所属医院 // // 查找用户所属医院
// if (userId != null){ // if (userId != null){
@ -357,13 +348,13 @@ public class CaseExchangeController {
// dto.setLabel(caseExchangeLabelDto); // dto.setLabel(caseExchangeLabelDto);
// } // }
// } // }
//
// resultMap.put("page", resultPage.getCurrent()); resultMap.put("page", resultPage.getCurrent());
// resultMap.put("pageSize", resultPage.getSize()); resultMap.put("pageSize", resultPage.getSize());
// resultMap.put("total", resultPage.getTotal()); resultMap.put("total", resultPage.getTotal());
// resultMap.put("data", resultPage.getRecords()); resultMap.put("data", resultPage.getRecords());
// return Response.success(resultMap); return Response.success(resultMap);
// } }
/** /**
* 病例交流-详情-投票数据 * 病例交流-详情-投票数据

View File

@ -20,11 +20,4 @@ public class IndexController extends BaseController {
public Response<GetIndexClinicalDto> getIndexClinical() { public Response<GetIndexClinicalDto> getIndexClinical() {
return Response.success(indexService.GetIndexClinical()); return Response.success(indexService.GetIndexClinical());
} }
// 首页-病例交流
// @GetMapping("/index/exchange")
// public Response<GetIndexExchangeDto> getIndexExchange() {
// return Response.success(indexService.GetIndexExchange());
// }
} }

View File

@ -30,6 +30,18 @@ public interface CaseExchangeDao extends BaseMapper<CaseExchangeModel> {
@Param("order") Map<String, String> order @Param("order") Map<String, String> order
); );
/**
* 临床病例库-搜索
* @param keyword 搜索关键词-标题/医生名称/标签名称
* @param order 排序
*/
IPage<CaseExchangeDto> getCaseExchangeSearchList(
@Param("limit") Integer limit,
@Param("keyword") String keyword,
@Param("isSelected") Integer isSelected,
@Param("order") Map<String, String> order
);
/** /**
* Inc 自增 * Inc 自增
* @param exchangeId 文章 ID * @param exchangeId 文章 ID

View File

@ -0,0 +1,79 @@
package com.example.caseData.request.caseExchangeRequest;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.Min;
import lombok.Data;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
@Data
public class getCaseExchangeSearchList {
@JsonProperty("limit")
private Integer limit = 1;
// 标题/作者名称/疾病名称
@JsonProperty("keyword")
private String keyword;
// 是否被精选0: 1:
@JsonProperty("is_selected")
private Integer isSelected;
// 排序字段
private OrderRequest order;
/**
* 排序字段嵌套结构体
*/
@Data
public static class OrderRequest {
@JsonProperty("created_at")
private String createdAt; // 创建时间
@JsonProperty("read_num")
private String readNum; // 阅读量
@JsonProperty("push_date")
private String pushDate; // 发表时间
public Map<String, String> toMap() {
Map<String, String> map = new HashMap<>();
if (StringUtils.hasText(createdAt)) {
map.put("a.created_at", createdAt);
}
if (StringUtils.hasText(readNum)) {
map.put("a.read_num", readNum);
}
if (StringUtils.hasText(pushDate)) {
map.put("a.push_date", pushDate);
}
// 默认排序如果用户未传递任何排序字段
if (map.isEmpty()) {
map.put("a.updated_at", "desc");
}
return map;
}
}
/**
* 获取排序字段若无用户输入则使用默认排序
*/
public Map<String, String> handleOrder() {
return order != null ? order.toMap() : new OrderRequest().toMap();
}
// 校验分页参数
public void validateForLimit() {
// 如果 page 为空设为默认值 1
if (limit == null) {
limit = 1;
}
}
}