无关风月
2025-01-22 99367ea1c11a68b420936e7f7db5fa7367da4f44
全部代码、数据库提交
27个文件已修改
281 ■■■■ 已修改文件
xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-auth/src/main/java/com/xinquan/auth/util/HuaWeiSMSUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-gateway/src/main/java/com/xinquan/gateway/filter/FdmallCorsConfiguration.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationCategoryController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/domain/HomeBackgroundMusicUser.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/BannerController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/CommissionRuleController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/CommonQuestionController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/ContentSettingController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HotWordsController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/PageController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysDeptController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysRoleController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysUserController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/TreeLevelSettingController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/UserLevelSettingController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/VersionController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/VipSettingController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientPrizeController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientPrizeRedemptionRecordController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java
@@ -254,7 +254,7 @@
            String code = redisService.getCacheObject(key);
            String code1 = redisService.getCacheObject(key1);
            // 万能验证码
            if (captcha.equals("123456") || (StringUtils.isNotBlank(code) && code.equals(
            if (captcha.equals("220125") || (StringUtils.isNotBlank(code) && code.equals(
                    captcha))||(StringUtils.isNotBlank(code1) && code1.equals(
                    captcha))) {
                redisService.deleteObject(key);
@@ -308,8 +308,8 @@
                    TimeUnit.MINUTES);
            log.info("发送验证码成功,手机号:{} 验证码:{}", cellPhone, code);
            // TODO 修改sender参数及templateId
             HuaWeiSMSUtil.sendSms("[\"" + code + "\"]", cellPhone, "8824110423893",
                     "767ad27dce184a32a4b4863517fbd301");
             HuaWeiSMSUtil.sendSms("[\"" + code + "\"]", cellPhone, "8825010822864",
                     "c1df549e89724e3db05b018524728d41");
//            hwSendSms.sendSms(code, cellPhone);
        } catch (Exception e) {
@@ -514,7 +514,7 @@
    }
    public AppLoginUser verifyCellPhone(AppVerifyCellPhoneBody body) {
        if (!body.getCaptcha().equals("123456")){
        if (!body.getCaptcha().equals("220125")){
            Boolean res = redisService.hasKey(
                    CacheConstants.APP_VERIFY_CAPTCHA_CODE_PREFIX + body.getCellPhone());
            if (!res) {
xinquan-auth/src/main/java/com/xinquan/auth/util/HuaWeiSMSUtil.java
@@ -33,8 +33,8 @@
    public static void main(String[] args) throws Exception {
        sendSms("[\"" + 123456 + "\"]", "19983174515", "8824110423893",
                "767ad27dce184a32a4b4863517fbd301");
        sendSms("[\"" + 123456 + "\"]", "19983174515", "8825010822864",
                "c1df549e89724e3db05b018524728d41");
//        sendSms("[\"17623778642\",\"蓉A-7823\"]","17623778642","8819122535459","6c848255000c4619833ab690e393f906");
//        sendSms("[\"17623778642\",\"蓉A-7823\",\"2019/12/27\",\"14:00\"]","17623778642","8819122535459","bb13d00d11e043659001a89c72d54cab");
xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java
@@ -208,7 +208,7 @@
        loginUser.setUsername(userName);
        loginUser.setIpaddr(IpUtils.getIpAddr());
        refreshToken(loginUser);
        // refreshToken4AppLoginUser(appLoginUser);
        refreshToken4AppLoginUser(appLoginUser);
        claimsMap.put(SecurityConstants.USER_KEY, token);
        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
        claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
xinquan-gateway/src/main/java/com/xinquan/gateway/filter/FdmallCorsConfiguration.java
@@ -1,33 +1,33 @@
//package com.xinquan.gateway.filter;
//
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.web.cors.CorsConfiguration;
//import org.springframework.web.cors.reactive.CorsWebFilter;
//import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
//
//@Configuration
//public class FdmallCorsConfiguration {
//    /**
//     * 添加跨域过滤器
//     * @return
//     */
//    @Bean // 添加过滤器
//    public CorsWebFilter corsWebFilter(){
//        //基于url跨域,选择reactive包下的
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        // 跨域配置信息
//        CorsConfiguration configuration = new CorsConfiguration();
//        // 允许跨域的头
//        configuration.addAllowedHeader("*");
//        // 允许跨域的请求方式
//        configuration.addAllowedMethod("*");
//        // 允许跨域的请求来源
//        configuration.addAllowedOrigin("*");
//        // 是否允许携带cookie跨域
//        configuration.setAllowCredentials(true);
//        // 任意url都要进行跨域配置
//        source.registerCorsConfiguration("/**", configuration);
//        return new CorsWebFilter(source);
//    }
//}
package com.xinquan.gateway.filter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
@Configuration
public class FdmallCorsConfiguration  {
    /**
     * 添加跨域过滤器
     * @return
     */
    @Bean // 添加过滤器
    public CorsWebFilter corsWebFilter(){
        //基于url跨域,选择reactive包下的
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 跨域配置信息
        CorsConfiguration configuration = new CorsConfiguration();
        // 允许跨域的头
        configuration.addAllowedHeader("*");
        // 允许跨域的请求方式
        configuration.addAllowedMethod("*");
        // 允许跨域的请求来源
        configuration.addAllowedOrigin("*");
        // 是否允许携带cookie跨域
        configuration.setAllowCredentials(true);
        // 任意url都要进行跨域配置
        source.registerCorsConfiguration("/**", configuration);
        return new CorsWebFilter(source);
    }
}
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java
@@ -4,9 +4,13 @@
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.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,11 +18,7 @@
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.meditation.api.domain.MeditationQuestion;
import com.xinquan.system.api.model.LoginUser;
@@ -35,6 +35,8 @@
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * <p>
@@ -54,8 +56,13 @@
    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("/listHomeBackgroundMusic")
    @ApiOperation(value = "背景音乐列表查询-分页", tags = "管理后台-首页背景音乐管理")
@@ -79,7 +86,9 @@
    }
    @PostMapping("/addHomeBackgroundMusic")
    @Log(title = "【首页背景音乐管理】新增", businessType = BusinessType.INSERT)
    @ApiOperation(value = "新增背景", tags = "管理后台-首页背景音乐管理")
    public R addHomeBackgroundMusic(@RequestBody HomeBackgroundMusic homeBackgroundMusic) {
        return R.ok(homeBackgroundMusicService.save(homeBackgroundMusic));
    }
@@ -90,11 +99,14 @@
    }
    @PostMapping("/updateHomeBackgroundMusic")
    @ApiOperation(value = "修改背景", tags = "管理后台-首页背景音乐管理")
    @Log(title = "【首页背景音乐管理】修改", businessType = BusinessType.UPDATE)
    public R updateHomeBackgroundMusic(@RequestBody HomeBackgroundMusic homeBackgroundMusic) {
        return R.ok(homeBackgroundMusicService.updateById(homeBackgroundMusic));
    }
    @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())));
    }
@@ -108,19 +120,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);
    }
    /**
     * 根据类型获取冥想分类列表
@@ -326,8 +369,7 @@
            @RequestParam("pageSize") Integer pageSize) {
        return R.ok(meditationService.getMeditationQuestionPageShare(id, pageCurr, pageSize));
    }
    @Autowired
    private TokenService tokenService;
    @PostMapping("/addQuestion")
    @ApiOperation(value = "发布提问")
    @ApiImplicitParams({
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientMeditationCategoryController.java
@@ -6,6 +6,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.CollUtils;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.common.security.utils.SecurityUtils;
import com.xinquan.meditation.domain.MeditationCategory;
import com.xinquan.meditation.service.MeditationCategoryService;
@@ -53,6 +55,7 @@
    }
    @PostMapping("/addMeditationCategory")
    @ApiOperation(value = "新增冥想分类管理", tags = "管理后台-冥想分类管理")
    public R addMeditationCategory(@RequestBody MeditationCategory homeBackgroundMusic) {
        homeBackgroundMusic.setCreateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setCreateTime(LocalDateTime.now());
@@ -65,6 +68,7 @@
    }
    @PostMapping("/updateMeditationCategory")
    @ApiOperation(value = "修改冥想分类管理", tags = "管理后台-冥想分类管理")
    @Log(title = "【冥想分类管理】修改", businessType = BusinessType.UPDATE)
    public R updateMeditationCategory(@RequestBody MeditationCategory homeBackgroundMusic) {
        homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setUpdateTime(LocalDateTime.now());
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/domain/HomeBackgroundMusicUser.java
@@ -10,6 +10,8 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
 * <p>
 * 首页背景音乐用户关系表
@@ -19,10 +21,9 @@
 * @since 2024-08-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_home_background_music_user")
@ApiModel(value = "HomeBackgroundMusicUser对象", description = "首页背景音乐用户关系表")
public class HomeBackgroundMusicUser extends BaseModel {
public class HomeBackgroundMusicUser implements Serializable {
    private static final long serialVersionUID = 1L;
xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/management/MgtOrderController.java
@@ -10,6 +10,8 @@
import com.xinquan.common.core.utils.page.CollUtils;
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.course.api.domain.Course;
import com.xinquan.course.api.feign.RemoteCourseService;
@@ -1284,6 +1286,8 @@
    }
    @GetMapping("/cancel")
    @ApiOperation(value = "取消订单", tags = "管理后台-订单列表管理")
    @Log(title = "【订单列表管理】取消订单", businessType = BusinessType.UPDATE)
    public R updateState(String uid) {
        Order byId = orderService.getById(uid);
        byId.setPaymentStatus(3);
@@ -1307,6 +1311,7 @@
    private TokenService tokenService;
    @GetMapping("/ChangeMoney")
    @ApiOperation(value = "改价", tags = "管理后台-订单列表管理")
    @Log(title = "【订单列表管理】改价", businessType = BusinessType.UPDATE)
    public R ChangeMoney(String uid,String amount) {
        Order byId = orderService.getById(uid);
        byId.setChangePrice(new BigDecimal(amount));
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/BannerController.java
@@ -3,6 +3,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.course.api.domain.Course;
import com.xinquan.course.api.domain.CourseCategory;
import com.xinquan.course.api.domain.CourseDTO;
@@ -88,6 +90,8 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "ids", name = "ids", required = true, dataType = "String"),
    })
    @Log(title = "【banner】批量删除", businessType = BusinessType.DELETE)
    public R deleteBatch(
            @RequestParam(value = "ids") String ids)
    {
@@ -97,6 +101,7 @@
    }
    @PostMapping("/addBanner")
    @ApiOperation(value = "添加banner",tags = "管理后台banner")
    @Log(title = "【banner】添加", businessType = BusinessType.INSERT)
    public R addBanner(@RequestBody Banner banner)
    {
@@ -105,7 +110,7 @@
    }
    @PostMapping("/updateBanner")
    @ApiOperation(value = "修改banner",tags = "管理后台banner")
    @Log(title = "【banner】修改", businessType = BusinessType.UPDATE)
    public R updateBanner(@RequestBody Banner banner)
    {
        bannerService.updateById(banner);
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/CommissionRuleController.java
@@ -2,6 +2,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.api.domain.CommissionRule;
import com.xinquan.system.service.CommissionRuleService;
import io.swagger.annotations.ApiOperation;
@@ -27,6 +29,7 @@
    private CommissionRuleService commissionRuleService;
    @PostMapping("/updateCommission")
    @ApiOperation(value = "保存",tags = "管理后台-分享设置")
    @Log(title = "【分享设置】保存", businessType = BusinessType.UPDATE)
    public R updateTreeGroup(@RequestBody CommissionRule commissionRule) {
        CommissionRule one1 = commissionRuleService.lambdaQuery().one();
        if (one1==null){
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/CommonQuestionController.java
@@ -5,6 +5,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.core.web.domain.AjaxResult;
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.system.api.RemoteUserService;
@@ -132,6 +134,7 @@
    }
    @GetMapping("/updateKfCode")
    @ApiOperation(value = "修改/新增客服微信", tags = "管理后台-常见问题")
    @Log(title = "【常见问题】修改客服微信", businessType = BusinessType.UPDATE)
    public R<CommonQuestion> updateKfCode(String customerServiceQrCode) {
        CommonQuestion one = commonQuestionService.lambdaQuery()
                .eq(CommonQuestion::getType, 2).one();
@@ -150,6 +153,8 @@
    }
    @PostMapping("/addCommonQuestion")
    @ApiOperation(value = "新增常见问题", tags = "管理后台-常见问题")
    @Log(title = "【常见问题】新增常见问题", businessType = BusinessType.INSERT)
    public R addCommonQuestion(@RequestBody CommonQuestion homeBackgroundMusic) {
        return R.ok(commonQuestionService.save(homeBackgroundMusic));
    }
@@ -161,11 +166,14 @@
    }
    @PostMapping("/updateCommonQuestion")
    @ApiOperation(value = "修改常见问题", tags = "管理后台-常见问题")
    @Log(title = "【常见问题】修改常见问题", businessType = BusinessType.UPDATE)
    public R updateCommonQuestion(@RequestBody CommonQuestion homeBackgroundMusic) {
        return R.ok(commonQuestionService.updateById(homeBackgroundMusic));
    }
    @PostMapping("/deleteCommonQuestion")
    @ApiOperation(value = "批量删除", tags = "管理后台-常见问题")
    @Log(title = "【常见问题】批量删除常见问题", businessType = BusinessType.DELETE)
    public R deleteCommonQuestion(String ids) {
        return R.ok(commonQuestionService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList())));
    }
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/ContentSettingController.java
@@ -3,6 +3,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.domain.ContentSetting;
import com.xinquan.system.domain.VipSetting;
import com.xinquan.system.domain.dto.AggrementOtherDto;
@@ -51,6 +53,7 @@
    }
    @PostMapping("/saveOrupdateContent")
    @ApiOperation(value = "保存修改富文本内容",tags = "管理后台-富文本规则说明")
    @Log(title = "【富文本规则说明】修改富文本内容", businessType = BusinessType.UPDATE)
    public R saveOrupdateContent(@RequestBody AggrementOtherDto dto) {
        ContentSetting one = contentSettingService.lambdaQuery().eq(ContentSetting::getContentType, dto.getType()).one();
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java
@@ -11,6 +11,8 @@
import com.xinquan.common.core.utils.page.BeanUtils;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.core.web.domain.BaseModel;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.common.redis.service.RedisService;
import com.xinquan.common.security.utils.SecurityUtils;
import com.xinquan.course.api.domain.Course;
@@ -95,6 +97,8 @@
    @GetMapping("/updatePassword")
    @ApiOperation(value = "管理后台-修改密码", tags = "管理后台-修改密码")
    @Log(title = "【修改密码】修改密码", businessType = BusinessType.UPDATE)
    public R updatePassword(String userName,String password) {
        SysUser one = sysUserService.lambdaQuery()
                .eq(SysUser::getUserType, "00")
@@ -553,6 +557,8 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "ids", name = "ids", required = true, dataType = "String"),
    })
    @Log(title = "【banner】批量删除banner", businessType = BusinessType.DELETE)
    public R deleteBatch(
            @RequestParam(value = "ids") String ids)
    {
@@ -562,6 +568,7 @@
    }
    @PostMapping("/addBanner")
    @ApiOperation(value = "添加banner",tags = "管理后台banner")
    @Log(title = "【banner】添加", businessType = BusinessType.INSERT)
    public R addBanner(@RequestBody Banner banner)
    {
@@ -570,6 +577,7 @@
    }
    @PostMapping("/updateBanner")
    @ApiOperation(value = "修改banner",tags = "管理后台banner")
    @Log(title = "【banner】修改", businessType = BusinessType.UPDATE)
    public R updateBanner(@RequestBody Banner banner)
    {
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HotWordsController.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
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.system.api.model.LoginUser;
@@ -61,6 +63,8 @@
    }
    @PostMapping("/add")
    @ApiOperation(value = "热词管理-添加热词", tags = {"管理后台-运营中心"})
    @Log(title = "【热词】添加", businessType = BusinessType.INSERT)
    public R add(@RequestBody HotWords hotWords) {
        int size = hotWordsService.lambdaQuery().list().size();
        if (size>=20){
@@ -71,6 +75,8 @@
    }
    @PostMapping("/update")
    @ApiOperation(value = "热词管理-编辑热词", tags = {"管理后台-运营中心"})
    @Log(title = "【热词】修改", businessType = BusinessType.UPDATE)
    public R update(@RequestBody HotWords hotWords) {
        LambdaUpdateWrapper<HotWords> hotWordsLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        if (hotWords.getSortNum()==null){
@@ -85,6 +91,8 @@
    }
    @DeleteMapping("/delete")
    @ApiOperation(value = "热词管理-删除热词", tags = {"管理后台-运营中心"})
    @Log(title = "【热词】删除", businessType = BusinessType.DELETE)
    public R add(String id) {
        hotWordsService.removeById(Long.valueOf(id));
        return R.ok();
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/PageController.java
@@ -2,6 +2,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.domain.Page;
import com.xinquan.system.domain.Turn;
import com.xinquan.system.service.PageService;
@@ -37,6 +39,8 @@
    }
    @GetMapping("/saveOrUpdate")
    @ApiOperation(value = "保存/修改启动页",tags = "管理后台-启动页")
    @Log(title = "【启动页】修改", businessType = BusinessType.UPDATE)
    public R saveOrUpdate(String img) {
        Page one = pageService.lambdaQuery().eq(Page::getType,1).one();
        if(one == null){
@@ -74,6 +78,8 @@
    }
    @GetMapping("/saveOrUpdatePlan")
    @ApiOperation(value = "保存/修改计划引导设置",tags = "计划引导设置")
    @Log(title = "【计划引导设置】修改", businessType = BusinessType.UPDATE)
    public R saveOrUpdatePlan(String img) {
        Page one = pageService.lambdaQuery().eq(Page::getType,2).one();
        if(one == null){
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysDeptController.java
@@ -70,6 +70,8 @@
     */
    @PostMapping("/add")
    @ApiOperation("部门添加")
    @Log(title = "【部门管理】添加", businessType = BusinessType.INSERT)
    public AjaxResult add(@Validated @RequestBody SysDept dto)
    {
        dto.setCreateTime(LocalDateTime.now());
@@ -89,6 +91,8 @@
     */
    @PostMapping("/edit")
    @ApiOperation("部门修改")
    @Log(title = "【部门管理】修改", businessType = BusinessType.UPDATE)
    public R edit(@Validated @RequestBody SysDept dept)
    {
        if (!deptService.checkDeptNameUnique1(dept)){
@@ -104,6 +108,8 @@
    private ISysUserService userService;
    @ApiOperation(value = "禁用启用")
    @PutMapping("/changeStatus")
    @Log(title = "【部门管理】修改状态", businessType = BusinessType.UPDATE)
    public AjaxResult changeStatus(@RequestBody SysDeptUpdateStatusDTO dto)
    {
        SysDept user = new SysDept();
@@ -122,6 +128,8 @@
     */
    @DeleteMapping("/{deptId}")
    @ApiOperation("删除部门")
    @Log(title = "【部门管理】删除", businessType = BusinessType.DELETE)
    public AjaxResult remove(@PathVariable Long deptId)
    {
        return toAjax(deptService.deleteDeptById(deptId));
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysRoleController.java
@@ -85,6 +85,7 @@
    @ApiOperation(value = "批量删除角色")
    @Log(title = "角色信息-角色删除角色", businessType = BusinessType.DELETE)
    @DeleteMapping("/deleteById/{ids}")
    public AjaxResult remove(@PathVariable String ids)
    {
        String[] split = ids.split(",");
@@ -224,6 +225,8 @@
    // @PreAuthorize("@ss.hasPermi('system:role:edit')")
    @ApiOperation(value = "编辑角色")
    @PutMapping
    @Log(title = "角色信息-编辑角色", businessType = BusinessType.UPDATE)
    public AjaxResult edit(@Validated @RequestBody SysRoleDTO dto)
    {
        Boolean flag= roleService.isExit(dto.getRoleId(),dto.getRoleName());
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/SysUserController.java
@@ -142,6 +142,8 @@
    }
    @ApiOperation(value = "新增用户管理")
    @PostMapping("/add")
    @Log(title = "【系统用户】新增用户", businessType = BusinessType.INSERT)
    public AjaxResult add(@Validated @RequestBody SysUser user) {
        if (!userService.checkUserNameUnique(user))
        {
@@ -159,6 +161,8 @@
    }
    @ApiOperation(value = "修改用户管理")
    @PostMapping("/edit")
    @Log(title = "【系统用户】修改用户", businessType = BusinessType.UPDATE)
    public AjaxResult edit(@Validated @RequestBody SysUser user) {
//        userService.checkUserAllowed(user);
//        userService.checkUserDataScope(user.getUserId());
@@ -182,6 +186,8 @@
    @ApiOperation(value = "禁用启用")
    @PutMapping("/changeStatus")
    @Log(title = "【系统用户】修改状态", businessType = BusinessType.UPDATE)
    public AjaxResult changeStatus(@RequestBody SysUserUpdateStatusDTO dto)
    {
        SysUser user = new SysUser();
@@ -537,9 +543,10 @@
    /**
     * 删除用户
     */
    @Log(title = "用户管理", businessType = BusinessType.DELETE)
    @Log(title = "【用户管理】删除", businessType = BusinessType.DELETE)
    @DeleteMapping("/{userIds}")
    @ApiOperation("删除管理员")
    public AjaxResult remove(@PathVariable Long[] userIds) {
        if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) {
            return error("当前用户不能删除");
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/TreeLevelSettingController.java
@@ -2,6 +2,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.api.domain.vo.UpdateTreeGroupVO;
import com.xinquan.system.api.domain.TreeLevelSetting;
import com.xinquan.system.service.TreeLevelSettingService;
@@ -30,6 +32,8 @@
    private TreeLevelSettingService treeLevelSettingService;
    @PostMapping("/updateTreeGroup")
    @ApiOperation(value = "修改树苗等级音频",tags = "管理后台-树苗音频设置")
    @Log(title = "【树苗音频设置】修改", businessType = BusinessType.UPDATE)
    public R updateTreeGroup(@RequestBody UpdateTreeGroupVO vo) {
        TreeLevelSetting one = treeLevelSettingService.lambdaQuery()
                .eq(TreeLevelSetting::getTreeLevelType, vo.getTreeLevelType()).one();
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/UserLevelSettingController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.xinquan.common.core.domain.R;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.api.domain.vo.AppUserVO;
import com.xinquan.system.api.domain.UserLevelSetting;
import com.xinquan.system.api.domain.vo.UpdateUserGroupVO;
@@ -42,6 +44,7 @@
    @PostMapping("/updateUserGroup")
    @ApiOperation(value = "修改等级经验值",tags = "管理后台-树苗音频设置")
    @Log(title = "【树苗音频设置】修改", businessType = BusinessType.UPDATE)
    public R updateTreeGroup(@RequestBody UpdateUserGroupVO vo) {
        UserLevelSetting one = userLevelSettingService.lambdaQuery()
                .eq(UserLevelSetting::getTreeLevelType, vo.getTreeLevelType()).one();
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/VersionController.java
@@ -7,6 +7,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.core.web.domain.BaseModel;
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.system.api.domain.AppUser;
@@ -75,6 +77,8 @@
    }
    @PostMapping("/addVersion")
    @ApiOperation(value = "新增版本管理", tags = "管理后台-版本管理")
    @Log(title = "【版本管理】新增", businessType = BusinessType.INSERT)
    public R addVersion(@RequestBody Version homeBackgroundMusic) {
        homeBackgroundMusic.setCreateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setCreateTime(LocalDateTime.now());
@@ -98,6 +102,8 @@
    }
    @PostMapping("/updateVersion")
    @ApiOperation(value = "修改版本管理", tags = "管理后台-版本管理")
    @Log(title = "【版本管理】修改", businessType = BusinessType.UPDATE)
    public R updateVersion(@RequestBody Version homeBackgroundMusic) {
        homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setUpdateTime(LocalDateTime.now());
@@ -105,6 +111,8 @@
    }
    @PostMapping("/deleteVersion")
    @ApiOperation(value = "批量删除", tags = "管理后台-版本管理")
    @Log(title = "【版本管理】批量删除", businessType = BusinessType.DELETE)
    public R deleteVersion(String ids) {
        return R.ok(versionService.removeBatchByIds(Arrays.asList(ids.split(",")).stream().map(Long::valueOf).collect(Collectors.toList())));
    }
xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/VipSettingController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.xinquan.common.core.domain.R;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.system.domain.ContentSetting;
import com.xinquan.system.domain.HotWords;
import com.xinquan.system.domain.VipSetting;
@@ -55,6 +57,7 @@
    }
    @PostMapping("/saveVip")
    @ApiOperation(value = "保存会员价格设置", tags = {"管理后台-会员设置"})
    @Log(title = "【会员设置】修改会员设置", businessType = BusinessType.UPDATE)
    public R<VipSetting> saveVip(@RequestBody VipSettingDTO dto) {
        VipSetting one = vipSettingService.lambdaQuery()
                .eq(VipSetting::getSettingType, 1)
@@ -95,6 +98,8 @@
    }
    @PostMapping("/updateVipContent")
    @ApiOperation(value = "修改会员权益介绍/获取会员用户协议/获取续费管理说明",tags = "管理后台-会员设置")
    @Log(title = "【会员设置】修改会员富文本内容设置", businessType = BusinessType.UPDATE)
    public R updateVipContent(@RequestBody AggrementDto dto) {
        VipSetting one = vipSettingService.lambdaQuery()
                .eq(VipSetting::getSettingType, dto.getType()+1).one();
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java
@@ -16,6 +16,8 @@
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.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.common.redis.service.RedisService;
import com.xinquan.common.security.service.TokenService;
import com.xinquan.common.security.utils.SecurityUtils;
@@ -528,7 +530,7 @@
    private TokenService tokenService;
    @PostMapping("/freezing")
    @ApiOperation(value = "冻结用户", tags = "管理后台-用户管理")
    @Log(title = "【用户管理】冻结用户", businessType = BusinessType.UPDATE)
    public R freezingDetail(@RequestBody UserFreezingDTO dto) {
        AppUser byId = appUserService.getById(dto.getUid());
        byId.setFreezingTime(LocalDateTime.now());
@@ -581,6 +583,7 @@
    }
    @GetMapping("/unFreezing")
    @ApiOperation(value = "解冻用户", tags = "管理后台-用户管理")
    @Log(title = "【用户管理】解冻用户", businessType = BusinessType.UPDATE)
    public R unFreezing(String uid) {
        AppUser byId = appUserService.getById(uid);
        byId.setUserStatus(1);
@@ -609,6 +612,8 @@
            @ApiImplicitParam(name = "energyValue", value = "能量值", dataType = "int", required = true),
            @ApiImplicitParam(name = "reason", value = "备注", dataType = "String", required = true)
    })
    @Log(title = "【用户管理】能量值修改", businessType = BusinessType.UPDATE)
    public R setTotalEnergyValue(String uid,Integer energyValue,String reason) {
        AppUser byId = appUserService.getById(uid);
        if (energyValue<0){
@@ -643,6 +648,8 @@
            @ApiImplicitParam(name = "vipType", value = "会员类型 1非 2月 3季 4年", dataType = "Integer", required = true),
            @ApiImplicitParam(name = "vipExpireTime", value = "会员到期时间 yyyy-MM-dd HH:mm", dataType = "String", required = true),
    })
    @Log(title = "【用户管理】设置会员", businessType = BusinessType.UPDATE)
    public R setVip(String uid, Integer vipType,String vipExpireTime) {
        // 将其转化为LocalDateTime格式
        LocalDateTime parse = LocalDateTime.parse(vipExpireTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
@@ -1155,7 +1162,7 @@
            String key = keyPrefix + cellPhone;
            String code = redisService.getCacheObject(key);
            // 万能验证码
            if (captcha.equals("123456") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals(
            if (captcha.equals("220125") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals(
                    captcha))) {
                redisService.deleteObject(key);
                return true;
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java
@@ -533,7 +533,7 @@
            String key = CacheConstants.ADD_CARD_PHONE_CODE_PREFIX + appUserWithdraw.getCellPhone();
            String code = redisService.getCacheObject(key);
            // 万能验证码
            if (appUserWithdraw.getCode().equals("123456") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals(
            if (appUserWithdraw.getCode().equals("220125") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals(
                    appUserWithdraw.getCode()))) {
                redisService.deleteObject(key);
            }else{
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientPrizeController.java
@@ -6,6 +6,8 @@
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.utils.page.CollUtils;
import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.common.security.utils.SecurityUtils;
import com.xinquan.course.api.domain.Course;
import com.xinquan.course.api.domain.CourseCategory;
@@ -66,6 +68,8 @@
    @PostMapping("/addPrize")
    @ApiOperation(value = "新增奖品管理", tags = "管理后台-奖品管理")
    @Log(title = "【奖品管理】新增奖品", businessType = BusinessType.INSERT)
    public R addPrize(@RequestBody Prize homeBackgroundMusic) {
        homeBackgroundMusic.setCreateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setCreateTime(LocalDateTime.now());
@@ -77,6 +81,7 @@
        return R.ok(prizeService.getById(uid));
    }
    @GetMapping("/updateState")
    @Log(title = "【奖品管理】修改奖品上下架状态", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "修改奖品管理上下架状态", tags = "管理后台-奖品管理")
    public R updateState(String uid) {
        Prize byId = prizeService.getById(uid);
@@ -90,6 +95,7 @@
    }
    @PostMapping("/updatePrize")
    @ApiOperation(value = "修改奖品管理", tags = "管理后台-奖品管理")
    @Log(title = "【奖品管理】修改奖品", businessType = BusinessType.UPDATE)
    public R updatePrize(@RequestBody Prize homeBackgroundMusic) {
        homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername());
        homeBackgroundMusic.setUpdateTime(LocalDateTime.now());
@@ -97,6 +103,7 @@
    }
    @PostMapping("/deletePrize")
    @ApiOperation(value = "批量删除", tags = "管理后台-奖品管理")
    @Log(title = "【奖品管理】批量删除", businessType = BusinessType.DELETE)
    public R deletePrize(String ids) {
        List<Long> collect = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
        for (Long l : collect) {
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientPrizeRedemptionRecordController.java
@@ -9,6 +9,8 @@
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.log.annotation.Log;
import com.xinquan.common.log.enums.BusinessType;
import com.xinquan.common.security.service.TokenService;
import com.xinquan.common.security.utils.SecurityUtils;
@@ -253,6 +255,7 @@
    private TokenService tokenService;
    @GetMapping("/confirm")
    @ApiOperation(value = "确认兑换", tags = "管理后台-兑换记录管理")
    @Log(title = "【奖品管理】确认兑换", businessType = BusinessType.UPDATE)
    public R updateState(String uid,String code) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (loginUser==null){
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java
@@ -518,6 +518,9 @@
     * @param appUserId 用户id
     */
    private void initUserTree(Long appUserId) {
        if (appUserTreeService.lambdaQuery().eq(AppUserTree::getSowAgain,2).eq(AppUserTree::getAppUserId,appUserId).one()!=null){
            return;
        }
        AppUserTree appUserTree = new AppUserTree();
        appUserTree.setAppUserId(appUserId);
        appUserTree.setTreeLevelType(TreeLevelEnum.SEED.getCode());