商场收银系统 - 工厂管理软件

商场收银系统

作者:admin 2021-09-20

一、项目简介
本项目是一款基于字符界面的收银系统,实现了对用户、商品的管理。

 

二、项目意义
对JavaSE部分知识做一个综合实践。
提升数据库编程能力。

三、项目实现的需求
客户端:
商品浏览
购买商品
查看自己的订单

管理端:
重置用户密码
设置用户启停状态
查看在册账户
在册商品信息的更新
商品的下架
商品的上架
在册商品的浏览
通用处理
注册账户
登录
呼出帮助信息
系统版本信息查看
退出

四、业务结构

五、技术要点
注解技术:自定义的四类注解,用来区分不同种类的命令,以便在终端界面可以根据类型显示相应命令

AdminCommand: 标识管理员端的命令。
CommandMeta: 用来定义每个命令的名称以及代码,如: 登录命令的展示名称是”登录”,代码是”DL”,
最终在终端里展示的效果就是: “登录(DL)”。
CustomerCommand: 用来标识用户端命令。
EntranceCommand: 用来标识入口命令,他标识了登录、注册、帮助、退出、关于的命令。

集合框架和反射:在分类命令以便展示时使用了三个HashMap分别存入口、管理端、用户端命令,而后又通过反射技术获取注解信息,
得到后分别存入对应类型命令的HashMap中,至此就完成了命令的分类。

JDBC编程:在用户命令、商品处理以及订单相关处理的底层逻辑中,都是最使用JDBC来做的。
对应的增删改查分别对应本项目的dao包下的AccountDao、GoodsDao以及OrderDao中来实现。

IO流相关:在实现订单查询时,考虑到涉及多表查询,SQL语句会偏多,不适合在代码里直接写,这里就考虑
把这部分的SQL语句写在一个文件中,然后利用反射获取文件相应的字节流,然后使用转换流InputStreamReader将字节流转换成所需要的字节流,最后利用BufferReader来读取到一个StringBuilder里最后返回获取到的SQL语句给调用者。

MySQL数据库:根据逻辑的需要,设计了四张表,即用户表、商品信息表、订单表、订单项表。

用户表(account)
id username password name account_type account_status
用户编号 用户账号 用户密码 用户昵称 用户类型,1表示管理员, 2表示普通用户 用户状态,1代表正常,2代表禁用

商品信息表(goods)
id name introduce stock unit price discount
商品编号 商品名称 商品简介 商品库存 计量单位 价格 折扣值

订单表(order)
id account_id account_name create_time finish_time actual_amount total_money order_status
订单编号 账号编号 用户账号 创建时间 完成时间 实际金额 应付金额 支付状态, 1:待支付, 2:支付完成

订单项(order_item)
id order_id goods_id goods_num goods_name goods_unit goods_introduce goods_price goods_discount
订单条目编号 订单编号 商品编号 商品数量 商品名称 计量单位 商品简介 商品单价 商品折扣

六、成果展示
入口界面

管理员界面

普通用户界面

 


标签: , , , ,

评论已关闭。