Browse Source

关键词1.0版本导出功能开发

JiangChongBo 2 years ago
parent
commit
7b06108fcb

+ 2 - 1
src/main/java/com/caimei/modules/product/dao/KeywordFrequencyDao.java

@@ -19,5 +19,6 @@ public interface KeywordFrequencyDao extends CrudDao<SearchFrequency> {
 
     int insert(SearchFrequency searchFrequency);
 
-    int update();
+    int update(SearchFrequency searchFrequency);
+    List<SearchFrequency> getInfoByIdList(@Param("idList") int[] idList);
 }

+ 10 - 0
src/main/java/com/caimei/modules/product/service/KeywordFrequencyService.java

@@ -10,7 +10,10 @@ import com.thinkgem.jeesite.common.service.CrudService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.List;
 
@@ -74,4 +77,11 @@ public class KeywordFrequencyService extends CrudService<KeywordFrequencyDao, Se
     public void save(SearchFrequency searchFrequency) {
         super.save(searchFrequency);
     }
+    public List<SearchFrequency> export(String ids) {
+        String[]  idList=ids.split(",");
+        int[] array = Arrays.asList(idList).stream().mapToInt(Integer::parseInt).toArray();
+        List<SearchFrequency> infoByIdList = keywordFrequencyDao.getInfoByIdList(array);
+        return infoByIdList;
+    }
+
 }

+ 60 - 0
src/main/java/com/caimei/modules/product/web/KeywordFrequencyController.java

@@ -1,12 +1,16 @@
 package com.caimei.modules.product.web;
 
+import com.caimei.modules.common.utils.ExcelUtil;
 import com.caimei.modules.order.entity.CmAuthorizedConsignment;
+import com.caimei.modules.order.entity.CmDiscernReceipt;
+import com.caimei.modules.order.utils.OrderUtil;
 import com.caimei.modules.product.entity.SearchFrequency;
 import com.caimei.modules.product.service.KeywordFrequencyService;
 import com.github.pagehelper.PageInfo;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.web.BaseController;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -19,7 +23,10 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.awt.*;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Controller
 @RequestMapping(value = "${adminPath}/product/keywordFrequency")
@@ -130,6 +137,8 @@ public class KeywordFrequencyController extends BaseController {
         searchFrequency.setTrueStatus(1);
         searchFrequency.setFromSearch(6);//为管理员添加
         searchFrequency.setPath("管理员添加");
+        Date date=new Date();
+        searchFrequency.setSearchTime(new java.sql.Date(date.getTime()));
         if(null !=searchFrequency.getKeyId()){
             searchFrequency.setId(searchFrequency.getKeyId().toString());
         }
@@ -143,4 +152,55 @@ public class KeywordFrequencyController extends BaseController {
         return "redirect:"+Global.getAdminPath()+"/product/keywordFrequency/getKeywordThesaurusInfo";
 
     }
+
+    /**
+     * 导出关键词
+     * @param ids
+     * @param redirectAttributes
+     * @param request
+     * @param response
+     */
+    @RequestMapping(value = "export")
+    public void export(String ids, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response) {
+        //获取订单数据
+        String fileName = "关键词列表.xls";
+        String template = Global.getConfig("export.template");
+        String templateFileName = template + "/keyword.xls";
+        try {
+            Map data = new HashMap<String, Object>();
+            List<SearchFrequency> list = keywordFrequencyService.export(ids);
+            data.put("list", list);
+//            data.put("orderUtil", new OrderUtil());
+            new ExcelUtil().createExcel(templateFileName, data, fileName, response);
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "关键词导出失败!" + e.getMessage());
+            logger.info(e.getMessage());
+            e.printStackTrace();
+        }
+    }
+    /**
+     * 导出关键词
+     * @param ids
+     * @param redirectAttributes
+     * @param request
+     * @param response
+     */
+    @RequestMapping(value = "exportThesaurus")
+    public void exportThesaurus(String ids, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response) {
+        //获取订单数据
+        String fileName = "关键词列表.xls";
+        String template = Global.getConfig("export.template");
+        String templateFileName = template + "/thesaurus.xls";
+        try {
+            Map data = new HashMap<String, Object>();
+            List<SearchFrequency> list = keywordFrequencyService.export(ids);
+            data.put("list", list);
+//            data.put("orderUtil", new OrderUtil());
+            new ExcelUtil().createExcel(templateFileName, data, fileName, response);
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "关键词导出失败!" + e.getMessage());
+            logger.info(e.getMessage());
+            e.printStackTrace();
+        }
+    }
 }

BIN
src/main/resources/export/keyword.xls


