码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 89:第七章:开发前台首页、作家个人展示页、粉丝等功能:10:【前台,作家中心:粉丝比例柱状图、饼状图;粉丝地域分布】(前端图表使用Echarts实现;)


    说明:

    (1)本篇博客内容比较简单;只有一点:论及早掌握前端的重要性~~~

    目录

    零:本篇博客,内容说明;

    一:开发【查询男性粉丝数、女性粉丝数,接口】;

    1.在【api】接口工程的MyFansControllerApi接口中,定义一个接口;

    2.在【user】用户服务的MyFansController类中,去实现这个接口;

    3.在【user】用户服务的MyFansService接口中,定义一个查询男女粉丝数量的方法;

    4.在【user】用户服务的MyFansServiceImpl类中,去实现查询男女粉丝数量的方法;

    5.效果;

    二:开发【粉丝地域分布数,接口】;

    1.在【api】接口工程的MyFansControllerApi接口中,定义一个接口;

    2.在【user】用户服务的MyFansController类中,去实现这个接口;

    3.在【user】用户服务的MyFansService接口中,定义一个查询男女粉丝数量的方法;

    4.在【user】用户服务的MyFansServiceImpl类中,去实现查询男女粉丝数量的方法;

    5.效果;


    零:本篇博客,内容说明;

    我们开发好后,其长这样:

    (1)为了实现这些效果,前端采用的是Echarts插件;(以前是百度的,后来百度捐赠给了Apache基金会)

    (2)在【监听器四:综合案例:请求流量分析(重要!!!)】、【百度开源的绘图JS组件:Echarts组件(本篇博客仅仅是简介,入门级别)】中对Echarts作过入门级介绍;

    本项目中,前端使用Echarts的基本套路:

    ……………………………………………………

    ……………………………………………………

    ……………………………………………………

    然后,我们需要做的,就是开发对应的接口,查询出数据,交给前端去渲染:

    ……………………………………………………


    一:开发【查询男性粉丝数、女性粉丝数,接口】;

    1.在【api】接口工程的MyFansControllerApi接口中,定义一个接口;

    1. /**
    2. * 查询男性粉丝数量、女性粉丝数量;
    3. * @param writerId
    4. * @return
    5. */
    6. @ApiOperation(value = "查询男女粉丝数量", notes = "查询男女粉丝数量", httpMethod = "POST")
    7. @PostMapping("/queryRatio")
    8. public GraceJSONResult queryRatio(@RequestParam String writerId);

    说明:

    (1)需要和前端保持一致;

    2.在【user】用户服务的MyFansController类中,去实现这个接口;

    1. /**
    2. * 查询男性粉丝数量、女性粉丝数量;
    3. * @param writerId
    4. * @return
    5. */
    6. @Override
    7. public GraceJSONResult queryRatio(String writerId) {
    8. //调用service层方法,分别查询男女粉丝数量
    9. int manCounts = myFansService.queryFansCount(writerId, Sex.man);
    10. int womanCounts = myFansService.queryFansCount(writerId, Sex.woman);
    11. //根据前端对返回数据格式的要求,创建FansCountsVO对象
    12. FansCountsVO fansCountsVO = new FansCountsVO();
    13. fansCountsVO.setManCounts(manCounts);
    14. fansCountsVO.setWomanCounts(womanCounts);
    15. return GraceJSONResult.ok(fansCountsVO);
    16. }

    说明:

    (1)为了满足前端对返回数据的要求,我们创建了FansCountsVO实体类,来包装返回给前端的数据;

    3.在【user】用户服务的MyFansService接口中,定义一个查询男女粉丝数量的方法;

    1. /**
    2. * 查询某作者的,某个性别的粉丝数
    3. * @param writerId
    4. * @param sex
    5. * @return
    6. */
    7. public Integer queryFansCount(String writerId, Sex sex);

    4.在【user】用户服务的MyFansServiceImpl类中,去实现查询男女粉丝数量的方法;

    1. /**
    2. * 查询某作者的,某个性别的粉丝数
    3. * @param writerId
    4. * @param sex
    5. * @return
    6. */
    7. @Override
    8. public IntegerqueryFansCount(String writerId, Sex sex) {
    9. Fans fans = new Fans();
    10. fans.setWriterId(writerId);
    11. fans.setSex(sex.type);
    12. int count = fansMapper.selectCount(fans);//去查询数量
    13. return count;
    14. }

    5.效果;

    (1)先install一下整个项目;(2)记得使用SwitchHost开启虚拟域名映射;(3)使用Tomcat启动前端项目;(4)然后,启动后端项目; 

    PS:我们在设计fans表的时候,添加了很多冗余的字段;现在,能感受到这些冗余字段带来的好处了;即,为了实现这儿的业务,我只查询fans表就够了,而不用多表关联查询了;


    二:开发【粉丝地域分布数,接口】;

    1.在【api】接口工程的MyFansControllerApi接口中,定义一个接口;

    1. /**
    2. * 查询粉丝地域分布数据;
    3. * @param writerId
    4. * @return
    5. */
    6. @ApiOperation(value = "查询粉丝地域分布数据", notes = "查询粉丝地域分布数据", httpMethod = "POST")
    7. @PostMapping("/queryRatioByRegion")
    8. public GraceJSONResult queryRatioByRegion(@RequestParam String writerId);

    说明:

    (1)需要和前端保持一致;

    2.在【user】用户服务的MyFansController类中,去实现这个接口;

    1. /**
    2. * 查询粉丝地域分布数据;
    3. * @param writerId
    4. * @return
    5. */
    6. @Override
    7. public GraceJSONResult queryRatioByRegion(String writerId) {
    8. List list = myFansService.queryRegionRatioCounts(writerId);
    9. return GraceJSONResult.ok(list);
    10. }

    说明:

    (1)为了满足前端对返回数据的要求,我们创建了RegionRatioVO实体类,来包装返回给前端的数据;

     

    3.在【user】用户服务的MyFansService接口中,定义一个查询男女粉丝数量的方法;

    1. /**
    2. * 查询某用户的、粉丝的地域分布数据;
    3. * @param writerId
    4. * @return
    5. */
    6. public List queryRegionRatioCounts(String writerId);

    4.在【user】用户服务的MyFansServiceImpl类中,去实现查询男女粉丝数量的方法;

    1. //这儿的循环策略:可以改成在mybatis的SQL中去循环;同时,后续我们将采用另一种策略,即在Elasticsearch中去做;
    2. public static final String[] regions = {"北京", "天津", "上海", "重庆",
    3. "河北", "山西", "辽宁", "吉林", "黑龙江", "江苏", "浙江", "安徽", "福建", "江西", "山东",
    4. "河南", "湖北", "湖南", "广东", "海南", "四川", "贵州", "云南", "陕西", "甘肃", "青海", "台湾",
    5. "内蒙古", "广西", "西藏", "宁夏", "新疆",
    6. "香港", "澳门"};
    7. /**
    8. * 查询某用户的、粉丝的地域分布数据;
    9. * @param writerId
    10. * @return
    11. */
    12. @Override
    13. public List queryRegionRatioCounts(String writerId) {
    14. //还是那句话,简单的条件查询,就没必要使用Example了;tkmybatis提供了很多根据具体对象去查询的方法;
    15. Fans fans = new Fans();
    16. fans.setWriterId(writerId);
    17. List list = new ArrayList<>();//创建List,用于存储所有的数据
    18. //遍历所有省份,去分别获取该省份中的粉丝人数;
    19. for (String region : regions) {
    20. fans.setProvince(region);
    21. Integer count = fansMapper.selectCount(fans);//查询出该省份中的,粉丝人数;
    22. //构建VO,并存到List中;
    23. RegionRatioVO regionRatioVO = new RegionRatioVO();
    24. regionRatioVO.setName(region);
    25. regionRatioVO.setValue(count);
    26. list.add(regionRatioVO);
    27. }
    28. return list;
    29. }

    5.效果;

    (1)先install一下整个项目;(2)记得使用SwitchHost开启虚拟域名映射;(3)使用Tomcat启动前端项目;(4)然后,启动后端项目; 

     

  • 相关阅读:
    大厂Java面试必备面试题:基础语法-数据类型-编码-注释-运算符-关键字-流程控制语句
    【算法笔记】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
    C++笔记梳理
    虹科干货 | HK-TrueNAS版本大揭秘!一文教您如何选择合适的TrueNAS软件
    一文读懂Embedding
    优酷视频元素内容召回系统:多级多模态引擎探索
    Jetpack Compose中的state核心思想
    随时随地创建参数化3D模型—xDesign
    元件插装及贴装规范
    程序员如何选择职业赛道?
  • 原文地址:https://blog.csdn.net/csucsgoat/article/details/126873337
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号