阳光沙滩-课程笔记 阳光沙滩-课程笔记
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
  • 单体应用博客系统

    • JavaWeb博客系统后端-课程介绍
    • JavaWeb博客系统后端-项目创建
    • JavaWeb博客系统后端-封装统一返回结果
    • JavaWeb博客系统后端-重构ResponseResult
    • JavaWeb博客系统后端-数据表设计
    • JavaWeb博客系统后端-创建数据库和表
    • JavaWeb博客系统后端-连接数据库
    • JavaWeb博客系统后端-创建对应的bean类
    • JavaWeb博客系统后端-创建对应的DAO
    • JavaWeb博客系统后端-添加用户
    • JavaWeb博客系统后端-统一异常处理
    • 阳光沙滩博客系统-配置log日志输出
    • 阳光沙滩博客系统-集成Swagger2-ui
    • 阳光沙滩博客系统-SpringJap的增删改查练习
    • 阳光沙滩博客系统-初始化管理员账号
    • 阳光沙滩博客系统-集成SpringSecurity和密码加密
    • 阳光沙滩博客系统-图灵验证码获取
    • 阳光沙滩博客系统-集成邮件发送
    • 阳光沙滩博客系统-Redis
    • 阳光沙滩博客系统-异步发送邮件
    • 阳光沙滩博客系统-用户注册实现
    • 阳光沙滩博客系统-JWT生成和解析
    • 阳光沙滩博客系统-cookie工具类
    • 阳光沙滩博客系统-用户登录实现
    • 阳光沙滩博客系统-获取用户信息
    • 阳光沙滩博客系统-修改用户信息
    • 邮箱是否已经注册的接口
    • 阳光沙滩博客系统-删除用户
    • 阳光沙滩博客系统-获取用户列表
    • 阳光沙滩博客系统-接口权限控制
    • 阳光沙滩博客系统-修改密码
    • 阳光沙滩博客系统-修改邮箱地址
    • 阳光沙滩博客系统-退出登录
    • 阳光沙滩博客系统-管理中心分类模块
    • 阳光沙滩博客系统-管理中心友情连接模块
    • 阳光沙滩博客系统-管理中心图片模块
    • 阳光沙滩博客系统-管理中心网站信息模块
      • 阳光沙滩博客系统-管理中心轮播图管理
      • 阳光沙滩博客系统-管理中心文章模块
      • 阳光沙滩博客系统-管理中心评论模块
      • 阳光沙滩博客系统-门户图片访问
      • 阳光沙滩博客系统-门户文章模块
      • 阳光沙滩博客系统-门户评论模块
      • 阳光沙滩博客系统-门户网站信息模块
      • 阳光沙滩博客系统-手机登录
      • 博客系统通过文章标签计算相关文章
      • 阳光沙滩博客系统-后端项目部署
    • 博客系统部署

    • 摸鱼君微服务项目实战

    • OTA升级管理系统

    • 后台
    • 单体应用博客系统
    TrillGates
    2021-10-04
    目录

    阳光沙滩博客系统-管理中心网站信息模块

    # 获取网站title

    网站的标题,就是tab标签栏上显示的标题

    这个标题一般只显示在首页,如果是文章页面,则会显示:文章的名称+网站名称

    前端获取接口

    @PreAuthorize("@permission.admin()")
    @GetMapping("/title")
    public ResponseResult getWebSizeTitle() {
        return iWebSizeInfoService.getWebSizeTitle();
    }
    
    1
    2
    3
    4
    5

    实现接口

    @Override
    public ResponseResult getWebSizeTitle() {
        Setting title = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_TITLE);
        return ResponseResult.SUCCESS("获取网站title成功.").setData(title);
    }
    
    1
    2
    3
    4
    5

    这里我们没有判空,如果没有设置过网站相关的信息,则会为空,如果前端判断到空,可以跳转到设置的页面。

    也就是接下来的修改网站标题页面。

    # 修改网站标题

    接口:

    @PreAuthorize("@permission.admin()")
    @PutMapping("/title")
    public ResponseResult upWebSizeTitle(@RequestParam("title") String title) {
        return iWebSizeInfoService.putWebSizeTitle(title);
    }
    
    1
    2
    3
    4
    5

    实现:

    没有什么难点,直接更新即可

    @Override
    public ResponseResult putWebSizeTitle(String title) {
        if (TextUtils.isEmpty(title)) {
            return ResponseResult.FAILED("网站标题不可以为空.");
        }
        Setting titleFromDb = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_TITLE);
        if (titleFromDb == null) {
            titleFromDb = new Setting();
            titleFromDb.setId(idWorker.nextId() + "");
            titleFromDb.setUpdateTime(new Date());
            titleFromDb.setCreateTime(new Date());
            titleFromDb.setKey(Constants.Settings.WEB_SIZE_TITLE);
        }
        titleFromDb.setValue(title);
        settingDao.save(titleFromDb);
        return ResponseResult.SUCCESS("网站Title更新成功.");
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    # 获取网站seo信息

    网站SEO信息,其实包括:描述、关键字和标题

    标题我们单独获取了,这里的话,我们就获取关键字和描述信息,主要是首页。

    如果是文章页面的话,就使用文章的摘要作为描述,用标签作为关键字即可。

    @PreAuthorize("@permission.admin()")
    @GetMapping("/seo")
    public ResponseResult getSeoInfo() {
        return iWebSizeInfoService.getSeoInfo();
    }
    
    1
    2
    3
    4
    5

    接口实现:

    @Override
    public ResponseResult getSeoInfo() {
        Setting description = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_DESCRIPTION);
        Setting keyWords = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_KEYWORDS);
        Map<String, String> result = new HashMap<>();
        if (description != null && keyWords != null) {
            result.put(description.getKey(), description.getValue());
            result.put(keyWords.getKey(), keyWords.getValue());
        }
        return ResponseResult.SUCCESS("获取SEO信息成功.").setData(result);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 修改网站seo信息

    更新网站的SEO信息,不建议经常更新哦,一般定了就别改了。

    接口

    @PreAuthorize("@permission.admin()")
    @PutMapping("/seo")
    public ResponseResult putSeoInfo(@RequestParam("keywords") String keywords,
                                     @RequestParam("description") String description) {
        return iWebSizeInfoService.putSeoInfo(keywords, description);
    }
    
    1
    2
    3
    4
    5
    6

    实现

    @Override
    public ResponseResult putSeoInfo(String keywords, String description) {
        //判断
        if (TextUtils.isEmpty(keywords)) {
            return ResponseResult.FAILED("关键字不可以为空.");
        }
        if (TextUtils.isEmpty(description)) {
            return ResponseResult.FAILED("网站描述不可以为空.");
        }
        Setting descriptionFromDb = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_DESCRIPTION);
        if (descriptionFromDb == null) {
            descriptionFromDb = new Setting();
            descriptionFromDb.setId(idWorker.nextId() + "");
            descriptionFromDb.setCreateTime(new Date());
            descriptionFromDb.setUpdateTime(new Date());
            descriptionFromDb.setKey(Constants.Settings.WEB_SIZE_DESCRIPTION);
        }
        descriptionFromDb.setValue(description);
        settingDao.save(descriptionFromDb);
        Setting keyWordsFromDb = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_KEYWORDS);
        if (keyWordsFromDb == null) {
            keyWordsFromDb = new Setting();
            keyWordsFromDb.setId(idWorker.nextId() + "");
            keyWordsFromDb.setCreateTime(new Date());
            keyWordsFromDb.setUpdateTime(new Date());
            keyWordsFromDb.setKey(Constants.Settings.WEB_SIZE_KEYWORDS);
        }
        keyWordsFromDb.setValue(keywords);
        settingDao.save(keyWordsFromDb);
        return ResponseResult.SUCCESS("更新SEO信息成功.");
    }
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32

    # 获取网站的浏览量

    网站的浏览量,

    更新时机:用户页面加载完以后,向统计接口提交一下。

    获取时机:管理中心获取访问量/前端如果有需要的话也可以获取

    接口:

    @PreAuthorize("@permission.admin()")
    @GetMapping("/view_count")
    public ResponseResult getWebSizeViewCount() {
        return iWebSizeInfoService.getSizeViewCount();
    }
    
    1
    2
    3
    4
    5

    实现

    /**
         * 这个是全网站的访问量,要做得细一点,还得分来源
         * 这里只统计浏览量,只统计文章的浏览量,提供一个浏览量的统计接口(页面级的)
         *
         * @return 浏览量
         */
    @Override
    public ResponseResult getSizeViewCount() {
        //先从redis里拿出来
        String viewCountStr = (String) redisUtils.get(Constants.Settings.WEB_SIZE_VIEW_COUNT);
        Setting viewCount = settingDao.findOneByKey(Constants.Settings.WEB_SIZE_VIEW_COUNT);
        if (viewCount == null) {
            viewCount = this.initViewItem();
            settingDao.save(viewCount);
        }
        if (TextUtils.isEmpty(viewCountStr)) {
            viewCountStr = viewCount.getValue();
            redisUtils.set(Constants.Settings.WEB_SIZE_VIEW_COUNT, viewCountStr);
        } else {
            //把redis里的更新到数据里
            viewCount.setValue(viewCountStr);
            settingDao.save(viewCount);
        }
        Map<String, Integer> result = new HashMap<>();
        result.put(viewCount.getKey(), Integer.valueOf(viewCount.getValue()));
        return ResponseResult.SUCCESS("获取网站浏览量成功.").setData(result);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    编辑 (opens new window)
    阳光沙滩博客系统-管理中心图片模块
    阳光沙滩博客系统-管理中心轮播图管理

    ← 阳光沙滩博客系统-管理中心图片模块 阳光沙滩博客系统-管理中心轮播图管理→

    Theme by Vdoing | Copyright © 2022-2022 sunofbeach.net
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式