BIN
src/main/resources/export/thesaurus.xls


+ 18 - 1
src/main/resources/mappings/modules/product/SearchFrequencyMapper.xml

@@ -68,6 +68,23 @@
         values (#{fromSearch},#{path},#{keyword},#{frequency},#{searchTime},#{trueStatus})
     </insert>
     <update id="update">
-        update cm_user_search_frequency set keyword=#{keyword} where id=#{id}
+        update cm_user_search_frequency set keyword=#{keyword},searchTime=#{searchTime} where id=#{id}
     </update>
+    <select id="getInfoByIdList" resultType="com.caimei.modules.product.entity.SearchFrequency">
+        select
+            id as keyId,
+            fromSearch,
+            path,
+            keyword,
+            frequency,
+            searchTime,
+            trueStatus,
+            delStatus
+        from cm_user_search_frequency
+        where
+           id in
+        <foreach collection="idList" open="(" separator="," close=")" item="reId">
+            #{reId,jdbcType=INTEGER}
+        </foreach>
+    </select>
 </mapper>

+ 17 - 1
src/main/webapp/WEB-INF/views/modules/product/keywordFrequency.jsp

@@ -116,6 +116,22 @@
             });
             updateEnabledStatus(items.toString());
         }
+        function getSelectKeywords(){
+            var items = new Array();
+            $items=$('.check-item:checked');
+            if(0==$items.length){
+                top.$.jBox.tip('请选择', 'error');
+                return;
+            }
+            $items.each(function(i){
+                items.push($(this).parents(".item-info").attr("id"));
+            });
+            exportKeyword(items.toString());
+        }
+        //导出关键词
+           function exportKeyword(ids){
+                window.location.href = "${ctx}/product/keywordFrequency/export?ids=" + ids;
+           }
     </script>
 </head>
 <body>
@@ -137,7 +153,7 @@
         </form:select>
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
         &nbsp;&nbsp;<input id="addKeyWord" class="btn btn-primary" type="button" value="加入关键词库" onclick="updateStatus()"/>
-        &nbsp;&nbsp;<input id="export" class="btn btn-primary" type="button" value="导出"/>
+        &nbsp;&nbsp;<input id="export" class="btn btn-primary" type="button" value="导出" onclick="getSelectKeywords()"/>
     </div>
 </form:form>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">

+ 19 - 3
src/main/webapp/WEB-INF/views/modules/product/keywordThesaurus.jsp

@@ -120,6 +120,22 @@
         // function addkeyWord(){
         //
         // }
+        function getSelectKeywords(){
+            var items = new Array();
+            $items=$('.check-item:checked');
+            if(0==$items.length){
+                top.$.jBox.tip('请选择', 'error');
+                return;
+            }
+            $items.each(function(i){
+                items.push($(this).parents(".item-info").attr("id"));
+            });
+            exportKeyword(items.toString());
+        }
+        //导出关键词
+        function exportKeyword(ids){
+            window.location.href = "${ctx}/product/keywordFrequency/exportThesaurus?ids=" + ids;
+        }
     </script>
 </head>
 <body>
@@ -144,7 +160,7 @@
 <%--        &nbsp;&nbsp;<input id="addKeyWord" class="btn btn-primary" type="button" value="加入关键词库" onclick="updateStatus()"/>--%>
         &nbsp;&nbsp;<input id="addKey" class="btn btn-primary" type="button" value="添加关键词" onclick="window.location='${ctx}/product/keywordFrequency/form?status=2'"/>
         &nbsp;&nbsp;<input id="import" class="btn btn-primary" type="button" value="导入"/>
-        &nbsp;&nbsp;<input id="export" class="btn btn-primary" type="button" value="导出"/>
+        &nbsp;&nbsp;<input id="export" class="btn btn-primary" type="button" value="导出" onclick="getSelectKeywords()"/>
     </div>
 </form:form>
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
@@ -154,7 +170,7 @@
         <th>序号</th>
         <th>关键词</th>
         <th>搜索来源</th>
-        <th>搜索次数</th>
+        <th>添加时间</th>
         <shiro:hasPermission name="user:newCmClub:edit"><th>操作</th></shiro:hasPermission>
     </tr>
     </thead>
@@ -177,7 +193,7 @@
                 </c:if>
             </td>
                 <%--<td>${newCmSp.spIdentity}</td>--%>
-            <td>${newCmSp.frequency}</td>
+            <td>${newCmSp.searchTime}</td>
             <shiro:hasPermission name="user:newCmClub:edit">
                 <td>
                         <%--                    <c:if test="${newCmSp.status eq 90 || newCmSp.status eq 91}">--%>