package com.jinhuan.chapter04.no4_4.task_010302_003.view;
import com.jinhuan.chapter04.no4_2.exception.CantFindExpressException;
import com.jinhuan.chapter04.no4_4.task_010302_003.dao.ExpressDao;
import com.jinhuan.chapter04.no4_4.task_010302_003.entity.Express;
import com.jinhuan.chapter04.no4_4.task_010302_003.entity.ExpressMessage;
import com.jinhuan.chapter04.no4_4.task_010302_003.exception.ExpressIsExistException;
import com.jinhuan.chapter04.no4_4.task_010302_003.exception.InputErrorException;
import com.jinhuan.chapter04.no4_4.task_010302_003.exception.OutOfBoundException;
import com.jinhuan.chapter04.no4_4.task_010302_003.exception.OutOfSpaceException;
import java.util.Scanner;
/**
* @Author jinhuan
* @Date 2022/4/22 9:26
* Description:
*/
public class ExpressView {
private static Scanner input = new Scanner(System.in);
private static ExpressDao expressDao = new ExpressDao();
private static final int TRANSPORTNUM_LENGTH = 6;
/**
* 初始化菜单
* */
public void inintMenu() {
System.out.println("===========欢迎使用Quiet快递驿站服务系统===========");
do {
System.out.println("请输入您的身份: 1-管理员 2-用户 0-退出");
String receive = input.nextLine();
try {
//调用指令检查方法
if(orderCheck(receive, 0, 2)){
//说明数据输入合法
if("1".equals(receive)){
//进入管理员界面
System.out.println("欢迎进入管理员界面!");
adminstor();
}else if("2".equals(receive)){
System.out.println("欢迎进入用户界面!");
userMenu();
}else {
System.out.println("谢谢使用!已安全退出!");
}
break;
}
} catch ( NumberFormatException e) {
System.out.println(e.getMessage());
}
} while (true);
}
/**
* 管理员界面
* */
public void adminstor(){
do{
System.out.println("请输入指令:1-快递录入 2-删除快递 3-修改快递 4-查看所有快递 0-返回上一级");
String receive = input.nextLine();
if(orderCheck(receive,0,4)){
//说明数据输入合法
switch (receive) {
case "1":
System.out.println("进入快递录入界面:");
addExpressMenu();
break;
case "2":
System.out.println("进入快递删除界面:");
deleteExpressMenu();
break;
case "3":
System.out.println("进入快递修改界面:");
alterExpressMenu();
break;
case "4":
System.out.println("进入快递查看界面:");
showExpressMenu();
break;
default:
System.out.println("已返回上一级!");
inintMenu();
break;
}
break;
}
}while (true);
}
/**
* 用户界面
*/
private void userMenu() {
do{
System.out.println("请输入指令:1-取快递 0-返回上一级");
String receive = input.nextLine();
if(orderCheck(receive, 0, 1)){
if ("1".equals(receive)){
do {
System.out.println("请输入取件码:");
String code = input.nextLine();
Express findExpress = expressDao.getExpressByPicCode(code);
if (findExpress != null){
expressDao.deleteExpressByTransportCode(findExpress.getTransportNum());
System.out.println("快递已取出!");
System.out.println("是否继续取件? 1-是 0-否");
String num = input.nextLine();
if(orderCheck(num,0,1)){
if("0".equals(num)){
userMenu();
return;
}
}
}else{
System.out.println("查询不到对应的快递信息!请检查取件码后重试!");
}
}while (true);
}else{
inintMenu();
return;
}
}
}while (true);
}
/**
* 快递录入操作面板
*/
private void addExpressMenu() {
while (true){
System.out.println("请输入要录入的快递单号及承运公司:");
try {
System.out.println("请输入运单号:");
String transPortNum = input.nextLine();
if (checkTransPortNum(transPortNum)){
System.out.println("请输入承运公司:");
String company = input.nextLine();
if (checkInput(company)){
if (expressDao.findExpressByTransportNum(transPortNum) == null) {
Express express = new Express(transPortNum, company, true);
//获取存储位置
ExpressMessage expressMessage = expressDao.add(express);
System.out.println("快递存入成功!取件码为:"+expressMessage.getPicCode()+";在第" + (expressMessage.getX() + 1) + "排第" + (expressMessage.getY() + 1) + "列储物柜中!");
while (true){
try{
System.out.println("是否继续存快递? 1-是 0-否");
String receiveNum = input.nextLine();
if (checkInput(receiveNum)){
if (orderCheck(receiveNum, 0, 1)) {
if ("0".equals(receiveNum)) {
adminstor();
return;
}
}
break;
}
}catch (InputErrorException e){
System.out.println(e.getMessage());
}
}
}else {
throw new ExpressIsExistException("快递单号已存在,请重新录入");
}
}
}
} catch ( ExpressIsExistException | InputErrorException | OutOfSpaceException e) {
System.out.println(e.getMessage());
}
}
}
/**
* 快递删除修改界面
*/
private void deleteExpressMenu() {
if (expressDao.getSize() == 0){
System.out.println("当前快递柜为空!");
adminstor();
return;
}
do{
System.out.println("请输入要删除的快递单号:");
try{
String transportCode = input.nextLine();
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
快递驿站分两种用户:(由于还没有更新到数据库,所以此处是免登陆的哈) 快递小哥(管理员) 添加快递 删除快递 修改快递 查看所有快递 普通用户 user 取出快递 实体类entity: 快递: 快递单号 承运公司 快递存放信息 快递存放信息: 存储在快递柜子的第几排 存储在快递柜子的第几列 视图view: 初始界面: 管理员界面: 用户界面 操作dao: 一个实体类对应一个dao,但是由于项目比较简单,且两个实体类关联度较高,就采用了一个dao 快递操作
资源详情
资源评论
资源推荐
收起资源包目录
快递驿站简单版.zip (11个子文件)
task_010302_003
dao
ExpressDao.java 6KB
exception
OutOfSpaceException.java 277B
OutOfBoundException.java 342B
ExpressIsExistException.java 285B
CantFindExpressException.java 287B
InputErrorException.java 300B
test
Test.java 400B
view
ExpressView.java 13KB
Todo 341B
entity
ExpressMessage.java 1KB
Express.java 2KB
共 11 条
- 1
尽欢Sir
- 粉丝: 431
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于opencv的人脸识别考勤系统python源码+数据.zip
- IOT安装包 iotech-iot-1.5-dev-1.5.0-amd64.deb
- 基于物品的协同过滤算法(推荐视频)工具类(见仁见智)
- 21信管2班 武学芹组+独立样本T检验数据分析案例.zip
- demo_ccms_global_open_wlan.py
- 小程序项目源码-小契约(交友互动小程序).zip
- 小程序项目源码-健身房预约课程小程序.zip
- 小程序项目源码-wechat-app-xiaoyima-master小程序.zip
- 小程序项目源码-滑动选项卡小程序.zip
- 小程序项目源码-学习Demo影视推荐、音乐播放、地图小程序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0