package cn.edu.njupt.ws;
import it.sauronsoftware.base64.Base64;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import Decoder.BASE64Decoder;
import cn.edu.njupt.dao.EAppraise;
import cn.edu.njupt.dao.EAppraiseDAO;
import cn.edu.njupt.dao.EOrder;
import cn.edu.njupt.dao.EOrderDAO;
import cn.edu.njupt.dao.EProduct;
import cn.edu.njupt.dao.EProductDAO;
import cn.edu.njupt.dao.EProductclass;
import cn.edu.njupt.dao.EProductclassDAO;
import cn.edu.njupt.dao.ESuggest;
import cn.edu.njupt.dao.ESuggestDAO;
import cn.edu.njupt.dao.EUser;
import cn.edu.njupt.dao.EUserDAO;
public class EGouWS {
/*
* 用户信息模块
* @author 陈佳佳
*/
//用户名是否唯一
public boolean isNameUnique(String name){
EUserDAO userDAO = new EUserDAO();
List<EUser> users = new ArrayList<EUser>();
users = userDAO.findByUsername(name);
if(users.size()!=0){
return false;
}else {
return true;
}
}
//登陆
public boolean Login(String username,String password){
EUserDAO userDAO = new EUserDAO();
List<EUser> users = new ArrayList<EUser>();
users = userDAO.findByUsernameAndPassword(username, password);
System.out.print(users.size());
if(users.size()!=0){
return true;
}else {
return false;
}
}
//注册
public boolean register(String username,String password){
EUserDAO userDAO = new EUserDAO();
EUser user = new EUser();
user.setUsername(username);
user.setPassword(password);
userDAO.save(user);
return true;
}
//重置密码
public boolean resetpwd(String username,String npassword){
EUserDAO userDAO = new EUserDAO();
EUser user = new EUser();
user.setUsername(username);
user.setPassword(npassword);
userDAO.save(user);
return true;
}
//查看积分
public int getScore(String username){
EUserDAO userDAO = new EUserDAO();
EUser user = new EUser();
user = (EUser) userDAO.findByUsername(username);
int score = user.getScore();
return score;
}
//查看我的账号
public String myZhanghao(String username){
EUserDAO userDAO = new EUserDAO();
EUser user = new EUser();
user = (EUser) userDAO.findByUsername(username);
JSONArray jsonArray = JSONArray.fromObject(user);
JSONObject jsonObject = new JSONObject();
jsonObject.put("user", jsonArray);
String result= jsonObject.toString();
return result;
}
/*
* 用户订单信息模块
*/
//提交订单
public void sendOrder(String jsonOrder){
//解析json
//存入数据库
EOrder order = new EOrder();
List<EOrder> orders = new ArrayList<EOrder>();
EOrderDAO orderDAO = new EOrderDAO();
JSONArray jsonArray = JSONArray.fromObject(jsonOrder);
JSONObject jsonObject = new JSONObject();
for(int i=0; i<jsonArray.size();i++){
jsonObject = jsonArray.getJSONObject(i);
//String orderid = jsonObject.getString("orderid");
String username = jsonObject.getString("username");
String phone = jsonObject.getString("phone");
double totalprize = jsonObject.getDouble("totalprice");
String orderCode = jsonObject.getString("ordercode");
java.util.Date date = new java.util.Date();
//Date time = new Date(date.getDate());
@SuppressWarnings("deprecation")
Timestamp time = new Timestamp(date.getDate());
order = new EOrder(username,phone,time,totalprize,orderCode);
orders.add(order);
}
for(int i=0;i<orders.size();i++){
orderDAO.save(orders.get(i));
}
}
/*
* 用户商品信息模块
*
*/
//文字搜索
public String searchByName(String name){
//查找数据库
//组合成json文件返回
EProductDAO eProductDAO = new EProductDAO();
List<EProduct> products = new ArrayList<EProduct>();
products = eProductDAO.findByProductName(name);
JSONArray jsonArray = JSONArray.fromObject(products);
JSONObject jsonObject = new JSONObject();
jsonObject.put("product", jsonArray);
String result= jsonObject.toString();
return result;
}
//条形码搜索
public String searchByCode(String code){
//查找数据库
//组合成json文件返回
EProductDAO eProductDAO = new EProductDAO();
List<EProduct> products = new ArrayList<EProduct>();
products = eProductDAO.findByProductCode(code);
JSONArray jsonArray = JSONArray.fromObject(products);
JSONObject jsonObject = new JSONObject();
jsonObject.put("product", jsonArray);
String result= jsonObject.toString();
return result;
}
//商场导航
public String searchByLocation(String location){
//查找数据库
//组合成json文件返回
EProductDAO eProductDAO = new EProductDAO();
List<EProduct> products = new ArrayList<EProduct>();
products = eProductDAO.findByProductLocation(location);
JSONArray jsonArray = JSONArray.fromObject(products);
JSONObject jsonObject = new JSONObject();
jsonObject.put("product", jsonArray);
String result= jsonObject.toString();
return result;
}
//显示商品类别列表
public String productClassList(){
//查找数据库
//组合成json文件返回
EProductclassDAO productclassDAO = new EProductclassDAO();
List<EProductclass> productclasses = new ArrayList<EProductclass>();
productclasses = productclassDAO.findAll();
JSONArray jsonArray = JSONArray.fromObject(productclasses);
JSONObject jsonObject = new JSONObject();
jsonObject.put("productclass", jsonArray);
String result= jsonObject.toString();
return result;
}
//根据商品类别查询商品列表 通过className知道的
public String productListByClass(String productClassName){
EProductDAO productDAO = new EProductDAO();
List<EProduct> products = new ArrayList<EProduct>();
products = productDAO.findByProductClassName(productClassName);
JSONArray jsonArray = JSONArray.fromObject(products);
JSONObject jsonObject = new JSONObject();
jsonObject.put("product", jsonArray);
String result= jsonObject.toString();
return result;
}
//显示商品详情
public String getProduct(int productId){
EUserDAO userDAO = new EUserDAO();
EUser user = new EUser();
user = (EUser) userDAO.findById(productId);
JSONArray jsonArray = JSONArray.fromObject(user);
JSONObject jsonObject = new JSONObject();
jsonObject.put("product", jsonArray);
String result= jsonObject.toString();
return result;
}
//显示商品评价详情
public String getProductAppraise(int productId){
EAppraiseDAO appraiseDAO = new EAppraiseDAO();
List<EAppraise> appraises = new ArrayList<EAppraise>();
appraises = appraiseDAO.findByProductId(productId);
JSONArray jsonArray = JSONArray.fromObject(appraises);
JSONObject jsonObject = new JSONObject();
jsonObject.put("appraise", jsonArray);
String result= jsonObject.toString();
return result;
}
//商品评价
public boolean addAppraise(String username, String content, int productId){
EAppraise appraise = new EAppraise();
EAppraiseDAO appraiseDAO = new EAppraiseDAO();
appraise.setContent(content);
appraise.setUsername(username);
appraise.setProductId(productId);
Date date = new Date();
Timestamp time = new Timestamp(date.getDate());
appraise.setTime(time);
appraiseDAO.save(appraise);
return true;
}
//带图片的商品评价
public boolean addAppraisePic(String username, String content,String picture, int productId){
EAppraise appraise = new EAppraise();
EAppraiseDAO appraiseDAO = new EAppraiseDAO();
appraise.setContent(content);
appraise.setUsername(username);
appraise.setProductId(productId);
Date date = new Date();
Timestamp time = new Timestamp(date.getDate());
appraise.setTime(time);
appraiseDAO.save(appraise);
return true;
}
//问题反馈
public boolean addSuggest(String content, String connection ){
ESuggestDAO suggestDAO = new ESuggestDAO();
ESuggest suggest = new ESuggest();
suggest.setConnection(connection);
suggest.setContent(content);
Date date = new Date();
Timestamp time = new Timestamp(date.getDate());
suggest.setTime(time);
suggestDAO.save(suggest);
return true;
}
public boolean uploadImage(String fileName,String image){
FileOutputStream fos = null;
try{
String toDir = "/sdcard"; //存储路径
//调用webservice,得到image,
//对数据进行解析
byte[] buffer = new BASE64Decoder().decodeBuffer(image); //对android传过来的图片字符串进行解码
File destDir = new File(toDir);
if(!destDir.exists()) destDir.mkdir();
fos = new FileOutputStream(new File(destDir,fileName)); //保存图片
fos.write(buffer);
fos.flush();
fos.close();
}catch (Exception e){
e.printStackTrace();
}
return false;
}
public String downImage(String path) throws IOException{
String downBuffer = null;
try {
FileInputStream fileInputStream = new FileInputStream(path);//文件输出流
ByteArrayOutputStream baosArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count = 0;
while((count = fileInputStream.read(buffer))>=0){
baosArrayOutputStream.write(buffer,0,count);
}
downBuffer = new String(Base64.encode(baosArrayOutputStream.toByteArray(), 0));
fileInputStream.close();
return downBuffer;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return downBuffer;
}
}