Commit 6b874025 authored by 他是超人他会飞's avatar 他是超人他会飞 Committed by 铭飞

!149 自定义模型字段搜索

Merge pull request !149 from 他是超人他会飞/4.7.0
parents 03e2ac9b c4ea16f0
......@@ -67,12 +67,12 @@ CREATE TABLE `mdiy_tag_sql` (
-- ----------------------------
-- Records of mdiy_tag_sql
-- ----------------------------
INSERT INTO `mdiy_tag_sql` VALUES (5, 3, 'SELECT\r\n basic_id AS id,\r\n LEFT (basic_title, ${titlelen ?default(40)}) AS title,\r\n basic_title AS fulltitle,\r\n article_author AS author,\r\n article_source AS source,\r\n article_content AS content,\r\n category.category_title AS typename,\r\n category.category_id AS typeid,\r\n <#--列表页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/list.do?typeid=\", category.category_id) as typelink,\r\n <#else>\r\n (SELECT \"index.html\") AS typelink,\r\n </#if>\r\n basic.basic_thumbnails AS litpic,\r\n <#--内容页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/mcms/view.do?id=\", basic_id) as link,\r\n <#else>\r\n cms_article.article_url AS link,\r\n </#if>\r\n basic_datetime AS date,<#if tableNname??>${tableNname}.*,</#if>\r\n basic_description AS descrip,\r\n basic_hit AS hit,\r\n article_type AS flag,\r\n category_title AS typetitle,\r\n cms_article.article_keyword AS keyword \r\nFROM\r\n basic\r\n LEFT JOIN cms_article ON cms_article.article_basicid = basic.basic_id\r\n LEFT JOIN category ON basic_categoryid = category.category_id\r\n LEFT JOIN basic_column ON basic_column.column_category_id = basic.basic_categoryid \r\n <#--判断是否有自定义模型表-->\r\n <#if tableNname??>LEFT JOIN ${tableNname} ON ${tableNname}.basicId=cms_article.article_basicid </#if>\r\nWHERE <#--查询栏目-->\r\n 1 = 1 <#if typeid??> and (basic_categoryid=${typeid} or basic_categoryid in \r\n (select category_id FROM category where category.del=0 and find_in_set(${typeid},CATEGORY_PARENT_ID)))</#if>\r\n <#--标题-->\r\n <#if basic_title??> and basic_title like CONCAT(\"%\",\'${basic_title}\',\"%\")</#if>\r\n <#--作者-->\r\n <#if article_author??> and article_author like CONCAT(\"%\",\'${article_author}\',\"%\")</#if>\r\n <#--来源-->\r\n <#if article_source??> and article_source like CONCAT(\"%\",\'${article_source}\',\"%\")</#if>\r\n <#--属性-->\r\n <#if article_type??> and article_type like CONCAT(\"%\",\'${article_type}\',\"%\")</#if>\r\n <#--图片-->\r\n <#if basic_thumbnails??> and basic_thumbnails like CONCAT(\"%\",\'${basic_thumbnails}\',\"%\")</#if>\r\n <#--描述-->\r\n <#if basic_description??> and basic_description like CONCAT(\"%\",\'${basic_description}\',\"%\")</#if>\r\n <#--关键字-->\r\n <#if article_keyword??> and article_keyword like CONCAT(\"%\",\'${article_keyword}\',\"%\")</#if>\r\n <#--内容-->\r\n <#if article_content??> and article_content like CONCAT(\"%\",\'${article_content}\',\"%\")</#if>\r\n <#--自定义顺序-->\r\n <#if article_freeorder??> and article_freeorder=${article_freeorder}</#if>\r\n LIMIT \r\n <#--判断是否分页-->\r\n <#if ispaging?? && pageNo??>${(pageNo?eval-1)*size?eval},${size?default(20)}\r\n <#else>${size?default(20)}</#if>', 1);
INSERT INTO `mdiy_tag_sql` VALUES (5, 3, 'SELECT\r\n basic_id AS id,\r\n LEFT (basic_title, ${titlelen ?default(40)}) AS title,\r\n basic_title AS fulltitle,\r\n article_author AS author,\r\n article_source AS source,\r\n article_content AS content,\r\n category.category_title AS typename,\r\n category.category_id AS typeid,\r\n <#--列表页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/list.do?typeid=\", category.category_id) as typelink,\r\n <#else>\r\n (SELECT \"index.html\") AS typelink,\r\n </#if>\r\n basic.basic_thumbnails AS litpic,\r\n <#--内容页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/view.do?id=\", basic_id) as link,\r\n <#else>\r\n cms_article.article_url AS link,\r\n </#if>\r\n basic_datetime AS date,<#if tableName??>${tableName}.*,</#if>\r\n basic_description AS descrip,\r\n basic_hit AS hit,\r\n article_type AS flag,\r\n category_title AS typetitle,\r\n cms_article.article_keyword AS keyword \r\nFROM\r\n basic\r\n LEFT JOIN cms_article ON cms_article.article_basicid = basic.basic_id\r\n LEFT JOIN category ON basic_categoryid = category.category_id\r\n LEFT JOIN basic_column ON basic_column.column_category_id = basic.basic_categoryid \r\n <#--判断是否有自定义模型表-->\r\n <#if tableName??>LEFT JOIN ${tableName} ON ${tableName}.basicId=cms_article.article_basicid </#if>\r\nWHERE <#--查询栏目-->\r\n 1 = 1 <#if typeid??> and (basic_categoryid=${typeid} or basic_categoryid in \r\n (select category_id FROM category where category.del=0 and find_in_set(${typeid},CATEGORY_PARENT_ID)))</#if>\r\n <#--标题-->\r\n <#if basic_title??> and basic_title like CONCAT(\"%\",\'${basic_title}\',\"%\")</#if>\r\n <#--作者-->\r\n <#if article_author??> and article_author like CONCAT(\"%\",\'${article_author}\',\"%\")</#if>\r\n <#--来源-->\r\n <#if article_source??> and article_source like CONCAT(\"%\",\'${article_source}\',\"%\")</#if>\r\n <#--属性-->\r\n <#if article_type??> and article_type like CONCAT(\"%\",\'${article_type}\',\"%\")</#if>\r\n <#--图片-->\r\n <#if basic_thumbnails??> and basic_thumbnails like CONCAT(\"%\",\'${basic_thumbnails}\',\"%\")</#if>\r\n <#--描述-->\r\n <#if basic_description??> and basic_description like CONCAT(\"%\",\'${basic_description}\',\"%\")</#if>\r\n <#--关键字-->\r\n <#if article_keyword??> and article_keyword like CONCAT(\"%\",\'${article_keyword}\',\"%\")</#if>\r\n <#--内容-->\r\n <#if article_content??> and article_content like CONCAT(\"%\",\'${article_content}\',\"%\")</#if>\r\n <#--自定义顺序-->\r\n <#if article_freeorder??> and article_freeorder=${article_freeorder}</#if>\r\n <#--自定义模型-->\r\n <#if diyModel??> \r\n <#list diyModel as dm>\r\n and ${tableName}.${dm.key} = \"${dm.value}\" \r\n </#list>\r\n </#if>\r\n <#--文章属性-->\r\n <#if flag?? >\r\n and cms_article.article_type like CONCAT(\'%\',\'${flag}\',\'%\') \r\n </#if>\r\n <#if noflag?? >\r\n and cms_article.article_type not like CONCAT(\'%\',\'${noflag}\',\'%\') \r\n </#if>\r\n <#--字段排序-->\r\n <#if orderby?? >\r\n ORDER BY \r\n <#if orderby==\"date\"> basic.basic_datetime</#if> \r\n <#if orderby==\"updatedate\"> basic.basic_updatetime</#if> \r\n <#if orderby==\"hit\"> basic.basic_hit</#if>\r\n <#if orderby==\"sort\"> basic.basic_sort</#if>\r\n <#if orderby==\"id\"> basic.basic_id</#if>\r\n </#if>\r\n <#if order?? >\r\n <#if order==\"desc\"> desc</#if>\r\n <#if order==\"asc\"> asc</#if>\r\n </#if>\r\n LIMIT \r\n <#--判断是否分页-->\r\n <#if ispaging?? && pageNo??>${(pageNo?eval-1)*size?eval},${size?default(20)}\r\n <#else>${size?default(20)}</#if>', 1);
INSERT INTO `mdiy_tag_sql` VALUES (6, 4, 'select category_id as id,category_id as typeid,category_title as typetitle,\r\n<#--动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/list.do?typeid=\", category_id) as typelink,\r\n <#else>\r\nCONCAT(column_path,\"/index.html\") as typelink,\r\n </#if>column_keyword as typekeyword,column_descrip as typedescrip,category_smallimg as typelitpic from category \r\nLEFT JOIN basic_column bc on bc.column_category_id=category.category_id where \r\n<#if type?has_content>\r\n <#--顶级栏目-->\r\n <#if type==\"top\">\r\n <#if typeid??>\r\n category_categoryid=(select category_categoryid from category where category_id=(select category_categoryid from category where category_id=${typeid})) \r\n <#else>\r\n category_categoryid=0\r\n </#if>\r\n <#--同级栏目-->\r\n <#elseif type==\"level\">\r\n <#if typeid??>\r\n category_categoryid=(select category_categoryid from category where category_id=${typeid})\r\n <#else>\r\n 1=1\r\n </#if>\r\n <#--当前栏目-->\r\n <#elseif type==\"self\">\r\n <#if typeid??>\r\n category_id=${typeid}\r\n <#else>\r\n 1=1\r\n </#if>\r\n <#--子栏目-->\r\n <#elseif type==\"son\">\r\n <#if typeid??>\r\n category_categoryid=${typeid}\r\n <#else>\r\n 1=1\r\n </#if>\r\n </#if>\r\n<#else> <#--默认son-->\r\n <#if typeid??>\r\n category_categoryid=${typeid}\r\n <#else>\r\n category_categoryid=0\r\n </#if>\r\n</#if>', 1);
INSERT INTO `mdiy_tag_sql` VALUES (7, 5, 'select \r\nAPP_NAME as name,\r\napp_logo as logo,\r\napp_keyword as keyword,\r\napp_description as descrip,\r\napp_copyright as copyright,\r\n<#--动态解析 -->\r\n<#if isDo?? && isDo>\r\n\"${url}\" as url,\r\n\"${url}\" as host,\r\n<#--使用地址栏的域名 -->\r\n<#elseif url??>\r\nCONCAT(\"${url}\",\"/${html}/\",app_id,\"/<#if m??>${m}</#if>\") as url,\r\n\"${url}\" as host,\r\n<#else>\r\nCONCAT(REPLACE(REPLACE(TRIM(substring_index(app_url,\"\\n\",1)), CHAR(10),\'\'), CHAR(13),\'\'),\"/html/\",app_id,\"/<#if m??>${m}</#if>\") as url,\r\nREPLACE(REPLACE(TRIM(substring_index(app_url,\"\\n\",1)), CHAR(10),\'\'), CHAR(13),\'\') as host,\r\n</#if>\r\nCONCAT(\"templets/\",app_id,\"/\",<#if m??>CONCAT(app_style,\"/${m}\")<#else>app_style</#if>) as style <#-- 判断是否为手机端 -->\r\nfrom app limit 1', 1);
INSERT INTO `mdiy_tag_sql` VALUES (8, 7, 'SELECT \r\nbasic_id as id,\r\nleft(basic_title,${titlelen?default(40)}) as title,\r\nbasic_title as fulltitle,\r\narticle_author as author, \r\narticle_source as source, \r\narticle_content as content,\r\ncategory.category_title as typename,\r\ncategory.category_id as typeid,\r\n<#--动态链接-->\r\n<#if isDo?? && isDo>\r\nCONCAT(\"/${modelName}/list.do?typeid=\", category.category_id) as typelink,\r\n<#else>\r\n(SELECT \"index.html\") as typelink,\r\n</#if>\r\nbasic.basic_thumbnails as litpic,\r\n<#--内容页动态链接-->\r\n<#if isDo?? && isDo>\r\nCONCAT(\"/mcms/view.do?id=\", basic_id) as link,\r\n<#else>\r\ncms_article.article_url AS link,\r\n</#if>\r\nbasic_datetime as date,\r\nbasic_description as descrip,\r\nbasic_hit as hit,\r\narticle_type as flag,\r\ncategory_title as typetitle,\r\n<#if tableName??>${tableName}.*,</#if>\r\ncms_article.article_keyword as keyword\r\nFROM basic LEFT JOIN cms_article ON cms_article.article_basicid = basic.basic_id \r\nLEFT JOIN category ON basic_categoryid=category.category_id \r\nLEFT JOIN basic_column ON basic_column.column_category_id=basic.basic_categoryid\r\n<#--判断是否有自定义模型表-->\r\n<#if tableName??>left join ${tableName} on ${tableName}.basicId=cms_article.ARTICLE_BASICID</#if>\r\nWHERE \r\n1=1\r\n<#if id??> and basic_id=${id}</#if>', 1);
INSERT INTO `mdiy_tag_sql` VALUES (9, 8, '<#assign select=\"(SELECT \'\')\"/>\r\n<#if preId??>\r\nSELECT \r\nbasic_id as id,\r\nleft(basic_title,${titlelen?default(40)}) as title,\r\nbasic_title as fulltitle,\r\narticle_author as author, \r\narticle_source as source, \r\narticle_content as content,\r\ncategory.category_title as typename,\r\ncategory.category_id as typeid,\r\n(SELECT \"index.html\") AS typelink,\r\nbasic.basic_thumbnails as litpic,\r\ncms_article.article_url as link,\r\nbasic_datetime as date,\r\nbasic_description as descrip,\r\nbasic_hit as hit,\r\narticle_type as flag,\r\ncms_article.article_keyword as keyword \r\nFROM basic LEFT JOIN cms_article ON cms_article.article_basicid = basic.basic_id \r\nLEFT JOIN category ON basic_categoryid=category.category_id \r\nLEFT JOIN basic_column ON basic_column.column_category_id=basic.basic_categoryid \r\nWHERE basic_id=${preId}\r\n<#else><#--没有上一页返回空字符串-->\r\nSELECT \r\n${select} as id,\r\n${select} as title,\r\n${select} as fulltitle,\r\n${select} as author, \r\n${select} as source, \r\n${select} as content,\r\n${select} as typename,\r\n${select} as typeid,\r\n${select} as typelink,\r\n${select} as litpic,\r\n${select} as link,\r\n${select} as date,\r\n${select} as descrip,\r\n${select} as hit,\r\n${select} as flag,\r\n${select} as keyword FROM basic\r\n</#if>', NULL);
INSERT INTO `mdiy_tag_sql` VALUES (10, 9, ' select\r\n <#--判断是否有栏目对象,用于搜索不传栏目-->\r\n <#if column??>\r\n <#--顶级栏目处理-->\r\n <#if column.categoryCategoryId==0>\r\n <#assign path=column.columnPath/>\r\n <#else>\r\n <#assign path=column.columnPath/>\r\n </#if>\r\n <#else>\r\n <#assign path=\"\"/>\r\n </#if>\r\n <#--总记录数、总页数-->\r\n (SELECT ${total}) as total,\r\n <#--记录总数-->\r\n (SELECT ${rcount}) as rcount,\r\n <#--当前页码-->\r\n (SELECT ${pageNo}) as cur,\r\n <#--首页-->\r\n CONCAT(\"${path}\", \"/index.html\") as `index`,\r\n <#--上一页-->\r\n <#if (pageNo?eval-1) gt 1>\r\n CONCAT(\"${path}\",\"/list-${pageNo?eval-1}.html\") as pre,\r\n <#else>\r\n CONCAT(\"${path}\",\"/index.html\") as pre,\r\n </#if>\r\n <#--下一页-->\r\n <#if total==1>\r\n CONCAT(\"${path}\", \"/index.html\") as `next`,\r\n CONCAT(\"${path}\", \"/index.html\") as `last`\r\n <#else>\r\n <#if pageNo?eval gte total>\r\n CONCAT(\"${path}\",\"/list-${total}.html\") as next,\r\n <#else>\r\n CONCAT(\"${path}\",\"/list-${pageNo?eval+1}.html\") as next,\r\n </#if>\r\n <#--最后一页-->\r\n CONCAT(\"${path}\",\"/list-${total}.html\") as last\r\n </#if>', NULL);
INSERT INTO `mdiy_tag_sql` VALUES (10, 9, ' select\r\n <#if !(indexUrl??)>\r\n <#--判断是否有栏目对象,用于搜索不传栏目-->\r\n <#if column??>\r\n <#--顶级栏目处理-->\r\n <#if column.categoryCategoryId==0>\r\n <#assign path=column.columnPath/>\r\n <#else>\r\n <#assign path=column.columnPath/>\r\n </#if>\r\n <#else>\r\n <#assign path=\"\"/>\r\n </#if>\r\n <#--总记录数、总页数-->\r\n (SELECT ${total}) as total,\r\n <#--记录总数-->\r\n (SELECT ${rcount}) as rcount,\r\n <#--当前页码-->\r\n (SELECT ${pageNo}) as cur,\r\n <#--首页-->\r\n CONCAT(\"${path}\", \"/index.html\") as `index`,\r\n <#--上一页-->\r\n <#if (pageNo?eval-1) gt 1>\r\n CONCAT(\"${path}\",\"/list-${pageNo?eval-1}.html\") as pre,\r\n <#else>\r\n CONCAT(\"${path}\",\"/index.html\") as pre,\r\n </#if>\r\n <#--下一页-->\r\n <#if total==1>\r\n CONCAT(\"${path}\", \"/index.html\") as `next`,\r\n CONCAT(\"${path}\", \"/index.html\") as `last`\r\n <#else>\r\n <#if pageNo?eval gte total>\r\n CONCAT(\"${path}\",\"/list-${total}.html\") as next,\r\n <#else>\r\n CONCAT(\"${path}\",\"/list-${pageNo?eval+1}.html\") as next,\r\n </#if>\r\n <#--最后一页-->\r\n CONCAT(\"${path}\",\"/list-${total}.html\") as last\r\n </#if>\r\n<#else><#--判断是否是搜索页面-->\r\n \"${indexUrl}\" as `index`,\"${lastUrl}\" as `last`,\"${preUrl}\" as `pre`,\"${nextUrl}\" as `next`\r\n</#if>', NULL);
INSERT INTO `mdiy_tag_sql` VALUES (11, 10, '<#assign select=\"(SELECT \'\')\"/>\r\n<#if nextId??>\r\nSELECT \r\nbasic_id as id,\r\nleft(basic_title,${titlelen?default(40)}) as title,\r\nbasic_title as fulltitle,\r\narticle_author as author, \r\narticle_source as source, \r\narticle_content as content,\r\ncategory.category_title as typename,\r\ncategory.category_id as typeid,\r\n(SELECT \"index.html\") as typelink,\r\nbasic.basic_thumbnails as litpic,\r\ncms_article.article_url as link,\r\nbasic_datetime as date,\r\nbasic_description as descrip,\r\nbasic_hit as hit,\r\narticle_type as flag,\r\ncms_article.article_keyword as keyword \r\nFROM basic LEFT JOIN cms_article ON cms_article.article_basicid = basic.basic_id \r\nLEFT JOIN category ON basic_categoryid=category.category_id \r\nLEFT JOIN basic_column ON basic_column.column_category_id=basic.basic_categoryid \r\nWHERE basic_id=${nextId}\r\n<#else>\r\nSELECT \r\n${select} as id,\r\n${select} as title,\r\n${select} as fulltitle,\r\n${select} as author, \r\n${select} as source, \r\n${select} as content,\r\n${select} as typename,\r\n${select} as typeid,\r\n${select} as typelink,\r\n${select} as litpic,\r\n${select} as link,\r\n${select} as date,\r\n${select} as descrip,\r\n${select} as hit,\r\n${select} as flag,\r\n${select} as keyword FROM basic\r\n</#if>', NULL);
INSERT INTO `mdiy_tag_sql` VALUES (13, 12, 'SELECT\r\n basic_id AS id,\r\n product_price as price,\r\n product_cost_price AS costprice,\r\n product_content AS content,\r\n product_code AS code,\r\n <#--详情页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/view.do?id=\", basic_id) as link,\r\n <#else>\r\n product_linkUrl AS link,\r\n </#if>\r\n basic_title AS title,\r\n product_sale AS sale,\r\n product_good AS specification,\r\n product_inventory AS stock,\r\n basic.basic_categoryid AS typeid,\r\n basic_thumbnails AS litpic,\r\n <#--列表页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/mmall/list.do?typeid=\", category.category_id) as typelink,\r\n <#else>\r\n (SELECT \"index.html\") AS typelink,\r\n </#if>\r\n <#--判断是否有自定义模型表-->\r\n <#if tableNname??>${tableNname}.*,</#if>\r\n category_title AS typetitle\r\nFROM\r\n mall_product \r\n LEFT JOIN basic ON mall_product.product_basicID = basic.basic_id\r\n LEFT JOIN category ON basic_categoryid = category.category_id\r\n <#--判断是否有自定义模型表-->\r\n <#if tableNname??>LEFT JOIN ${tableNname} ON ${tableNname}.basicId=mall_product.product_basicID </#if>\r\nWHERE\r\n 1 = 1 <#--查询栏目-->\r\n <#if (typeid)??> and (basic_categoryid=${typeid} or basic_categoryid in \r\n (select category_id FROM category where find_in_set(${typeid},CATEGORY_PARENT_ID)))\r\n </#if>\r\n <#--模糊查询商品标题-->\r\n <#if basic_title??> and basic_title like CONCAT(\"%\",\'${basic_title}\',\"%\")</#if> \r\n LIMIT <#--判断是否分页-->\r\n <#if ispaging?? && pageNo??>${(pageNo?eval-1)*size?eval},${size?default(20)}\r\n <#else>${size?default(20)}</#if>', NULL);
INSERT INTO `mdiy_tag_sql` VALUES (14, 13, 'SELECT\r\n basic_id AS id,\r\n product_price as price,\r\n product_cost_price AS costprice,\r\n product_content AS content,\r\n product_code AS code,\r\n <#--详情页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/${modelName}/view.do?id=\", basic_id) as link,\r\n <#else>\r\n product_linkUrl AS link,\r\n </#if>\r\n basic_title AS title,\r\n product_sale AS sale,\r\n product_good AS specification,\r\n product_inventory AS stock,\r\n basic.basic_categoryid AS typeid,\r\n basic_thumbnails AS litpic,\r\n <#--列表页动态链接-->\r\n <#if isDo?? && isDo>\r\n CONCAT(\"/mmall/list.do?id=\", category.category_id) as typelink,\r\n <#else>\r\n (SELECT \"index.html\") AS typelink,\r\n </#if>\r\n <#--判断是否有自定义模型表-->\r\n <#if tableNname??>${tableNname}.*,</#if>\r\n category_title AS typetitle\r\nFROM\r\n mall_product \r\n LEFT JOIN basic ON mall_product.product_basicID = basic.basic_id\r\n LEFT JOIN category ON basic_categoryid = category.category_id\r\n LEFT JOIN basic_column ON basic_column.column_category_id = basic.basic_categoryid\r\n <#--判断是否有自定义模型表-->\r\n <#if tableNname??>LEFT JOIN ${tableNname} ON ${tableNname}.basicId=mall_product.product_basicID </#if>\r\nWHERE\r\n 1 = 1 <#if id??> and basic_id=${id} </#if>', NULL);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -287,7 +287,7 @@ public class ArticleAction extends BaseAction {
// 判断栏目是否存在新增字段
if (column.getColumnContentModelId() != 0) {
// 保存所有的字段信息
List<BaseEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
// 获取内容模型实体
ContentModelEntity contentModel = (ContentModelEntity) contentBiz
.getEntity(column.getColumnContentModelId());
......@@ -414,7 +414,7 @@ public class ArticleAction extends BaseAction {
// 判断栏目是否存在新增字段
if (column.getColumnContentModelId() != 0) {
// 保存所有的字段信息
List<BaseEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
ContentModelEntity newContentModel = (ContentModelEntity) contentBiz
.getEntity(column.getColumnContentModelId());
if (newContentModel != null) {
......@@ -442,7 +442,7 @@ public class ArticleAction extends BaseAction {
// 判断该文章是否存在新增字段
if (column.getColumnContentModelId() != 0) {
// 保存所有的字段信息
List<BaseEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
List<ContentModelFieldEntity> listField = fieldBiz.queryListByCmid(column.getColumnContentModelId());
// // update中的where条件
Map<String, Integer> where = new HashMap<String, Integer>();
// 压入默认的basicId字段
......@@ -576,7 +576,7 @@ public class ArticleAction extends BaseAction {
* 文章id
* @return 字段信息
*/
private Map checkField(List<BaseEntity> listField, HttpServletRequest request, int articleId) {
private Map checkField(List<ContentModelFieldEntity> listField, HttpServletRequest request, int articleId) {
Map<String, Object> mapParams = new HashMap();
// 压入默认的basicId字段
mapParams.put("basicId", articleId);
......
......@@ -227,7 +227,6 @@ public class ArticleAction extends BaseAction {
}
}
}
this.outJson(response, JSONArray.toJSONString(new ListBean(list, BasicUtil.endPage(list)),new DateValueFilter("yyyy-MM-dd HH:mm:ss")));
}
......
......@@ -41,14 +41,21 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import net.mingsoft.basic.action.BaseAction;
import net.mingsoft.basic.biz.ICategoryBiz;
import net.mingsoft.basic.biz.IColumnBiz;
import net.mingsoft.basic.biz.IModelBiz;
import net.mingsoft.basic.entity.BaseEntity;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.cms.biz.IArticleBiz;
import net.mingsoft.cms.util.CmsParserUtil;
import net.mingsoft.mdiy.biz.IContentModelBiz;
import net.mingsoft.mdiy.biz.IContentModelFieldBiz;
import net.mingsoft.mdiy.biz.ISearchBiz;
import net.mingsoft.mdiy.entity.ContentModelEntity;
import net.mingsoft.mdiy.entity.ContentModelFieldEntity;
import net.mingsoft.mdiy.entity.SearchEntity;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrSpliter;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import freemarker.core.ParseException;
......@@ -56,6 +63,7 @@ import freemarker.template.MalformedTemplateNameException;
import freemarker.template.TemplateNotFoundException;
import net.mingsoft.base.constant.Const;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.StringUtil;
import net.mingsoft.mdiy.util.ParserUtil;
/**
......@@ -94,6 +102,33 @@ public class SearchAction extends BaseAction {
*/
@Autowired
private IColumnBiz columnBiz;
/**
* 内容模型业务层
*/
@Autowired
private IContentModelBiz contentModelBiz;
/**
* 内容字段业务层
*/
@Autowired
private IContentModelFieldBiz fieldBiz;
/**
* 注入分类业务层
*/
@Autowired
private ICategoryBiz categoryBiz;
/**
* 模块管理biz
*/
@Autowired
private IModelBiz modelBiz;
/**
* 实现前端页面的文章搜索
*
......@@ -120,6 +155,34 @@ public class SearchAction extends BaseAction {
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>();
ColumnEntity column = null; // 当前栏目
ContentModelEntity contentModel = null; // 栏目对应模型
List<ContentModelFieldEntity> fieldList = new ArrayList<ContentModelFieldEntity>(); // 栏目对应字段
List<DiyModelMap> fieldValueList = new ArrayList<DiyModelMap>(); // 栏目对应字段的值
int typeId = BasicUtil.getInt("categoryId",0);
//记录自定义模型字段名
List filedStr = new ArrayList<>();
//根据栏目确定模版
if(typeId>0){
column = (ColumnEntity) columnBiz.getEntity(Integer.parseInt(typeId+""));
// 获取表单类型的id
if (column != null) {
contentModel = (ContentModelEntity) contentModelBiz.getEntity(column.getColumnContentModelId());
if (contentModel != null) {
fieldList = fieldBiz.queryListByCmid(contentModel.getCmId());
for (ContentModelFieldEntity cmField : fieldList) {
filedStr.add(cmField.getFieldFieldName());
}
map.put(ParserUtil.TABLE_NAME, contentModel.getCmTableName());
}
}
map.put(ParserUtil.COLUMN, column);
//设置栏目编号
map.put(ParserUtil.TYPE_ID, typeId);
}
// 遍历取字段集合
if (field != null) {
for (Entry<String, String[]> entry : field.entrySet()) {
......@@ -138,32 +201,69 @@ public class SearchAction extends BaseAction {
// 若为文章字段,则保存至文章字段集合;否则保存至自定义字段集合
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);
}
}
}
}
}
}
Map whereMap = this.searchMap(articleFieldName, null, null);
// 获取符合条件的文章总数
int count = articleBiz.getSearchCount(null, whereMap, BasicUtil.getAppId(), null);
int typeId = BasicUtil.getInt("categoryId",0);
//根据栏目确定模版
if(typeId>0){
ColumnEntity column = (ColumnEntity) columnBiz.getEntity(Integer.parseInt(map.get("typeid")+""));
map.put(ParserUtil.COLUMN, column);
//设置栏目编号
map.put(ParserUtil.TYPE_ID, typeId);
//添加自定义模型的字段和值
if(fieldValueList.size()>0){
map.put("diyModel", fieldValueList);
}
//组织where查询条件
Map whereMap = this.searchMap(articleFieldName, diyFieldName, fieldList);
// 获取符合条件的文章总数
int count = articleBiz.getSearchCount(contentModel, whereMap, BasicUtil.getAppId(), null);
int size = BasicUtil.getInt(ParserUtil.SIZE,10);
int total = PageUtil.totalPage(count, size);
//获取总数
map.put(ParserUtil.TOTAL, PageUtil.totalPage(count, size));
map.put(ParserUtil.TOTAL, total);
//设置页面显示数量
map.put(ParserUtil.RCOUNT, size);
map.put(ParserUtil.SIZE, size);
//设置列表当前页
map.put(ParserUtil.PAGE_NO, BasicUtil.getInt(ParserUtil.PAGE_NO,1));
int pageNo = (int) map.get(ParserUtil.PAGE_NO);
int next ,pre;
if(StringUtil.isBlank(pageNo) || pageNo==1){
//如果总页数等于1,下一页就是第一页,不等于就有第二页
next = 1==total ? total : 2;
pre = 1;
}else{
next = pageNo==total ? total : pageNo +1;
pre = pageNo-1==0 ? 1 : pageNo-1;
}
String str = ParserUtil.PAGE_NO+",";
//设置分页的统一链接
String url = BasicUtil.getUrl() + request.getServletPath() +"?" + BasicUtil.assemblyRequestUrlParams(str.split(","));
String pageNoStr = "&"+ParserUtil.PAGE_NO+"=";
//下一页
String nextUrl = url + pageNoStr+next;
//首页
String indexUrl = url + pageNoStr + 1;
//尾页
String lastUrl = url + pageNoStr + total;
//上一页
String preUrl = url + pageNoStr + pre;
map.put(ParserUtil.INDEX_URL, indexUrl);
map.put(ParserUtil.NEXT_URL, nextUrl);
map.put(ParserUtil.PRE_URL, preUrl);
map.put(ParserUtil.LAST_URL, lastUrl);
map.put(ParserUtil.URL, BasicUtil.getUrl());
Map searchMap = new HashMap<>();
Map<Object, Object> searchMap = new HashMap<>();
searchMap.put(BASIC_TITLE, BasicUtil.getString(BASIC_TITLE));
searchMap.put(ParserUtil.PAGE_NO, BasicUtil.getInt(ParserUtil.PAGE_NO,1));
map.put(SEARCH, searchMap);
......@@ -225,48 +325,48 @@ public class SearchAction extends BaseAction {
}
// 遍历字段自定义字段
// for (Iterator iter = diyFieldName.keySet().iterator(); iter.hasNext();) {
// String key = iter.next().toString();
// String fieldValue = diyFieldName.get(key);
// // 获取字段实体
// ContentModelFieldEntity field = this.get(key, fields);
// if (field != null) {
// List list = new ArrayList();
// // 是否为自定义字段0
// list.add(0, true);
// List listValue = new ArrayList();
// // 字段的值
// if (field.getFieldType() == IContentModelFieldBiz.INT || field.getFieldType() == IContentModelFieldBiz.FLOAT) {
// // 判断是否为区间查询
//
// if (diyFieldName.get(key).toString().indexOf("-") > 0) {
// String[] values = fieldValue.toString().split("-");
// // 是否是数字类型,false:是
// list.add(false);
// // 是否是区间比较 false:是
// list.add(false);
// // 字段值1
// listValue.add(values[0]);
// listValue.add(values[1]);
// } else {
// // 是否是数字类型,false:是2
// list.add(false);
// // 是否是区间比较 true:不是3
// list.add(true);
// // 字段值 1
// listValue.add(fieldValue);
// }
// } else {
// // 是否是数字类型,true:不是2
// list.add(true);
// list.add(false);
// // 字段值 1
// listValue.add(fieldValue);
// }
// list.add(listValue);
// map.put(key, list);
// }
// }
for (Iterator iter = diyFieldName.keySet().iterator(); iter.hasNext();) {
String key = iter.next().toString();
String fieldValue = diyFieldName.get(key);
// 获取字段实体
ContentModelFieldEntity field = this.get(key, fields);
if (field != null) {
List list = new ArrayList();
// 是否为自定义字段0
list.add(0, true);
List listValue = new ArrayList();
// 字段的值
if (field.getFieldType() == IContentModelFieldBiz.INT || field.getFieldType() == IContentModelFieldBiz.FLOAT) {
// 判断是否为区间查询
if (diyFieldName.get(key).toString().indexOf("-") > 0) {
String[] values = fieldValue.toString().split("-");
// 是否是数字类型,false:是
list.add(false);
// 是否是区间比较 false:是
list.add(false);
// 字段值1
listValue.add(values[0]);
listValue.add(values[1]);
} else {
// 是否是数字类型,false:是2
list.add(false);
// 是否是区间比较 true:不是3
list.add(true);
// 字段值 1
listValue.add(fieldValue);
}
} else {
// 是否是数字类型,true:不是2
list.add(true);
list.add(false);
// 字段值 1
listValue.add(fieldValue);
}
list.add(listValue);
map.put(key, list);
}
}
return map;
}
......@@ -288,5 +388,25 @@ public class SearchAction extends BaseAction {
}
return null;
}
}
\ No newline at end of file
/**
* 存储自定义模型字段和接口参数
* @author 铭飞开源团队
* @date 2019年3月5日
*/
public class DiyModelMap {
String key;
Object value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
}
......@@ -52,6 +52,8 @@
<result column="column_path" property="columnPath"/>
<result column="column_url" property="columnUrl" />
<result column="category_title" property="categoryTitle" />
<result column="column_category_id" property="categoryId"/><!-- 与Category类别类绑定ID -->
<result column="category_parent_id" property="categoryParentId" /><!-- 关联表category的父类型编号 -->
<result column="category_id" property="categoryId" />
<result column="COLUMN_CM_ID" property="columnContentModelId" />
<result column="COLUMN_TYPE" property="columnType" />
......@@ -318,7 +320,7 @@
<!-- 根据站点编号、开始、结束时间和栏目编号查询文章编号集合 -->
<select id="queryIdsByCategoryIdForParser" resultMap="resultMapBean" >
select
ARTICLE_BASICID,cl.*
ARTICLE_BASICID,cl.*,c.*
FROM cms_article a LEFT JOIN basic b ON a.ARTICLE_BASICID = b.BASIC_ID
LEFT JOIN basic_column cl ON b.BASIC_CATEGORYID = cl.COLUMN_CATEGORY_ID
JOIN category c ON c.CATEGORY_ID = cl.COLUMN_CATEGORY_ID
......
......@@ -8,10 +8,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import freemarker.cache.FileTemplateLoader;
import freemarker.core.ParseException;
......@@ -23,7 +20,6 @@ import net.mingsoft.base.constant.Const;
import net.mingsoft.basic.entity.ColumnEntity;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.basic.util.SpringUtil;
import net.mingsoft.basic.util.StringUtil;
import net.mingsoft.cms.bean.ColumnArticleIdBean;
import net.mingsoft.cms.constant.e.ColumnTypeEnum;
import net.mingsoft.mdiy.biz.IContentModelBiz;
......@@ -45,16 +41,12 @@ public class CmsParserUtil extends ParserUtil {
public static void generate(String templatePath, String targetPath) throws IOException {
Map<String, Object> map = new HashMap<String, Object>();
map.put(IS_DO, false);
boolean mobileStyle = false;
String content = CmsParserUtil.generate(templatePath, map, mobileStyle);
String content = CmsParserUtil.generate(templatePath, map, false);
FileUtil.writeString(content, ParserUtil.buildHtmlPath(targetPath), Const.UTF8);
//判断是否有移动端 不能将这个判断放在上面,会出现PC端一直是移动端的内容
if (!StringUtil.isBlank(BasicUtil.getApp().getAppMobileStyle())) {
mobileStyle = true;
}
// 生成移动页面
if (mobileStyle) {
if (ParserUtil.isMobile(templatePath)) {
// 手机端m
map.put(ParserUtil.MOBILE, BasicUtil.getApp().getAppMobileStyle());
content = CmsParserUtil.generate(templatePath, map, true);
......@@ -109,6 +101,11 @@ public class CmsParserUtil extends ParserUtil {
parserParams.put(RCOUNT, pageSize);
parserParams.put(TYPE_ID, column.getCategoryId());
parserParams.put(IS_DO, false);
parserParams.put(HTML, HTML);
//如果单站点,就废弃站点地址
if(ParserUtil.IS_SINGLE) {
parserParams.put(ParserUtil.URL, BasicUtil.getUrl());
}
if (i == 0) {
// 数据库中第一页是从开始0*size
// 首页路径index.html
......@@ -131,7 +128,7 @@ public class CmsParserUtil extends ParserUtil {
FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8);
// 判断是手机端生成还是pc端,防止重复生成
if (ObjectUtil.isNotNull(BasicUtil.getApp().getAppMobileStyle())) {
if (ParserUtil.isMobile(column.getColumnListUrl())) {
writer = new StringWriter();
mobileTemplate.process(null, writer);
tag = new TagParser(writer.toString(),parserParams);
......@@ -215,20 +212,27 @@ public class CmsParserUtil extends ParserUtil {
parserParams.put(ID, articleId);
// 第一篇文章没有上一篇
if (ai > 0) {
parserParams.put(PRE_ID, articleIdList.get(ai - 1).getArticleId());
ColumnArticleIdBean preCaBean = articleIdList.get(ai - 1);
//判断当前文档是否与上一页文章在同一栏目下,并且不能使用父栏目字符串,因为父栏目中没有所属栏目编号
if(articleColumnPath.contains(preCaBean.getCategoryId()+"")){
parserParams.put(PRE_ID, preCaBean.getArticleId());
}
}
// 最后一篇文章没有下一篇
if (ai + 1 < articleIdList.size()) {
parserParams.put(NEXT_ID, articleIdList.get(ai + 1).getArticleId());
ColumnArticleIdBean nextCaBean = articleIdList.get(ai + 1);
//判断当前文档是否与下一页文章在同一栏目下并且不能使用父栏目字符串,因为父栏目中没有所属栏目编号
if(articleColumnPath.contains(nextCaBean.getCategoryId()+"")){
parserParams.put(NEXT_ID, nextCaBean.getArticleId());
}
}
parserParams.put(IS_DO, false);
String content = CmsParserUtil.generate(articleIdList.get(ai).getColumnUrl(), parserParams, false);
FileUtil.writeString(content, writePath, Const.UTF8);
// 手机端
if (StringUtils.isNotEmpty(BasicUtil.getApp().getAppMobileStyle())) {
if (ParserUtil.isMobile(columnUrl)) {
writePath = ParserUtil.buildMobileHtmlPath(articleColumnPath + File.separator + articleId);
//如果是封面就生成index.html
if(articleIdList.get(ai).getColumnType() == ColumnTypeEnum.COLUMN_TYPE_COVER.toInt()) {
......
......@@ -21,12 +21,12 @@
<div class="ms-content-main-div">
<ul class="ms-content-main-ul">
{ms:arclist size=20 ispaging=true }
{ms:arclist size=10 ispaging=true}
<li>
<a href="{ms:global.url/}[field.link/]">
<!-- <span class="ms-content-main-li-span">·</span> -->
<span class="ms-content-main-li-title">[field.title/]</span>
<span class="ms-content-main-li-time">[field.date?string("yyyy-mm-dd")/]</span>
<span class="ms-content-main-li-time">[field.date?string("yyyy-MM-dd")/]</span>
</a>
</li>
{/ms:arclist}
......
......@@ -30,7 +30,7 @@
<div class="ms-content-right-main-icon-source">来源:{ms:field.source/}
<span class="ms-content-right-vertical">|</span>
</div>
<div class="ms-content-right-main-icon-time">时间:{ms:field.date?string("yyyy-mm-dd")/}</div>
<div class="ms-content-right-main-icon-time">时间:{ms:field.date?string("yyyy-MM-dd")/}</div>
</div>
<div class="ms-content-icon-right">
<div class="ms-content-right-main-icon-clicks"></div>
......
......@@ -16,7 +16,7 @@
<!-- 共7个结果 -->
</div>
<ul class="ms-content-main-ul">
{ms:arclist size=3 ispaging=true}
{ms:arclist size=10 ispaging=true}
<li>
<a href="{ms:global.url/}/[field.link/]">
[field.title/]
......@@ -27,10 +27,10 @@
</ul>
</div>
<div class="ms-content-main-page">
<a href="jacascript::void(0)" @click="indexAndLast(1)">首页</a>
<a href="jacascript::void(0)" @click="search(false)">上一页</a>
<a href="jacascript::void(0)" @click="search(true)">下一页</a>
<a href="jacascript::void(0)" @click="indexAndLast({ms:page.total/})"></a>
<a class="ms-content-main-page-first" href="{ms:page.index/}">首页</a>
<a class="ms-content-main-page-upper" href="{ms:page.pre/}">上一页</a>
<a class="ms-content-main-page-next" href="{ms:page.next/}">下一页</a>
<a class="ms-content-main-page-last" href="{ms:page.last/}"></a>
</div>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment