From 039a33d1bfa6ef041161666bbd120c34086fe7c1 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 14 十月 2024 14:09:25 +0800 Subject: [PATCH] 课程代码 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientNoticeRecordController.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientNoticeRecordController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientNoticeRecordController.java index af8d2b3..5ef4ba5 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientNoticeRecordController.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientNoticeRecordController.java @@ -1,8 +1,29 @@ package com.xinquan.user.controller.client; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xinquan.common.core.domain.R; +import com.xinquan.common.core.utils.page.BeanUtils; +import com.xinquan.common.core.utils.page.CollUtils; +import com.xinquan.common.core.utils.page.PageDTO; +import com.xinquan.common.core.web.domain.BaseModel; +import com.xinquan.common.security.utils.SecurityUtils; +import com.xinquan.meditation.api.feign.RemoteMeditationService; +import com.xinquan.system.api.domain.AppUser; +import com.xinquan.system.api.domain.NoticeRecord; +import com.xinquan.meditation.api.domain.vo.NoticeDetailVO; +import com.xinquan.user.service.AppUserService; +import com.xinquan.user.service.NoticeRecordService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.time.format.DateTimeFormatter; /** * <p> @@ -16,5 +37,77 @@ @RequestMapping("/client/user/notice-record") public class ClientNoticeRecordController { + @Resource + private NoticeRecordService noticeRecordService; + @Resource + private AppUserService appUserService; + @Resource + private RemoteMeditationService remoteMeditationService; + @PostMapping("/noticeList") + @ApiOperation(value = "系统消息列表",tags = "系统消息") + @ApiImplicitParams({ + @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"), + @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer") + }) + public R<PageDTO<NoticeRecord>> noticeList(Integer pageCurr, Integer pageSize) { + Long userId = SecurityUtils.getUserId(); + if (userId==0)return R.tokenError("登录失效"); + Page<NoticeRecord> page = noticeRecordService.lambdaQuery() + .eq(NoticeRecord::getAppUserId, userId) + .orderByDesc(BaseModel::getCreateTime) + .page(new Page<>(pageCurr, pageSize)); + if (CollUtils.isEmpty(page.getRecords())){ + PageDTO<NoticeRecord> empty = PageDTO.empty(page); + return R.ok(empty); + } + PageDTO<NoticeRecord> noticeRecordPageDTO = PageDTO.of(page, NoticeRecord.class); + for (NoticeRecord noticeRecord : noticeRecordPageDTO.getList()) { + noticeRecord.setTime(noticeRecord.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } + return R.ok(noticeRecordPageDTO); + } + @PostMapping("/noticeDetail") + @ApiOperation(value = "系统消息列表-查看详情",tags = "系统消息") + public R<NoticeDetailVO> wallet(Long id) { + Long userId = SecurityUtils.getUserId(); + if (userId == 0)return R.tokenError("登录失效"); + NoticeRecord noticeRecord = noticeRecordService.getById(id); + // 设置为已读 + noticeRecord.setReadStatus(2); + noticeRecordService.updateById(noticeRecord); + NoticeDetailVO noticeDetailVO = new NoticeDetailVO(); + BeanUtils.copyProperties(noticeRecord,noticeDetailVO); + if (noticeRecord!=null && noticeRecord.getMeditationQuestionId()!=null){ + // 远程调用 根据冥想提问id 查询数据 + noticeDetailVO.setMeditationQuestionId(noticeRecord.getMeditationQuestionId()); +// NoticeDetailVO data = remoteMeditationService.noticeDetail(noticeDetailVO).getData(); + AppUser byId = appUserService.getById(userId); + noticeDetailVO.setNickname(byId.getNickname()); + noticeDetailVO.setAvatar(byId.getAvatar()); + noticeDetailVO.setRealname(byId.getRealname()); + } + return R.ok(noticeDetailVO); + } + @PostMapping("/queryNotice") + @ApiOperation(value = "是否有未读消息 true是 false否",tags = "系统消息") + public R<Boolean> queryNotice() { + Long userId = SecurityUtils.getUserId(); + if (userId == 0)return R.tokenError("登录失效"); + int size = noticeRecordService.lambdaQuery() + .eq(NoticeRecord::getAppUserId, userId) + .eq(NoticeRecord::getReadStatus, 1).list().size(); + if (size>0)return R.ok(true); + return R.ok(false); + } + + /** + * 后台远程调用 新增回复消息 + * @return + */ + @PostMapping("/addNoticeReplay") + public R addNoticeReplay(@RequestBody NoticeRecord noticeRecord) { + noticeRecordService.save(noticeRecord); + return R.ok(); + } } -- Gitblit v1.7.1