Quellcode durchsuchen

Merge remote-tracking branch 'origin/optimise' into optimise-0108

hangb vor 8 Jahren
Ursprung
Commit
300a323d35

+ 2 - 0
jpress-model/src/main/java/io/jpress/model/Content.java

@@ -352,6 +352,8 @@ public class Content extends BaseContent<Content> implements ISortModel<Content>
 		String baseUrl = null;
 		if (Consts.MODULE_PAGE.equals(this.getModule())) {
 			baseUrl = PageRouter.getRouter(this);
+		} else if (Consts.MODULE_MENU.equals(this.getModule())) {
+			baseUrl = PageRouter.getMenuRouter(this);
 		} else {
 			baseUrl = ContentRouter.getRouter(this);
 		}

+ 4 - 1
jpress-model/src/main/java/io/jpress/model/query/ContentQuery.java

@@ -558,7 +558,7 @@ public class ContentQuery extends JBaseQuery {
 		buildOrderBy(orderBy, sql);
 
 		sql.append(" LIMIT ?, ?");
-		params.add(page - 1);
+		params.add((page - 1) * pagesize);
 		params.add(pagesize);
 
 		return DAO.find(sql.toString(), params.toArray());
@@ -911,4 +911,7 @@ public class ContentQuery extends JBaseQuery {
 		return DAO.find("SELECT DISTINCT author from content WHERE module='" +module+ "'");
 	}
 
+	public List<Content> findListByModule(String module) {
+		return DAO.doFind("module = ? order by id desc", module);
+	}
 }

+ 8 - 3
jpress-model/src/main/java/io/jpress/model/router/PageRouter.java

