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> getUserPage(@Validated({UserRequest.Page.class}) @ModelAttribute UserRequest request) { // request.validateForPage(); // 确保分页参数有默认值 // // Page page = new Page<>(request.getPage(), request.getPageSize()); // 创建分页对象 // // QueryWrapper queryWrapper = new QueryWrapper<>(); // queryWrapper.like("user_id", "吴"); // // // 执行分页查询 // Page resultPage = userDao.selectPage(page, queryWrapper); // // // 返回 // List userDtoList = UserDto.getUserListDto(resultPage.getRecords()); // // // 组装分页结果 // Map 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 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 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 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 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(); } }