From b01f752252eaadd1fa31eda6a9ad43146660b721 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 03 四月 2025 23:42:57 +0800 Subject: [PATCH] bug修改 --- xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationController.java | 609 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 607 insertions(+), 2 deletions(-) diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationController.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationController.java index 752c519..39d68ea 100644 --- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationController.java +++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationController.java @@ -1,9 +1,50 @@ package com.xinquan.meditation.controller.client; -import org.springframework.web.bind.annotation.RequestMapping; +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.core.conditions.update.LambdaUpdateWrapper; +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.core.web.domain.BaseModel; +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.MeditationDTO; +import com.xinquan.meditation.api.domain.dto.UserAnswerDTO; +import com.xinquan.meditation.domain.*; +import com.xinquan.meditation.domain.export.MeditationExport; +import com.xinquan.meditation.service.*; +import com.xinquan.system.api.domain.AppUser; +import com.xinquan.meditation.api.domain.MeditationQuestion; +import com.xinquan.system.api.domain.NoticeRecord; +import com.xinquan.system.api.domain.Tag; +import com.xinquan.system.api.model.LoginUser; +import com.xinquan.user.api.feign.RemoteAppUserService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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 org.springframework.web.bind.annotation.RestController; +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; /** * <p> @@ -14,8 +55,572 @@ * @since 2024-08-21 */ @RestController +@RequiredArgsConstructor @RequestMapping("/client/meditation/meditation") public class ClientMeditationController { + @Autowired + private MeditationService meditationService; + @Autowired + private MeditationHallService meditationHallService; + @Autowired + private MeditationUserFavoriteService meditationUserFavoriteService; + @Autowired + private MeditationTagService meditationTagService; + @Autowired + private MeditationMusicService meditationMusicService; + @Autowired + private MeditationCategoryService meditationCategoryService; + @Autowired + private MeditationQuestionService meditationQuestionService; + @Autowired + private MeditationEverydayService meditationEverydayService; + @Resource + private RemoteAppUserService remoteAppUserService; + @Autowired + private TokenService tokenService; + + @GetMapping("/getMeditationCount") + public R<String> getMeditationCount() { + StringBuilder stringBuilder = new StringBuilder(); + List<Meditation> list = meditationService.lambdaQuery().eq(BaseModel::getDelFlag, 0) + .list(); + stringBuilder.append(list.size()).append(","); + List<Meditation> collect1 = list.stream().filter(t -> t.getChargeType() == 1).collect(Collectors.toList()); + List<Meditation> collect2 = list.stream().filter(t -> t.getChargeType() == 2).collect(Collectors.toList()); + List<Meditation> collect3 = list.stream().filter(t -> t.getChargeType() == 3).collect(Collectors.toList()); + stringBuilder.append(collect1.size()).append(","); + stringBuilder.append(collect2.size()).append(","); + stringBuilder.append(collect3.size()).append(","); + return R.ok(stringBuilder.toString()); + } + @PostMapping("/confirmOrder") + @ApiOperation(value = "确认订单页面",tags = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "冥想id", name = "meditationId", required = true, dataType = "Long") + }) + public R<Meditation> studyPageByChapterId(@RequestParam(value = "meditationId")Long meditationId) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userid = loginUser.getUserid(); + Meditation byId = meditationService.getById(meditationId); + AppUser data = remoteAppUserService.getAppUserById(userid + "").getData(); + byId.setBalance(data.getBalance()); + return R.ok(byId); + } + @PostMapping("/successOrder") + @ApiOperation(value = "支付成功页面") + @ApiImplicitParams({ + @ApiImplicitParam(value = "冥想id", name = "meditationId", required = true, dataType = "Long") + }) + public R<List<Meditation>> successOrder(@RequestParam(value = "meditationId")Long meditationId) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); + Meditation byId = meditationService.getById(meditationId); + List<Meditation> list = meditationService.lambdaQuery().eq(Meditation::getCateId, byId.getCateId()) + .eq(Meditation::getListingStatus,1) + .ne(Meditation::getId,meditationId) + .list(); + + List<Meditation> courses = new ArrayList<>(); + + // 如果list集合数据大于4 随机获取两个返回 + if (CollUtils.isNotEmpty(list) && list.size() > 4) { + int size = list.size(); + for (int i = 0; i < 4; i++) { + courses.add(list.get(i)); + } + return R.ok(courses); + }else { + return R.ok(list); + } + } + + + + /** + * 远程调用 通过疗愈名字查询疗愈ids + * @return + */ + @PostMapping("/getMeditationIdsByName/{name}") + public R<List<Long>> getMeditationIdsByName(@PathVariable("name") String name) { + List<Long> collect = meditationService.lambdaQuery().like(Meditation::getMeditationTitle, name) + .list().stream().map(Meditation::getId) + .collect(Collectors.toList()); + return R.ok(collect); + } + @GetMapping("/getMeditationById/{pageCurr}/{pageSize}/{id}") + public R<Page<Meditation>> getMeditationById(@PathVariable("pageCurr") Integer pageCurr + ,@PathVariable("pageSize") Integer pageSize,@PathVariable("id")Long id) + { + List<Long> collect = meditationUserFavoriteService + .lambdaQuery() + .eq(MeditationUserFavorite::getAppUserId, id).list().stream() + .map(MeditationUserFavorite::getMeditationId).collect(Collectors.toList()); + if (collect.isEmpty())collect.add(-1L); + Page<Meditation> page = meditationService + .lambdaQuery() + .in(Meditation::getId, collect) + .page(new Page<>(pageCurr, pageSize)); + if (page.getRecords().isEmpty()){ + return R.ok(page); + } + // 查询人数 + return R.ok(page); + } + @GetMapping("/getMeditationByIds/{pageCurr}/{pageSize}/{ids}") + public R<Page<Meditation>> getMeditationByIds(@PathVariable("pageCurr") Integer pageCurr, + @PathVariable("pageSize") Integer pageSize, + @PathVariable("ids")String ids) + { + + Page<Meditation> page = meditationService + .lambdaQuery() + .in(Meditation::getId,Arrays.asList(ids.split(","))) + .page(new Page<>(pageCurr, pageSize)); + if (page.getRecords().isEmpty()){ + return R.ok(page); + } + // 查询人数 + return R.ok(page); + } + @GetMapping("/getMeditationById/{id}") + public R<Meditation> getMeditationById(@PathVariable("id") Long id) + { + Meditation byId = meditationService.getById(id); + MeditationCategory byId1 = meditationCategoryService.getById(byId.getCateId()); + byId.setCategoryName(byId1.getCategoryName()); + return R.ok(byId); + } + /** + * 获取冥想馆列表 + */ + @GetMapping("/getMeditationPage") + @ApiOperation(value = "获取冥想馆列表-分页") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lon", value = "经度", dataType = "String", required = false), + @ApiImplicitParam(name = "lat", value = "纬度", dataType = "String", required = false), + @ApiImplicitParam(name = "name", value = "名称", dataType = "String", required = false), + @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), + @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) + }) + public R<PageDTO<MeditationHall>> getMeditationPage( + String lon, + String lat, + String name, + Integer pageCurr, + Integer pageSize) { + PageDTO<MeditationHall> res = meditationService.getMeditationPage(lon,lat,name,pageCurr,pageSize); + return R.ok(res); + } + @GetMapping("/getMeditationInfo") + @ApiOperation(value = "获取冥想馆详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", required = true), + }) + public R<MeditationHall> getMeditationPage( + @RequestParam("id") Long id) + { + MeditationHall byId = meditationHallService.getById(id); + return R.ok(byId); + } + @ApiOperation(value = "冥想音频列表导出", tags = {"管理后台-冥想音频管理"}) + @PutMapping("/export") + public void export(@RequestBody MeditationDTO dto) + { + List<Long> longs = new ArrayList<>(); + if (dto.getTagName()!=null && !dto.getTagName().isEmpty()){ + List<Tag> data = remoteAppUserService.queryTag(dto.getTagName()).getData(); + if (data.isEmpty()){ + longs.add(-1L); + }else{ + longs.addAll(data.stream().map(Tag::getId).collect(Collectors.toList())); + } + } + if (longs.isEmpty())longs.add(-1L); + List<Long> collect = meditationTagService.lambdaQuery().in(MeditationTag::getTagId,longs) + .list().stream().map(MeditationTag::getMeditationId) + .collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add(-1L); + } + LambdaQueryWrapper<Meditation> courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.hasLength(dto.getIds())){ + courseLambdaQueryWrapper.in(Meditation::getId, Arrays.asList(dto.getIds().split(","))); + } + courseLambdaQueryWrapper.eq(dto.getSanskrit()!=null,Meditation::getSanskrit, dto.getSanskrit()); + courseLambdaQueryWrapper.in(StringUtils.hasLength(dto.getTagName()),Meditation::getId, collect); + courseLambdaQueryWrapper.eq(dto.getChargeType()!=null,Meditation::getChargeType, dto.getChargeType()); + courseLambdaQueryWrapper.eq(dto.getCateId()!=null,Meditation::getCateId, dto.getCateId()); + courseLambdaQueryWrapper.eq(dto.getMeditationTitle()!=null&& !dto.getMeditationTitle().isEmpty(),Meditation::getMeditationTitle, dto.getMeditationTitle()); + courseLambdaQueryWrapper.orderByDesc(Meditation::getSortNum); + List<Meditation> page = meditationService.list(courseLambdaQueryWrapper); + List<MeditationExport> meditations = new ArrayList<>(); + for (Meditation record : page) { + MeditationExport meditationExport = new MeditationExport(); + record.setUid(record.getId()+""); + MeditationCategory byId = meditationCategoryService.getById(record.getCateId()); + if (byId!=null){ + record.setCategoryName(byId.getCategoryName()); + meditationExport.setCategoryName(byId.getCategoryName()); + } + meditationExport.setName(record.getMeditationTitle()); + meditationExport.setDetailDescription(record.getDetailDescription()); + if (record.getChargeType()==3){ + meditationExport.setGeneralPrice("¥"+record.getGeneralPrice()); + }else{ + switch (record.getChargeType()){ + case 1: + meditationExport.setGeneralPrice("免费"); + break; + case 2: + meditationExport.setGeneralPrice("会员免费"); + break; + } + } + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String format = df.format(record.getCreateTime()); + meditationExport.setCreateTime(format); + meditationExport.setListingStatus(record.getListingStatus()+""); + meditationExport.setRealLearnedNum(record.getRealLearnedNum()+record.getVirtualLearnedNum()+""); + meditationExport.setCollectCount(record.getFavoriteCount()+""); + meditations.add(meditationExport); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), MeditationExport.class, meditations); + 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("/meditationManagementList") + @ApiOperation(value = "冥想音频列表-分页", tags = {"管理后台-冥想音频管理"}) + public R<PageDTO<Meditation>> meditationManagementList(@RequestBody MeditationDTO dto) { + List<Long> longs = new ArrayList<>(); + if (dto.getTagName()!=null && !dto.getTagName().isEmpty()){ + List<Tag> data = remoteAppUserService.queryTag(dto.getTagName()).getData(); + if (data.isEmpty()){ + longs.add(-1L); + }else{ + longs.addAll(data.stream().map(Tag::getId).collect(Collectors.toList())); + } + } + if (longs.isEmpty())longs.add(-1L); + List<Long> collect = meditationTagService.lambdaQuery().in(MeditationTag::getTagId,longs) + .list().stream().map(MeditationTag::getMeditationId) + .collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add(-1L); + } + LambdaQueryWrapper<Meditation> courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); + courseLambdaQueryWrapper.eq(dto.getSanskrit()!=null,Meditation::getSanskrit, dto.getSanskrit()); + courseLambdaQueryWrapper.in(StringUtils.hasLength(dto.getTagName()),Meditation::getId, collect); + courseLambdaQueryWrapper.eq(dto.getChargeType()!=null,Meditation::getChargeType, dto.getChargeType()); + courseLambdaQueryWrapper.eq(dto.getCateId()!=null,Meditation::getCateId, dto.getCateId()); + courseLambdaQueryWrapper.like(dto.getMeditationTitle()!=null&& !dto.getMeditationTitle().isEmpty(),Meditation::getMeditationTitle, dto.getMeditationTitle()); + courseLambdaQueryWrapper.orderByDesc(Meditation::getCreateTime); + Page<Meditation> page = meditationService.page(new Page<>(dto.getPageCurr(), dto.getPageSize()), courseLambdaQueryWrapper); + if (CollUtils.isEmpty(page.getRecords())) { + return R.ok(PageDTO.empty(page)); + } + for (Meditation record : page.getRecords()) { + record.setUid(record.getId()+""); + MeditationCategory byId = meditationCategoryService.getById(record.getCateId()); + if (byId!=null){ + record.setCategoryName(byId.getCategoryName()); + } + } + return R.ok(PageDTO.of(page, Meditation.class)); + } + + @PostMapping("/addMeditation") + @ApiOperation(value = "新增冥想音频管理", tags = "管理后台-冥想音频管理") + public R addMeditation(@RequestBody Meditation homeBackgroundMusic) { + homeBackgroundMusic.setCreateBy(SecurityUtils.getUsername()); + homeBackgroundMusic.setCreateTime(LocalDateTime.now()); + meditationService.save(homeBackgroundMusic); + if (homeBackgroundMusic.getIsEveryday()==1){ + MeditationEveryday meditationEveryday = new MeditationEveryday(); + meditationEveryday.setMeditationId(homeBackgroundMusic.getId()); + meditationEveryday.setStartPlayTime(homeBackgroundMusic.getStartPlayTime()); + meditationEveryday.setEndPlayTime(homeBackgroundMusic.getEndPlayTime()); + meditationEveryday.setImageUrl(homeBackgroundMusic.getImageUrl()); + meditationEveryday.setCreateTime(LocalDateTime.now()); + meditationEverydayService.save(meditationEveryday); + homeBackgroundMusic.setEverydayId(meditationEveryday.getId()); + meditationService.updateById(homeBackgroundMusic); + } + if (!homeBackgroundMusic.getTagIds().isEmpty()){ + String[] split = homeBackgroundMusic.getTagIds().split(","); + List<MeditationTag> meditationTags = new ArrayList<>(); + for (int i = 0; i < split.length; i++) { + MeditationTag meditationTag = new MeditationTag(); + meditationTag.setMeditationId(homeBackgroundMusic.getId()); + meditationTag.setTagId(Long.valueOf(split[i])); + meditationTags.add(meditationTag); + } + meditationTagService.saveBatch(meditationTags); + } + if (!homeBackgroundMusic.getMusicUrls().isEmpty()){ + String[] split = homeBackgroundMusic.getMusicUrls().split(","); + String[] split1 = homeBackgroundMusic.getName().split(","); + String[] split2 = homeBackgroundMusic.getMusicSize().split(","); + List<MeditationMusic> meditationTags = new ArrayList<>(); + for (int i = 0; i < split.length; i++) { + MeditationMusic meditationTag = new MeditationMusic(); + meditationTag.setMusicSize(split2[i]); + meditationTag.setMeditationId(homeBackgroundMusic.getId()); + meditationTag.setMusicUrl(split[i]); + meditationTag.setName(split1[i]); + meditationTag.setMusicSecond(Integer.valueOf(homeBackgroundMusic.getMusicSecond().split(",")[i])); + meditationTags.add(meditationTag); + } + meditationMusicService.saveBatch(meditationTags); + } + return R.ok(); + } + @GetMapping("/detailMeditation") + @ApiOperation(value = "查看详情冥想音频管理", tags = "管理后台-冥想音频管理") + public R<Meditation> detailMeditation(String uid) { + Meditation byId = meditationService.getById(uid); + List<MeditationTag> list1 = meditationTagService.list(new LambdaQueryWrapper<MeditationTag>() + .eq(MeditationTag::getMeditationId, uid)); + + List<Long> collect = list1 + .stream().map(MeditationTag::getTagId) + .collect(Collectors.toList()); + + List<String> collect1 = meditationMusicService.list(new LambdaQueryWrapper<MeditationMusic>() + .eq(MeditationMusic::getMeditationId, uid)) + .stream().map(MeditationMusic::getName) + .collect(Collectors.toList()); + if (!list1.isEmpty()){ + StringBuilder stringBuilder = new StringBuilder(); + for (Long s : collect) { + stringBuilder.append(s).append(","); + } + // 去除最后一位 + StringBuilder stringBuilder1 = stringBuilder.deleteCharAt(stringBuilder.length() - 1); + List<String> data = remoteAppUserService.queryTagList(stringBuilder1 + "").getData(); + byId.setTagNameList(data); + + }else{ + byId.setTagNameList(new ArrayList<String>()); + } + byId.setMusicList(collect1); + byId.setTagList(collect); + if (byId.getIsEveryday() == 1){ + MeditationEveryday byId1 = meditationEverydayService.getById(byId.getEverydayId()); + if (byId1 != null){ + byId.setStartPlayTime(byId1.getStartPlayTime()); + byId.setEndPlayTime(byId1.getEndPlayTime()); + byId.setImageUrl(byId1.getImageUrl()); + } + } + MeditationCategory byId1 = meditationCategoryService.getById(byId.getCateId()); + if (byId1!=null){ + byId.setCategoryName(byId1.getCategoryName()); + } + List<MeditationMusic> list = meditationMusicService.lambdaQuery().eq(MeditationMusic::getMeditationId, byId.getId()).list(); + StringBuilder stringBuilder1 = new StringBuilder(); + StringBuilder stringBuilder2 = new StringBuilder(); + StringBuilder stringBuilder3 = new StringBuilder(); + StringBuilder stringBuilder4 = new StringBuilder(); + for (MeditationMusic meditationMusic : list) { + stringBuilder1.append(meditationMusic.getMusicUrl()).append(","); + stringBuilder2.append(meditationMusic.getMusicSize()).append(","); + stringBuilder3.append(meditationMusic.getMusicSecond()).append(","); + stringBuilder4.append(meditationMusic.getName()).append(","); + } + // 去除最后以为字符 + byId.setMusicUrls(stringBuilder1.deleteCharAt(stringBuilder1.length() - 1)+""); + byId.setMusicSize(stringBuilder2.deleteCharAt(stringBuilder2.length() - 1)+""); + byId.setMusicSecond(stringBuilder3.deleteCharAt(stringBuilder3.length() - 1)+""); + byId.setName(stringBuilder4.deleteCharAt(stringBuilder4.length() - 1)+""); + return R.ok(byId); + } + @PostMapping("/userAnswer") + @ApiOperation(value = "查看详情冥想音频-用户提问-分页", tags = "管理后台-冥想音频管理") + public R<PageDTO<MeditationQuestion>> userAnswer(@RequestBody UserAnswerDTO dto) { + LambdaQueryWrapper<MeditationQuestion> courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.hasLength(dto.getUserName())){ + List<Long> data = remoteAppUserService.getAppUserByName(dto.getUserName()).getData(); + if (data.isEmpty()){ + data.add(-1L); + } + courseLambdaQueryWrapper.in(MeditationQuestion::getAppUserId, data); + } + courseLambdaQueryWrapper.eq(dto.getShow_flag()!=null,MeditationQuestion::getShowFlag, dto.getShow_flag()); + courseLambdaQueryWrapper.like(dto.getContent()!=null&& (!dto.getContent().isEmpty()),MeditationQuestion::getContent, dto.getContent()); + courseLambdaQueryWrapper.eq(dto.getUid()!=null,MeditationQuestion::getMeditationId, dto.getUid()); + courseLambdaQueryWrapper.orderByDesc(MeditationQuestion::getCreateTime); + Page<MeditationQuestion> page = meditationQuestionService.page(new Page<>(dto.getPageCurr(), dto.getPageSize()), courseLambdaQueryWrapper); + if (CollUtils.isEmpty(page.getRecords())) { + return R.ok(PageDTO.empty(page)); + } + for (MeditationQuestion record : page.getRecords()) { + record.setUid(record.getId() + ""); + AppUser data = remoteAppUserService.getAppUserById(record.getAppUserId() + "").getData(); + if (data!=null){ + record.setUserName(data.getNickname()); + record.setAvatar(data.getAvatar()); + record.setCellPhone(data.getCellPhone()); + } + } + return R.ok(PageDTO.of(page, MeditationQuestion.class)); + } + @GetMapping("/updateUserAnswerState") + @ApiOperation(value = "查看详情冥想音频-用户提问-修改显示状态", tags = "管理后台-冥想音频管理") + public R updateUserAnswerState(String uid) { + MeditationQuestion byId = meditationQuestionService.getById(uid); + if (byId.getShowFlag() == 1){ + byId.setShowFlag(2); + }else { + byId.setShowFlag(1); + } + meditationQuestionService.updateById(byId); + return R.ok(); + } + @GetMapping("/detailUserAnswer") + @ApiOperation(value = "查看详情冥想音频-用户提问", tags = "管理后台-冥想音频管理") + public R<MeditationQuestion> detailUserAnswer(String uid) { + MeditationQuestion byId = meditationQuestionService.getById(uid); + AppUser data = remoteAppUserService.getAppUserById(byId.getAppUserId().toString()).getData(); + byId.setUserName(data.getNickname()); + byId.setAvatar(data.getAvatar()); + byId.setCellPhone(data.getCellPhone()); + return R.ok(byId); + } + @GetMapping("/updateUserAnswer") + @ApiOperation(value = "查看详情冥想音频-用户提问-编辑", tags = "管理后台-冥想音频管理") + @ApiImplicitParams({ + @ApiImplicitParam(name = "uid", value = "uid", dataType = "String", required = true), + @ApiImplicitParam(name = "content", value = "回复内容", dataType = "String", required = false), + @ApiImplicitParam(name = "showFlag", value = "是否显示1是2否", dataType = "Integer", required = true), + }) + public R<MeditationQuestion> updateUserAnswer(String uid,String content,Integer showFlag) { + MeditationQuestion byId = meditationQuestionService.getById(uid); + if (StringUtils.hasLength(content)){ + // 给用户发一条消息 只有第一次回复发送 + if (StringUtils.hasLength(byId.getReplyContent())){ + NoticeRecord noticeRecord = new NoticeRecord(); + noticeRecord.setAppUserId(byId.getAppUserId()); + noticeRecord.setMeditationQuestionId(byId.getId()); + noticeRecord.setReadStatus(1); + noticeRecord.setNoticeType(2); + noticeRecord.setTitle("回复消息"); + noticeRecord.setContent(content); + noticeRecord.setCreateBy(SecurityUtils.getUsername()); + noticeRecord.setCreateTime(LocalDateTime.now()); + remoteAppUserService.addNoticeReplay(noticeRecord); + } + } + LambdaUpdateWrapper<MeditationQuestion> meditationQuestionLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + meditationQuestionLambdaUpdateWrapper.set(MeditationQuestion::getReplyContent, content); + meditationQuestionLambdaUpdateWrapper.set(StringUtils.hasLength(content),MeditationQuestion::getReplyTime, LocalDateTime.now()); + meditationQuestionLambdaUpdateWrapper.set(MeditationQuestion::getShowFlag, showFlag); + meditationQuestionLambdaUpdateWrapper.eq(MeditationQuestion::getId, uid); + meditationQuestionService.update(meditationQuestionLambdaUpdateWrapper); + return R.ok(byId); + } + @GetMapping("/updateState") + @ApiOperation(value = "修改冥想音频上下架状态", tags = "管理后台-冥想音频管理") + public R updateState(String uid) { + Meditation byId = meditationService.getById(uid); + if (byId.getListingStatus() == 1){ + byId.setListingStatus(2); + }else { + byId.setListingStatus(1); + } + meditationService.updateById(byId); + return R.ok(); + } + @PostMapping("/updateMeditation") + @ApiOperation(value = "修改冥想音频管理", tags = "管理后台-冥想音频管理") + public R updateMeditation(@RequestBody Meditation homeBackgroundMusic) { + homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername()); + homeBackgroundMusic.setUpdateTime(LocalDateTime.now()); + meditationService.updateById(homeBackgroundMusic); + meditationTagService.remove(new LambdaQueryWrapper<MeditationTag>() + .eq(MeditationTag::getMeditationId,homeBackgroundMusic.getId())); + meditationMusicService.remove(new LambdaQueryWrapper<MeditationMusic>() + .eq(MeditationMusic::getMeditationId,homeBackgroundMusic.getId())); + if (homeBackgroundMusic.getIsEveryday() == 2){ + // 将以前的删掉 + meditationEverydayService.remove(new LambdaQueryWrapper<MeditationEveryday>() + .eq(MeditationEveryday::getId,homeBackgroundMusic.getEverydayId())); + meditationTagService.remove(new LambdaQueryWrapper<>(MeditationTag.class) + .eq(MeditationTag::getMeditationId,homeBackgroundMusic.getId())); + }else if (homeBackgroundMusic.getIsEveryday() == 1){ + meditationEverydayService.remove(new LambdaQueryWrapper<MeditationEveryday>() + .eq(MeditationEveryday::getId,homeBackgroundMusic.getEverydayId())); + // 将以前的删掉 再新增一条 + MeditationEveryday meditationEveryday = new MeditationEveryday(); + meditationEveryday.setMeditationId(homeBackgroundMusic.getId()); + meditationEveryday.setStartPlayTime(homeBackgroundMusic.getStartPlayTime()); + meditationEveryday.setEndPlayTime(homeBackgroundMusic.getEndPlayTime()); + meditationEveryday.setImageUrl(homeBackgroundMusic.getImageUrl()); + meditationEveryday.setCreateTime(LocalDateTime.now()); + meditationEverydayService.save(meditationEveryday); + homeBackgroundMusic.setEverydayId(meditationEveryday.getId()); + meditationService.updateById(homeBackgroundMusic); + } + if (!homeBackgroundMusic.getTagIds().isEmpty()){ + meditationTagService.remove(new LambdaQueryWrapper<MeditationTag>().eq(MeditationTag::getMeditationId,homeBackgroundMusic.getId())); + String[] split = homeBackgroundMusic.getTagIds().split(","); + List<MeditationTag> meditationTags = new ArrayList<>(); + for (int i = 0; i < split.length; i++) { + MeditationTag meditationTag = new MeditationTag(); + meditationTag.setMeditationId(homeBackgroundMusic.getId()); + meditationTag.setTagId(Long.valueOf(split[i])); + meditationTags.add(meditationTag); + } + meditationTagService.saveBatch(meditationTags); + } + if (!homeBackgroundMusic.getMusicUrls().isEmpty()){ + meditationMusicService.remove(new LambdaQueryWrapper<MeditationMusic>().eq(MeditationMusic::getMeditationId,homeBackgroundMusic.getId())); + String[] split = homeBackgroundMusic.getMusicUrls().split(","); + String[] split1 = homeBackgroundMusic.getName().split(","); + String[] split2 = homeBackgroundMusic.getMusicSize().split(","); + List<MeditationMusic> meditationTags = new ArrayList<>(); + for (int i = 0; i < split.length; i++) { + MeditationMusic meditationTag = new MeditationMusic(); + meditationTag.setMusicSize(split2[i]); + meditationTag.setMeditationId(homeBackgroundMusic.getId()); + meditationTag.setMusicUrl(split[i]); + meditationTag.setName(split1[i]); + meditationTag.setMusicSecond(Integer.valueOf(homeBackgroundMusic.getMusicSecond().split(",")[i])); + meditationTags.add(meditationTag); + } + meditationMusicService.saveBatch(meditationTags); + } + return R.ok(); + } + @PostMapping("/deleteMeditation") + @ApiOperation(value = "批量删除", tags = "管理后台-冥想音频管理") + public R deleteMeditation(String ids) { + return R.ok(meditationService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()))); + } } -- Gitblit v1.7.1