照片书后台

  1. package com.wodexiangce.web.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.io.UnsupportedEncodingException;
  5. import java.net.InetAddress;
  6. import java.net.UnknownHostException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. import javax.faces.FactoryFinder;
  12. import javax.faces.context.FacesContext;
  13. import javax.faces.context.FacesContextFactory;
  14. import javax.faces.lifecycle.Lifecycle;
  15. import javax.faces.lifecycle.LifecycleFactory;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import org.jdom.Document;
  19. import org.jdom.Element;
  20. import org.jdom.output.XMLOutputter;
  21. import com.wodexiangce.persistence.model.WdxcAlbum;
  22. import com.wodexiangce.persistence.model.WdxcOrderItem;
  23. import com.wodexiangce.persistence.model.WdxcPhoto;
  24. import com.wodexiangce.persistence.model.WdxcProductRecord;
  25. import com.wodexiangce.services.AlbumService;
  26. import com.wodexiangce.services.OrderService;
  27. import com.wodexiangce.services.PhotoService;
  28. import com.wodexiangce.services.ProductService;
  29. import com.wodexiangce.servlet.WdxcWebAbstractServlet;
  30. import com.wodexiangce.web.product.CommonModel;
  31. import com.wodexiangce.web.product.ProductHandler;
  32. import com.wodexiangce.web.query.PhotoAdvanceQuery;
  33.    
  34. public class PhotoBookServlet extends WdxcWebAbstractServlet {
  35.     private static final long serialVersionUID = 1L;
  36.      
  37.     private CommonModel cm  ;//=========加入购物车参数
  38.     public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException {
  39.                
  40.         //=====得到处理类型 
  41.         String handlerType = request.getParameter("handlertype"); 
  42.          
  43.         if(handlerType==null){
  44.             return ;
  45.         } 
  46.         switch(new Integer(handlerType).intValue()){
  47.             case 1:   //=====相册列表 
  48.                 this.createdAlbumXml(request,response);
  49.                 break ;
  50.             case 2:  //======相册的所有照片 
  51.                 this.createdPhotosXML(request,response);   
  52.                 break ;
  53.             case 3:  //======加入购物车
  54.                 this.addToshoppingCart(request,response) ;
  55.                 break ;
  56.             case 4:  //======获取订单信息中的产品内容
  57.                 getOrderInfo(request,response);
  58.                 break ; 
  59.             case 5:  //======自动填充
  60.                 String albumid = request.getParameter("albumid") ;
  61.                 this.getAllphotoOfAlbum(request, response, new Long(albumid)) ;
  62.                 break ;     
  63.             case 6:  //======产品保存
  64.                 this.saveProductHanlder(request, response);
  65.                 break ;     
  66.             case 7:  //======得到产品信息
  67.                 this.getProductRecordInfo(request,response) ;
  68.                 break ;  
  69.             case 8:  //======得到产品名称 
  70.                 this.getProductName(request, response) ;
  71.                 break ; 
  72.                 
  73.         }          
  74.     }
  75.     
  76.     /************* 取得订单信息中的产品内容********************************/
  77.     private void getOrderInfo(HttpServletRequest request, HttpServletResponse response)throws IOException{
  78.         String itemID = request.getParameter("itemid") ;
  79.         //wdxcOrderItem = orderService.getOrderItemByID(Long.parseLong(itemID));
  80.         OrderService orderService  = (OrderService)wac.getBean("orderService"); 
  81.         WdxcOrderItem wdxcOrderItem = orderService.getOrderItemByID(Long.parseLong(itemID));
  82.         
  83.         String context = wdxcOrderItem.getProductcontent() ;
  84.         response.setContentType("text/xml");
  85.         response.setCharacterEncoding("UTF-8");  
  86.         PrintWriter pw = response.getWriter();
  87.         pw.write(context);
  88.         pw.flush(); 
  89.         pw.close() ;
  90.         
  91.     }
  92.     /**********获取已保存产品信息*********************************/
  93.     public void getProductRecordInfo(HttpServletRequest request, HttpServletResponse response)throws IOException{
  94.         String pid = request.getParameter("productrecordid");  
  95.         ProductService ps  = (ProductService)wac.getBean("productService");
  96.         WdxcProductRecord wpr = ps.getProductRecord(new Long(pid));
  97.         String content = wpr.getContent() ;
  98.         response.setContentType("text/xml");
  99.         response.setCharacterEncoding("UTF-8");  
  100.         PrintWriter pw = response.getWriter();
  101.         pw.write(content);
  102.         pw.flush(); 
  103.         pw.close() ;
  104.     }
  105.      
  106.     /**********保存产品,并返回保存结果*********************************/
  107.     public void saveProductHanlder(HttpServletRequest request, HttpServletResponse response) throws IOException{
  108.         long pid = this.saveProduct(request, response) ;
  109.         response.getOutputStream().print(pid);
  110.     }
  111.      
  112.     /**********保存产品*********************************/
  113.     public long saveProduct(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException{
  114.         String content = request.getParameter("content") ;
  115.         String productname = request.getParameter("productname") ;
  116.         String productid = request.getParameter("productid") ;
  117.         Long userID = this.getProductHandler(request, response).getPrinciple().getUserid()  ;
  118.         
  119.         String pid = request.getParameter("pid") ; 
  120.         String previewURL = request.getParameter("previewURL") ;
  121.         content = new String(content.getBytes("ISO-8859-1"),"UTF-8");
  122.         ProductService p  = (ProductService)wac.getBean("productService");
  123.         
  124.         WdxcProductRecord wpr = new WdxcProductRecord() ;
  125.         wpr.setProductID(new Long(productid));
  126.         wpr.setUserID(userID); 
  127.         wpr.setClassID(87l); 
  128.         wpr.setPreurl(previewURL);
  129.           
  130.         /*========保存产品,产品名称不为空,但如果没有保存产品,直接加入购物车,此时ProductName为空*/
  131.         if(productname!=null){
  132.             productname = new String(productname.getBytes("ISO-8859-1"),"UTF-8");
  133.             wpr.setName(productname);
  134.         } 
  135.         wpr.setCreatetime(new Date());
  136.         wpr.setFlag(0);   
  137.         wpr.setContent(content);
  138.          
  139.         //============保存产品 
  140.         if(pid==null||pid==""){ 
  141.                 
  142.             //======之前没有保存产品,直接加入购物车,产品名称为空,创建默认名称
  143.             if(productname==null){
  144.                 SimpleDateFormat  formatname = new SimpleDateFormat ("yyyyMMdd"); 
  145.                 productname = "我的照片书"+formatname.format(new Date());
  146.                 wpr.setName(productname) ; 
  147.             }   
  148.             return p.saveProductRecord(wpr);
  149.         }
  150.         
  151.         //============更新产品
  152.         else{  
  153.             wpr.setId(new Long(pid));
  154.             p.updateProductRecord(wpr); 
  155.             return new Long(pid) ;
  156.         }
  157.     }
  158.     /**********获取作品名称************************/
  159.     private void getProductName(HttpServletRequest request, HttpServletResponse response)throws IOException{
  160.         String pid = request.getParameter("pid") ;
  161.         ProductService p  = (ProductService)wac.getBean("productService");
  162.         WdxcProductRecord wpr = p.getProductRecord(new Long(pid));
  163.         response.setCharacterEncoding("UTF-8");  
  164.         response.getOutputStream().print(wpr.getName()); 
  165.     }
  166.     
  167.      
  168.     /**********获取某个相册的所有照片(自动填充)************************/
  169.     public void getAllphotoOfAlbum(HttpServletRequest request,HttpServletResponse response,long albumid)throws IOException{
  170.         PhotoService ps  = (PhotoService)wac.getBean("photoService");
  171.         PhotoAdvanceQuery paq = new PhotoAdvanceQuery();
  172.     
  173.         paq.setAlbumId(albumid);    
  174.     
  175.         int photoCount = ps.getPhotoCountByAlbumId(albumid) ; 
  176.         Long userID = this.getProductHandler(request, response).getPrinciple().getUserid()  ;
  177.         
  178.         List photos = ps.getPhotoAdvanceLimited(userID,paq,0,photoCount);
  179.         
  180.         Element root = new Element("wdxc");    
  181.         Document doc = new Document(root);      
  182.          
  183.         //========总数
  184.         Element count = new Element("count");    
  185.         count.addContent(new Element("num").setText(String.valueOf(photoCount)));
  186.         
  187.         root.addContent(count); 
  188.         for(Object obj:photos){    
  189.              WdxcPhoto wp = (WdxcPhoto)obj ;     
  190.              //=====创建节点    
  191.              Element elements = new Element("photos");    
  192.              elements.addContent(new Element("id").setText(String.valueOf(wp.getId())));  
  193.              elements.addContent(new Element("compressurl").setText(wp.getCompressurl()));      
  194.              //===== 给父节点wdxc添加album子节点;    
  195.              root.addContent(elements);    
  196.         } 
  197.         XMLOutputter XMLOut = new XMLOutputter();    
  198.         //=====发送xml数据到客户端浏览器          
  199.         response.setContentType("text/xml");
  200.         response.setCharacterEncoding("UTF-8");       
  201.        
  202.         XMLOut.output(doc, response.getOutputStream());
  203.     }
  204.      
  205.     
  206.     
  207.     public void addToshoppingCart(HttpServletRequest request,HttpServletResponse response)throws IOException{
  208.         String content = request.getParameter("content") ;
  209.         String productID = request.getParameter("productID") ;
  210.         String previewURL = request.getParameter("previewURL") ;
  211.         String productInnerNum = request.getParameter("productInnerNum");
  212.         
  213.         //========购买数量
  214.         String number = request.getParameter("number");
  215.         /*加入购物车之前,先保存产品*/   
  216.         long pid =this.saveProduct(request, response) ;
  217.         
  218.         ProductHandler ph = this.getProductHandler(request, response) ;
  219.         
  220.          
  221.         cm = new CommonModel () ; 
  222.         cm.setNumber(Integer.parseInt(number)); //购买数量
  223.           
  224.         content = new String(content.getBytes("ISO-8859-1"),"UTF-8");
  225.         
  226.         cm.setContent(content);//所有图片版式和背景图片
  227.         cm.setProductID(new Long(productID)); 
  228.         cm.setPreviewURL(previewURL); 
  229.         cm.setProductRecordId(pid);
  230.         
  231. //      产品iD算出类型
  232.         cm.setProductInnerNum(Integer.parseInt(productInnerNum));
  233.         ph.setCommonModel(cm); 
  234.         ph.addShoppingProductOfEdit();
  235.         response.getOutputStream().print("success");
  236.     }
  237.     
  238.     /**
  239.      * **************获取照片名称列表************** 
  240.      */ 
  241.     public void createdPhotosXML(HttpServletRequest request,HttpServletResponse response)throws IOException{
  242.         Long albumid = new Long(request.getParameter("albumid"));   
  243.         int pageNum =  Integer.parseInt(request.getParameter("pageNum"));
  244.         Long userID = this.getProductHandler(request, response).getPrinciple().getUserid()  ;
  245.          
  246.          
  247.         PhotoService ps  = (PhotoService)wac.getBean("photoService");
  248.         PhotoAdvanceQuery paq = new PhotoAdvanceQuery();
  249.         paq.setAlbumId(albumid);    
  250.         int pageSize = 20 ;
  251.          
  252.         int photoCount = ps.getPhotoCountByAlbumId(albumid) ; 
  253.          
  254.         //==========总页数
  255.         photoCount = (photoCount%pageSize==0)?(photoCount/pageSize):(photoCount/pageSize+1) ;
  256.         List photos = ps.getPhotoAdvanceLimited(userID,paq,pageNum*pageSize,pageSize);
  257.         
  258.         Element root = new Element("wdxc");    
  259.         Document doc = new Document(root);      
  260.         
  261.         //========总数
  262.         Element count = new Element("count");    
  263.         count.addContent(new Element("num").setText(String.valueOf(photoCount)));
  264.         
  265.         root.addContent(count); 
  266.         for(Object obj:photos){    
  267.              WdxcPhoto wp = (WdxcPhoto)obj ;     
  268.              //=====创建节点    
  269.              Element elements = new Element("photos");    
  270.              elements.addContent(new Element("id").setText(String.valueOf(wp.getId())));  
  271.              elements.addContent(new Element("abbrurl").setText(wp.getAbbrurl()));   
  272.              elements.addContent(new Element("compressurl").setText(wp.getCompressurl()));      
  273.              //===== 给父节点wdxc添加album子节点;    
  274.              root.addContent(elements);    
  275.         } 
  276.         XMLOutputter XMLOut = new XMLOutputter();    
  277.         //=====发送xml数据到客户端浏览器          
  278.         response.setContentType("text/xml");
  279.         response.setCharacterEncoding("UTF-8");       
  280.         XMLOut.output(doc, response.getOutputStream());
  281.     }
  282.     /**
  283.      * **************获取相册名称列表**************
  284.      * @param response  
  285.      */
  286.     public void createdAlbumXml(HttpServletRequest request,HttpServletResponse response) throws IOException{
  287.             
  288.         AlbumService as = (AlbumService) wac.getBean("albumService"); 
  289.         
  290.         System.out.println(request.getParameter("userID"));
  291.         
  292.         Long userID = this.getProductHandler(request, response).getPrinciple().getUserid()  ;
  293.         List list =as.getAlbum(userID);   
  294.         //=====创建根节点 list;     
  295.         Element root = new Element("wdxc");    
  296.         Document doc = new Document(root);    
  297.         Iterator  it = list.iterator();
  298.         while(it.hasNext()) {    
  299.             WdxcAlbum wa = (WdxcAlbum)it.next();
  300.             //=====创建节点
  301.             Element elements = new Element("album");    
  302.             elements.addContent(new Element("albumid").setText(String.valueOf(wa.getId())));
  303.             
  304.             //=====加入节点name 
  305.             elements.addContent(new Element("albumname").setText(wa.getName()));   
  306.             
  307.             //===== 给父节点wdxc添加album子节点;   
  308.             root.addContent(elements);     
  309.         }         
  310.    
  311.         System.out.print(doc.toString());
  312.         XMLOutputter XMLOut = new XMLOutputter();    
  313.         //=====发送xml数据到客户端浏览器       
  314.         response.setContentType("text/xml");
  315.         response.setCharacterEncoding("UTF-8");       
  316.         XMLOut.output(doc, response.getOutputStream());
  317.     }  
  318.     public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException {
  319.         this.doGet(request, response);
  320.     }
  321.      
  322.     
  323.     /********************************得到上下文环境*********************************************/
  324.     private ProductHandler getProductHandler(HttpServletRequest request, HttpServletResponse response){
  325.         LifecycleFactory lFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
  326.         Lifecycle lifecycle = lFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
  327.         FacesContextFactory fcFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
  328.         FacesContext facesContext = fcFactory.getFacesContext(getServletContext(), request, response, lifecycle);
  329.         
  330.         ProductHandler ph = (ProductHandler) facesContext.getApplication().getVariableResolver().resolveVariable(facesContext, "productHandler");
  331.         return ph ;
  332.     }
  333. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值