📄 wapservice.java
字号:
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&searchid="+searchid+"&do=submit&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? "" : "&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&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("?") ? "&" : "?";
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("&", "&").replace("\"", """).replace("<", "<").replace(">", ">");
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 + -