我想实现超市管理这么个功能:
客户端登陆后,可以增加商品的库存。这里先发送到服务端进行验证,输入的商品编号是否存在,不存在提示商品不存在;存在输入数量,提示入库成功。
我是这么想的:创建一个产品对象(用默认的构造方法),首先输入一个商品编号,给商品赋值,因为用的是默认构造方法,商品的数量为0,然后调用客户端的入库方法,发送到服务端。服务端验证,商品存在。客户端提示输入数量num,用num给商品的数量赋值,再调用客户端的入库方法。入库成功。
客户端跟服务端传输的数据对象是datas对象:里面封装了操作的标志(入库、出库、增、删、改操作),product等几个对象
客户端的代码:
public Datas inStore(Product product){
Datas datas=new Datas();
datas.setFlag(SysConstant.sys_instore);//SysConstant.sys_instore这是一个标志,表示入库操作。
datas.setProduct(product);
try {
oos.writeObject(datas);
oos.flush();
datas=(Datas) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return datas;
}
这里有个main()方法: datas=null; System.out.print("输入商品编号:");
String proId=input.next();
Product product=new Product();
product.setProductId(proId);
//第一个调用入库 datas=client.inStore(product);
if(datas.getFlag().equals(SysConstant.sys_succeed)){
System.out.print("入库的数量:");
num=input.nextInt();
product.setProductNum(num);
//第二次调用入库 client.inStore(product);
System.out.println("入库成功!");
}else{
System.out.println("没有此商品,请选择编号3:新增商品!");
}服务端:if(datas.getFlag().equals(SysConstant.sys_instore)){
Product product =datas.getProduct();
boolean b=serverService.isExist(product);
if(b){
String productId=product.getProductId();
int productNum=product.getProductNum();
serverService.inStore(productId, productNum);
datas.setFlag(SysConstant.sys_succeed);
}else{
datas.setFlag(SysConstant.sys_fail);
}
oos.writeObject(datas);
oos.flush();
}
public boolean isExist(Product product){
boolean b=false;
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(product.getProductId())){
b=true;
}
}
return b;
}
public void inStore(String productId,int productNum){
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(productId)){
productList.get(i).setProductNum(productList.get(i).getProductNum()+productNum);
break;
}
}
}
客户端登陆后,可以增加商品的库存。这里先发送到服务端进行验证,输入的商品编号是否存在,不存在提示商品不存在;存在输入数量,提示入库成功。
我是这么想的:创建一个产品对象(用默认的构造方法),首先输入一个商品编号,给商品赋值,因为用的是默认构造方法,商品的数量为0,然后调用客户端的入库方法,发送到服务端。服务端验证,商品存在。客户端提示输入数量num,用num给商品的数量赋值,再调用客户端的入库方法。入库成功。
客户端跟服务端传输的数据对象是datas对象:里面封装了操作的标志(入库、出库、增、删、改操作),product等几个对象
客户端的代码:
public Datas inStore(Product product){
Datas datas=new Datas();
datas.setFlag(SysConstant.sys_instore);//SysConstant.sys_instore这是一个标志,表示入库操作。
datas.setProduct(product);
try {
oos.writeObject(datas);
oos.flush();
datas=(Datas) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return datas;
}
这里有个main()方法: datas=null; System.out.print("输入商品编号:");
String proId=input.next();
Product product=new Product();
product.setProductId(proId);
//第一个调用入库 datas=client.inStore(product);
if(datas.getFlag().equals(SysConstant.sys_succeed)){
System.out.print("入库的数量:");
num=input.nextInt();
product.setProductNum(num);
//第二次调用入库 client.inStore(product);
System.out.println("入库成功!");
}else{
System.out.println("没有此商品,请选择编号3:新增商品!");
}服务端:if(datas.getFlag().equals(SysConstant.sys_instore)){
Product product =datas.getProduct();
boolean b=serverService.isExist(product);
if(b){
String productId=product.getProductId();
int productNum=product.getProductNum();
serverService.inStore(productId, productNum);
datas.setFlag(SysConstant.sys_succeed);
}else{
datas.setFlag(SysConstant.sys_fail);
}
oos.writeObject(datas);
oos.flush();
}
public boolean isExist(Product product){
boolean b=false;
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(product.getProductId())){
b=true;
}
}
return b;
}
public void inStore(String productId,int productNum){
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(productId)){
productList.get(i).setProductNum(productList.get(i).getProductNum()+productNum);
break;
}
}
}
//入库操作
System.out.print("输入商品编号:");
String proId=input.next();
Product product1=new Product();
product1.setProductId(proId);
Datas datas1=client.inStore(product1);//
if(datas1.getFlag().equals(SysConstant.sys_succeed)){
System.out.print("入库的数量:");
num=input.nextInt();
Product product11=new Product();
product11.setProductId(proId);
product11.setProductNum(num);
datas1=client.inStore(product11);//
System.out.println(datas1.getFlag());
System.out.println("入库成功!");
}else{
System.out.println("没有此商品,请选择编号3:新增商品!");
}
public Datas inStore(Product product){
Datas datas=new Datas();
datas.setFlag(SysConstant.sys_instore);
datas.setProduct(product);
try {
oos.writeObject(datas);
oos.flush();
datas=(Datas) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return datas;
}
//查询全部商品
Datas datas4=new Datas();
datas4=client.selectAll();
List<Product> productList=datas4.getProductList();
System.out.println("商品编号"+"\t"+"商品名称"+"\t"+"商品价格"+"\t"+"单位"+"\t"+"数量");
for(int i=0;i<productList.size();i++){
System.out.println(productList.get(i).getProductId()+"\t"+productList.get(i).getProductName()+"\t"
+productList.get(i).getProductPrice()+"\t"+productList.get(i).getProductWeight()+"\t"+productList.get(i).getProductNum());
}
public Datas selectAll(){
Datas datas=new Datas();
datas.setFlag(SysConstant.sys_selectAll);
try {
oos.writeObject(datas);
oos.flush();
datas=(Datas) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return datas;
}
服务端:-------------------------------------------------------------------------
if(datas.getFlag().equals(SysConstant.sys_instore)){
Product product =datas.getProduct();
if(serverService.isExist(product)){
String productId=product.getProductId();
int productNum=product.getProductNum();
System.out.println(productId+"------------"+productNum);
serverService.inStore(productId, productNum);
//判断是否有此商品
public boolean isExist(Product product){
boolean b=false;
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(product.getProductId())){
b=true;
}
}
return b;
} //商品入库
public void inStore(String productId,int productNum){
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(productId)){
//System.err.println(productList.get(i).getProductNum()+"------------------");
// System.err.println(productNum+"---------------------");
productList.get(i).setProductNum(productList.get(i).getProductNum()+productNum);
System.err.println(productList.get(i).getProductNum()+"**************");
break;
}
}
}
//System.out.println(serverService.selectById(productId).getProductNum()+"-----------------");
datas.setFlag(SysConstant.sys_succeed);
}else{
datas.setFlag(SysConstant.sys_fail);
}
oos.writeObject(datas);
oos.flush();
}
//按编号查询商品
public Product selectById(String productId){
Product product=new Product();
for(int i=0;i<productList.size();i++){
if(productList.get(i).getProductId().equals(productId))
product=productList.get(i);
System.err.println("产品数量为:"+product.getProductNum());
break;
}
System.out.println("产品数量为:"+product.getProductNum());
return product;
}