From dd663d0ac783755d889e270eee57ee58630c88c8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 28 二月 2025 17:46:52 +0800 Subject: [PATCH] 冥想2.0新增代码 --- xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java | 218 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 181 insertions(+), 37 deletions(-) diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java index 99005f6..94884a7 100644 --- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java +++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java @@ -1,12 +1,17 @@ package com.xinquan.meditation.controller.client; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.constant.SecurityConstants; import com.xinquan.common.core.domain.R; +import com.xinquan.common.core.utils.page.BeanUtils; import com.xinquan.common.core.utils.page.PageDTO; -import com.xinquan.meditation.api.domain.Meditation; +import com.xinquan.common.log.annotation.Log; +import com.xinquan.common.log.enums.BusinessType; +import com.xinquan.common.security.service.TokenService; import com.xinquan.meditation.domain.HomeBackgroundMusic; +import com.xinquan.meditation.domain.HomeBackgroundMusicUser; import com.xinquan.meditation.domain.vo.ClientHomeBackgroundMusicVO; import com.xinquan.meditation.domain.vo.ClientMeditationAndCateVO; import com.xinquan.meditation.domain.vo.ClientMeditationCategoryVO; @@ -14,24 +19,25 @@ import com.xinquan.meditation.domain.vo.ClientMeditationEverydayVO; import com.xinquan.meditation.domain.vo.ClientMeditationQuestionVO; import com.xinquan.meditation.domain.vo.ClientMeditationVO; -import com.xinquan.meditation.service.HomeBackgroundMusicService; -import com.xinquan.meditation.service.MeditationCategoryService; -import com.xinquan.meditation.service.MeditationEverydayService; -import com.xinquan.meditation.service.MeditationQuestionService; -import com.xinquan.meditation.service.MeditationService; +import com.xinquan.meditation.service.*; import com.xinquan.system.api.RemoteHotWordsService; -import com.xinquan.system.api.domain.AppUser; +import com.xinquan.meditation.api.domain.MeditationQuestion; +import com.xinquan.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; -import java.util.Optional; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; /** * <p> @@ -51,51 +57,78 @@ private final MeditationService meditationService; private final MeditationCategoryService meditationCategoryService; private final MeditationEverydayService meditationEverydayService; - private final RemoteHotWordsService remoteHotWordsService; + @Resource + private RemoteHotWordsService remoteHotWordsService; private final MeditationQuestionService meditationQuestionService; - - @PostMapping("/listHomeBackgroundMusic") - @ApiOperation(value = "背景音乐列表查询-分页", notes = "管理后台-首页背景音乐管理") + @Autowired + private HomeBackgroundMusicUserService homeBackgroundMusicUserService; + @Autowired + private TokenService tokenService; + // 新增需求 用户注册默认给一个背景音频设置 + @GetMapping("/addHomeBackgroundMusicDefault/{id}") + public R addHomeBackgroundMusicDefault(@PathVariable("id") Long id) { + List<HomeBackgroundMusic> list = homeBackgroundMusicService.list(); + if (!list.isEmpty()) { + List<HomeBackgroundMusicUser> homeBackgroundMusicUserList = homeBackgroundMusicUserService.lambdaQuery().eq(HomeBackgroundMusicUser::getAppUserId, id).list(); + if (homeBackgroundMusicUserList.isEmpty()) { + HomeBackgroundMusicUser homeBackgroundMusicUser = new HomeBackgroundMusicUser(); + homeBackgroundMusicUser.setAppUserId(id); + homeBackgroundMusicUser.setHomeBackgroundMusicId(list.get(0).getId()); + homeBackgroundMusicUserService.save(homeBackgroundMusicUser); + } + } + return R.ok(); + } + @GetMapping("/listHomeBackgroundMusic") + @ApiOperation(value = "背景音乐列表查询-分页", tags = "管理后台-首页背景音乐管理") @ApiImplicitParams({ @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true)}) public R<PageDTO<HomeBackgroundMusic>> listHomeBackgroundMusic(@RequestParam Integer pageCurr, @RequestParam Integer pageSize) { - PageDTO<HomeBackgroundMusic> pageDTO = PageDTO.empty(0L, 0L); + // 查询 Page<HomeBackgroundMusic> page = homeBackgroundMusicService.lambdaQuery() .orderByDesc(HomeBackgroundMusic::getSortNum) .page(new Page<>(pageCurr, pageSize)); // 如果没有查到数据直接返回 - if (Optional.ofNullable(page.getRecords()).isPresent()) { - return R.ok(pageDTO); + if (page.getRecords().isEmpty()) { + return R.ok(PageDTO.empty(page)); } - // 将实体类转换为VO - pageDTO = PageDTO.of(page, HomeBackgroundMusic.class); - for (HomeBackgroundMusic homeBackgroundMusic : pageDTO.getList()) { + for (HomeBackgroundMusic homeBackgroundMusic : page.getRecords()) { homeBackgroundMusic.setUid(homeBackgroundMusic.getId() + ""); } - return R.ok(pageDTO); + return R.ok(PageDTO.of(page, HomeBackgroundMusic.class)); } @PostMapping("/addHomeBackgroundMusic") - @ApiOperation(value = "新增背景", notes = "管理后台-首页背景音乐管理") + @Log(title = "【首页背景音乐管理】新增", businessType = BusinessType.INSERT) + @ApiOperation(value = "新增背景", tags = "管理后台-首页背景音乐管理") public R addHomeBackgroundMusic(@RequestBody HomeBackgroundMusic homeBackgroundMusic) { return R.ok(homeBackgroundMusicService.save(homeBackgroundMusic)); } @GetMapping("/detailHomeBackgroundMusic") - @ApiOperation(value = "查看详情", notes = "管理后台-首页背景音乐管理") - public R detailHomeBackgroundMusic(String uid) { + @ApiOperation(value = "查看详情", tags = "管理后台-首页背景音乐管理") + public R<HomeBackgroundMusic> detailHomeBackgroundMusic(String uid) { return R.ok(homeBackgroundMusicService.getById(uid)); } @PostMapping("/updateHomeBackgroundMusic") - @ApiOperation(value = "修改背景", notes = "管理后台-首页背景音乐管理") + @ApiOperation(value = "修改背景", tags = "管理后台-首页背景音乐管理") + @Log(title = "【首页背景音乐管理】修改", businessType = BusinessType.UPDATE) public R updateHomeBackgroundMusic(@RequestBody HomeBackgroundMusic homeBackgroundMusic) { - return R.ok(homeBackgroundMusicService.updateById(homeBackgroundMusic)); + homeBackgroundMusicService.updateById(homeBackgroundMusic); + LambdaUpdateWrapper<HomeBackgroundMusic> homeBackgroundMusicLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + if (homeBackgroundMusic.getBackUrl()==null){ + homeBackgroundMusicLambdaUpdateWrapper.set(HomeBackgroundMusic::getBackUrl,null); + homeBackgroundMusicLambdaUpdateWrapper.set(HomeBackgroundMusic::getBackName,null); + } + return R.ok(); } @PostMapping("/deleteHomeBackgroundMusic") - @ApiOperation(value = "批量删除", notes = "管理后台-首页背景音乐管理") + @ApiOperation(value = "批量删除", tags = "管理后台-首页背景音乐管理") + @Log(title = "【首页背景音乐管理】批量删除", businessType = BusinessType.DELETE) + public R deleteHomeBackgroundMusic(String ids) { - return R.ok(homeBackgroundMusicService.removeBatchByIds(Arrays.asList(ids.split(",")))); + return R.ok(homeBackgroundMusicService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()))); } /** * 获取首页背景音乐列表 @@ -107,19 +140,70 @@ public R<List<ClientHomeBackgroundMusicVO>> getHomeBackgroundMusicList() { return R.ok(homeBackgroundMusicService.getHomeBackgroundMusicList()); } + @PostMapping("/saveUserHomeBackgroundMusic") + @ApiOperation(value = "保存用户首页背景音频设置", notes = "保存用户首页背景音频设置") + @Log(title = "【用户首页背景音频设置】修改", businessType = BusinessType.UPDATE) - /** - * 保存用户首页背景音乐设置 - * - * @param id 首页背景音乐id - */ - @PostMapping("/savePersonalitySetting") - @ApiOperation(value = "保存用户首页背景音乐设置") - @ApiImplicitParam(name = "id", value = "首页背景音乐id", required = true) - public R<?> savePersonalitySetting(@RequestParam("id") Long id) { - homeBackgroundMusicService.savePersonalitySetting(id); + @ApiImplicitParam(name = "id", value = "首页背景音频id", dataType = "Long", required = true) + public R saveUserHomeBackgroundMusic(@RequestParam("id") Long id) { + if (tokenService.getLoginUser()==null) { + return R.tokenError("登录失效"); + } + HomeBackgroundMusicUser one = homeBackgroundMusicUserService.lambdaQuery() + .eq(HomeBackgroundMusicUser::getAppUserId, tokenService.getLoginUser().getAppUserId()).one(); + if (one!=null){ + one.setHomeBackgroundMusicId(id); + homeBackgroundMusicUserService.updateById(one); + }else{ + HomeBackgroundMusicUser homeBackgroundMusicUser = new HomeBackgroundMusicUser(); + homeBackgroundMusicUser.setAppUserId(tokenService.getLoginUser().getAppUserId()); + homeBackgroundMusicUser.setHomeBackgroundMusicId(id); + homeBackgroundMusicUserService.save(homeBackgroundMusicUser); + } return R.ok(); } + @GetMapping("/getHomeBackgroundMusicByUserId") + @ApiOperation(value = "获取用户设置的首页背景音乐", notes = "获取用户设置的首页背景音乐") + public R<ClientHomeBackgroundMusicVO> getHomeBackgroundMusicByUserId() { + if (tokenService.getLoginUser()==null){ + // 游客登录模式 不要返回登录失效 返回空即可 + List<HomeBackgroundMusic> list = homeBackgroundMusicService.list(); + if (list.isEmpty()){ + return R.ok(new ClientHomeBackgroundMusicVO()); + } + ClientHomeBackgroundMusicVO clientHomeBackgroundMusicVO = new ClientHomeBackgroundMusicVO(); + BeanUtils.copyProperties(list.get(0), clientHomeBackgroundMusicVO); + return R.ok(clientHomeBackgroundMusicVO); + } + HomeBackgroundMusicUser homeBackgroundMusicUser = homeBackgroundMusicUserService.lambdaQuery() + .eq(HomeBackgroundMusicUser::getAppUserId, tokenService.getLoginUser().getAppUserId()) + .one(); + if (homeBackgroundMusicUser==null){ + List<HomeBackgroundMusic> list = homeBackgroundMusicService.list(); + if (list.isEmpty()){ + return R.ok(new ClientHomeBackgroundMusicVO()); + } + ClientHomeBackgroundMusicVO clientHomeBackgroundMusicVO = new ClientHomeBackgroundMusicVO(); + BeanUtils.copyProperties(list.get(0), clientHomeBackgroundMusicVO); + return R.ok(clientHomeBackgroundMusicVO); + } + HomeBackgroundMusic homeBackgroundMusic = homeBackgroundMusicService.lambdaQuery() + .eq(HomeBackgroundMusic::getId, homeBackgroundMusicUser.getHomeBackgroundMusicId()) + .one(); + if (homeBackgroundMusic==null){ + List<HomeBackgroundMusic> list = homeBackgroundMusicService.list(); + if (list.isEmpty()){ + return R.ok(new ClientHomeBackgroundMusicVO()); + } + ClientHomeBackgroundMusicVO clientHomeBackgroundMusicVO = new ClientHomeBackgroundMusicVO(); + BeanUtils.copyProperties(list.get(0), clientHomeBackgroundMusicVO); + return R.ok(clientHomeBackgroundMusicVO); + } + ClientHomeBackgroundMusicVO clientHomeBackgroundMusicVO = new ClientHomeBackgroundMusicVO(); + BeanUtils.copyProperties(homeBackgroundMusic, clientHomeBackgroundMusicVO); + return R.ok(clientHomeBackgroundMusicVO); + } + /** * 根据类型获取冥想分类列表 @@ -165,6 +249,11 @@ @GetMapping("/getPersonalityPlan") @ApiOperation("获取私人订制") public R<List<ClientMeditationVO>> getPersonalityPlan() { +// LoginUser loginUser = tokenService.getLoginUser(); +// if (loginUser==null){ +// return R.tokenError("登录失效"); +// } +// Long userId = loginUser.getUserid(); return R.ok(meditationService.getPersonalityPlan()); } @@ -229,6 +318,8 @@ }) public R<PageDTO<ClientMeditationVO>> search(@RequestParam String condition, @RequestParam Integer pageCurr, @RequestParam Integer pageSize) { + + return R.ok(meditationService.search(condition, pageCurr, pageSize)); } @@ -253,7 +344,14 @@ @ApiOperation("获取冥想音频详情") @ApiImplicitParam(name = "id", value = "冥想音频id", dataType = "Long", required = true) public R<ClientMeditationDetailsVO> getMeditationDetails(@RequestParam("id") Long id) { - return R.ok(meditationService.getMeditationDetails(id)); + + return meditationService.getMeditationDetails(id); + } + @GetMapping("/getMeditationDetailsShare") + @ApiOperation(value = "获取冥想音频详情",tags = "H5分享") + @ApiImplicitParam(name = "id", value = "冥想音频id", dataType = "Long", required = true) + public R<ClientMeditationDetailsVO> getMeditationDetailsShare(Long id) { + return R.ok(meditationService.getMeditationDetails1(id)); } /** @@ -265,6 +363,11 @@ @ApiOperation(value = "收藏/取消收藏") @ApiImplicitParam(name = "id", value = "冥想音频id", dataType = "Long", required = true) public R<?> favorite(@RequestParam("id") Long id) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); meditationService.favorite(id); return R.ok(); } @@ -287,9 +390,50 @@ public R<PageDTO<ClientMeditationQuestionVO>> getMeditationQuestionPage( @RequestParam("id") Long id, @RequestParam("pageCurr") Integer pageCurr, @RequestParam("pageSize") Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); return R.ok(meditationService.getMeditationQuestionPage(id, pageCurr, pageSize)); } + @GetMapping("/getMeditationQuestionPageShare") + @ApiOperation(value = "获取冥想音频提问列表-分页",tags = "H5分享") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "冥想音频id", dataType = "Long", required = true), + @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), + @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) + }) + public R<PageDTO<ClientMeditationQuestionVO>> getMeditationQuestionPageShare( + @RequestParam("id") Long id, @RequestParam("pageCurr") Integer pageCurr, + @RequestParam("pageSize") Integer pageSize) { + return R.ok(meditationService.getMeditationQuestionPageShare(id, pageCurr, pageSize)); + } + @PostMapping("/addQuestion") + @ApiOperation(value = "发布提问") + @ApiImplicitParams({ + @ApiImplicitParam(name = "meditationId", value = "冥想音频id", dataType = "Long", required = true), + @ApiImplicitParam(name = "content", value = "提问内容", dataType = "String", required = true), + }) + public R addQuestion(Long meditationId,String content) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); + MeditationQuestion meditationQuestion = new MeditationQuestion(); + meditationQuestion.setMeditationId(meditationId); + meditationQuestion.setLikeCount(0); + meditationQuestion.setFavorite(2); + meditationQuestion.setContent(content); + meditationQuestion.setPublishTime(LocalDateTime.now()); + meditationQuestion.setAppUserId(userId); + meditationQuestion.setShowFlag(2); + meditationQuestion.setReportStatus(1); + meditationQuestionService.save(meditationQuestion); + return R.ok(); + } /** * 举报提问 * -- Gitblit v1.7.1