Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
cms_sys
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
西魏
cms_sys
Commits
c5638d64
Commit
c5638d64
authored
Dec 28, 2019
by
tianbj
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
a48c743d
4e007b48
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
165 additions
and
165 deletions
+165
-165
MCmsAction.java
src/main/java/net/mingsoft/cms/action/web/MCmsAction.java
+165
-165
No files found.
src/main/java/net/mingsoft/cms/action/web/MCmsAction.java
View file @
c5638d64
...
...
@@ -318,171 +318,171 @@ public class MCmsAction extends net.mingsoft.cms.action.BaseAction {
/**
* 实现前端页面的文章搜索
*
* @param request
* 搜索id
* @param response
*/
@RequestMapping
(
value
=
"search"
)
@ResponseBody
public
void
search
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
// 读取请求字段
Map
<
String
,
String
[]>
field
=
request
.
getParameterMap
();
Map
<
String
,
String
>
basicField
=
getMapByProperties
(
net
.
mingsoft
.
mdiy
.
constant
.
Const
.
BASIC_FIELD
);
// 文章字段集合
Map
<
String
,
Object
>
articleFieldName
=
new
HashMap
<
String
,
Object
>();
// 自定义字段集合
Map
<
String
,
String
>
diyFieldName
=
new
HashMap
<
String
,
String
>();
CategoryEntity
column
=
null
;
// 当前栏目
ModelEntity
contentModel
=
null
;
// 栏目对应模型
List
<
DiyModelMap
>
fieldValueList
=
new
ArrayList
<
DiyModelMap
>();
// 栏目对应字段的值
int
typeId
=
0
;
String
categoryIds
=
BasicUtil
.
getString
(
"categoryId"
);
//当传递了栏目编号,但不是栏目集合
if
(!
StringUtil
.
isBlank
(
categoryIds
)
&&
!
categoryIds
.
contains
(
","
)){
typeId
=
Integer
.
parseInt
(
categoryIds
);
}
//记录自定义模型字段名
List
filedStr
=
new
ArrayList
<>();
//根据栏目确定自定义模型
if
(
typeId
>
0
){
column
=
(
CategoryEntity
)
categoryBiz
.
getEntity
(
Integer
.
parseInt
(
typeId
+
""
));
// 获取表单类型的id
if
(
column
!=
null
&&
ObjectUtil
.
isNotNull
(
column
.
getMdiyModelId
()))
{
contentModel
=
(
ModelEntity
)
modelBiz
.
getEntity
(
Integer
.
parseInt
(
column
.
getMdiyModelId
()));
if
(
contentModel
!=
null
)
{
Map
<
String
,
String
>
fieldMap
=
contentModel
.
getFieldMap
();
for
(
String
s
:
fieldMap
.
keySet
())
{
filedStr
.
add
(
fieldMap
.
get
(
s
));
}
map
.
put
(
ParserUtil
.
TABLE_NAME
,
contentModel
.
getModelTableName
());
}
}
map
.
put
(
ParserUtil
.
COLUMN
,
column
);
//设置栏目编号
// map.put(ParserUtil.TYPE_ID, typeId);
}
// 遍历取字段集合
if
(
field
!=
null
)
{
for
(
Map
.
Entry
<
String
,
String
[]>
entry
:
field
.
entrySet
())
{
if
(
entry
!=
null
)
{
String
value
=
entry
.
getValue
()[
0
];
// 处理由get方法请求中文乱码问题
if
(
ObjectUtil
.
isNull
(
value
))
{
continue
;
}
if
(
request
.
getMethod
().
equals
(
RequestMethod
.
GET
))
{
// 如果是get方法需要将请求地址参数转吗
try
{
value
=
new
String
(
value
.
getBytes
(
"ISO-8859-1"
),
Const
.
UTF8
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
}
// 若为文章字段,则保存至文章字段集合;否则保存至自定义字段集合
if
(
ObjectUtil
.
isNotNull
(
basicField
.
get
(
entry
.
getKey
()))
&&
ObjectUtil
.
isNotNull
(
value
))
{
articleFieldName
.
put
(
entry
.
getKey
(),
value
);
}
else
{
if
(!
StringUtil
.
isBlank
(
value
))
{
diyFieldName
.
put
(
entry
.
getKey
(),
value
);
//判断请求中的是否是自定义模型中的字段
if
(
filedStr
.
contains
(
entry
.
getKey
())){
//设置自定义模型字段和值
DiyModelMap
diyMap
=
new
DiyModelMap
();
diyMap
.
setKey
(
entry
.
getKey
());
diyMap
.
setValue
(
value
);
fieldValueList
.
add
(
diyMap
);
}
}
}
}
}
}
//添加自定义模型的字段和值
if
(
fieldValueList
.
size
()>
0
){
map
.
put
(
"diyModel"
,
fieldValueList
);
}
//组织where查询条件
Map
whereMap
=
ObjectUtil
.
isNotNull
(
contentModel
)?
this
.
searchMap
(
articleFieldName
,
diyFieldName
,
JSONArray
.
parseArray
(
contentModel
.
getModelField
())):
new
HashMap
();
// 获取符合条件的文章总数
int
count
=
contentBiz
.
getSearchCount
(
contentModel
,
whereMap
,
BasicUtil
.
getAppId
(),
categoryIds
);
//设置分页类
PageBean
page
=
new
PageBean
();
//读取模板的分页数量
int
size
=
BasicUtil
.
getInt
(
ParserUtil
.
SIZE
,
10
);
try
{
size
=
TagParser
.
getPageSize
(
ParserUtil
.
read
(
SEARCH
+
ParserUtil
.
HTM_SUFFIX
,
false
));
}
catch
(
TemplateNotFoundException
e1
)
{
e1
.
printStackTrace
();
}
catch
(
MalformedTemplateNameException
e1
)
{
e1
.
printStackTrace
();
}
catch
(
ParseException
e1
)
{
e1
.
printStackTrace
();
}
catch
(
IOException
e1
)
{
e1
.
printStackTrace
();
}
int
total
=
PageUtil
.
totalPage
(
count
,
size
);
int
pageNo
=
BasicUtil
.
getInt
(
ParserUtil
.
PAGE_NO
,
1
);
if
(
pageNo
>=
total
&&
total
!=
0
)
{
pageNo
=
total
;
}
//获取总数
page
.
setTotal
(
total
);
//设置页面显示数量
page
.
setSize
(
size
);
//设置列表当前页
page
.
setPageNo
(
pageNo
);
String
str
=
ParserUtil
.
PAGE_NO
+
","
+
ParserUtil
.
SIZE
;
//设置分页的统一链接
String
url
=
BasicUtil
.
getUrl
()+
request
.
getServletPath
()
+
"?"
+
BasicUtil
.
assemblyRequestUrlParams
(
str
.
split
(
","
));
String
pageNoStr
=
"&"
+
ParserUtil
.
SIZE
+
"="
+
size
+
"&"
+
ParserUtil
.
PAGE_NO
+
"="
;
//下一页
String
nextUrl
=
url
+
pageNoStr
+((
pageNo
+
1
>
total
)?
total:
pageNo
+
1
);
//首页
String
indexUrl
=
url
+
pageNoStr
+
1
;
//尾页
String
lastUrl
=
url
+
pageNoStr
+
total
;
//上一页 当前页为1时,上一页就是1
String
preUrl
=
url
+
pageNoStr
+
((
pageNo
==
1
)
?
1
:
pageNo
-
1
);
page
.
setIndexUrl
(
indexUrl
);
page
.
setNextUrl
(
nextUrl
);
page
.
setPreUrl
(
preUrl
);
page
.
setLastUrl
(
lastUrl
);
map
.
put
(
ParserUtil
.
URL
,
BasicUtil
.
getUrl
());
Map
<
String
,
Object
>
searchMap
=
BasicUtil
.
assemblyRequestMap
();
searchMap
.
put
(
ParserUtil
.
PAGE_NO
,
pageNo
);
map
.
put
(
SEARCH
,
searchMap
);
map
.
put
(
ParserUtil
.
PAGE
,
page
);
//动态解析
map
.
put
(
ParserUtil
.
IS_DO
,
false
);
//设置动态请求的模块路径
map
.
put
(
ParserUtil
.
MODEL_NAME
,
"mcms"
);
//解析后的内容
String
content
=
""
;
try
{
//根据模板路径,参数生成
content
=
CmsParserUtil
.
generate
(
SEARCH
+
ParserUtil
.
HTM_SUFFIX
,
map
,
isMobileDevice
(
request
));
}
catch
(
TemplateNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
MalformedTemplateNameException
e
)
{
e
.
printStackTrace
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
this
.
outString
(
response
,
content
);
}
//
/**
//
* 实现前端页面的文章搜索
//
*
//
* @param request
//
* 搜索id
//
* @param response
//
*/
//
@RequestMapping(value = "search")
//
@ResponseBody
//
public void search(HttpServletRequest request, HttpServletResponse response) {
//
//
Map<String, Object> map = new HashMap<>();
//
// 读取请求字段
//
Map<String, String[]> field = request.getParameterMap();
//
Map<String, String> basicField = getMapByProperties(net.mingsoft.mdiy.constant.Const.BASIC_FIELD);
//
// 文章字段集合
//
Map<String, Object> articleFieldName = new HashMap<String, Object>();
//
// 自定义字段集合
//
Map<String, String> diyFieldName = new HashMap<String, String>();
//
CategoryEntity column = null; // 当前栏目
//
ModelEntity contentModel = null; // 栏目对应模型
//
List<DiyModelMap> fieldValueList = new ArrayList<DiyModelMap>(); // 栏目对应字段的值
//
int typeId = 0;
//
String categoryIds = BasicUtil.getString("categoryId");
//
//当传递了栏目编号,但不是栏目集合
//
if(!StringUtil.isBlank(categoryIds) && !categoryIds.contains(",")){
//
typeId = Integer.parseInt(categoryIds);
//
}
//
//记录自定义模型字段名
//
List filedStr = new ArrayList<>();
//
//根据栏目确定自定义模型
//
if(typeId>0){
//
column = (CategoryEntity) categoryBiz.getEntity(Integer.parseInt(typeId+""));
//
// 获取表单类型的id
//
if (column != null&&ObjectUtil.isNotNull(column.getMdiyModelId())) {
//
contentModel = (ModelEntity) modelBiz.getEntity(Integer.parseInt(column.getMdiyModelId()));
//
if (contentModel != null) {
//
Map<String,String> fieldMap = contentModel.getFieldMap();
//
for (String s : fieldMap.keySet()) {
//
filedStr.add(fieldMap.get(s));
//
}
//
map.put(ParserUtil.TABLE_NAME, contentModel.getModelTableName());
//
}
//
}
//
map.put(ParserUtil.COLUMN, column);
//
//设置栏目编号
//
//
map.put(ParserUtil.TYPE_ID, typeId);
//
}
//
//
// 遍历取字段集合
//
if (field != null) {
//
for (Map.Entry<String, String[]> entry : field.entrySet()) {
//
if (entry != null) {
//
String value = entry.getValue()[0]; // 处理由get方法请求中文乱码问题
//
if (ObjectUtil.isNull(value)) {
//
continue;
//
}
//
if (request.getMethod().equals(RequestMethod.GET)) { // 如果是get方法需要将请求地址参数转吗
//
try {
//
value = new String(value.getBytes("ISO-8859-1"), Const.UTF8);
//
} catch (UnsupportedEncodingException e) {
//
e.printStackTrace();
//
}
//
}
//
// 若为文章字段,则保存至文章字段集合;否则保存至自定义字段集合
//
if (ObjectUtil.isNotNull(basicField.get(entry.getKey())) && ObjectUtil.isNotNull(value)) {
//
articleFieldName.put(entry.getKey(), value);
//
} else {
//
if (!StringUtil.isBlank(value)) {
//
diyFieldName.put(entry.getKey(), value);
//
//判断请求中的是否是自定义模型中的字段
//
if(filedStr.contains(entry.getKey())){
//
//设置自定义模型字段和值
//
DiyModelMap diyMap = new DiyModelMap();
//
diyMap.setKey(entry.getKey());
//
diyMap.setValue(value);
//
fieldValueList.add(diyMap);
//
}
//
}
//
}
//
}
//
}
//
}
//
//添加自定义模型的字段和值
//
if(fieldValueList.size()>0){
//
map.put("diyModel", fieldValueList);
//
}
//
//组织where查询条件
//
Map whereMap = ObjectUtil.isNotNull(contentModel)?
//
this.searchMap(articleFieldName, diyFieldName, JSONArray.parseArray(contentModel.getModelField())):
//
new HashMap();
//
//
// 获取符合条件的文章总数
//
int count = contentBiz.getSearchCount(contentModel, whereMap, BasicUtil.getAppId(), categoryIds);
//
//设置分页类
//
PageBean page = new PageBean();
//
//读取模板的分页数量
//
int size = BasicUtil.getInt(ParserUtil.SIZE,10);
//
try {
//
size = TagParser.getPageSize(ParserUtil.read(SEARCH+ParserUtil.HTM_SUFFIX,false ));
//
} catch (TemplateNotFoundException e1) {
//
e1.printStackTrace();
//
} catch (MalformedTemplateNameException e1) {
//
e1.printStackTrace();
//
} catch (ParseException e1) {
//
e1.printStackTrace();
//
} catch (IOException e1) {
//
e1.printStackTrace();
//
}
//
int total = PageUtil.totalPage(count, size);
//
//
int pageNo = BasicUtil.getInt(ParserUtil.PAGE_NO, 1);
//
if(pageNo >= total && total!=0) {
//
pageNo = total;
//
}
//
//获取总数
//
page.setTotal(total);
//
//设置页面显示数量
//
page.setSize(size);
//
//设置列表当前页
//
//
page.setPageNo(pageNo);
//
//
String str = ParserUtil.PAGE_NO+","+ParserUtil.SIZE;
//
//设置分页的统一链接
//
String url = BasicUtil.getUrl()+request.getServletPath() +"?" + BasicUtil.assemblyRequestUrlParams(str.split(","));
//
String pageNoStr = "&"+ParserUtil.SIZE+"="+size+"&"+ParserUtil.PAGE_NO+"=";
//
//下一页
//
String nextUrl = url + pageNoStr+((pageNo+1 > total)?total:pageNo+1);
//
//首页
//
String indexUrl = url + pageNoStr + 1;
//
//尾页
//
String lastUrl = url + pageNoStr + total;
//
//上一页 当前页为1时,上一页就是1
//
String preUrl = url + pageNoStr + ((pageNo==1) ? 1:pageNo-1);
//
//
page.setIndexUrl(indexUrl);
//
page.setNextUrl(nextUrl);
//
page.setPreUrl(preUrl);
//
page.setLastUrl(lastUrl);
//
map.put(ParserUtil.URL, BasicUtil.getUrl());
//
Map<String, Object> searchMap = BasicUtil.assemblyRequestMap();
//
searchMap.put(ParserUtil.PAGE_NO, pageNo);
//
map.put(SEARCH, searchMap);
//
map.put(ParserUtil.PAGE, page);
//
//动态解析
//
map.put(ParserUtil.IS_DO,false);
//
//设置动态请求的模块路径
//
map.put(ParserUtil.MODEL_NAME, "mcms");
//
//解析后的内容
//
String content = "";
//
try {
//
//根据模板路径,参数生成
//
content = CmsParserUtil.generate(SEARCH+ParserUtil.HTM_SUFFIX,map, isMobileDevice(request));
//
} catch (TemplateNotFoundException e) {
//
e.printStackTrace();
//
} catch (MalformedTemplateNameException e) {
//
e.printStackTrace();
//
} catch (ParseException e) {
//
e.printStackTrace();
//
} catch (IOException e) {
//
e.printStackTrace();
//
}
//
this.outString(response, content);
//
}
/**
* 动态组织查询where条件 获取查询条件的Map key:字段名 value:List 字段的各种判断值 list[0]:是否为自定义字段
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment