first commit
This commit is contained in:
158
comm/News/WebContent/news_add.jsp
Executable file
158
comm/News/WebContent/news_add.jsp
Executable file
@@ -0,0 +1,158 @@
|
||||
<%@ page language="java" pageEncoding="utf-8"%>
|
||||
<%@ include file="include/pagetop.jsp"%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<%@ include file="include/head.jsp"%>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="include/loading.jsp"%>
|
||||
<%@ include file="include/top.jsp"%>
|
||||
<%@ include file="include/menu_left.jsp"%>
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTENT -->
|
||||
<div class="content">
|
||||
|
||||
|
||||
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTAINER -->
|
||||
<div class="container-default">
|
||||
<h3>新闻管理
|
||||
</h3>
|
||||
<%@ include file="include/alert.jsp"%>
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START queryForm -->
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_LIST")'>
|
||||
<form action="<%=basePath%>normal/adminNewsAction!list.action"
|
||||
method="post" id="queryForm">
|
||||
<input type="hidden" name="pageNo" id="pageNo"
|
||||
value="${param.pageNo}">
|
||||
</form>
|
||||
</s:if>
|
||||
<!-- END queryForm -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-title">
|
||||
添加新闻
|
||||
<ul class="panel-tools">
|
||||
<li><a class="icon minimise-tool"><i
|
||||
class="fa fa-minus"></i></a></li>
|
||||
<li><a class="icon expand-tool"><i class="fa fa-expand"></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_ADD")'>
|
||||
<form class="form-horizontal"
|
||||
action="<%=basePath%>normal/adminNewsAction!add.action"
|
||||
method="post" name="mainForm" id="mainForm">
|
||||
<s:hidden name="id" id="id"></s:hidden>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">标题</label>
|
||||
<div class="col-sm-10">
|
||||
<s:textfield id="title" name="title" cssClass="form-control "
|
||||
placeholder="标题" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">语言</label>
|
||||
<div class="col-sm-2">
|
||||
<s:select id="language" cssClass="form-control "
|
||||
name="language" list="languageMap"
|
||||
listKey="key" listValue="value" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">是否置顶</label>
|
||||
<div class="col-sm-2">
|
||||
|
||||
<s:select id="index" cssClass="form-control "
|
||||
name="index" list="#{true:'置顶',false:'不置顶'}"
|
||||
listKey="key" listValue="value" value="index" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-11">
|
||||
<div id="summernote"></div>
|
||||
</div>
|
||||
<s:hidden name="content" id="content"></s:hidden>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<a href="javascript:goUrl(<s:property value="pageNo" />)"
|
||||
class="btn">取消</a> <a href="javascript:submit()"
|
||||
class="btn btn-default">保存</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</s:if>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- END CONTAINER -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
<%@ include file="include/footer.jsp"%>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- End Content -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%@ include file="include/js.jsp"%>
|
||||
<script src="<%=basePath%>js/util.js" type="text/javascript"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=basePath%>js/summernote/summernote.min.js"></script>
|
||||
|
||||
<script>
|
||||
/* SUMMERNOTE*/
|
||||
$(document).ready(function() {
|
||||
$('#summernote').summernote();
|
||||
var content=$("#content").val();
|
||||
$('#summernote').code(content)
|
||||
});
|
||||
</script>
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_ADD")'>
|
||||
<script type="text/javascript">
|
||||
function submit() {
|
||||
swal({
|
||||
title : "是否保存?",
|
||||
text : "",
|
||||
type : "warning",
|
||||
showCancelButton : true,
|
||||
confirmButtonColor : "#DD6B55",
|
||||
confirmButtonText : "确认",
|
||||
closeOnConfirm : false
|
||||
}, function() {
|
||||
var sHTML = $('#summernote').code();
|
||||
$("#content").val(sHTML);
|
||||
document.getElementById("mainForm").submit();
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
</s:if>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
222
comm/News/WebContent/news_list.jsp
Executable file
222
comm/News/WebContent/news_list.jsp
Executable file
@@ -0,0 +1,222 @@
|
||||
<%@ page language="java" pageEncoding="utf-8"%>
|
||||
<%@ include file="include/pagetop.jsp"%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<%@ include file="include/head.jsp"%>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="include/loading.jsp"%>
|
||||
<%@ include file="include/top.jsp"%>
|
||||
<%@ include file="include/menu_left.jsp"%>
|
||||
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTENT -->
|
||||
<div class="content">
|
||||
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTAINER -->
|
||||
<div class="container-default">
|
||||
<h3>新闻管理
|
||||
</h3>
|
||||
<%@ include file="include/alert.jsp"%>
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START queryForm -->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-title">查询条件</div>
|
||||
<div class="panel-body">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_LIST")'>
|
||||
<form class="form-horizontal"
|
||||
action="<%=basePath%>normal/adminNewsAction!list.action"
|
||||
method="post" id="queryForm">
|
||||
<s:hidden name="pageNo" id="pageNo"></s:hidden>
|
||||
<div class="col-md-12 col-lg-4">
|
||||
<fieldset>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<s:textfield id="para_title" name="para_title" cssClass="form-control " placeholder="标题"/>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-lg-4">
|
||||
<fieldset>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<s:select id="para_language" cssClass="form-control "
|
||||
name="para_language"
|
||||
list="languageMap" listKey="key"
|
||||
listValue="value" headerKey="" headerValue="所有语言"
|
||||
value="para_language" />
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-lg-2">
|
||||
<button type="submit" class="btn btn-block btn-default">确定</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</s:if>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<%-- <form class="form-horizontal"
|
||||
action="<%=basePath%>normal/adminNewsAction!list.action"
|
||||
method="post" id="queryForm">
|
||||
<input type="hidden" name="pageNo" id="pageNo"
|
||||
value="${param.pageNo}">
|
||||
</form> --%>
|
||||
<!-- END queryForm -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<!-- Start Panel -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-title">查询结果</div>
|
||||
<sec:authorize ifAnyGranted="ROLE_ROOT,ROLE_ADMIN">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_TOADD")'>
|
||||
<a href="<%=basePath%>normal/adminNewsAction!toAdd.action"
|
||||
class="btn btn-light" style="margin-bottom: 10px"><i
|
||||
class="fa fa-pencil"></i>新增新闻</a>
|
||||
</s:if>
|
||||
</sec:authorize>
|
||||
<div class="panel-body">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<td >标题</td>
|
||||
<td >是否置顶</td>
|
||||
<td >日期</td>
|
||||
<td class="col-md-2">语言</td>
|
||||
|
||||
<sec:authorize ifAnyGranted="ROLE_ROOT,ROLE_ADMIN">
|
||||
<td class="col-md-2"></td>
|
||||
</sec:authorize>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<s:iterator value="page.elements" status="stat">
|
||||
<tr>
|
||||
|
||||
<td><s:property value="title" /></td>
|
||||
<td>
|
||||
<s:if test='index_top=="Y"'>
|
||||
<span class="right label label-success">
|
||||
是
|
||||
</span>
|
||||
</s:if>
|
||||
<s:if test='index_top=="N"'>
|
||||
否
|
||||
</s:if>
|
||||
|
||||
</td>
|
||||
<td><s:date name="create_time" format="YYYY-MM-dd HH:mm:ss " /></td>
|
||||
<td class="col-md-2">
|
||||
<s:if test='language=="zh-CN"'>
|
||||
简体中文
|
||||
</s:if>
|
||||
<s:if test='language=="CN"'>
|
||||
繁体中文
|
||||
</s:if>
|
||||
<s:if test='language=="en"'>
|
||||
英语
|
||||
</s:if>
|
||||
</td>
|
||||
|
||||
|
||||
<sec:authorize ifAnyGranted="ROLE_ROOT,ROLE_ADMIN">
|
||||
<td>
|
||||
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-light">操作</button>
|
||||
<button type="button"
|
||||
class="btn btn-light dropdown-toggle"
|
||||
data-toggle="dropdown" aria-expanded="false">
|
||||
<span class="caret"></span> <span class="sr-only">Toggle
|
||||
Dropdown</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_TOUPDATE")'>
|
||||
<li><a
|
||||
href="<%=basePath%>normal/adminNewsAction!toUpdate.action?id=<s:property value="id" />">修改</a></li>
|
||||
</s:if>
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_DELETE")'>
|
||||
<li><a
|
||||
href="javascript:ondelete('<s:property value="id" />')">删除</a></li>
|
||||
</s:if>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</sec:authorize>
|
||||
</tr>
|
||||
</s:iterator>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<%@ include file="include/page_simple.jsp"%>
|
||||
<nav>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- End Panel -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- END CONTAINER -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
<%@ include file="include/footer.jsp"%>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- End Content -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
<%@ include file="include/js.jsp"%>
|
||||
|
||||
<sec:authorize ifAnyGranted="ROLE_ADMIN,ROLE_ROOT">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_DELETE")'>
|
||||
|
||||
<form action="<%=basePath%>normal/adminNewsAction!delete.action"
|
||||
method="post" id="ondelete">
|
||||
<input type="hidden" name="pageNo" id="pageNo"
|
||||
value="${param.pageNo}">
|
||||
<s:hidden name="id" id="news_id"></s:hidden>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
function ondelete(id) {
|
||||
$("#news_id").val(id);
|
||||
swal({
|
||||
title : "是否确认删除?",
|
||||
text : "",
|
||||
type : "warning",
|
||||
showCancelButton : true,
|
||||
confirmButtonColor : "#DD6B55",
|
||||
confirmButtonText : "确认",
|
||||
closeOnConfirm : false
|
||||
}, function() {
|
||||
document.getElementById("ondelete").submit();
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
</s:if>
|
||||
</sec:authorize>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
159
comm/News/WebContent/news_update.jsp
Executable file
159
comm/News/WebContent/news_update.jsp
Executable file
@@ -0,0 +1,159 @@
|
||||
<%@ page language="java" pageEncoding="utf-8"%>
|
||||
<%@ include file="include/pagetop.jsp"%>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<%@ include file="include/head.jsp"%>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="include/loading.jsp"%>
|
||||
<%@ include file="include/top.jsp"%>
|
||||
<%@ include file="include/menu_left.jsp"%>
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTENT -->
|
||||
<div class="content">
|
||||
|
||||
|
||||
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START CONTAINER -->
|
||||
<div class="container-default">
|
||||
<h3>新闻管理
|
||||
</h3>
|
||||
<%@ include file="include/alert.jsp"%>
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<!-- START queryForm -->
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_LIST")'>
|
||||
<form action="<%=basePath%>normal/adminNewsAction!list.action"
|
||||
method="post" id="queryForm">
|
||||
<input type="hidden" name="pageNo" id="pageNo"
|
||||
value="${param.pageNo}">
|
||||
</form>
|
||||
</s:if>
|
||||
<!-- END queryForm -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-title">
|
||||
添加新闻
|
||||
<ul class="panel-tools">
|
||||
<li><a class="icon minimise-tool"><i
|
||||
class="fa fa-minus"></i></a></li>
|
||||
<li><a class="icon expand-tool"><i class="fa fa-expand"></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_UPDATE")'>
|
||||
<form class="form-horizontal"
|
||||
action="<%=basePath%>normal/adminNewsAction!update.action"
|
||||
method="post" name="mainForm" id="mainForm">
|
||||
<s:hidden name="id" id="id"></s:hidden>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">标题</label>
|
||||
<div class="col-sm-10">
|
||||
<s:textfield id="title" name="title" cssClass="form-control "
|
||||
placeholder="标题" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">语言</label>
|
||||
<div class="col-sm-2">
|
||||
<s:select id="language" cssClass="form-control "
|
||||
name="language" list="languageMap"
|
||||
listKey="key" listValue="value" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-1 control-label form-label">是否置顶</label>
|
||||
<div class="col-sm-2">
|
||||
|
||||
<s:select id="index" cssClass="form-control "
|
||||
name="index" list="#{true:'置顶',false:'不置顶'}"
|
||||
listKey="key" listValue="value" value="index" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-11">
|
||||
<div id="summernote"></div>
|
||||
</div>
|
||||
<s:hidden name="content" id="content"></s:hidden>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<a href="javascript:goUrl(<s:property value="pageNo" />)"
|
||||
class="btn">取消</a> <a href="javascript:submit()"
|
||||
class="btn btn-default">保存</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</s:if>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- END CONTAINER -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
<%@ include file="include/footer.jsp"%>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- End Content -->
|
||||
<!-- //////////////////////////////////////////////////////////////////////////// -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%@ include file="include/js.jsp"%>
|
||||
<script src="<%=basePath%>js/util.js" type="text/javascript"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=basePath%>js/summernote/summernote.min.js"></script>
|
||||
|
||||
<script>
|
||||
/* SUMMERNOTE*/
|
||||
$(document).ready(function() {
|
||||
$('#summernote').summernote();
|
||||
var content=$("#content").val();
|
||||
$('#summernote').code(content)
|
||||
});
|
||||
</script>
|
||||
<s:if test='isResourceAccessible("ADMIN_NEWS_UPDATE")'>
|
||||
<script type="text/javascript">
|
||||
function submit() {
|
||||
swal({
|
||||
title : "是否保存?",
|
||||
text : "",
|
||||
type : "warning",
|
||||
showCancelButton : true,
|
||||
confirmButtonColor : "#DD6B55",
|
||||
confirmButtonText : "确认",
|
||||
closeOnConfirm : false
|
||||
}, function() {
|
||||
var sHTML = $('#summernote').code();
|
||||
$("#content").val(sHTML);
|
||||
document.getElementById("mainForm").submit();
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
</s:if>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
10
comm/News/config/spring/applicationContext-hibernate.xml
Executable file
10
comm/News/config/spring/applicationContext-hibernate.xml
Executable file
@@ -0,0 +1,10 @@
|
||||
|
||||
admin
|
||||
|
||||
<!-- news -->
|
||||
<value>newsService</value>
|
||||
<value>adminNewsService</value>
|
||||
|
||||
api
|
||||
<!-- news -->
|
||||
<value>newsService</value>
|
||||
18
comm/News/config/spring/applicationContext-news.xml
Executable file
18
comm/News/config/spring/applicationContext-news.xml
Executable file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
|
||||
|
||||
|
||||
<bean id="newsService" class="project.news.internal.NewsServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="redisHandler" ref="redisHandler" />
|
||||
</bean>
|
||||
|
||||
|
||||
|
||||
|
||||
</beans>
|
||||
23
comm/News/config/spring/applicationContext-news_admin.xml
Executable file
23
comm/News/config/spring/applicationContext-news_admin.xml
Executable file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
|
||||
|
||||
|
||||
<bean id="adminNewsService" class="project.news.internal.AdminNewsServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="pagedDao" ref="pagedDao" />
|
||||
<property name="newsService" ref="newsService" />
|
||||
|
||||
</bean>
|
||||
|
||||
<bean id="newsService" class="project.news.internal.NewsServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="redisHandler" ref="redisHandler" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
22
comm/News/config/spring/applicationContext-news_data.xml
Executable file
22
comm/News/config/spring/applicationContext-news_data.xml
Executable file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
|
||||
|
||||
<!-- init-method="init" -->
|
||||
|
||||
<bean id="newsService" class="project.news.internal.NewsServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="redisHandler" ref="redisHandler" />
|
||||
</bean>
|
||||
<bean id="newsLoadCacheService"
|
||||
class="project.data.loadcache.NewsLoadCacheService">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="redisHandler" ref="redisHandler" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
13
comm/News/config/spring/normal.xml
Executable file
13
comm/News/config/spring/normal.xml
Executable file
@@ -0,0 +1,13 @@
|
||||
admin
|
||||
<action name="adminNewsAction" class="project.news.web.AdminNewsAction">
|
||||
<result name="list">/news_list.jsp</result>
|
||||
<result name="add">/news_add.jsp</result>
|
||||
<result name="update">/news_update.jsp</result>
|
||||
|
||||
</action>
|
||||
|
||||
api
|
||||
|
||||
<action name="news"
|
||||
class="project.news.web.NewsAction">
|
||||
</action>
|
||||
11
comm/News/dbscript/1.0/NEWS-DDL-MYSQL.SQL
Executable file
11
comm/News/dbscript/1.0/NEWS-DDL-MYSQL.SQL
Executable file
@@ -0,0 +1,11 @@
|
||||
DROP TABLE IF EXISTS `T_NEWS`;
|
||||
CREATE TABLE `T_NEWS` (
|
||||
`UUID` varchar(32) NOT NULL,
|
||||
`TITLE` varchar(128) NOT NULL COMMENT '标题',
|
||||
`CONTENT` longtext COMMENT '公告内容',
|
||||
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`LANGUAGE` varchar(32) DEFAULT NULL COMMENT '语言',
|
||||
`INDEX_TOP` char(1) DEFAULT NULL ;
|
||||
PRIMARY KEY (`UUID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
22
comm/News/src/project/news/AdminNewsService.java
Executable file
22
comm/News/src/project/news/AdminNewsService.java
Executable file
@@ -0,0 +1,22 @@
|
||||
package project.news;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import kernel.web.Page;
|
||||
|
||||
public interface AdminNewsService {
|
||||
|
||||
public News findById(Serializable id);
|
||||
|
||||
/**
|
||||
* 新增新闻
|
||||
* @param entity
|
||||
*/
|
||||
public void save(News entity);
|
||||
|
||||
public void delete(News news);
|
||||
|
||||
public void update(News entity);
|
||||
|
||||
Page pagedQuery(int pageNo, int pageSize, String title, String lang, String startTime, String endTime, Integer status);
|
||||
}
|
||||
35
comm/News/src/project/news/News.hbm.xml
Executable file
35
comm/News/src/project/news/News.hbm.xml
Executable file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
||||
<hibernate-mapping>
|
||||
<class name="project.news.News" table="T_NEWS">
|
||||
<id name="id" type="java.lang.String">
|
||||
<column name="UUID" />
|
||||
<generator class="uuid.hex" />
|
||||
</id>
|
||||
<property name="title" type="java.lang.String">
|
||||
<column name="TITLE" />
|
||||
</property>
|
||||
<property name="content" type="java.lang.String">
|
||||
<column name="CONTENT" />
|
||||
</property>
|
||||
<property name="lang" type="java.lang.String">
|
||||
<column name="LANG" />
|
||||
</property>
|
||||
<property name="sort" type="int">
|
||||
<column name="SORT" />
|
||||
</property>
|
||||
<property name="iconImg" type="java.lang.String">
|
||||
<column name="ICON_IMG" />
|
||||
</property>
|
||||
<property name="createTime" type="timestamp">
|
||||
<column name="CREATE_TIME" />
|
||||
</property>
|
||||
<property name="releaseTime" type="java.lang.String">
|
||||
<column name="RELEASE_TIME" />
|
||||
</property>
|
||||
<property name="status" type="int">
|
||||
<column name="STATUS" />
|
||||
</property>
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
54
comm/News/src/project/news/News.java
Executable file
54
comm/News/src/project/news/News.java
Executable file
@@ -0,0 +1,54 @@
|
||||
package project.news;
|
||||
|
||||
import kernel.bo.EntityObject;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 新闻管理
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class News extends EntityObject {
|
||||
private static final long serialVersionUID = -4670490376092518726L;
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 语言
|
||||
*/
|
||||
private String lang;
|
||||
|
||||
/**
|
||||
* 图片
|
||||
*/
|
||||
private String iconImg;
|
||||
|
||||
/**
|
||||
* 序号
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 发布时间
|
||||
*/
|
||||
private String releaseTime;
|
||||
|
||||
/**
|
||||
* 状态值
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
}
|
||||
34
comm/News/src/project/news/NewsService.java
Executable file
34
comm/News/src/project/news/NewsService.java
Executable file
@@ -0,0 +1,34 @@
|
||||
package project.news;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import kernel.web.Page;
|
||||
import project.invest.expert.model.Expert;
|
||||
import project.invest.project.model.Project;
|
||||
|
||||
public interface NewsService {
|
||||
|
||||
public News findById(Serializable id);
|
||||
|
||||
public News cacheById(Serializable id);
|
||||
|
||||
public News getIndex(String language);
|
||||
|
||||
public void save(News entity);
|
||||
|
||||
public void delete(String id);
|
||||
|
||||
public void update(News entity);
|
||||
|
||||
public Page cachePagedQuery(int pageNo, int pageSize, String language);
|
||||
|
||||
List<String> selectByLanguage(String language);
|
||||
|
||||
List<String> selectAnnouncements(String language);
|
||||
|
||||
List<News> listNewsPage(String language, int pageNum, int pageSize);
|
||||
|
||||
List<Expert> listExpertPage(String language, int pageNum, int pageSize);
|
||||
|
||||
}
|
||||
86
comm/News/src/project/news/internal/AdminNewsServiceImpl.java
Executable file
86
comm/News/src/project/news/internal/AdminNewsServiceImpl.java
Executable file
@@ -0,0 +1,86 @@
|
||||
package project.news.internal;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import kernel.util.DateUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
|
||||
|
||||
import kernel.web.Page;
|
||||
import kernel.web.PagedQueryDao;
|
||||
import project.news.AdminNewsService;
|
||||
import project.news.News;
|
||||
|
||||
public class AdminNewsServiceImpl extends HibernateDaoSupport implements AdminNewsService {
|
||||
private PagedQueryDao pagedDao;
|
||||
|
||||
|
||||
@Override
|
||||
public Page pagedQuery(int pageNo, int pageSize, String title, String lang, String startTime, String endTime, Integer status) {
|
||||
StringBuffer queryString = new StringBuffer(
|
||||
" SELECT UUID id, TITLE title, CONTENT content, Lang lang, ICON_IMG iconImg, "
|
||||
+ " CREATE_TIME createTime, RELEASE_TIME releaseTime, SORT sort, STATUS status ");
|
||||
queryString.append(
|
||||
" FROM T_NEWS WHERE 1 = 1 ");
|
||||
|
||||
Map<String, Object> parameters = new HashMap();
|
||||
if (StringUtils.isNotEmpty(lang)) {
|
||||
queryString.append(" AND LANG =:lang ");
|
||||
parameters.put("lang", lang);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(title)) {
|
||||
queryString.append(" AND TITLE like:title ");
|
||||
parameters.put("title", "%" + title + "%");
|
||||
}
|
||||
|
||||
if (-2 != status) {
|
||||
queryString.append(" and STATUS =:status");
|
||||
parameters.put("status", status);
|
||||
}
|
||||
|
||||
if (!kernel.util.StringUtils.isNullOrEmpty(startTime)) {
|
||||
queryString.append(" AND DATE(CREATE_TIME) >= DATE(:startTime) ");
|
||||
parameters.put("startTime", DateUtils.toDate(startTime));
|
||||
}
|
||||
|
||||
if (!kernel.util.StringUtils.isNullOrEmpty(endTime)) {
|
||||
queryString.append(" AND DATE(CREATE_TIME) <= DATE(:endTime) ");
|
||||
parameters.put("endTime", DateUtils.toDate(endTime));
|
||||
}
|
||||
|
||||
queryString.append(" order by CREATE_TIME desc ");
|
||||
Page page = this.pagedDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
public News findById(Serializable id) {
|
||||
return getHibernateTemplate().get(News.class, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(News entity) {
|
||||
this.getHibernateTemplate().save(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(News news) {
|
||||
this.getHibernateTemplate().delete(news);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新新闻
|
||||
* @param entity
|
||||
*/
|
||||
@Override
|
||||
public void update(News entity) {
|
||||
this.getHibernateTemplate().update(entity);
|
||||
}
|
||||
|
||||
|
||||
public void setPagedDao(PagedQueryDao pagedDao) {
|
||||
this.pagedDao = pagedDao;
|
||||
}
|
||||
}
|
||||
80
comm/News/src/project/news/internal/NewsServiceImpl.java
Executable file
80
comm/News/src/project/news/internal/NewsServiceImpl.java
Executable file
@@ -0,0 +1,80 @@
|
||||
package project.news.internal;
|
||||
|
||||
import kernel.web.Page;
|
||||
import org.hibernate.criterion.DetachedCriteria;
|
||||
import org.hibernate.criterion.Order;
|
||||
import org.hibernate.criterion.Property;
|
||||
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
|
||||
import project.invest.expert.model.Expert;
|
||||
import project.invest.project.model.Project;
|
||||
import project.news.News;
|
||||
import project.news.NewsService;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
public class NewsServiceImpl extends HibernateDaoSupport implements NewsService {
|
||||
@Override
|
||||
public News findById(Serializable id) {
|
||||
return this.getHibernateTemplate().get(News.class, id); }
|
||||
|
||||
@Override
|
||||
public News cacheById(Serializable id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public News getIndex(String language) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(News entity) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(String id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(News entity) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page cachePagedQuery(int pageNo, int pageSize, String language) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectByLanguage(String language) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectAnnouncements(String language) {
|
||||
List<String> results = (List<String>)this.getHibernateTemplate().
|
||||
find("SELECT content FROM Cms WHERE type = 0 and status = 0 and language = ?0", new Object[]{language});
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<News> listNewsPage(String language, int pageNum, int pageSize) {
|
||||
DetachedCriteria query = DetachedCriteria.forClass(News.class);
|
||||
query.add( Property.forName("lang").eq(language) );
|
||||
query.add( Property.forName("status").eq(1) );
|
||||
query.addOrder(Order.asc("sort"));
|
||||
return (List<News>) getHibernateTemplate().findByCriteria(query,(pageNum-1)*pageSize,pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Expert> listExpertPage(String language, int pageNum, int pageSize) {
|
||||
DetachedCriteria query = DetachedCriteria.forClass(Expert.class);
|
||||
query.add( Property.forName("lang").eq(language) );
|
||||
query.add( Property.forName("status").eq(1) );
|
||||
query.addOrder(Order.asc("sort"));
|
||||
return (List<Expert>) getHibernateTemplate().findByCriteria(query,(pageNum-1)*pageSize,pageSize);
|
||||
}
|
||||
}
|
||||
338
comm/News/src/project/web/admin/AdminNewsController.java
Executable file
338
comm/News/src/project/web/admin/AdminNewsController.java
Executable file
@@ -0,0 +1,338 @@
|
||||
package project.web.admin;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.providers.encoding.PasswordEncoder;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import kernel.exception.BusinessException;
|
||||
import kernel.util.StringUtils;
|
||||
import kernel.web.PageActionSupport;
|
||||
import project.Constants;
|
||||
import project.log.LogService;
|
||||
import project.news.AdminNewsService;
|
||||
import project.news.News;
|
||||
import security.SecUser;
|
||||
import security.internal.SecUserService;
|
||||
|
||||
/**
|
||||
* 新闻管理
|
||||
*/
|
||||
@RestController
|
||||
public class AdminNewsController extends PageActionSupport {
|
||||
|
||||
private Logger logger = LogManager.getLogger(AdminNewsController.class);
|
||||
|
||||
@Autowired
|
||||
private AdminNewsService adminNewsService;
|
||||
@Autowired
|
||||
private SecUserService secUserService;
|
||||
@Autowired
|
||||
private LogService logService;
|
||||
@Autowired
|
||||
private PasswordEncoder passwordEncoder;
|
||||
|
||||
private final String action = "normal/adminNewsAction!";
|
||||
|
||||
/**
|
||||
* 获取 新闻管理 列表
|
||||
*/
|
||||
@RequestMapping(action + "list.action")
|
||||
public ModelAndView list(HttpServletRequest request) {
|
||||
String pageNo = request.getParameter("pageNo");
|
||||
String message = request.getParameter("message");
|
||||
String error = request.getParameter("error");
|
||||
String title = request.getParameter("title");
|
||||
String lang = request.getParameter("lang");
|
||||
String startTime = request.getParameter("startTime");
|
||||
String endTime = request.getParameter("endTime");
|
||||
Integer status = request.getParameter("status") == null ? -2 : Integer.parseInt(request.getParameter("status"));
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("news_list");
|
||||
|
||||
try {
|
||||
this.checkAndSetPageNo(pageNo);
|
||||
this.pageSize = 20;
|
||||
this.page = this.adminNewsService.pagedQuery(this.pageNo, this.pageSize, title, lang,startTime,endTime,status);
|
||||
|
||||
} catch (BusinessException e) {
|
||||
modelAndView.addObject("error", e.getMessage());
|
||||
return modelAndView;
|
||||
} catch (Throwable t) {
|
||||
logger.error(" error ", t);
|
||||
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
modelAndView.addObject("pageNo", this.pageNo);
|
||||
modelAndView.addObject("pageSize", this.pageSize);
|
||||
modelAndView.addObject("page", this.page);
|
||||
modelAndView.addObject("message", message);
|
||||
modelAndView.addObject("error", error);
|
||||
modelAndView.addObject("title", title);
|
||||
modelAndView.addObject("lang", lang);
|
||||
// modelAndView.addObject("languageMap", Constants.LANGUAGE);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 新闻管理 页面
|
||||
*/
|
||||
@RequestMapping(action + "toAdd.action")
|
||||
public ModelAndView toAdd(HttpServletRequest request) {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.addObject("languageMap", Constants.LANGUAGE);
|
||||
modelAndView.setViewName("news_add");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 新闻管理
|
||||
*
|
||||
* title 标题
|
||||
* content 内容
|
||||
* index 是否置顶
|
||||
* language 语言
|
||||
*/
|
||||
@RequestMapping(action + "add.action")
|
||||
public ModelAndView add(HttpServletRequest request) {
|
||||
String pageNo = request.getParameter("pageNo");
|
||||
String title = request.getParameter("title");
|
||||
String content_text = request.getParameter("content");
|
||||
String lang = request.getParameter("lang");
|
||||
String iconImg = request.getParameter("iconImg");
|
||||
String status = request.getParameter("status");
|
||||
String sort = request.getParameter("sort");
|
||||
String releaseTime = request.getParameter("releaseTime");
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
|
||||
modelAndView.addObject("pageNo", pageNo);
|
||||
modelAndView.addObject("title", title);
|
||||
modelAndView.addObject("content", content_text);
|
||||
modelAndView.addObject("lang", lang);
|
||||
modelAndView.addObject("status", status);
|
||||
modelAndView.addObject("sort", sort);
|
||||
modelAndView.addObject("iconImg", iconImg);
|
||||
modelAndView.addObject("releaseTime", releaseTime);
|
||||
try {
|
||||
|
||||
String error = this.verif(title, content_text,iconImg,sort,releaseTime);
|
||||
if (!StringUtils.isNullOrEmpty(error)) {
|
||||
throw new BusinessException(error);
|
||||
}
|
||||
String userNameLogin = this.getUsername_login();
|
||||
|
||||
News news = new News();
|
||||
news.setTitle(title);
|
||||
news.setCreateTime(new Date());
|
||||
news.setIconImg(iconImg);
|
||||
news.setStatus(Integer.parseInt(status));
|
||||
news.setContent(content_text);
|
||||
news.setLang(lang);
|
||||
news.setReleaseTime(releaseTime);
|
||||
news.setSort(Integer.parseInt(sort));
|
||||
this.adminNewsService.save(news);
|
||||
SecUser sec = this.secUserService.findUserByLoginName(userNameLogin);
|
||||
String log = MessageFormat.format("ip:" + this.getIp() + ",管理员新增新闻,id:{0},标题:{1},语言:{2},内容:{3}",
|
||||
news.getId(), news.getTitle(), news.getLang(),news.getContent());
|
||||
this.saveLog(sec, userNameLogin, log);
|
||||
|
||||
} catch (BusinessException e) {
|
||||
modelAndView.addObject("error", e.getMessage());
|
||||
modelAndView.setViewName("news_add");
|
||||
return modelAndView;
|
||||
} catch (Throwable t) {
|
||||
logger.error(" error ", t);
|
||||
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
||||
modelAndView.setViewName("news_add");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
modelAndView.addObject("message", "操作成功");
|
||||
modelAndView.setViewName("redirect:/" + action + "list.action");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
private String verif(String title, String content_text, String iconImg, String sort, String releaseTime) {
|
||||
if(StringUtils.isEmptyString(title)){
|
||||
throw new BusinessException("标题不能为空");
|
||||
}
|
||||
if(StringUtils.isEmptyString(content_text)){
|
||||
throw new BusinessException("内容不能为空");
|
||||
}
|
||||
if(StringUtils.isEmptyString(iconImg)){
|
||||
throw new BusinessException("请选择照片");
|
||||
}
|
||||
if(StringUtils.isEmptyString(sort)){
|
||||
throw new BusinessException("请输入排序");
|
||||
}
|
||||
if(StringUtils.isEmptyString(releaseTime)){
|
||||
throw new BusinessException("请输入发布时间");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 新闻管理 页面
|
||||
*
|
||||
* title 标题
|
||||
* content 内容
|
||||
* index 是否置顶
|
||||
* language 语言
|
||||
*/
|
||||
@RequestMapping(action + "toUpdate.action")
|
||||
public ModelAndView toUpdate(HttpServletRequest request) {
|
||||
String id = request.getParameter("id");
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
|
||||
try {
|
||||
|
||||
News news = this.adminNewsService.findById(id);
|
||||
|
||||
modelAndView.addObject("news", news);
|
||||
// modelAndView.addObject("title", news.getTitle());
|
||||
// modelAndView.addObject("content", news.getContent());
|
||||
// modelAndView.addObject("lang", news.getLang());
|
||||
// modelAndView.addObject("status", news.getStatus());
|
||||
// modelAndView.addObject("sort", news.getSort());
|
||||
// modelAndView.addObject("iconImg", iconImg);
|
||||
// modelAndView.addObject("releaseTime", releaseTime);
|
||||
|
||||
} catch (BusinessException e) {
|
||||
modelAndView.addObject("error", e.getMessage());
|
||||
modelAndView.setViewName("redirect:/" + action + "list.action");
|
||||
return modelAndView;
|
||||
} catch (Throwable t) {
|
||||
logger.error(" error ", t);
|
||||
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
||||
modelAndView.setViewName("redirect:/" + action + "list.action");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
modelAndView.setViewName("news_update");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 新闻管理
|
||||
*
|
||||
* title 标题
|
||||
* content 内容
|
||||
* index 是否置顶
|
||||
* language 语言
|
||||
*/
|
||||
@RequestMapping(action + "update.action")
|
||||
public ModelAndView update(HttpServletRequest request, News news, @RequestParam Map<String, String> paramMap) {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
String content_text = request.getParameter("content");
|
||||
try {
|
||||
String error = this.verif(news.getTitle(),content_text,news.getIconImg(),news.getSort().toString(),news.getReleaseTime());
|
||||
if (!StringUtils.isNullOrEmpty(error)) {
|
||||
throw new BusinessException(error);
|
||||
}
|
||||
|
||||
String userNameLogin = this.getUsername_login();
|
||||
|
||||
SecUser sec = this.secUserService.findUserByLoginName(userNameLogin);
|
||||
|
||||
News bean = this.adminNewsService.findById(news.getId());
|
||||
news.setCreateTime(bean.getCreateTime());
|
||||
|
||||
this.adminNewsService.update(news);
|
||||
String log = MessageFormat.format(",新标题:{0},新语言:{1},新内容:{3}",
|
||||
news.getTitle(), news.getLang(), content_text);
|
||||
this.saveLog(sec, userNameLogin, log);
|
||||
|
||||
} catch (BusinessException e) {
|
||||
modelAndView.addObject("error", e.getMessage());
|
||||
modelAndView.addObject("news", news);
|
||||
modelAndView.setViewName("news_update");
|
||||
return modelAndView;
|
||||
} catch (Throwable t) {
|
||||
logger.error(" error ", t);
|
||||
modelAndView.addObject("error", "[ERROR] " + t.getMessage());
|
||||
modelAndView.addObject("news", news);
|
||||
modelAndView.setViewName("news_update");
|
||||
return modelAndView;
|
||||
}
|
||||
modelAndView.addObject("message", "操作成功");
|
||||
modelAndView.setViewName("redirect:/" + action + "list.action");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除 新闻管理
|
||||
*/
|
||||
@RequestMapping(action + "delete.action")
|
||||
public ModelAndView delete(HttpServletRequest request) {
|
||||
String id = request.getParameter("id");
|
||||
String login_safeword = request.getParameter("login_safeword");
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("redirect:/" + action + "list.action");
|
||||
|
||||
try {
|
||||
|
||||
String userNameLogin = this.getUsername_login();
|
||||
|
||||
SecUser sec = this.secUserService.findUserByLoginName(userNameLogin);
|
||||
this.checkLoginSafeword(sec, userNameLogin, login_safeword);
|
||||
|
||||
News news = this.adminNewsService.findById(id);
|
||||
|
||||
String log = MessageFormat.format("ip:" + this.getIp() + ",管理员删除新闻,id:{0},原标题:{1},原语言:{2},原内容:{3}",
|
||||
news.getId(), news.getTitle(), news.getLang(), news.getContent());
|
||||
this.saveLog(sec, userNameLogin, log);
|
||||
this.adminNewsService.delete(news);
|
||||
|
||||
} catch (BusinessException e) {
|
||||
modelAndView.addObject("error", e.getMessage());
|
||||
return modelAndView;
|
||||
} catch (Throwable t) {
|
||||
logger.error("update error ", t);
|
||||
modelAndView.addObject("error", "程序错误");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
modelAndView.addObject("message", "操作成功");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 验证登录人资金密码
|
||||
*/
|
||||
protected void checkLoginSafeword(SecUser secUser, String operatorUsername, String loginSafeword) {
|
||||
// SecUser sec = this.secUserService.findUserByLoginName(operatorUsername);
|
||||
String sysSafeword = secUser.getSafeword();
|
||||
String safeword_md5 = this.passwordEncoder.encodePassword(loginSafeword, operatorUsername);
|
||||
if (!safeword_md5.equals(sysSafeword)) {
|
||||
throw new BusinessException("登录人资金密码错误");
|
||||
}
|
||||
}
|
||||
|
||||
public void saveLog(SecUser secUser, String operator, String context) {
|
||||
project.log.Log log = new project.log.Log();
|
||||
log.setCategory(Constants.LOG_CATEGORY_OPERATION);
|
||||
log.setOperator(operator);
|
||||
log.setUsername(secUser.getUsername());
|
||||
log.setPartyId(secUser.getPartyId());
|
||||
log.setLog(context);
|
||||
log.setCreateTime(new Date());
|
||||
this.logService.saveSync(log);
|
||||
}
|
||||
|
||||
}
|
||||
83
comm/News/src/project/web/api/NewsController.java
Executable file
83
comm/News/src/project/web/api/NewsController.java
Executable file
@@ -0,0 +1,83 @@
|
||||
package project.web.api;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import kernel.util.Arith;
|
||||
import kernel.util.PageInfo;
|
||||
import kernel.web.BaseAction;
|
||||
import kernel.web.ResultObject;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import project.invest.InvestRedisKeys;
|
||||
import project.invest.expert.model.Expert;
|
||||
import project.invest.project.model.Project;
|
||||
import project.invest.project.model.ProjectLang;
|
||||
import project.news.News;
|
||||
import project.news.NewsService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@RestController
|
||||
@CrossOrigin
|
||||
public class NewsController extends BaseAction {
|
||||
|
||||
private final String action = "/api/news!";
|
||||
|
||||
@Resource
|
||||
private NewsService newsService;
|
||||
|
||||
/**
|
||||
* 新闻分页
|
||||
* @return
|
||||
*/
|
||||
@PostMapping( action+"list_news.action")
|
||||
public Object listNews(HttpServletRequest request){
|
||||
ResultObject resultObject = new ResultObject();
|
||||
PageInfo pageInfo = getPageInfo(request);
|
||||
String lang = this.getLanguage(request);
|
||||
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for(News ns : newsService.listNewsPage(lang,pageInfo.getPageNum(),pageInfo.getPageSize())){
|
||||
JSONObject o = new JSONObject();
|
||||
o.put("id", ns.getId().toString());
|
||||
o.put("title", ns.getTitle());
|
||||
o.put("iconImg", ns.getIconImg());
|
||||
o.put("releaseTime", ns.getReleaseTime());
|
||||
o.put("content",ns.getContent());
|
||||
jsonArray.add(o);
|
||||
}
|
||||
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("pageInfo", pageInfo);
|
||||
object.put("pageList", jsonArray);
|
||||
resultObject.setData(object);
|
||||
return resultObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新闻详情
|
||||
* @return
|
||||
*/
|
||||
@PostMapping( action+"detail_news.action")
|
||||
public Object detailNews(HttpServletRequest request){
|
||||
ResultObject resultObject = new ResultObject();
|
||||
String id = request.getParameter("id");
|
||||
News ns = newsService.findById(id);
|
||||
JSONObject o = new JSONObject();
|
||||
|
||||
o.put("id", ns.getId().toString());
|
||||
o.put("title", ns.getTitle());
|
||||
o.put("iconImg", ns.getIconImg());
|
||||
o.put("releaseTime", ns.getReleaseTime());
|
||||
o.put("content",ns.getContent());
|
||||
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("news", o);
|
||||
resultObject.setData(object);
|
||||
return resultObject;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user