基于若依框架(分离版)开发志愿填报指导系统(中)

3.使用若依系统工具代码生成功能模块

上篇文章我们已经建立了自己的业务模块,并进行业务模块测试,能够被访问到。下面我们使用若依系统工具中的代码生成功能来生成一个我们自己业务功能。

1.在数据库建立一个用于测试的数据表。

CREATE TABLE `sys_test`  (
  `test_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `memo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`test_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

2.代码生成,点击导入按钮,查询的就是数据库中的数据表。我们选择数据sys_test后点击确定。
请添加图片描述
可以看到表描述、实体等信息。
请添加图片描述
点击操作中的编辑功能
请添加图片描述

进入修改生成配置界面,这里我们可以进行基本信息、字段信息、生成信息的设置。
请添加图片描述

基本信息修改:根据自己的情况决定修改内容,一般这个信息中实体类名称可能需要进行修改。
在这里插入图片描述

字段信息修改:可以设置插入、编辑的字段,以及哪些字段可以作为查询条件以及查询条件的方式,哪些字段在列表中进行显示。作为查询条件的显示类型是文本框还是下拉框等信息。

看看我们这里设置内容:

共三个字段字段描述设置好,这三个字段java类型及属性我们都默认不改变,三个字段在插入的时候都需要保存数据。可编辑的字段就是name、memo。在列表中显示的也是name、memo。只有name作为查询条件,查询方式为模糊查询。显示类型为文本框,当是下拉框的时候可以设置字段类型。字典类型的数据也可进行维护。
在这里插入图片描述
生成信息修改:这里需要注意的时候包路径、模块名需要与我们后台设置一致。上级菜单选择自己在菜单管理中设置的菜单名,这里选择高考填报
在这里插入图片描述
设置好后点击提交,提交后点击预览功能,可以看到前端和后端的代码以及需要添加菜单的sql语句。这个主要是用在后期数据表发生字段的修改了,需要进行局部调整可以选择性的粘贴使用。功能还是不错的。
在这里插入图片描述
也可以直接点击生成代码。打开文件夹目录将生成的代码复制到对应前端和后端,并执行添加菜单的sql语句。
在这里插入图片描述
vue这个文件夹就是views里文件就是视图文件,粘贴到前端对应位置上。
在这里插入图片描述
api文件夹是前端访问后台的方法。粘贴到对应位置上即可。
在这里插入图片描述
效果如图所示,增删改查功能都有了。这个环节如果出问题,可以评论区留言。
在这里插入图片描述

4.编写高考填报项目业务后台与前端(非自动生成)

1.创建后端接口

创建ApiController接口添加注解@RequestMapping("/api")

@PreAuthorize("@ss.hasPermi('api:GetSchoolbyScore')")
    @GetMapping("/GetSchoolbyScore")
    public TableDataInfo GetSchoolbyScore(@RequestParam("typeName") String typeName, @RequestParam("year") String year, @RequestParam("minscore") float minscore, @RequestParam("maxscore") float maxscore, @RequestParam("lflag") boolean lflag) {
        startPage();
        List<Map<String, Object>> maps = new ArrayList<>();
        if (maxscore < 160 || maxscore > 750) {
            return getDataTable(maps);
        }
        if (minscore < 160 || minscore > 750) {
            return getDataTable(maps);
        }
        if (year.isEmpty()) {
            return getDataTable(maps);
        }
        if (typeName.isEmpty()) {
            return getDataTable(maps);
        }
        String strWhere = " AND YEAR=" + year + " AND lqtype='" + typeName + "'";
        if (lflag) {
            strWhere += " AND TBMIN<=" + minscore + " AND TBMAX>=" + minscore;
        } else {
            strWhere += " AND TBMIN>=" + minscore + " AND TBMIN<=" + maxscore;
        }
        maps = gkSchoolQingtingService.GetSchoolZYSJByWhere(strWhere);
        return getDataTable(maps);
    }

这里这段构造查询语句where条件逻辑判断写在Controller合理不,大家评论区留言。

创建后台方法在service中分别创建对应接口与实现类

创建mapper方法使用@Select 进行sql语句的编写,这里的sql语句使用CONCAT(zymc,zydh)进行字符串拼接。

 @Select("<script>select yxmc yxname,yxdh,zymc,CONCAT(zymc,zydh) zyname,zydh, lqpc,lqtype,year,sum(lqrs) value,MAX(TBMAX) tbmax,MIN(TBMIN) tbmin from gk_school_sjtb_zy WHERE 1=1  \n" +
            " ${strWhere} " +
            "GROUP BY yxmc,yxdh,zymc,zydh,lqpc,lqtype,year </script>")
    public List<Map<String, Object>> GetSchoolZYSJByWhere(@Param("strWhere")  String strWhere);

由于每个人的项目业务不一样不贴具体代码。
关于若依框架自定义业务页面中的导出,需要建立自定义实体类,并在需要导出的字段上添加@Excel注解,否则无法导出。

@Data
public class GkSchoolScore extends BaseEntity {
    private static final long serialVersionUID=1L;
    @Excel(name = "院校名称")
    private String yxname;
    @Excel(name = "院校代号")
    private String yxdh;
    @Excel(name = "专业名称")
    private String zyname;
    @Excel(name = "专业代号")
    private String zydh;
    @Excel(name = "录取类型")
    private String lqtype;
    @Excel(name = "录取批次")
    private String lqpc;
    @Excel(name = "录取最低分")
        private int tbmin;
    @Excel(name = "录取最高分")
        private int tbmax;
    @Excel(name = "录取人数")
        private int value;
    @Excel(name = "招生年")
    private String year;
    
}

关于数据转化,service返回的都是List<Map<String, Object>> 而在导出的时候需要传入实体类,解决List<Map<String, Object>>转化实体类的问题。

maps = gkSchoolQingtingService.GetSchoolZYSJByWhere(strWhere);
        JSONArray jsonArray = new JSONArray();
        jsonArray.addAll(maps);
        List<GkSchoolScore> list = jsonArray.toJavaList(GkSchoolScore.class);
        ExcelUtil<GkSchoolScore> util = new ExcelUtil<GkSchoolScore>(GkSchoolScore.class);
        return util.exportExcel(list, "  " + typeName + "院校" + year + " " + minscore + " -" + maxscore + " 录取情况");

2.编写前端页面
在views中nmgkcx新建文件夹schoolSelect创建schoolSelect\index.vue
在这里插入图片描述

在api中创建请求后台js

import request from '@/utils/request'

// 查询蜻蜓志愿的学校信息列表
export function list(query) {
    return request({
        url: '/api/GetSchoolbyScore',
        method: 'get',
        params: query
    })
}
// 导出学校
export function exportData(query) {
    return request({
        url: '/api/exportSchoolbyScore',
        method: 'get',
        params: query
    })
}

3.菜单管理:添加菜单,设置一个形象的图标。
在这里插入图片描述

4.运行查看结果
在这里插入图片描述
下篇文章介绍一下利用若依框架中Echart图表组件实现高考填报项目各高校图表数据。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yxlalm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值