@@ -15,14 +15,14 @@
  */
 package io.jpress.model.router;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import io.jpress.Consts;
 import io.jpress.model.Content;
 import io.jpress.model.query.ContentQuery;
 import io.jpress.utils.StringUtils;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 public class PageRouter extends RouterConverter {
 
 	public static String getRouter(Content content) {
@@ -51,4 +51,9 @@ public class PageRouter extends RouterConverter {
 		return null;
 	}
 
+	//获取content中module为menu的url
+	public static String getMenuRouter(Content content) {
+		String url = SLASH + content.getText();
+		return url;
+	}
 }

+ 0 - 11
jpress-web-admin/src/main/java/io/jpress/admin/controller/_ContentController.java

@@ -525,9 +525,6 @@ public class _ContentController extends JBaseCRUDController<Content> {
 		}
 
 		String pushResult = null;
-		logger.warn("warn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
-				"Content save Log:" + "cotentId=" + content.getId() + ", contentSlug=" + content.getSlug() + ", contentStatus=" + content.getStatus());
-
 		if ("uuhelper".equals(content.getModule()) && Content.STATUS_NORMAL.equals(content.getStatus())) {
 			pushResult = pushUuHelper(content);
 		}
@@ -539,8 +536,6 @@ public class _ContentController extends JBaseCRUDController<Content> {
 	}
 
 	private String pushUuHelper(Content content) {
-		logger.warn("warn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
-				"pushUuHelper Log:" + "cotentId=" + content.getId() + ", contentSlug=" + content.getSlug() + ", contentStatus=" + content.getStatus());
 		String result = "";
 		Map<String, String> map = new HashMap<>();
 		String requestUrlMessage = this.getRequest().getScheme() +"://" + this.getRequest().getServerName() + ":" + this.getRequest().getServerPort();
@@ -582,19 +577,13 @@ public class _ContentController extends JBaseCRUDController<Content> {
 		try {
 			if (imageUrl == null) {
 				result = "软文推送失败,请选择一张图片";
-				logger.warn("warn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
-						"推送结果:" + result);
 			} else {
 				String response = HttpUtils.post(url);
 				result = "软文推送成功";
-				logger.warn("warn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
-						"推送结果:" + result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
 			result = "软文推送失败,联系管理员检查接口";
-			logger.warn("warn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
-					"推送结果:" + result);
 		} finally {
 			return result;
 		}

+ 9 - 0
jpress-web-core/src/main/java/io/jpress/core/BaseFrontController.java

@@ -57,6 +57,15 @@ public class BaseFrontController extends JBaseController {
 		if (StringUtils.isNotEmpty(name)) {
 			fileName = name.substring(0,name.lastIndexOf("."));
 		}
+
+		//对于分类页情况处理
+		if (fileName.startsWith("taxonomy")) {
+			String[] fileNameArr = fileName.split("_");
+			if (fileNameArr.length > 2) {
+				fileName = fileNameArr[0] + "_" + fileNameArr[1];
+			}
+		}
+
 		if (fileNames.contains(fileName)) {
 			String webName = OptionQuery.me().findValue(fileName+"_web_name");
 			if (StringUtils.isNotEmpty(webName)) {

+ 9 - 10
jpress-web-core/src/main/java/io/jpress/core/render/freemarker/BasePaginateTag.java

@@ -15,14 +15,13 @@
  */
 package io.jpress.core.render.freemarker;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import com.jfinal.plugin.activerecord.Page;
-
 import io.jpress.model.query.OptionQuery;
 import io.jpress.utils.StringUtils;
 
+import java.util.ArrayList;
+import java.util.List;
+
 public abstract class BasePaginateTag extends JTag {
 
 	final Page<?> page;
@@ -59,20 +58,20 @@ public abstract class BasePaginateTag extends JTag {
 			return;
 		}
 
-		int startPage = currentPage - 4;
+		int startPage = currentPage - 3;
 		if (startPage < 1) {
 			startPage = 1;
 		}
-		int endPage = currentPage + 4;
+		int endPage = currentPage + 3;
 		if (endPage > totalPage) {
 			endPage = totalPage;
 		}
 
-		if (currentPage <= 8) {
+		if (currentPage <= 6) {
 			startPage = 1;
 		}
 
-		if ((totalPage - currentPage) < 8) {
+		if ((totalPage - currentPage) < 6) {
 			endPage = totalPage;
 		}
 
@@ -83,7 +82,7 @@ public abstract class BasePaginateTag extends JTag {
 			pages.add(new PaginateItem(previousClass, getUrl(currentPage - 1), previousText));
 		}
 
-		if (currentPage > 8 && !onlyShowPreviousAndNext) {
+		if (currentPage > 6 && !onlyShowPreviousAndNext) {
 			pages.add(new PaginateItem("", getUrl(1), "1"));
 			pages.add(new PaginateItem("", getUrl(2), "2"));
 			pages.add(new PaginateItem(disabledClass, "javascript:;", "..."));
@@ -99,7 +98,7 @@ public abstract class BasePaginateTag extends JTag {
 			}
 		}
 
-		if ((totalPage - currentPage) >= 8 && !onlyShowPreviousAndNext) {
+		if ((totalPage - currentPage) >= 6 && !onlyShowPreviousAndNext) {
 			pages.add(new PaginateItem(disabledClass, "javascript:;", "..."));
 			pages.add(new PaginateItem("", getUrl(totalPage - 1), totalPage - 1));
 			pages.add(new PaginateItem("", getUrl(totalPage), totalPage));

+ 98 - 15
jpress-web-front/src/main/java/io/jpress/front/controller/SitemapController.java

@@ -15,46 +15,113 @@
  */
 package io.jpress.front.controller;
 
-import java.math.BigInteger;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
 import com.jfinal.core.Controller;
-
+import com.jfinal.log.Log;
 import io.jpress.Consts;
 import io.jpress.core.cache.ActionCache;
 import io.jpress.model.Content;
-import io.jpress.model.Taxonomy;
 import io.jpress.model.query.ContentQuery;
 import io.jpress.model.query.OptionQuery;
-import io.jpress.model.query.TaxonomyQuery;
 import io.jpress.router.RouterMapping;
 import io.jpress.utils.DateUtils;
 import io.jpress.utils.StringUtils;
 
+import java.io.*;
+import java.math.BigInteger;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
 @RouterMapping(url = "/sitemap")
 public class SitemapController extends Controller {
 	private static final String contentType = "text/xml; charset=" + Consts.CHARTSET_UTF8;
 
 	static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:ss:mm'Z'");
 
+	private Log logger = Log.getLog(SitemapController.class);
+
 	@ActionCache
 	public void index() {
 		StringBuilder xmlBuilder = new StringBuilder();
-		buildSitemapHeader(xmlBuilder);
+		buildUrlsetHeader(xmlBuilder);
 		String domain = OptionQuery.me().findValue("web_domain");
 		if (StringUtils.isBlank(domain))
 			domain = "";
 
-		buildSitemap(xmlBuilder, domain + "/sitemap/site", format.format(new Date()));
-		List<Taxonomy> taxonomys = TaxonomyQuery.me().findAll();
-		if (taxonomys != null && !taxonomys.isEmpty()) {
-			for (Taxonomy t : taxonomys) {
-				buildSitemap(xmlBuilder, domain + "/sitemap/taxonomy/" + t.getId(), format.format(new Date()));
+//		buildSitemap(xmlBuilder, domain + "/sitemap/site", format.format(new Date()));
+//		List<Taxonomy> taxonomys = TaxonomyQuery.me().findAll();
+//		if (taxonomys != null && !taxonomys.isEmpty()) {
+//			for (Taxonomy t : taxonomys) {
+//				buildSitemap(xmlBuilder, domain + "/sitemap/taxonomy/" + t.getId(), format.format(new Date()));
+//			}
+//		}
+
+		int contentsSize = 0;
+		int page = 1;
+		int pageSize = 10;
+		do {
+			List<Content> contents = ContentQuery.me().findListInNormal(page, pageSize);
+
+			if (contents != null && !contents.isEmpty()) {
+				for (Content c : contents) {
+					if (c.getModified() == null) {
+						continue;
+					}
+
+					//去轮播图等图片相关content
+					if (c.getModule().contains("carousel")) {
+						continue;
+					}
+
+					String changefreq = "daily";
+					String priority = "1.0";
+					int dayDiff = DateUtils.getDayDiff(new Date(), c.getModified());
+					if (dayDiff > 30) {
+						changefreq = "monthly";
+						priority = "0.3";
+					} else if (dayDiff > 7) {
+						changefreq = "weekly";
+						priority = "0.9";
+					}
+
+					buildUrl(xmlBuilder, domain + c.getUrl(), format.format(c.getModified()), changefreq, priority);
+				}
+			}
+
+			contentsSize = contents.size();
+			page ++;
+		} while (contentsSize == pageSize);
+
+		//补充菜单页
+		List<Content> contentMenus = ContentQuery.me().findListByModule("menu");
+
+		if (contentMenus != null && !contentMenus.isEmpty()) {
+			for (Content c : contentMenus) {
+				if (c.getModified() == null) {
+					continue;
+				}
+
+				String changefreq = "daily";
+				String priority = "1.0";
+				int dayDiff = DateUtils.getDayDiff(new Date(), c.getModified());
+				if (dayDiff > 30) {
+					changefreq = "monthly";
+					priority = "0.3";
+				} else if (dayDiff > 7) {
+					changefreq = "weekly";
+					priority = "0.9";
+				}
+
+				buildUrl(xmlBuilder, domain + c.getUrl(), format.format(c.getModified()), changefreq, priority);
 			}
 		}
-		buildSitemapFooter(xmlBuilder);
+
+		buildUrlsetFooter(xmlBuilder);
+		try {
+			createSitemap(xmlBuilder);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
 		renderText(xmlBuilder.toString(), contentType);
 	}
 
@@ -154,4 +221,20 @@ public class SitemapController extends Controller {
 		xmlBuilder.append("</url>");
 	}
 
+	private void createSitemap(StringBuilder xmlBuilder) throws IOException {
+		String path = "sitemap.txt";
+		File file = new File(path);
+		if(!file.exists()){
+			file.createNewFile();
+		}
+
+		// write
+		OutputStreamWriter outputStreamWriterwrite = new OutputStreamWriter(new FileOutputStream(file), "GB2312");
+		BufferedWriter writer = new BufferedWriter(outputStreamWriterwrite);
+		writer.write(xmlBuilder.toString());
+
+		writer.flush();
+		writer.close();
+		outputStreamWriterwrite.close();
+	}
 }

+ 84 - 0
jpress-web-template-usoftchina/src/main/webapp/templates/usoftchina/content_news.html

@@ -2,6 +2,19 @@
 <#macro script_import>
 	<script src="${CPATH}/counter?cid=${content.id!}"></script>
 </#macro>
+<#macro script>
+$("dev img").click(function(event){
+	var src = event.target.src, box = $('#image-box');
+	box.show();
+	box.find('img').attr('src', src);
+	box.find('a').click(function () {
+		box.hide();
+	});
+	box.dblclick(function () {
+		box.hide();
+	});
+});
+</#macro>
 <#macro css>
 </#macro>
 <@layout>
@@ -177,6 +190,65 @@
 		margin: auto;
 		margin-top: 40px;
 	}
+
+	/* 预览框 */
+	#image-box .x-floating-wrap {
+		position: fixed;
+		z-index: 99998;
+		background: #000;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		opacity: 0.5;
+	}
+	#image-box .x-floating {
+		position: fixed;
+		z-index: 99999;
+		width: 1200px;
+		height: 600px;
+		top: 50%;
+		left: 50%;
+		margin-left: -600px;
+		margin-top: -300px;
+		line-height: 560px;
+		text-align: center;
+		vertical-align: middle;
+	}
+	#image-box .x-floating img {
+		margin: auto auto;
+		max-width: 100% !important;
+		max-height: 600px !important;
+		-webkit-user-select: none;
+		-moz-user-select: none;
+		-ms-user-select: none;
+		user-select: none
+	}
+
+	#image-box .x-close-wrap {
+		position: fixed;
+		top: 0;
+		right: 0;
+		z-index: 100000;
+		width: 120px;
+		height: 120px;
+		margin: -60px -60px 0 0;
+		border-radius: 100%;
+		background: #000;
+		opacity: .3
+	}
+
+	#image-box .x-close-wrap a {
+		position: absolute;
+		left: 25px;
+		bottom: 25px;
+		font-size: 42px;
+		color: #fff
+	}
+
+	#image-box .x-close-wrap:hover {
+		opacity: .7
+	}
 </style>
 <section id="banner" class="banner">
 	<div class="container">
@@ -256,5 +328,17 @@
 				</div>
 			</div>
 		</div>
+
+		<!--查看大图  怎么让子元素铺满整个屏幕  在不影响父元素的情况下-->
+		<div id="image-box" style="display: none;">
+			<div class="x-close-wrap" title="关闭">
+				<a href="javascript:void(0);">&times;</a>
+			</div>
+			<div class="x-floating-wrap"></div>
+			<div class="x-floating">
+				<img/>
+			</div>
+		</div>
+	</div>
 </section>
 </@layout>

+ 14 - 4
jpress-web-template-usoftchina/src/main/webapp/templates/usoftchina/page_solutions.html → jpress-web-template-usoftchina/src/main/webapp/templates/usoftchina/taxonomy_schemes.html

@@ -6,6 +6,16 @@
 			$(this).addClass('active').siblings().removeClass('active');
 			$('.solution-icon-list').eq($index).addClass('show').siblings().removeClass('show');
 		});
+
+		<#if REQUEST.requestURI?contains('enterprise')>
+			$index = 0;
+        <#elseif REQUEST.requestURI?contains('industry')>
+			$index = 1;
+        <#elseif REQUEST.requestURI?contains('territory')>
+			$index = 2;
+		</#if>
+
+		$('.solution-icon-list').eq($index).addClass('show').siblings().removeClass('show');
 	});
 </#macro>
 <#macro css>
@@ -426,15 +436,15 @@
 	<div class="section section-2">
 		<div class="content">
 			<div class="bread">
-				<span class="current">当前位置:</span><a	href="">首页 &gt; </a><span class="ways">解决方案</span>
+				<span class="current">当前位置:</span><a href="">首页 &gt; </a><span class="ways">解决方案</span>
 			</div>
 			<div class="solution-list">
 				<div class="left">
 					<div class="left-nav">
 						<ul class="navBar">
-							<li class="active"><span>行业应用</span></li>
-							<li><span>领域应用</span></li>
-							<li><span>企业应用</span></li>
+							<li class<#if REQUEST.requestURI?contains('enterprise')>="active"</#if>><span>企业应用</span></li>
+							<li class<#if REQUEST.requestURI?contains('industry')>="active"</#if>><span>行业应用</span></li>
+							<li class<#if REQUEST.requestURI?contains('territory')>="active"</#if>><span>领域应用</span></li>
 						</ul>
 					</div>
 					<div class="contact">