package org.wen.client;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import org.wen.entity.Goods;
import org.wen.entity.User;
import org.wen.entity.Vip;
import org.wen.until.SysConstants;
import org.wen.until.Data;
import org.wen.until.Tools;
public class ClientBIZimpl implements ClientBIZ {
Socket sock = new Socket();
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
private static ClientBIZ instance = new ClientBIZimpl();//创建对象
public static ClientBIZ getInstance(){
return instance;
}
private ClientBIZimpl() {
// 实例化Socket对象
try {
sock = new Socket(Tools.getValue(SysConstants.SYS_HOSTNAME),Integer.parseInt(Tools.getValue(SysConstants.SYS_LISTENERPORT)));
oos = new ObjectOutputStream(sock.getOutputStream());
ois = new ObjectInputStream(sock.getInputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* 根据单个对象显示单个商品信息
*/
public void showDoodsIfo(Goods goods) {
String s = String.format("%d\t\t%s\t\t%.2f\t\t%s\t\t\t%d",
goods.getId(), goods.getName(), goods.getPrice(),
goods.getUnit(),goods.getCount());
System.out.println(s);
}
/*
* 根据用户名和密码登陆
*/
@Override
public Data dologin(String name, String password) {
Data dat = new Data();
dat.setFlag(SysConstants.login);
User user = new User();
user.setName(name);
user.setPassword(password);
dat.setDat(user);
try {
// 向服务器发送对象
oos.writeObject(dat);
// 接受服务器的返回
dat = (Data) ois.readObject();
return dat;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/*
* 根据商品编号判断这个商品时否存在
*/
@Override
public boolean isExist(int goodsId) {
Goods good = new Goods();
good.setId(goodsId);
Data data = new Data();
data.setDat(good);
data.setFlag(SysConstants.isExist);
boolean flag;
try {
// 向服务器发送数据
oos.writeObject(data);
// 接收服务器返回的数据
data = (Data) ois.readObject();
if (SysConstants.succ.equals(data.getFlag())) {
flag = true;
} else {
return false;
}
return flag;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
// 商品入库
public Data in(int goodID, int count) {
Data data = new Data();
data.setFlag(SysConstants.in);
Goods goods = new Goods();
goods.setId(goodID);
goods.setCount(count);
data.setDat(goods);
try {
oos.writeObject(data);
data = (Data) ois.readObject();
return data;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
/*
* 商品出库
*/
@Override
public Data out(int goodID, int count) {
Data data = new Data();
data.setFlag(SysConstants.out);
Goods goods = new Goods();
goods.setId(goodID);
goods.setCount(count);
data.setDat(goods);
try {
// 向服务器发送信息
oos.writeObject(data);
// 接收服务器返回信息
data = (Data) ois.readObject();
return data;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
//VIP登陆
@Override
public Data vipDologin(int cardID) {
Data data=new Data();
data.setFlag(SysConstants.vipLogin);
Vip vip =new Vip();
vip.setCardID(cardID);
data.setDat(vip);
try {
//发送数据
oos.writeObject(data);
//接收数据
data =(Data) ois.readObject();
return data;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//设置消费积分
@Override
public Data setVipIntegeral(int intergralNew) {
Vip vip1=new Vip();
vip1.setIntegral(intergralNew);
Data dat=new Data();
dat.setFlag(SysConstants.setIntegral);
dat.setDat(vip1);
try {
//发送数据
oos.writeObject(dat);
//接收数据
dat=(Data) ois.readObject();
return dat;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/*
* 查询整个商品信息
*/
@Override
public Data queryAll() {
Data data = new Data();
data.setFlag(SysConstants.queryAll);
try {
oos.writeObject(data);
// 获得服务器的返回信息
data = (Data) ois.readObject();
return data;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/*
* 根据商品编号查询商品信息
*/
@Override
public Data queryById(int goodid) {
Data data =new Data();
data.setFlag(SysConstants.queryById);
Goods goods =new Goods();
goods.setId(goodid);
data.setDat(goods);
try {
//向服务端发送数据
oos.writeObject(data);
//接收服务端返回数据
data =(Data) ois.readObject();
return data;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
// 新增商品
@Override
@SuppressWarnings("unused")
public boolean newGoods(int goodsID, String goodsName, double goodsPrice,
String goodsUnit, int goodsCount) {
Data data = new Data();
data.setFlag(SysConstants.newGoods);
Goods goods = new Goods();
goods.setId(goodsID);
goods.setName(goodsName);
goods.setPrice(goodsPrice);
goods.setUnit(goodsUnit);
goods.setCount(goodsCount);
data.setDat(goods);
boolean flag;
// 发送数据
try {
oos.writeObject(data);
// 接收数据
data = (Data) ois.readObject();
if (SysConstants.succ.equals(data.getFlag())) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
//根据商品编号修改商品数量
@Override
public Data modify(int id,int count) {
Data data=new Data();
data.setFlag(SysConstants.modify);
Goods goods=new Goods();
goods.setId(id);
goods.setCount(count);
data.setDat(goods);
try {
//发送数据给服务器
oos.writeObject(data);
//接收服务其返回数据
data=(Data) ois.readObject();
return data;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
public void closeSocket() {
try {
sock.close();
oos.close();
ois.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//退出方法
public void logout() {
Data data=new Data();
data.setFlag(SysConstants.logout);
try {
oos.writeObject(data);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
前往页