From 64f7ccb9ef8b5a0618e65cddc14b981c1f108ba3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 04 十一月 2024 09:01:59 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationQuestionController.java | 140 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 132 insertions(+), 8 deletions(-) diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationQuestionController.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationQuestionController.java index b255751..8dc4c3e 100644 --- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationQuestionController.java +++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationQuestionController.java @@ -1,15 +1,20 @@ package com.xinquan.meditation.controller.client; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.domain.R; +import com.xinquan.common.core.utils.WebUtils; import com.xinquan.common.core.utils.page.CollUtils; import com.xinquan.common.core.utils.page.PageDTO; +import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.meditation.api.domain.Meditation; import com.xinquan.meditation.api.domain.dto.MeditationQuestionDTO; import com.xinquan.meditation.domain.MeditationCategory; +import com.xinquan.meditation.domain.export.QuestionExport; import com.xinquan.meditation.service.MeditationCategoryService; import com.xinquan.meditation.service.MeditationQuestionService; import com.xinquan.meditation.service.MeditationQuestionService; @@ -18,14 +23,23 @@ import com.xinquan.system.api.domain.AppUser; import com.xinquan.system.api.domain.MeditationQuestion; import com.xinquan.meditation.api.domain.vo.NoticeDetailVO; +import com.xinquan.system.api.model.LoginUser; +import com.xinquan.user.api.domain.dto.OrderListDTO; import com.xinquan.user.api.feign.RemoteAppUserService; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -50,14 +64,29 @@ @Resource private RemoteAppUserService remoteAppUserService; + @Autowired + private TokenService tokenService; + /** + * 远程调用 查询待回复内容数量 + * @return + */ + @PostMapping("/getQuestionCount") + public R<String> getQuestionCount() { + List<MeditationQuestion> list = meditationQuestionService.lambdaQuery() + .isNull(MeditationQuestion::getReplyContent).list(); + return R.ok(list.size()+""); + } /** * 远程调用 查询回复通知消息内容 * @return */ @PostMapping("/noticeDetail") public R<NoticeDetailVO> noticeDetail(NoticeDetailVO req) { - Long userId = SecurityUtils.getUserId(); - if (userId == 0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); MeditationQuestion byId = meditationQuestionService.getById(req.getMeditationQuestionId()); if (byId!=null){ Meditation byId1 = meditationService.getById(byId.getMeditationId()); @@ -70,7 +99,96 @@ return R.ok(req); } + @ApiOperation(value = "提问列表管理导出", tags = {"管理后台-提问管理"}) + @PutMapping("/export") + public void export(@RequestBody MeditationQuestionDTO dto) + { + LambdaQueryWrapper<MeditationQuestion> meditationLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.hasLength(dto.getIds())){ + meditationLambdaQueryWrapper.in(MeditationQuestion::getId, Arrays.asList(dto.getIds().split(","))); + } + meditationLambdaQueryWrapper.eq(dto.getShowFlag()!=null,MeditationQuestion::getShowFlag, dto.getShowFlag()); + if (dto.getIsReplay()!=null){ + if (dto.getIsReplay() == 1){ + meditationLambdaQueryWrapper.isNotNull(MeditationQuestion::getReplyTime); + }else{ + meditationLambdaQueryWrapper.isNull(MeditationQuestion::getReplyTime); + } + } + if (StringUtils.hasLength(dto.getUserName())){ + List<Long> data = remoteAppUserService.getAppUserByName(dto.getUserName()).getData(); + if (data.isEmpty()){ + data.add(-1L); + } + meditationLambdaQueryWrapper.in(MeditationQuestion::getAppUserId,data); + } + if (StringUtils.hasLength(dto.getName())){ + List<Long> collect = meditationService.lambdaQuery() + .like(Meditation::getMeditationTitle, dto.getName()) + .list().stream().map(Meditation::getId).collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add(-1L); + } + meditationLambdaQueryWrapper.in(MeditationQuestion::getMeditationId,collect); + } + meditationLambdaQueryWrapper.orderByDesc(MeditationQuestion::getCreateTime); + List<MeditationQuestion> page = meditationQuestionService.list(meditationLambdaQueryWrapper); + List<QuestionExport> questionExports = new ArrayList<>(); + for (MeditationQuestion record : page) { + record.setUid(record.getId()+""); + AppUser data = remoteAppUserService.getAppUserById(record.getAppUserId().toString()).getData(); + Meditation byId = meditationService.getById(record.getMeditationId()); + + QuestionExport questionExport = new QuestionExport(); + if (byId!=null){ + record.setMeditationName(byId.getMeditationTitle()); + questionExport.setName(byId.getMeditationTitle()); + } + if (data!=null){ + record.setUserName(data.getNickname()); + record.setAvatar(data.getAvatar()); + record.setCellPhone(data.getCellPhone()); + questionExport.setUserName(data.getNickname()); + questionExport.setCellphone(data.getCellPhone()); + } + questionExport.setContent(record.getContent()); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String format = df.format(record.getCreateTime()); + if (record.getReplyTime()!=null){ + String format1 = df.format(record.getReplyTime()); + questionExport.setReplayTime(format1); + } + questionExport.setCreateTime(format); + questionExport.setReplayContent(record.getReplyContent()); + + questionExport.setLikeCount(record.getLikeCount()+""); + questionExport.setShowFlag(record.getShowFlag()+""); + questionExports.add(questionExport); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), QuestionExport.class, questionExports); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("提问管理管理导出.xls", "utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } @PostMapping("/meditationQuestionManagementList") @ApiOperation(value = "提问列表-分页", tags = {"管理后台-提问管理"}) public R<PageDTO<MeditationQuestion>> meditationQuestionManagementList(@RequestBody MeditationQuestionDTO dto) { @@ -114,20 +232,25 @@ } Meditation byId = meditationService.getById(record.getMeditationId()); if (byId!=null){ + record.setChargeType(byId.getChargeType()); record.setMeditationName(byId.getMeditationTitle()); + if (byId.getChargeType()!=null &&byId.getChargeType() == 3){ + record.setMoney(byId.getGeneralPrice()); + } } + } return R.ok(PageDTO.of(page, MeditationQuestion.class)); } @PostMapping("/addMeditationQuestion") - @ApiOperation(value = "新增提问管理", notes = "管理后台-提问管理") + @ApiOperation(value = "新增提问管理", tags = "管理后台-提问管理") public R addMeditationQuestion(@RequestBody MeditationQuestion homeBackgroundMusic) { homeBackgroundMusic.setCreateBy(SecurityUtils.getUsername()); homeBackgroundMusic.setCreateTime(LocalDateTime.now()); return R.ok(meditationQuestionService.save(homeBackgroundMusic)); } @GetMapping("/updateState") - @ApiOperation(value = "修改提问显示状态", notes = "管理后台-提问管理") + @ApiOperation(value = "修改提问显示状态", tags = "管理后台-提问管理") public R updateState(String uid) { MeditationQuestion byId = meditationQuestionService.getById(uid); if (byId.getShowFlag() == 1){ @@ -135,10 +258,11 @@ }else { byId.setShowFlag(1); } + meditationQuestionService.updateById(byId); return R.ok(); } @GetMapping("/detailMeditationQuestion") - @ApiOperation(value = "查看详情提问管理", notes = "管理后台-提问管理") + @ApiOperation(value = "查看详情提问管理", tags = "管理后台-提问管理") public R<MeditationQuestion> detailMeditationQuestion(String uid) { MeditationQuestion byId = meditationQuestionService.getById(uid); AppUser data = remoteAppUserService.getAppUserById(byId.getAppUserId().toString()).getData(); @@ -160,16 +284,16 @@ return R.ok(); } @PostMapping("/updateMeditationQuestion") - @ApiOperation(value = "修改提问管理", notes = "管理后台-提问管理") + @ApiOperation(value = "修改提问管理", tags = "管理后台-提问管理") public R updateMeditationQuestion(@RequestBody MeditationQuestion homeBackgroundMusic) { homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername()); homeBackgroundMusic.setUpdateTime(LocalDateTime.now()); return R.ok(meditationQuestionService.updateById(homeBackgroundMusic)); } @PostMapping("/deleteMeditationQuestion") - @ApiOperation(value = "批量删除", notes = "管理后台-提问管理") + @ApiOperation(value = "批量删除", tags = "管理后台-提问管理") public R deleteMeditationQuestion(String ids) { - return R.ok(meditationQuestionService.removeBatchByIds(Arrays.asList(ids.split(",")))); + return R.ok(meditationQuestionService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()))); } } -- Gitblit v1.7.1