新增了我的页面
This commit is contained in:
parent
fcf9ca6744
commit
d3c30c0eee
@ -3,11 +3,16 @@ package com.example.caseData.controller;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.example.caseData.common.Response;
|
||||
import com.example.caseData.dao.BasicHospitalDao;
|
||||
import com.example.caseData.dao.UserDao;
|
||||
import com.example.caseData.dto.UserDto;
|
||||
import com.example.caseData.dto.user.UserDto;
|
||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||
import com.example.caseData.dto.user.UserDto;
|
||||
import com.example.caseData.model.BasicHospitalModel;
|
||||
import com.example.caseData.model.UserModel;
|
||||
import com.example.caseData.request.UserRequest;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
@ -24,29 +29,64 @@ public class UserController extends BaseController {
|
||||
@Resource
|
||||
private UserDao userDao;
|
||||
|
||||
// 查询所有用户
|
||||
@GetMapping("/users")
|
||||
public Response<Map<String, Object>> getUserPage(@Validated({UserRequest.Page.class}) @ModelAttribute UserRequest request) {
|
||||
request.validateForPage(); // 确保分页参数有默认值
|
||||
@Resource
|
||||
private BasicHospitalDao basicHospitalDao;
|
||||
|
||||
Page<UserModel> page = new Page<>(request.getPage(), request.getPageSize()); // 创建分页对象
|
||||
@Resource
|
||||
private HttpServletRequest httpServletRequest;
|
||||
|
||||
QueryWrapper<UserModel> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like("user_id", "吴");
|
||||
// // 查询所有用户
|
||||
// @GetMapping("/users")
|
||||
// public Response<Map<String, Object>> getUserPage(@Validated({UserRequest.Page.class}) @ModelAttribute UserRequest request) {
|
||||
// request.validateForPage(); // 确保分页参数有默认值
|
||||
//
|
||||
// Page<UserModel> page = new Page<>(request.getPage(), request.getPageSize()); // 创建分页对象
|
||||
//
|
||||
// QueryWrapper<UserModel> queryWrapper = new QueryWrapper<>();
|
||||
// queryWrapper.like("user_id", "吴");
|
||||
//
|
||||
// // 执行分页查询
|
||||
// Page<UserModel> resultPage = userDao.selectPage(page, queryWrapper);
|
||||
//
|
||||
// // 返回
|
||||
// List<UserDto> userDtoList = UserDto.getUserListDto(resultPage.getRecords());
|
||||
//
|
||||
// // 组装分页结果
|
||||
// Map<String, Object> resultMap = new HashMap<>();
|
||||
// resultMap.put("page", resultPage.getCurrent());
|
||||
// resultMap.put("pageSize", resultPage.getSize());
|
||||
// resultMap.put("total", resultPage.getTotal());
|
||||
// resultMap.put("data", userDtoList);
|
||||
//
|
||||
// return Response.success(resultMap);
|
||||
// }
|
||||
|
||||
// 执行分页查询
|
||||
Page<UserModel> resultPage = userDao.selectPage(page, queryWrapper);
|
||||
// 获取用户信息
|
||||
@GetMapping("/user")
|
||||
public Response<UserDto> getUser(@Validated({UserRequest.Page.class}) @ModelAttribute UserRequest request) {
|
||||
String userId = (String) httpServletRequest.getAttribute("userId");
|
||||
|
||||
// 返回
|
||||
List<UserDto> userDtoList = UserDto.getUserListDto(resultPage.getRecords());
|
||||
// 获取当前登录用户数据
|
||||
UserModel user = userDao.selectById(Long.valueOf(userId));
|
||||
if (user == null) {
|
||||
return Response.error();
|
||||
}
|
||||
|
||||
// 组装分页结果
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("page", resultPage.getCurrent());
|
||||
resultMap.put("pageSize", resultPage.getSize());
|
||||
resultMap.put("total", resultPage.getTotal());
|
||||
resultMap.put("data", userDtoList);
|
||||
// 获取用户医院数据
|
||||
BasicHospitalModel basicHospital = basicHospitalDao.selectById(user.getHospitalId());
|
||||
if (basicHospital == null) {
|
||||
return Response.error();
|
||||
}
|
||||
user.setBasicHospital(basicHospital);
|
||||
|
||||
return Response.success(resultMap);
|
||||
// 处理返回值
|
||||
UserDto g = UserDto.GetDto(user);
|
||||
g.setUserIden("");
|
||||
g.setOpenId("");
|
||||
g.setUnionId("");
|
||||
g.setUserMobile("");
|
||||
g.setMobileEncryption("");
|
||||
|
||||
return Response.success(g);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,9 @@ public class PublicDto {
|
||||
@JsonProperty("user_id")
|
||||
private String userId; // 主键id
|
||||
|
||||
@JsonProperty("doctor_id")
|
||||
private String doctorId; // 医生id
|
||||
|
||||
@JsonProperty("user_name")
|
||||
private String userName; // 用户名称
|
||||
|
||||
|
||||
@ -1,75 +0,0 @@
|
||||
package com.example.caseData.dto;
|
||||
|
||||
import com.example.caseData.model.UserModel;
|
||||
import com.example.caseData.utils.Replace;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UserDto {
|
||||
private String userId; // 主键id
|
||||
private String userIden; // 第三方平台唯一标识
|
||||
private String userName; // 用户名称
|
||||
private String userMobile; // 手机号
|
||||
private Integer status; // 状态(0:禁用 1:正常 2:删除)
|
||||
private Integer registerSource;// 注册来源(1:未知 2:app用户 3:佳动例)
|
||||
private String openId; // 用户微信标识
|
||||
private String unionId; // 微信开放平台标识
|
||||
private Integer sex; // 性别(0:未知 1:男 2:女)
|
||||
private String avatar; // 头像
|
||||
private Integer title; // 医生职称
|
||||
private String departmentName; // 科室名称
|
||||
private String hospitalId; // 所属医院id
|
||||
private LocalDateTime createdAt; // 创建时间
|
||||
private LocalDateTime updatedAt; // 修改时间
|
||||
|
||||
public static UserDto getUserDto(UserModel userModel) {
|
||||
if (userModel == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
UserDto dto = new UserDto();
|
||||
dto.setUserId(userModel.getUserId().toString());
|
||||
dto.setUserIden(userModel.getUserIden());
|
||||
dto.setUserName(userModel.getUserName());
|
||||
dto.setUserMobile(userModel.getUserMobile());
|
||||
dto.setStatus(userModel.getStatus());
|
||||
dto.setRegisterSource(userModel.getRegisterSource());
|
||||
dto.setOpenId(userModel.getOpenId());
|
||||
dto.setUnionId(userModel.getUnionId());
|
||||
dto.setSex(userModel.getSex());
|
||||
dto.setAvatar(userModel.getAvatar());
|
||||
dto.setTitle(userModel.getTitle());
|
||||
dto.setDepartmentName(userModel.getDepartmentName());
|
||||
dto.setHospitalId(userModel.getHospitalId().toString());
|
||||
dto.setCreatedAt(userModel.getCreatedAt());
|
||||
dto.setUpdatedAt(userModel.getUpdatedAt());
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
public static List<UserDto> getUserListDto(List<UserModel> userModels) {
|
||||
List<UserDto> userDtoList = new ArrayList<>();
|
||||
|
||||
for (UserModel userModel : userModels) {
|
||||
UserDto dto = getUserDto(userModel);
|
||||
|
||||
// 在这里对字段做一些操作(暂时不做任何处理)
|
||||
// 例如: dto.setUserName(dto.getUserName().toUpperCase());
|
||||
|
||||
userDtoList.add(dto);
|
||||
}
|
||||
|
||||
return userDtoList;
|
||||
}
|
||||
}
|
||||
162
src/main/java/com/example/caseData/dto/user/UserDto.java
Normal file
162
src/main/java/com/example/caseData/dto/user/UserDto.java
Normal file
@ -0,0 +1,162 @@
|
||||
package com.example.caseData.dto.user;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.example.caseData.dto.basicHospital.BasicHospitalDto;
|
||||
import com.example.caseData.dto.basicSensitiveWord.BasicSensitiveWordDto;
|
||||
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
|
||||
import com.example.caseData.dto.caseClinicalArticleAuthor.CaseClinicalArticleAuthorDto;
|
||||
import com.example.caseData.model.BasicHospitalModel;
|
||||
import com.example.caseData.model.CaseClinicalArticleModel;
|
||||
import com.example.caseData.model.UserModel;
|
||||
import com.example.caseData.utils.IntToString;
|
||||
import com.example.caseData.utils.Replace;
|
||||
import com.example.caseData.utils.StringToInt;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserDto {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@JsonProperty("user_id")
|
||||
private String userId; // 主键id
|
||||
|
||||
/**
|
||||
* 第三方平台唯一标识
|
||||
*/
|
||||
@JsonProperty("user_iden")
|
||||
private String userIden; // 第三方平台唯一标识
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
@JsonProperty("user_name")
|
||||
private String userName; // 用户名称
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@JsonProperty("user_mobile")
|
||||
private String userMobile; // 手机号
|
||||
|
||||
/**
|
||||
* 手机号加密
|
||||
*/
|
||||
@JsonProperty("mobile_encryption")
|
||||
private String mobileEncryption; // 手机号加密
|
||||
|
||||
/**
|
||||
* 状态(0:禁用 1:正常 2:删除)
|
||||
*/
|
||||
@JsonProperty("status")
|
||||
private Integer status; // 状态(0:禁用 1:正常 2:删除)
|
||||
|
||||
/**
|
||||
* 注册来源
|
||||
*/
|
||||
@JsonProperty("register_source")
|
||||
private Integer registerSource;// 注册来源(1:未知 2:app用户 3:佳动例)
|
||||
|
||||
/**
|
||||
* 用户微信标识
|
||||
*/
|
||||
@JsonProperty("open_id")
|
||||
private String openId; // 用户微信标识
|
||||
|
||||
/**
|
||||
* 微信开放平台标识
|
||||
*/
|
||||
@JsonProperty("union_id")
|
||||
private String unionId; // 微信开放平台标识
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
@JsonProperty("sex")
|
||||
private Integer sex; // 性别(0:未知 1:男 2:女)
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@JsonProperty("avatar")
|
||||
private String avatar; // 头像
|
||||
|
||||
/**
|
||||
* 医生职称
|
||||
*/
|
||||
@JsonProperty("title")
|
||||
private String title; // 医生职称
|
||||
|
||||
/**
|
||||
* 科室名称
|
||||
*/
|
||||
@JsonProperty("department_name")
|
||||
private String departmentName; // 科室名称
|
||||
|
||||
/**
|
||||
* 所属医院id
|
||||
*/
|
||||
@JsonProperty("hospital_id")
|
||||
private String hospitalId; // 所属医院id
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonProperty("created_at")
|
||||
private LocalDateTime createdAt; // 创建时间
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@JsonProperty("updated_at")
|
||||
private LocalDateTime updatedAt; // 修改时间
|
||||
|
||||
/**
|
||||
* 所属医院名称
|
||||
*/
|
||||
@JsonProperty("hospital_name")
|
||||
private String hospitalName; // 所属医院名称
|
||||
|
||||
/**
|
||||
* 医生id
|
||||
*/
|
||||
@JsonProperty("doctor_id")
|
||||
private String doctorId; // 医生id
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
public static UserDto GetDto(UserModel model) {
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
UserDto dto = BeanUtil.copyProperties(model, UserDto.class);
|
||||
|
||||
// 类型转换示例
|
||||
if (model.getUserId() != null) {
|
||||
dto.setUserId(String.valueOf(model.getUserId())); // Long -> String
|
||||
}
|
||||
|
||||
// 头像
|
||||
if (model.getAvatar() != null) {
|
||||
dto.setAvatar(Replace.addOssDomain(model.getAvatar()));
|
||||
}
|
||||
|
||||
// 职称
|
||||
if (model.getTitle() != null) {
|
||||
dto.setTitle(IntToString.DoctorTitleToString(model.getTitle()));
|
||||
}
|
||||
|
||||
// 医院
|
||||
if (model.getBasicHospital() != null) {
|
||||
dto.setHospitalName(model.getBasicHospital().getHospitalName());
|
||||
}
|
||||
|
||||
return dto;
|
||||
}
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@TableName("`user`")
|
||||
@ -109,4 +110,8 @@ public class UserModel {
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
// 医院
|
||||
@TableField(exist = false)
|
||||
private BasicHospitalModel basicHospital;
|
||||
}
|
||||
@ -5,6 +5,7 @@ import cn.hutool.crypto.SecureUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.example.caseData.dao.BasicHospitalDao;
|
||||
import com.example.caseData.dao.CaseClinicalDoctorDao;
|
||||
import com.example.caseData.dao.UserDao;
|
||||
import com.example.caseData.dto.PublicDto;
|
||||
import com.example.caseData.exception.BusinessException;
|
||||
@ -13,6 +14,7 @@ import com.example.caseData.extend.app.Hospital.Hospital;
|
||||
import com.example.caseData.extend.app.UserInfo.GetUserInfoByMobileResponse;
|
||||
import com.example.caseData.extend.app.UserInfo.UserInfo;
|
||||
import com.example.caseData.model.BasicHospitalModel;
|
||||
import com.example.caseData.model.CaseClinicalDoctorModel;
|
||||
import com.example.caseData.model.UserModel;
|
||||
import com.example.caseData.utils.JwtUtil;
|
||||
import com.example.caseData.utils.Replace;
|
||||
@ -40,6 +42,9 @@ public class UserService {
|
||||
@Resource
|
||||
private BasicHospitalDao basicHospitalDao;
|
||||
|
||||
@Resource
|
||||
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
||||
|
||||
@Resource
|
||||
private Hospital hospital;
|
||||
|
||||
@ -58,13 +63,22 @@ public class UserService {
|
||||
// 生成jwt
|
||||
String token = jwtUtil.createToken(String.valueOf(user.getUserId()));
|
||||
|
||||
// 获取对应医生数据
|
||||
LambdaQueryWrapper<CaseClinicalDoctorModel> caseClinicalDoctorWrapper = new LambdaQueryWrapper<>();
|
||||
caseClinicalDoctorWrapper.eq(CaseClinicalDoctorModel::getDoctorIden, user.getUserIden());
|
||||
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectOne(caseClinicalDoctorWrapper);
|
||||
|
||||
// 处理返回值
|
||||
PublicDto publicDto = new PublicDto();
|
||||
publicDto.setUserId(String.valueOf(user.getUserId()));
|
||||
publicDto.setUserName(user.getUserName());
|
||||
publicDto.setAvatar(Replace.addOssDomain(user.getAvatar()));
|
||||
publicDto.setToken(token);
|
||||
return publicDto;
|
||||
PublicDto g = new PublicDto();
|
||||
g.setUserId(String.valueOf(user.getUserId()));
|
||||
g.setUserName(user.getUserName());
|
||||
g.setAvatar(Replace.addOssDomain(user.getAvatar()));
|
||||
g.setToken(token);
|
||||
|
||||
if (caseClinicalDoctor != null) {
|
||||
g.setDoctorId(String.valueOf(caseClinicalDoctor.getDoctorId()));
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
25
src/main/java/com/example/caseData/utils/IntToString.java
Normal file
25
src/main/java/com/example/caseData/utils/IntToString.java
Normal file
@ -0,0 +1,25 @@
|
||||
package com.example.caseData.utils;
|
||||
|
||||
public class IntToString {
|
||||
|
||||
/**
|
||||
* 将医生职称转换为整数。
|
||||
*
|
||||
* @param title 医生职称字符串
|
||||
* @return 职称对应的整数值(0:未知 1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师)
|
||||
*/
|
||||
public static String DoctorTitleToString(Integer title) {
|
||||
if (title == null) {
|
||||
return "未知";
|
||||
}
|
||||
return switch (title) {
|
||||
case 1 -> "主任医师";
|
||||
case 2 -> "主任中医师";
|
||||
case 3 -> "副主任医师";
|
||||
case 4 -> "副主任中医师";
|
||||
case 5 -> "主治医师";
|
||||
case 6 -> "住院医师";
|
||||
default -> "未知";
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user