| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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()); |
| | |
| | | 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) { |
| | |
| | | } |
| | | 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){ |
| | |
| | | }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(); |
| | |
| | | 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()))); |
| | | } |
| | | } |
| | | |