package action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import model.Classify; import model.PageBean; import model.Product; import model.User; import model.UserAndAdmin; import org.apache.struts2.ServletActionContext; import org.aspectj.util.FileUtil; import service.IUserService; import util.AddJson; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class ProductAction extends ActionSupport implements ModelDriven{ IUserService iUserService; public void setiUserService(IUserService iUserService) { this.iUserService = iUserService; } Product product=new Product(); @Override public Product getModel() { return product; } HttpServletRequest req=ServletActionContext.getRequest(); AddJson json=new AddJson(); private int currPage=1;//当前页 public void setCurrPage(int currPage) { this.currPage = currPage; } private File proPictureFile; private String proPictureFileFileName; private String proPictureContentType; private final int BUFFER_SIZE=16*1024; private Integer classifyId; public Integer getClassifyId() { return classifyId; } public void setClassifyId(Integer classifyId) { this.classifyId = classifyId; } public File getProPictureFile() { return proPictureFile; } public void setProPictureFile(File proPictureFile) { this.proPictureFile = proPictureFile; } public String getProPictureContentType() { return proPictureContentType; } public void setProPictureContentType(String proPictureContentType) { this.proPictureContentType = proPictureContentType; } public String getProPictureFileFileName() { return proPictureFileFileName; } public void setProPictureFileFileName(String proPictureFileFileName) { this.proPictureFileFileName = proPictureFileFileName; } /** * 发布供求信息 */ public String addProduct() throws Exception{ String newFileName=new Date().getTime()+getExtention(proPictureFileFileName); String path=ServletActionContext.getServletContext().getRealPath("/upload"); File picFile=new File(path); if(!picFile.exists()){ picFile.mkdir(); } FileUtil.copyFile(proPictureFile, new File(picFile,newFileName)); //copy(proPictureFile,picFile);将上传的图片存储到picFile product.setPicture(newFileName); product.setCreateTime(new Date()); Classify c=this.iUserService.getClassifyById(product.getClassifyId()); User u=this.iUserService.getUserById(product.getCreatorId()); product.setClassify(c); product.setUser(u); this.iUserService.saveProduct(product); this.addActionMessage("发布成功!"); return "uploadSuccess"; } /** * 上传文件(io流实现) * @param src * @param dst * @throws Exception */ private void copy(File src, File dst)throws Exception { InputStream in=null; OutputStream out=null; try { in=new BufferedInputStream(new FileInputStream(src),BUFFER_SIZE); out=new BufferedOutputStream(new FileOutputStream(dst),BUFFER_SIZE); byte[] buffer=new byte[BUFFER_SIZE]; while(in.read(buffer)>0){ out.write(buffer); } } catch (Exception e) { throw e; }finally{ try { in.close(); } catch (Exception e2) { } try { out.close(); } catch (Exception e2) { } } } /** * 截图文件后缀名称 * @param filename * @return */ private String getExtention(String filename) { int pos=filename.lastIndexOf("."); return filename.substring(pos); } /** * 查询分类列表 * @throws IOException */ public void searchClassifyList() throws IOException{ List list=this.iUserService.searchClassifyList(); this.json.toJsonArray(list); } /** * 查询商品列表 */ public void searchProductList() throws Exception{ String keyword=req.getParameter("keyword");//输入框关键字 String cid=req.getParameter("cid");//判断分类 String conditon=req.getParameter("condition");//判断按什么查询 Map map=new HashMap(); if(keyword!=null&&keyword!=""){ map.put("keyword", keyword); } if(cid!=null&&cid!=""){ map.put("cid", cid); } if(conditon!=null&&conditon!=""){ map.put("conditon", conditon); } map.put("currPage", currPage+""); PageBean proList=this.iUserService.searchProductList(map); this.json.toJsonObj(proList); } /** * 查询商品详情 */ public void getProductDetail() throws Exception{ String id=req.getParameter("id"); Product product=this.iUserService.getProductDetail(id); this.json.toJson(product); /*int clickNum=product.getProClicknum(); product.setProClicknum(clickNum+1); this.iUserService.updateProduct(product);*/ } /** * 分页查询我发布的商品列表信息 * @throws Exception */ public void searchMyProductByPage() throws Exception{ User user=(User) req.getSession().getAttribute("User"); if(user==null){ throw new Exception("用户帐户为空,请重新登录!"); }else{ Map map=new HashMap(); map.put("currPage", currPage+""); map.put("userId", user.getUid()+""); PageBean myproList=this.iUserService.searchMyProductByPage(map); this.json.toJson(myproList); } } private String repContent; private String content; public String getRepContent() { return repContent; } public void setRepContent(String repContent) { this.repContent = repContent; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } /** * *

Description: 删除我的商品

* @throws Exception */ public void deleteMyProductById() throws Exception{ User user=(User) req.getSession().getAttribute("User"); if(user==null){ throw new Exception("用户帐户为空,请重新登录!"); }else{ int pid=Integer.parseInt(req.getParameter("id")); this.iUserService.delectProductById(pid); } } /** * 分页消息 * @throws Exception * @param flag 0系统消息,1用户消息 */ public String searchMessageByPage() throws Exception{ User user=(User) req.getSession().getAttribute("User"); String flag=""; if(user==null){ throw new Exception("用户帐户为空,请重新登录!"); }else{ flag=req.getParameter("flag");//0系统消息,1用户消息 Map map=new HashMap(); map.put("currPage", currPage+""); map.put("userId", user.getUid()+""); map.put("flag", flag); PageBean message=this.iUserService.searchMessageByPage(map); if(message!=null){ ActionContext.getContext().getValueStack().push(message); } } if(flag=="0"||"0".equals(flag)){ return "sysmessage"; }else{ return "usermessage"; } } private String flag; public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } /** * 删除消息 * @return * @throws Exception */ public String deleteMessage() throws Exception{ User user=(User) req.getSession().getAttribute("User"); //String flag=req.getParameter("flag"); if(user==null){ throw new Exception("用户帐户为空,请重新登录!"); }else{ String id=req.getParameter("id"); this.iUserService.deleteMessage(Integer.parseInt(id)); } if(flag=="0"||"0".equals(flag)){ return "sysmsgDelete"; }else{ return "usermsgDelete"; } } }