3.3、开始写Java功能

11/20/2022

再阅读之前,请您一定要 看完 搭建项目熟悉java项目结构

# 一、项目需求

# 1.1、了解需求

功能概述: 中后台管理系统中,要有管理公司信息的功能,主要包含公司信息、银行账户、发票资料等,这些信息供有需要的业务使用。

  • 需求1:管理公司基本信息,包含:企业名称、Logo、地区、营业执照、联系人 等等,可以 增删拆改
  • 需求2:管理公司的银行账户,包含:银行信息、账户名称、账号、类型等,可以 增删拆改
  • 需求3:管理公司的发票信息,包含:开票抬头、纳税号、银行账户、开户行、备注等,可以 增删拆改
  • 需求4:对于公司信息、银行信息、发票信息 任何的修改,都有记录 数据变动记录;

# 1.2、需求原型

公司列表 公司添加修改 变动记录2 变动记录2
银行列表 银行添加修改 发票列表 发票添加修改

# 二、数据库设计

根据需求和原型,我们分析出来,从业务逻辑上,是一个公司对应多个银行信息、多个发票信息,对于每个字段的关键改动,记录变更前后的数据。

# 2.1、表设计

表设计如下:

t_oa_enterprise  企业基础信息表
t_oa_bank        企业银行表
t_oa_invoice     企业发票表
t_data_tracer    数据变动记录表
1
2
3
4

具体可以打开smart_admin_v2数据库查看对应的表结构

# 2.2、表关联

从需求中:一个公司对应多个银行信息、多个发票信息,所以在 t_oa_bankt_oa_invoice表中都存在 enterpriseId : 企业id字段 用于实现关联。

# 三、编写Java代码

# 3.1、 分包

从需求中,我们了解到:企业、银行、发票 这三个需求都属于业务范畴,所以我们可以写到 sa-admin项目的module/business包;而数据变动记录,我们思考了下,肯定将来还会有其他的需求需要使用,于是我们决定将“变动”记录写到sa-common项目中的module/support包,用于“支撑Support”其他业务。 即:

  • 公司、银行、发票 -> sa-adminmodule/business/*
  • 数据变更记录 -> sa-commonmodule/support/datatracer

# 3.2、定义Class

创建公司、银行、发票数据变更记录包结构:

公司、银行、发票 数据变更记录

创建完package包结构以后,我们就可以编写mvc代码了,即 传说中的:controller、Service、Manager、Dao、Mapper、Domin文件了;

# 3.4、定义javabean

根据java规范 V2 ,我们定义如下javabean:

/domain/
|---entity                               数据库对应子包
|---|---EnterpriseEntity.java                企业实体类
|---form                                 表单子包
|---|---EnterpriseCreateForm.java            增加企业表单
|---|---EnterpriseQueryForm.java             查询企业列表表单
|---|---EnterpriseUpdateForm.java            更新企业表单
|---vo                                    返回前端对象子包
|---|---EnterpriseVO.java                    企业列表对象
1
2
3
4
5
6
7
8
9

# 3.5、定义常量

在需求中,我们了解到 “企业类型” 字段为枚举变量,所以创建常量子包和常量类:
net.lab1024.sa.admin.module.business.oa.enterprise.constant.EnterpriseTypeEnum
具体内容:

public enum EnterpriseTypeEnum implements BaseEnum {
   
    NORMAL(1, "有限企业"),

    FOREIGN(2, "外资企业");

    private Integer value;
    private String desc;

    EnterpriseTypeEnum(Integer value, String desc) {
        this.value = value;
        this.desc = desc;
    }
    @Override
    public Integer getValue() {
        return value;
    }
    @Override
    public String getDesc() {
        return desc;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 3.6、编写增删查改

开始编写具体的增删查改了,需要注意的有如下:

更详细的代码请研读sa-admin项目中的net.lab1024.sa.admin.module.business.oa的代码。
在线阅读代码 (opens new window)

# 四、总结

  • 第一步:分析需求
  • 第二步:创建表结构
  • 第三步:拆分需求属于 业务类,还是 支撑类,业务类写到sa-common项目的module包,支撑类写到sa-common项目的moudle包
  • 第四步:按照java规范 编写 mvc三层或者四层代码了

以上,你get到了吗 ?

# ※→ 联系我们

1024创新实验室-主任:卓大 (opens new window),混迹于各个技术圈,研究过计算机,熟悉点 java,略懂点前端。
1024创新实验室(老家河南) (opens new window) 致力于成为中原领先、国内一流的技术团队,以技术创新为驱动,合作各类项目(软件外包、技术顾问、培训等等)。

加 主任 “卓大” 微信
拉你入群,一起学习
关注 “小镇程序员”
分享代码与生活、技术与赚钱
请 “1024创新实验室” 喝咖啡
支持我们的开源与分享
告白气球 (钢琴版)
JESSE T