📄 sitemapservice.java
字号:
/*
* Created on 2007-10-16
* Last modified on 2007-10-16
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.service.util;
import java.io.IOException;
import java.util.List;
import org.apache.log4j.Logger;
import com.yeqiangwei.club.param.TopicParameter;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.topic.TopicService;
import com.yeqiangwei.club.service.model.TopicModel;
import com.yeqiangwei.io.File;
import com.yeqiangwei.util.ArithHelper;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.Validator;
public class SitemapService {
private static final Logger logger = Logger.getLogger(SitemapService.class);
public static void main(String[] args){
com.yeqiangwei.club.dao.hibernate.ConnectionManager.init();
SitemapService sitemap = new SitemapService();
sitemap.create();
com.yeqiangwei.club.dao.hibernate.ConnectionManager.closeSession();
}
public void create(){
StringBuffer sm = new StringBuffer();
sm.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sm.append("<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">");
sm.append("<url>");
sm.append("<loc>");
sm.append(this.getBasicInfoService().findOnly().getUrl());
sm.append("/club/latestTopics.jsp");
sm.append("</loc>");
sm.append("<lastmod>");
sm.append(this.anadate(FormatDateTime.now()));
sm.append("</lastmod>");
sm.append("<changefreq>hourly</changefreq>");
sm.append("<priority>0.9</priority>");
sm.append("</url>");
sm.append("<url>");
sm.append("<loc>");
sm.append(this.getBasicInfoService().findOnly().getUrl());
sm.append("/club/latestReplys.jsp");
sm.append("</loc>");
sm.append("<lastmod>");
sm.append(this.anadate(FormatDateTime.now()));
sm.append("</lastmod>");
sm.append("<changefreq>hourly</changefreq>");
sm.append("<priority>0.8</priority>");
sm.append("</url>");
TopicParameter param = new TopicParameter();
param.setPage(3);
param.setRows(48000);
param.setIsDeleted(false);
List<TopicModel> list = this.getTopicService().findByParameter(param);
if(!Validator.isEmpty(list)){
for(int i=0; i<list.size(); i++){
sm.append(append(list.get(i)));
System.out.println(i);
}
}
sm.append("</urlset>");
try {
File.createFile(this.getBasicInfoService().findOnly().getSitePath()+"sitemap.xml"
, sm.toString(), "utf-8", true);
} catch (IOException e) {
logger.error(e.toString());
}
}
public double getPriority(int p){
double i = (double)(Math.random()*(p));
double d = ArithHelper.div(i,10,1);
if(d==0){
d = 0.5;
}
return d;
}
public String append(TopicModel model){
StringBuffer sb = new StringBuffer();
sb.append("<url>");
sb.append("<loc>");
sb.append(this.getBasicInfoService().findOnly().getUrl());
sb.append("/club/f");
sb.append(model.getForumId());
sb.append("fp1t");
sb.append(model.getTopicId());
sb.append(".html");
sb.append("</loc>");
sb.append("<lastmod>");
sb.append(this.anadate(model));
sb.append("</lastmod>");
sb.append("<changefreq>daily</changefreq>");
sb.append("<priority>");
sb.append(this.getPriority(9));
sb.append("</priority>");
sb.append("</url>");
sb.append("\r\n");
return sb.toString();
}
public String anadate(TopicModel model){
return this.anadate(model.getLastReplyDateTime());
}
public String anadate(long l){
String temp = String.valueOf(l);
if(temp.length()<8){
temp = String.valueOf(FormatDateTime.now());
}
String y = temp.substring(0,4);
String m = temp.substring(4,6);
String d = temp.substring(6,8);
return y+"-"+m+"-"+d;
}
public BasicInfoService getBasicInfoService() {
return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
}
private TopicService getTopicService() {
return ServiceWrapper.<TopicService>getSingletonInstance(ServiceLocator.TOPIC);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -