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

View File

@ -20,11 +20,4 @@ public class IndexController extends BaseController {
public Response<GetIndexClinicalDto> 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 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 自增
* @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;
}
}
}