package com.jzh.news.servlet; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.jzh.news.dao.News_luntanDaoImpl; import com.jzh.news.dao.UserDaoImpl; import com.jzh.news.entity.News_luntan; import com.jzh.news.entity.News_pinglun; import com.jzh.news.entity.User; import com.jzh.news.util.Base64Coder; import com.tencent.xinge.ClickAction; import com.tencent.xinge.Message; import com.tencent.xinge.Style; import com.tencent.xinge.XingeApp; public class DoGetLunTan extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); final News_luntanDaoImpl ndi = new News_luntanDaoImpl(); String action = request.getParameter("action"); final JSONObject array = new JSONObject(); if (action.equals("search")) { PrintWriter out = response.getWriter(); String limit = request.getParameter("limit"); if (limit == null) { limit = "0"; } List<News_luntan> list = new ArrayList<News_luntan>(); list = ndi.search(limit); if (list.size() < 1) { array.put("code", "failure"); array.put("msg", "��������"); array.put("data", ""); } else { array.put("code", "success"); array.put("msg", "��������ɹ�"); UserDaoImpl udi = new UserDaoImpl(); JSONArray arrays = new JSONArray(); List<User> list_user; int state_size = ndi.search_total(); for (int i = 0; i < list.size(); i++) { list_user = new ArrayList<User>(); list_user = udi.Search(list.get(i).getUser()); JSONObject object = new JSONObject(); object.put("nickname", list_user.get(i).getNickname()); object.put("sex", list_user.get(i).getSex()); object.put("icon", list_user.get(i).getIcon()); object.put("time", list.get(i).getTime()); object.put("lid", list.get(i).getLid()); object.put("user", list_user.get(i).getUser()); object.put("content", list.get(i).getContent()); object.put("image", list.get(i).getImage()); object.put("location", list.get(i).getLocation()); object.put("state_size", state_size); object.put("pinglun_size", ndi.search_totals(list.get(i) .getLid() + "")); arrays.add(object); } array.put("data", arrays.toString()); } out.print(array); out.flush(); out.close(); } else if (action.equals("search_user")) { PrintWriter out = response.getWriter(); String limit = request.getParameter("limit"); if (limit == null) { limit = "0"; } String user = request.getParameter("user"); List<News_luntan> list = new ArrayList<News_luntan>(); list = ndi.search_one(user, limit); if (list.size() < 1) { array.put("code", "failure"); array.put("msg", "��������"); array.put("data", ""); } else { array.put("code", "success"); array.put("msg", "��������ɹ�"); UserDaoImpl udi = new UserDaoImpl(); JSONArray arrays = new JSONArray(); List<User> list_user; int state_size = ndi.search_total(user); for (int i = 0; i < list.size(); i++) { list_user = new ArrayList<User>(); list_user = udi.Search(list.get(i).getUser()); JSONObject object = new JSONObject(); object.put("nickname", list_user.get(i).getNickname()); object.put("sex", list_user.get(i).getSex()); object.put("icon", list_user.get(i).getIcon()); object.put("time", list.get(i).getTime()); object.put("lid", list.get(i).getLid()); object.put("user", list_user.get(i).getUser()); object.put("content", list.get(i).getContent()); object.put("image", list.get(i).getImage()); object.put("location", list.get(i).getLocation()); object.put("state_size", state_size); object.put("pinglun_size", ndi.search_totals(list.get(i) .getLid() + "")); arrays.add(object); } array.put("data", arrays.toString()); } out.print(array); out.flush(); out.close(); } else if (action.equals("save")) { PrintWriter out = response.getWriter(); String user = request.getParameter("user"); String time = request.getParameter("time"); String content = request.getParameter("content"); String location = request.getParameter("location"); String size = request.getParameter("image_size"); News_luntan news = new News_luntan(); news.setUser(user); news.setTime(time); news.setContent(content); news.setLocation(location); if (!size.equals("0")) { StringBuilder sb = new StringBuilder(); int sizes = Integer.parseInt(size); for (int j = 0; j < sizes; j++) { if (sizes - 1 == j) { sb.append(request.getParameter("filename" + j)); } else { sb.append(request.getParameter("filename" + j) + ";"); } byte[] b = Base64Coder.decodeLines(request .getParameter("file" + j)); String filepath = "c:/yyquan_luntan/"; File file = new File(filepath); if (!file.exists()) { file.mkdirs(); } FileOutputStream fos = new FileOutputStream(file.getPath() + "/" + request.getParameter("filename" + j)); fos.write(b); fos.flush(); fos.close(); } news.setImage(sb.toString()); } else { news.setImage(""); } if (ndi.save(news)) { array.put("code", "success"); } else { array.put("code", "failure"); } out.print(array); out.flush(); out.close(); } else if (action.equals("search_image")) { response.setContentType("image/gif"); String name = request.getParameter("name"); String imagePath = "c:/yyquan_luntan/" + name; FileInputStream fis = new FileInputStream(imagePath); int size = fis.available(); // �õ��ļ���С byte data[] = new byte[size]; fis.read(data); // ������ fis.close(); OutputStream os = response.getOutputStream(); os.write(data); os.flush(); os.close(); } else if (action.equals("save_pinglun")) { PrintWriter out = response.getWriter(); String user = request.getParameter("user"); String time = request.getParameter("ptime"); String content = request.getParameter("pcontent"); String location = request.getParameter("plocation"); // String author = request.getParameter("author"); String id = request.getParameter("plid"); System.out.println(user + "\n" + id); int plid = Integer.parseInt(id); News_pinglun news = new News_pinglun(plid, user, location, time, content, "0"); if (ndi.save_pinglun(news)) { array.put("code", "success"); array.put("msg", "���۳ɹ�"); } else { array.put("code", "failure"); array.put("msg", "����ʧ�ܣ����Ժ�����"); } out.print(array); out.flush(); out.close(); // UserDaoImpl udi = new UserDaoImpl(); // News_luntan nl = new News_luntan(); // User users = new User(); // nl = ndi.search_one(plid); // if (user.equals(nl.getUser())) { // return; // } // users = udi.Search_one(nl.getUser()); // JSONObject object = new JSONObject(); // Map<String, Object> custom = new HashMap<String, Object>(); // object.put("user", nl.getUser()); // object.put("lid", nl.getLid()); // object.put("content", nl.getContent()); // object.put("image", nl.getImage()); // object.put("time", nl.getTime()); // object.put("location", nl.getLocation()); // object.put("nickname", users.getNickname()); // object.put("icon", users.getIcon()); // object.put("sex", users.getSex()); // custom.put("data", object.toString()); // // XingeApp xinge = new XingeApp(2100152165, // "660ceb27bb463b5e544b1f847958f5bf"); // ClickAction click = new ClickAction(); // click.setActionType(ClickAction.TYPE_ACTIVITY); // click.setActivity("com.yyquan.jzh.activity.ShowLuntanActivity"); // Style style = new Style(0, 1, 0, 1, -1, 1, 0, 1); // Message message = new Message(); // message.setStyle(style); // message.setAction(click); // message.setExpireTime(86400); // message.setTitle("��Ϣ"); // message.setContent("�����µĻظ�"); // message.setCustom(custom); // message.setType(Message.TYPE_NOTIFICATION); // xinge.pushSingleAccount(0, nl.getUser(), message); } else if (action.equals("search_pinglun")) { PrintWriter out = response.getWriter(); String user = request.getParameter("user"); String plid = request.getParameter("plid"); String limit = request.getParameter("limit"); List<News_pinglun> list = new ArrayList<News_pinglun>(); list = ndi.search_pinglun(plid, limit); if (list.size() < 1) { array.put("code", "failure"); array.put("msg", "��������"); array.put("data", ""); } else { array.put("code", "success"); array.put("msg", "������"); UserDaoImpl udi = new UserDaoImpl(); JSONArray arrays = new JSONArray(); List<User> list_user; for (int i = 0; i < list.size(); i++) { list_user = new ArrayList<User>(); list_user = udi.Search(list.get(i).getUser()); String pid = list.get(i).getPid() + ""; String iszan = ndi.search_iszan(pid, user); JSONObject object = new JSONObject(); object.put("nickname", list_user.get(i).getNickname()); object.put("size", ndi.search_totals(plid + "")); object.put("sex", list_user.get(i).getSex()); object.put("icon", list_user.get(i).getIcon()); object.put("pdata", list.get(i)); object.put("ispzan", iszan);// 0��û�� 1���� arrays.add(object); } array.put("data", arrays.toString()); } out.print(array); out.flush(); out.close(); } else if (action.equals("update_zan")) { String pid = request.getParameter("pid"); int ppid = Integer.parseInt(pid); String user = request.getParameter("user"); ndi.save(ppid, user); String zans = ndi.search_zan(pid); int num = Integer.parseInt(zans) + 1; if (ndi.update(pid, num + "")) { array.put("code", "success"); } else { array.put("code", "failure"); } } } }