无关风月
2025-02-08 bbc55de9bb0f6e5d3d8267c628d25780c19ebf36
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java
@@ -1,16 +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.common.core.web.page.PageInfo;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
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.domain.HomeBackgroundMusic;
import com.xinquan.meditation.domain.MeditationHall;
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;
@@ -18,14 +19,9 @@
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.system.api.domain.MeditationQuestion;
import com.xinquan.meditation.api.domain.MeditationQuestion;
import com.xinquan.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -35,12 +31,13 @@
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>
@@ -60,9 +57,28 @@
    private final MeditationService meditationService;
    private final MeditationCategoryService meditationCategoryService;
    private final MeditationEverydayService meditationEverydayService;
    private final RemoteHotWordsService remoteHotWordsService;
    @Resource
    private  RemoteHotWordsService remoteHotWordsService;
    private final MeditationQuestionService meditationQuestionService;
    @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({
@@ -85,6 +101,7 @@
    }
    @PostMapping("/addHomeBackgroundMusic")
    @Log(title = "【首页背景音乐管理】新增", businessType = BusinessType.INSERT)
    @ApiOperation(value = "新增背景", tags = "管理后台-首页背景音乐管理")
    public R addHomeBackgroundMusic(@RequestBody HomeBackgroundMusic homeBackgroundMusic) {
        return R.ok(homeBackgroundMusicService.save(homeBackgroundMusic));
@@ -96,11 +113,20 @@
    }
    @PostMapping("/updateHomeBackgroundMusic")
    @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 = "批量删除", tags = "管理后台-首页背景音乐管理")
    @Log(title = "【首页背景音乐管理】批量删除", businessType = BusinessType.DELETE)
    public R deleteHomeBackgroundMusic(String ids) {
        return R.ok(homeBackgroundMusicService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList())));
    }
@@ -114,19 +140,50 @@
    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){
            // 游客登录模式 不要返回登录失效 返回空即可
            return R.ok(new ClientHomeBackgroundMusicVO());
        }
        HomeBackgroundMusicUser homeBackgroundMusicUser = homeBackgroundMusicUserService.lambdaQuery()
                .eq(HomeBackgroundMusicUser::getAppUserId, tokenService.getLoginUser().getAppUserId())
                .one();
        if (homeBackgroundMusicUser==null){
            return R.ok(new ClientHomeBackgroundMusicVO());
        }
        HomeBackgroundMusic homeBackgroundMusic = homeBackgroundMusicService.lambdaQuery()
                .eq(HomeBackgroundMusic::getId, homeBackgroundMusicUser.getHomeBackgroundMusicId())
                .one();
        if (homeBackgroundMusic==null)return R.ok(new ClientHomeBackgroundMusicVO());
        ClientHomeBackgroundMusicVO clientHomeBackgroundMusicVO = new ClientHomeBackgroundMusicVO();
        BeanUtils.copyProperties(homeBackgroundMusic, clientHomeBackgroundMusicVO);
        return R.ok(clientHomeBackgroundMusicVO);
    }
    /**
     * 根据类型获取冥想分类列表
@@ -172,6 +229,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());
    }
@@ -262,12 +324,8 @@
    @ApiOperation("获取冥想音频详情")
    @ApiImplicitParam(name = "id", value = "冥想音频id", dataType = "Long", required = true)
    public R<ClientMeditationDetailsVO> getMeditationDetails(@RequestParam("id") Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (loginUser==null){
            return R.tokenError("登录失效");
        }
        Long userId = loginUser.getUserid();
        return R.ok(meditationService.getMeditationDetails(id));
        return meditationService.getMeditationDetails(id);
    }
    @GetMapping("/getMeditationDetailsShare")
    @ApiOperation(value = "获取冥想音频详情",tags = "H5分享")
@@ -331,8 +389,7 @@
            @RequestParam("pageSize") Integer pageSize) {
        return R.ok(meditationService.getMeditationQuestionPageShare(id, pageCurr, pageSize));
    }
    @Autowired
    private TokenService tokenService;
    @PostMapping("/addQuestion")
    @ApiOperation(value = "发布提问")
    @ApiImplicitParams({
@@ -352,7 +409,7 @@
        meditationQuestion.setContent(content);
        meditationQuestion.setPublishTime(LocalDateTime.now());
        meditationQuestion.setAppUserId(userId);
        meditationQuestion.setShowFlag(1);
        meditationQuestion.setShowFlag(2);
        meditationQuestion.setReportStatus(1);
        meditationQuestionService.save(meditationQuestion);
        return R.ok();