package com.sky.soso;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Index {
public static void main(String[] args) {
index();
// String md5 = MD5Utils.getMD5("admin");
// System.out.println(md5);
}
static Scanner sc = null;
static List
static List
static String loginUsername = null;
static String loginPassword = null;
static{
sc = new Scanner(System.in);
users = new ArrayList
User admin = new User(0,"admin","21232f297a57a5a743894a0e4a801fc3");
User user1 = new User(1,"zhang","e10adc3949ba59abbe56e057f20f883e","张三","110",null,30.0);
User user2 = new User(2,"lisi","96e79218965eb72c92a549dd5a330112","李四","119",null,50.0);
users.add(admin);
users.add(user1);
users.add(user2);
businesses = new ArrayList
Business b1 = new Business(1001,"1元1G流量包","全国通用流量",1,1);
Business b2 = new Business(1002,"5元10G流量包","全国通用流量",5.1,1);
Business b3 = new Business(1003,"10元25G流量包","全国通用流量",10,1);
Business b4 = new Business(1004,"30元100G流量包","APP专属流量",29.9,0);
businesses.add(b1);
businesses.add(b2);
businesses.add(b3);
businesses.add(b4);
}
public static void index(){
System.out.println("--欢迎来到soso移动商城--");
System.out.println("--1:注册--");
System.out.println("--2:登录--");
System.out.println("--0:退出--");
System.out.println("--请选择:--");
String num = sc.next();
if("1".equals(num)){
register();
}else if("2".equals(num)){
login();
}else if("0".equals(num)){
System.out.println("程序已退出");
System.exit(0);
}else{
System.out.println("输入的内容不合理,重新输入");
index();
}
}
public static void login() {
System.out.println("请输入用户名:");
String username = sc.next();
System.out.println("请输入密码:");
String pwd = sc.next();
boolean isLoginOk = volidLogin(username,pwd);
if (isLoginOk){
String code = getCode();
System.out.println("验证码是:"+code);
System.out.println("请输入验证码:");
String mycode = sc.next();
if(code.equals(mycode)){
loginUsername = username;
loginPassword = pwd;
if("admin".equals(username)){
adminView();
}else{
userView();
}
}else{
System.out.println("验证码错误!登录失败!");
index();
}
}else{
System.out.println("用户名或密码错误,登录失败!");
index();
}
}
public static void adminView() {
System.out.println("欢迎你:admin");
System.out.println("1:查看所有用户信息");
System.out.println("2:查看业务大厅");
System.out.println("3:添加业务");
System.out.println("4:下架业务");
System.out.println("5:修改业务价格");
System.out.println("6:发布业务");
System.out.println("请选择:");
String num = sc.next();
switch(num){
case"1":
showUserInfo();
break;
case"2":
showBusiness();
break;
case"3":
addBusiness();
break;
case"4":
soldOutBusiness();
break;
case"5":
changePrice();
break;
case"6":
issueBusiness();
break;
default:
System.out.println("输入有误,请重新选择");
adminView();
}
}
public static void issueBusiness() {
showOffline();
System.out.println("请输入要上架业务的编号:");
int num = sc.nextInt();
for (Business b : businesses) {
if(num==b.getBid()){
b.setStatus(1);
break;
}
}
System.out.println("上架成功!");
showOline();
}
public static void changePrice() {
showOline();
System.out.println("请输入要修改业务的编号:");
int num = sc.nextInt();
System.out.println("请输入要修改的价格:");
double p = sc.nextDouble();
for (Business b : businesses) {
if(num==b.getBid()){
b.setPrice(p);
break;
}
}
System.out.println("修改成功!");
showOline();
}
public static void soldOutBusiness() {
showOline();
System.out.println("请输入要下架业务的编号:");
int num = sc.nextInt();
for (Business b : businesses) {
if(num==b.getBid()){
b.setStatus(0);
break;
}
}
System.out.println("下架成功!");
showOline();
}
public static void addBusiness() {
System.out.println("请输入业务的标题");
String tital = sc.next();
System.out.println("请输入业务的描述");
String desc = sc.next();
System.out.println("请输入业务的价格");
double price = sc.nextDouble();
int id = getBusId();
Business b = new Business(id,tital,desc,price,0);
businesses.add(b);
}
public static int getBusId(){
Business business = businesses.get(businesses.size()-1);
int bid = business.getBid();
bid++;
return bid;
}
public static void showUserInfo() {
System.out.println("用户编号t姓名t用户名t业务t余额");
for(User u : users){
System.out.println(u.getUserid()+"t"+u.getName()+"t"+u.getUsername()+"t"+u.getMyBusiness()+"t"+u.getMoney());
}
goBack();
}
public static void showOffline(){
System.out.println("业务编号t业务标题tt业务价格t业务详情");
for(Business b : businesses){
if(b.getStatus()==0){
System.out.println(b.getBid()+"t"+b.getTital()+"t"+b.getPrice()+"t"+b.getDesc());
}
}
}
public static void showOline(){
System.out.println("业务编号t业务标题tt业务价格t业务详情");
for(Business b : businesses){
if(b.getStatus()==1){
System.out.println(b.getBid()+"t"+b.getTital()+"t"+b.getPrice()+"t"+b.getDesc());
}
}
}
public static void showBusiness() {
showOline();
goBack();
}
public static void goBack() {
System.out.println("输入1:返回主页面 输入2:退出程序");
String num = sc.next();
if("1".equals(num)){
if("admin".equals(loginUsername)){
adminView();
}else{
userView();
}
}else{
System.out.println("谢谢,程序退出");
System.exit(0);
}
}
public static void userView() {
System.out.println("欢迎你:"+loginUsername);
System.out.println("1:查看个人信息");
System.out.println("2:修改密码");
System.out.println("3:查看业务大厅");
System.out.println("4:查看我的业务");
System.out.println("5:办理业务");
System.out.println("6:充值");
System.out.println("7:业务终结");
System.out.println("请选择:");
String num = sc.next();
switch (num) {
case "1":
showInfo();
break;
case "2":
changePassword();
break;
case "3":
showBusinessOline();
break;
case "4":
showMyBusiness();
break;
case "5":
addMyBusiness();
break;
case "6":
topUp();
break;
case "7":
removeBusiness();
break;
default:
System.out.println("输入有误,请重新选择");
userView();
}
}
public static void removeBusiness() {
User user = getLoginUser();
user.setMyBusiness(null);
goBack();
}
public static void topUp() {
User user = getLoginUser();
System.out.println("当前的余额是:"+user.getMoney());
System.out.println("请输入要充值的金额:");
double num = sc.nextDouble();
double money = num +user.getMoney();
user.setMoney(money);
System.out.println("充值成功!充值后余额为:"+user.getMoney());
goBack();
}
public static void addMyBusiness() {
User user = getLoginUser();
showOline();
System.out.println("请输入要办理的业务编号:");
int businessId = sc.nextInt();
int isExist = 0;
Business business = null;
for (Business b : businesses) {
if(businessId==b.getBid()&&b.getStatus()==1){
isExist=1;
business=b;
break;
}
}
if(isExist==0){
System.out.println("输入的编号有误!");
userView();
}else {
double price = business.getPrice();
double money = user.getMoney();
if(money
System.out.println("余额不足,请充值");
userView();
}else{
ArrayList
System.out.println(business);
if(myBusiness==null){
myBusiness = new ArrayList
}
double newMoney = money - price ;
myBusiness.add(business);
user.setMyBusiness(myBusiness);
user.setMoney(newMoney);
System.out.println("业务办理成功!");
goBack();
}
}
}
public static void showMyBusiness() {
User user = getLoginUser();
ArrayList
if(user.getMyBusiness()==null){
System.out.println("当前没有办理业务");
}else{
System.out.println("业务编号t业务标题tt业务价格t业务详情");
for(Business b : myBusiness){
System.out.println(b.getBid()+"t"+b.getTital()+"t"+b.getPrice()+"t"+b.getDesc());
}
}
goBack();
}
public static void showBusinessOline() {
showBusiness();
}
public static User getLoginUser(){
User user = null;
for (User u : users) {
if(loginUsername.equals(u.getUsername())){
user = u;
break;
}
}
return user;
}
public static void changePassword() {
System.out.println(loginUsername);
System.out.println("请输入原密码:");
String pwd1 = sc.next();
if(loginPassword.equals(pwd1)){
System.out.println("请输入修改后的密码:");
String pwd2 = sc.next();
for (User u : users) {
if(loginUsername.equals(u.getUsername())){
u.setPassword(pwd2);
loginPassword = pwd2;
break;
}
}
}
System.out.println("密码修改成功!");
goBack();
}
public static void showInfo() {
User user = null;
for (User u : users) {
if(loginUsername.equals(u.getUsername())){
user = u;
break;
}
}
System.out.println("用户编号t姓名t用户名t业务t余额");
System.out.println(user.getUserid()+"t"+user.getName()+"t"+user.getUsername()+"t"+user.getMyBusiness()+"t"+user.getMoney());
goBack();
}
public static boolean volidLogin(String username, String pwd) {
pwd = MD5Utils.getMD5(pwd);
boolean flag = false;
for(User user : users){
if(user.getUsername().equals(username)&&user.getPassword().equals(pwd)){
flag = true ;
break;
}
}
return flag;
}
public static boolean volidUsername(String username){
boolean flag = true;
if(username.length()>=4&&username.length()<=10){
for(User user : users){
if(username.equals(user.getUsername())){
flag = false;
break;
}
}
}else{
flag = false;
}
return flag;
}
public static boolean volidPwd(String pwd1,String pwd2){
boolean flag = true;
if(pwd1.equals(pwd2)&&pwd1.length()>=4&&pwd1.length()<=10){
System.out.println("密码符合规范");
}else{
flag = false;
}
return flag;
}
public static String getCode(){
String random = Math.random()+"";
String s = random.substring(random.length()-4);
return s;
}
public static void register(){
System.out.println("请输入用户名:");
String username = sc.next();
boolean isUsernameOk = volidUsername(username);
System.out.println("请输入密码:");
String pwd1 = sc.next();
System.out.println("请确认密码:");
String pwd2 = sc.next();
boolean idPwdOk = volidPwd(pwd1,pwd2);
if(isUsernameOk==true&&idPwdOk==true){
String code = getCode();
System.out.println("验证码是:"+code);
System.out.println("请输入验证码:");
String mycode = sc.next();
if(mycode.equals(code)){
int userid = getId();
String md5pwd = MD5Utils.getMD5(pwd1);
User user = new User(userid,username,md5pwd);
users.add(user);
System.out.println("注册成功!");
}else{
System.out.println("注册失败!");
}
}else{
System.out.println("用户名或密码不符合规范");
}
index();
}
public static int getId() {
User user = users.get(users.size()-1);
int userid = user.getUserid();
userid++;
return userid;
}
}



