开始写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 数据变动记录表
具体可以打开smart_admin_v3
数据库查看对应的表结构
2.2、表关联
从需求中:一个公司对应多个银行信息、多个发票信息,所以在 t_oa_bank
和t_oa_invoice
表中都存在 enterpriseId : 企业id字段
用于实现关联。
三、编写Java代码
3.1、 分包
从需求中,了解到:企业、银行、发票 这三个需求都属于业务范畴,所以我可以写到 sa-admin
项目的module/business
包;而数据变动记录,我思考了下,肯定将来还会有其他的需求需要使用,于是我决定将“变动”记录写到sa-base
项目中的module/support
包,用于“支撑Support”其他业务。 即:
- 公司、银行、发票 ->
sa-admin
:module/business/*
包 - 数据变更记录 ->
sa-base
:module/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 企业列表对象
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;
}
}
3.6、编写增删查改
开始编写具体的增删查改了,需要注意的有如下:
- 接口定义,按照要求:controller规范
- 此类业务比较简单不需要拆分service service规范
- dao传入常量,具体见dao规范
更详细的代码请研读sa-admin
项目中的net.lab1024.sa.admin.module.business.oa
的代码。
在线阅读代码
四、总结
- 第一步:分析需求
- 第二步:创建表结构
- 第三步:拆分需求属于 业务类,还是 支撑类,业务类写到
sa-base
项目的module包
,支撑类写到sa-base
项目的moudle包
- 第四步:按照java规范 编写 mvc三层或者四层代码了
以上,你get到了吗 ?
联系我们
- 教育领域(高职院校数字化、就业创业大数据平台、继续教育平台;在线教育系统、视频直播、题库等,包含:医学、应急管理、成考、专升本等)
- 供应链领域(网络货运平台、大宗贸易进销存ERP、物流管理TMS、B2B电商、仓储WMS、AI提效等)
- 中医领域(诊所数字化管理、互联网医院、AI辅助诊疗、中医适宜技术、在线云问诊、空中药房等)
- AI+软件领域(软件定制外包、开源技术、数据大屏、国产化改造、技术升级换代、人员外包、技术顾问、技术培训等)
加微信: 卓大 拉你入群,一起学习 | 公众号 :六边形工程师 分享:赚钱、代码、生活 | 请 “1024创新实验室” 烩面里加肉 咖啡配胡辣汤,提神又饱腹 | 抖音 : 六边形工程师 直播:赚钱、代码、中医 |