⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wapservice.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		setHeaderVO(searchVO.getHeaderVO(), settingMap.get("bbname"));
		setFooterVO(request, settingMap, searchVO.getFooterVO(), currentMember, "search", formhash, sid);
		searchVO.setSid(sid);
		return searchVO;
	}
	
	public SearchResultVO getSearchResultVO(HttpServletRequest request,HttpServletResponse response,Map<String,String> settingMap,Members currentMember,String formhash,String sid,Map<String,String> index,int waptpp,int start_limit,int page,int searchnum,String searchid){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		SearchResultVO searchResultVO = new SearchResultVO();
		setHeaderVO(searchResultVO.getHeaderVO(), settingMap.get("bbname"));
		setFooterVO(request, settingMap, searchResultVO.getFooterVO(), currentMember, "search", formhash, sid);
		
		List<Map<String,String>> threadMapList = dataBaseDao.executeQuery("SELECT * FROM "+tablePre+"threads WHERE tid IN ("+index.get("tids")+") AND displayorder>='0' ORDER BY dateline DESC LIMIT "+start_limit+", "+waptpp);
		
		List<ThreadInfo> threadInfoList = searchResultVO.getThreadInfoList();
		int number = start_limit;
		if(threadMapList!=null && threadMapList.size()>0){
			for(Map<String,String> thread : threadMapList){
				ThreadInfo threadInfo = searchResultVO.geThreadInfo();
				threadInfo.setTid(thread.get("tid"));
				threadInfo.setSubject(Common.cutstr(thread.get("subject"), 24, null));
				threadInfo.setNumber((++number)+"");
				threadInfo.setViews(thread.get("views"));
				threadInfo.setReplies(thread.get("replies"));
				threadInfoList.add(threadInfo);
			}
		}
		searchResultVO.setMultipage(wapmulti(searchnum, waptpp, page, response.encodeURL("index.jsp?action=search&amp;searchid="+searchid+"&amp;do=submit&amp;sid="+sid)));
		
		return searchResultVO;
	}
	
	
	public StatsVO getStatsVO(HttpServletRequest request,Map<String,String> settingMap,Members currentMember,String formhash,String sid){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		StatsVO statsVO = new StatsVO();
		
		setFooterVO(request, settingMap, statsVO.getFooterVO(), currentMember, "stats", formhash, sid);
		setHeaderVO(statsVO.getHeaderVO(), settingMap.get("bbname"));
		
		String totalmembers = settingMap.get("totalmembers");
		statsVO.setMembers(totalmembers);
		List<Map<String,String>> tempMapList = dataBaseDao.executeQuery("SELECT SUM(threads) AS threads, SUM(posts) AS posts FROM "+tablePre+"forums WHERE status>0");
		if(tempMapList!=null && tempMapList.size()>0){
			Map<String,String> tempMap = tempMapList.get(0);
			statsVO.setPosts(tempMap.get("posts"));
			statsVO.setThreads(tempMap.get("threads"));
		}else{
			statsVO.setPosts("0");
			statsVO.setThreads("0");
		}
		return statsVO;
	}
	
	public PmVO getPmVO(HttpServletRequest request,Map<String,String> settingMap,Members currentMember,String formhash,String sid,int jsprun_uid){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		PmVO pmVO = new PmVO();
		
		setFooterVO(request, settingMap, pmVO.getFooterVO(), currentMember, "pm", formhash, sid);
		setHeaderVO(pmVO.getHeaderVO(), settingMap.get("bbname"));
		
		List<Map<String,String>> tempMapList = dataBaseDao.executeQuery("SELECT COUNT(*) AS num, new FROM "+tablePre+"pms WHERE msgtoid='"+jsprun_uid+"' AND folder='inbox' GROUP BY new='0'");
		
		int num_unread = 0;
		int num_read = 0;
		if(tempMapList!=null && tempMapList.size()>0){
			for(Map<String,String> tempMap : tempMapList){
				if(tempMap.get("new").equals("0")){
					num_read = Integer.parseInt(tempMap.get("num"));
				}else{
					num_unread = Integer.parseInt(tempMap.get("num"));
				}
			}
		}
		
		pmVO.setNum_all((num_unread+num_read)+"");
		pmVO.setNum_unread(num_unread+"");
		
		return pmVO;
	}
	
	public PmListVO getPmListVO(HttpServletRequest request,HttpServletResponse response,Map<String,String> settingMap,Members currentMember,String formhash,String sid,int jsprun_uid,String unreadFR,String pageString,String dow){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		PmListVO pmListVO = new PmListVO();
		
		setFooterVO(request, settingMap, pmListVO.getFooterVO(), currentMember, "pm", formhash, sid);
		setHeaderVO(pmListVO.getHeaderVO(), settingMap.get("bbname"));
		
		
		int waptpp = Integer.parseInt(settingMap.get("waptpp"));
		
		String unreadadd = unreadFR==null? "" : "AND new>'0'";
		String pageadd = unreadFR == null? "" : "&amp;unread=yes";
		int page = pageString == null ? 0 : Integer.parseInt(pageString);
		
		page = Math.max(1, page);
		int start_limit = (page-1)*waptpp ;
		int number = start_limit;
		int totalpms = 0;
		
		List<Map<String,String>> pmsMapList = dataBaseDao.executeQuery("SELECT COUNT(*) AS cnt FROM "+tablePre+"pms WHERE msgtoid='"+jsprun_uid+"' AND folder='inbox' "+unreadadd);
		if(pmsMapList==null || pmsMapList.size()==0){
			return pmListVO;
		}else{
			totalpms = Integer.parseInt(pmsMapList.get(0).get("cnt"));
		}
		
		pmsMapList = dataBaseDao.executeQuery("SELECT pmid, new, msgfrom, subject, dateline FROM "+tablePre+"pms " +
				"WHERE msgtoid='"+jsprun_uid+"' AND folder='inbox' "+unreadadd+" " +
				"ORDER BY dateline DESC " +
				"LIMIT "+start_limit+", "+waptpp);
		
		if(pmsMapList!=null && pmsMapList.size()>0){
			List<PmInfo> pmInfoList = pmListVO.getPmInfoList();
			String wapdateformat = settingMap.get("wapdateformat");
			String timeformat = settingMap.get("timeformat");
			
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat(wapdateformat+" "+timeformat);
			
			for(Map<String,String> tempMap : pmsMapList){
				PmInfo pmInfo = pmListVO.getPmInfo();
				pmInfo.setPmid(tempMap.get("pmid"));
				pmInfo.setNumber(++number);
				pmInfo.setUnread(unreadFR==null && !tempMap.get("new").equals("0"));
				pmInfo.setSubject(Common.cutstr(tempMap.get("subject"), 30, null));
				pmInfo.setMsgfrom(tempMap.get("msgfrom"));
				pmInfo.setDateline(simpleDateFormat.format(Long.parseLong(tempMap.get("dateline"))*1000L));
				
				pmInfoList.add(pmInfo);
			}
		}
		String indexEncode = response.encodeURL("index.jsp");
		String wapmulti = wapmulti(totalpms, waptpp, page, indexEncode+"?action=pm&amp;do="+dow+pageadd);
		pmListVO.setWapmulti(wapmulti);
		
		return pmListVO;
	}
	
	
	public PmViewVO getPmViewVO(HttpServletRequest request,Map<String,String> settingMap,Members currentMember,String formhash,String sid,String pmid,int jsprun_uid){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		PmViewVO pmViewVO = new PmViewVO();
		setFooterVO(request, settingMap, pmViewVO.getFooterVO(), currentMember, "pm", formhash, sid);
		setHeaderVO(pmViewVO.getHeaderVO(), settingMap.get("bbname"));
		
		List<Map<String,String>> pmsMapList = dataBaseDao.executeQuery("SELECT * FROM "+tablePre+"pms WHERE pmid='"+pmid+"' AND msgtoid='"+jsprun_uid+"' AND folder='inbox'");
		if(pmsMapList == null || pmsMapList.size()==0){
			return pmViewVO;
		}else{
			pmViewVO.setExistPm(true);
		}
		
		String wapdateformat = settingMap.get("wapdateformat");
		String timeformat = settingMap.get("timeformat");
		
		
		Map<String,String> pm = pmsMapList.get(0);
		pmViewVO.setSubject(pm.get("subject"));
		pmViewVO.setMsgfrom(pm.get("msgfrom"));
		pmViewVO.setMessage(pm.get("message"));
		pmViewVO.setDateline(new SimpleDateFormat(wapdateformat+" "+timeformat).format(Long.parseLong(pm.get("dateline"))*1000L));
		pmViewVO.setPmid(pmid);
		dataBaseDao.execute("UPDATE "+tablePre+"pms SET new='0' WHERE pmid='"+pmid+"'");
		
		return pmViewVO;
	}
	
	
	public PmSendVO getPmSendVO(HttpServletRequest request,Map<String,String> settingMap,Members currentMember,String formhash,String sid,String pmid,int jsprun_uid){
		DataBaseDao dataBaseDao = (DataBaseDao)BeanFactory.getBean("dataBaseDao");
		
		PmSendVO pmSendVO = new PmSendVO();
		
		setFooterVO(request, settingMap, pmSendVO.getFooterVO(), currentMember, "pm", formhash, sid);
		setHeaderVO(pmSendVO.getHeaderVO(), settingMap.get("bbname"));
		
		pmSendVO.setSid(sid);
		pmSendVO.setFormhash(formhash);
		
		if(pmid!=null){
			List<Map<String,String>> tempMapList = dataBaseDao.executeQuery("SELECT msgfrom, subject FROM "+tablePre+"pms WHERE pmid='"+pmid+"' AND msgtoid='"+jsprun_uid+"' AND folder='inbox'");
			if(tempMapList!=null && tempMapList.size()>0){
				Map<String,String> tempMap = tempMapList.get(0);
				pmSendVO.setMsgfrom(tempMap.get("msgfrom"));
				pmSendVO.setSubject(tempMap.get("subject"));
			}
		}
		
		return pmSendVO;
	}
	private String wapmulti(int num, int perpage, int curpage, String mpurl){
		String multipage = "";
		mpurl += mpurl.contains("?") ? "&amp;" : "?";
		if(num > perpage){
			int page = 3;
			int offset = 2;
			int from = 0;
			int to = 0;
			int realpages = (int)Math.ceil(num/perpage);
			int pages = realpages;
			if(page > pages){
				from = 1;
				to = pages;
			}else{
				from = curpage - offset;
				to = from + page -1;
				if(from < 1){
					to = curpage + 1 - from;
					from = 1;
					if(to - from < page){
						to = page;
					}
				}else if(to > pages){
					from = pages - page + 1;
					to = pages;
				}
			}
			multipage = (curpage - offset > 1 && pages > page ? "<a href=\""+mpurl+"page=1\">首页</a>" : "")+
			(curpage > 1 ? " <a href=\""+mpurl+"page="+(curpage - 1)+"\">上页</a>" : "");
			for(int i = from; i< to ;i++){
				multipage += i == curpage ? " "+i : " <a href=\""+mpurl+"page="+i+"\">"+i+"</a>";
			}
			multipage += (curpage < pages ? " <a href=\""+mpurl+"page="+(curpage + 1)+"\">下页</a>" : "")+
			(to < pages ? " <a href=\""+mpurl+"page="+pages+"\">尾页</a>" : "");
			
			multipage += realpages > page ?
					"<br />"+curpage+"/"+realpages+"页<input type=\"text\" name=\"page\" size=\"2\" emptyok=\"true\" /> "+
					"<anchor title=\"submit\">翻页<go method=\"post\" href=\""+mpurl+"\">"+
					"<postfield name=\"page\" value=\"$(page)\" />"+
					"</go></anchor>" : "";
		}
		return multipage;
	}
	private void setHeaderVO(HeaderVO headerVO,String title){
		headerVO.setTitle(title);
	}
	
	private void setFooterVO(HttpServletRequest request,Map<String,String> settingMap,FooterVO footerVO,Members currentMember,String action,String formhash,String sid){
		HttpSession session = request.getSession();
		int timestamp=(Integer)request.getAttribute("timestamp");
		float timeoffset=(Float)session.getAttribute("timeoffset");
		boolean isLogin = currentMember!=null; 
		String userName = isLogin ? currentMember.getUsername() : "";
		boolean isNotHome = action!=null&&!action.equals("home");
		String wapdateformat = settingMap.get("wapdateformat");
		String timeformat = settingMap.get("timeformat");
		if(timeformat.equals("1")){
			timeformat = "hh:mm a";
		}else{
			timeformat = "HH:mm";
		}
		String time = Common.gmdate(new SimpleDateFormat(wapdateformat+" "+timeformat), timestamp, timeoffset);
		
		footerVO.setSid(sid);
		footerVO.setFormhash(formhash);
		footerVO.setIsLogin(isLogin);
		footerVO.setIsNotHome(isNotHome);
		footerVO.setTime(time);
		footerVO.setUserName(userName);
		Common.updatesession(request, settingMap);
		
	}
	
	private void setMessageVO(HttpServletRequest request,HttpServletResponse response,Map<String,String> settingMap,MessageVO messageVO,String message,Map<String,String> forwardMap,String headerVO_title,Members currentMember,String action,String footerVO_formhash,String sid){
		HeaderVO headerVO = messageVO.getHeaderVO();
		FooterVO footerVO = messageVO.getFooterVO();
		messageVO.setMessage(message);
		
		if(forwardMap!=null){
			messageVO.setForward(true);
			messageVO.setForwardLink(response.encodeURL(forwardMap.get("link")));
			messageVO.setForwardTitle(forwardMap.get("title"));
		}
		
		setHeaderVO(headerVO, headerVO_title);
		setFooterVO(request, settingMap, footerVO, currentMember, action, footerVO_formhash,sid);
	}
	private String wapcode(String targetString){
		targetString = targetString.replace("&", "&amp;").replace("\"", "&quot;").replace("<", "&lt;").replace(">", "&gt;");
		String regex = "\\[hide\\](.+?)\\[\\/hide\\]";
		targetString = targetString.replaceAll(regex, "** 本内容隐藏 **");
		for(int i = 0;i<5;i++){
			targetString = targetString.replaceAll("\\[(\\w+)[^\\]]*?\\](.*?)\\[\\/\\\\1\\]", "\\2");
		}
		return targetString;
	}
	
	private String wapcutstr(String targetString , int length){
		int tarLen = 0;
		try {
			tarLen = targetString.getBytes("GBK").length;
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		if(tarLen>length){
			int targetLen = targetString.length();
			int temp = 0;
			StringBuffer strcut = new StringBuffer();
			for(int i = 0;i<targetLen;i++){
				if(temp==length-3){
					break;
				}else{
					temp++;
				}
				char tempC = targetString.charAt(i);
				strcut.append(tempC);
				if(tempC<0||tempC>127){
					temp++;
				}
			}
			return strcut.toString();
		}else{
			return targetString;
		}
	}
	
	private String substr(String targetString,int offset){
		int stringLen = targetString.length();
		int sign = 0;
		int i = 0;
		for(;i<stringLen;i++){
			if(sign>=offset){
				break;
			}else{
				if(sign>998){
				}
			}
			sign ++;
			char temp = targetString.charAt(i);
			if(temp<0 || temp>127){
				sign ++;
			}
		}
		return targetString.substring(i);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -