187 lines
6.2 KiB
Java
187 lines
6.2 KiB
Java
package com.example.caseData.controller;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.example.caseData.common.Response;
|
|
import com.example.caseData.dao.*;
|
|
import com.example.caseData.dto.T;
|
|
import com.example.caseData.dto.user.UserDto;
|
|
import com.example.caseData.exception.BusinessException;
|
|
import com.example.caseData.extend.app.UserPoint.UserPoint;
|
|
import com.example.caseData.extend.app.UserPoint.UserPointResponse;
|
|
import com.example.caseData.model.*;
|
|
import com.example.caseData.request.CaseClinicalArticleRequest.addClinicalArticleComment;
|
|
import com.example.caseData.request.UserRequest.ReportUserScoreRequest;
|
|
import com.example.caseData.request.UserRequest.UserRequest;
|
|
import com.example.caseData.service.CertService;
|
|
import com.example.caseData.service.RewardPointService;
|
|
import com.example.caseData.service.UserService;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.time.Year;
|
|
|
|
@RestController
|
|
@RequestMapping("/api")
|
|
public class UserController extends BaseController {
|
|
@Resource
|
|
private UserDao userDao;
|
|
|
|
@Resource
|
|
private BasicHospitalDao basicHospitalDao;
|
|
|
|
@Resource
|
|
private HttpServletRequest httpServletRequest;
|
|
|
|
@Resource
|
|
private CaseClinicalDoctorDao caseClinicalDoctorDao;
|
|
|
|
@Resource
|
|
private UserCollectClinicalArticleDao userCollectClinicalArticleDao;
|
|
|
|
@Resource
|
|
private CaseClinicalArticleAuthorDao caseClinicalArticleAuthorDao;
|
|
|
|
@Resource
|
|
private UserCollectClinicalVideoDao userCollectClinicalVideoDao;
|
|
|
|
@Resource
|
|
private CaseClinicalVideoAuthorDao caseClinicalVideoAuthorDao;
|
|
|
|
@Resource
|
|
private UserCollectExchangeDao userCollectExchangeDao;
|
|
|
|
@Resource
|
|
private UserCaseReadDao userCaseReadDao;
|
|
|
|
@Resource
|
|
private RewardPointService rewardService;
|
|
|
|
@Resource
|
|
private UserPoint userPoint;
|
|
|
|
@Resource
|
|
private UserService userService;
|
|
|
|
@Resource
|
|
private CertService certService;
|
|
|
|
// // 查询所有用户
|
|
// @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);
|
|
// }
|
|
|
|
// 获取用户信息
|
|
@GetMapping("/user")
|
|
public Response<UserDto> getUser(@Validated({UserRequest.Page.class}) @ModelAttribute UserRequest request) {
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
// 获取当前登录用户数据
|
|
UserModel user = userDao.selectById(Long.valueOf(userId));
|
|
if (user == null) {
|
|
return Response.error();
|
|
}
|
|
|
|
// 获取用户医院数据
|
|
BasicHospitalModel basicHospital = basicHospitalDao.selectById(user.getHospitalId());
|
|
if (basicHospital == null) {
|
|
return Response.error();
|
|
}
|
|
user.setBasicHospital(basicHospital);
|
|
|
|
|
|
// 获取对应医生数据
|
|
LambdaQueryWrapper<CaseClinicalDoctorModel> caseClinicalDoctorWrapper = new LambdaQueryWrapper<>();
|
|
caseClinicalDoctorWrapper.eq(CaseClinicalDoctorModel::getDoctorIden, user.getUserIden());
|
|
CaseClinicalDoctorModel caseClinicalDoctor = caseClinicalDoctorDao.selectOne(caseClinicalDoctorWrapper);
|
|
|
|
// 处理返回值
|
|
UserDto g = UserDto.GetDto(user);
|
|
g.setUserIden("");
|
|
g.setOpenId("");
|
|
g.setUnionId("");
|
|
g.setUserMobile("");
|
|
g.setMobileEncryption("");
|
|
|
|
if (caseClinicalDoctor != null) {
|
|
g.setDoctorId(String.valueOf(caseClinicalDoctor.getDoctorId()));
|
|
}
|
|
|
|
return Response.success(g);
|
|
}
|
|
|
|
/**
|
|
* 获取用户积分
|
|
*/
|
|
@GetMapping("/user/point")
|
|
public Response<Integer> getUserPoint() {
|
|
String userId = (String) httpServletRequest.getAttribute("userId");
|
|
|
|
// 获取当前登录用户数据
|
|
UserModel user = userDao.selectById(Long.valueOf(userId));
|
|
if (user == null) {
|
|
return Response.error();
|
|
}
|
|
|
|
Integer point = 0;
|
|
try {
|
|
UserPointResponse result = userPoint.GetUserPoint(user.getUserIden());
|
|
|
|
point = result.getData();
|
|
|
|
if (point == null) {
|
|
point = 0;
|
|
}
|
|
} catch (BusinessException e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
|
|
return Response.success(point);
|
|
}
|
|
|
|
@GetMapping("/user/test")
|
|
public Response<T> getUser() {
|
|
try {
|
|
byte[] qrCodeByte = new byte[0];
|
|
|
|
// 生成证书
|
|
String avt = "src/main/resources/static/cert/avt.png";
|
|
String sealPath = "src/main/resources/static/cert/seal.png";
|
|
String certificateNo = "GDXZALK" + String.valueOf(Year.now().getValue()) + "123456";
|
|
String name = "吴从兴";
|
|
String content = "您的案例《儿童肾上腺危象一例》经评议,被肝胆相照临床病例库收录,特发此";
|
|
|
|
certService.createCertTest(sealPath,certificateNo,name,content);
|
|
|
|
// 生成用户分享二维码-文章/视频
|
|
// userService.CreateUserCaseClinicalContentUnlimitedQrcode(String.valueOf(1),1);
|
|
} catch (Exception e) {
|
|
return Response.error(e.getMessage());
|
|
}
|
|
return Response.success();
|
|
}
|
|
|
|
}
|