소스 검색

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

JiangChongBo 2 년 전
부모
커밋
79cf779de4

+ 6 - 2
src/main/java/com/caimei/modules/product/entity/SearchFrequency.java

@@ -2,8 +2,9 @@ package com.caimei.modules.product.entity;
 
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
-import java.sql.Date;
+import java.sql.Timestamp;
 
 @Data
 public class SearchFrequency extends DataEntity<SearchFrequency> {
@@ -27,7 +28,8 @@ public class SearchFrequency extends DataEntity<SearchFrequency> {
     /**
      * 搜索时间
      */
-    private Date searchTime ;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Timestamp searchTime ;
     /**
      * 0:未加入关键词库;1:已加入关键词库
      */
@@ -49,4 +51,6 @@ public class SearchFrequency extends DataEntity<SearchFrequency> {
     public SearchFrequency(String id){
         super(id);
     }
+
+    private String serachDate;
 }

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

@@ -84,4 +84,16 @@ public class KeywordFrequencyService extends CrudService<KeywordFrequencyDao, Se
         return infoByIdList;
     }
 
+    /**
+     *
+     * @param searchFrequencyList
+     */
+    @Transactional(readOnly = false)
+    public void importKeyword(List<SearchFrequency> searchFrequencyList){
+        if(null !=searchFrequencyList && searchFrequencyList.size()>0){
+            for (SearchFrequency searchFrequency:searchFrequencyList ) {
+                keywordFrequencyDao.insert(searchFrequency);
+            }
+        }
+    }
 }

+ 87 - 5
src/main/java/com/caimei/modules/product/web/KeywordFrequencyController.java

@@ -9,7 +9,15 @@ 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.utils.DateUtils;
+import com.thinkgem.jeesite.common.utils.excel.ImportExcel;
 import com.thinkgem.jeesite.common.web.BaseController;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.ss.usermodel.DateUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -18,15 +26,18 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
 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.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.List;
-import java.util.Map;
 
 @Controller
 @RequestMapping(value = "${adminPath}/product/keywordFrequency")
@@ -63,6 +74,16 @@ public class KeywordFrequencyController extends BaseController {
     public String getKeywordThesaurusInfo(SearchFrequency searchFrequency, HttpServletRequest request, HttpServletResponse response,  Model model){//@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
         searchFrequency.setTrueStatus(1);
         Page<SearchFrequency> keyInfo = keywordFrequencyService.findPage(new Page<SearchFrequency>(request,response),searchFrequency);
+        List<SearchFrequency> list = keyInfo.getList();
+        for (SearchFrequency search:list) {
+            if(null != search.getSearchTime()){
+                SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date da=new Date(search.getSearchTime().getTime());
+                String date = fmt.format(da);
+                search.setSerachDate(date);
+            }
+        }
+        keyInfo.setList(list);
         model.addAttribute("keyInfo",keyInfo);
         model.addAttribute("searchFrequency",searchFrequency);
         return "modules/product/keywordThesaurus";
@@ -138,7 +159,13 @@ public class KeywordFrequencyController extends BaseController {
         searchFrequency.setFromSearch(6);//为管理员添加
         searchFrequency.setPath("管理员添加");
         Date date=new Date();
-        searchFrequency.setSearchTime(new java.sql.Date(date.getTime()));
+        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        sd.format(date);
+//        searchFrequency.setSearchTime(new java.sql.Timestamp(date.getTime()));
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        searchFrequency.setSearchTime(new java.sql.Timestamp(cal.getTime().getTime()));
+
         if(null !=searchFrequency.getKeyId()){
             searchFrequency.setId(searchFrequency.getKeyId().toString());
         }
@@ -179,7 +206,7 @@ public class KeywordFrequencyController extends BaseController {
         }
     }
     /**
-     * 导出关键词
+     * 导出关键词库关键词
      * @param ids
      * @param redirectAttributes
      * @param request
@@ -203,4 +230,59 @@ public class KeywordFrequencyController extends BaseController {
             e.printStackTrace();
         }
     }
+
+    /**
+     * 导入关键词
+     * @param file
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = "importKeyword")
+    public String importKeyword(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes){
+        String contentType = file.getContentType();
+        String fileName = file.getOriginalFilename();
+        if (file.isEmpty()) {
+            addMessage(redirectAttributes,"请选择需要导入的关键词文件");
+            return "redirect:"+Global.getAdminPath()+"/product/keywordFrequency/getKeywordThesaurusInfo";
+        }
+        try {
+            //根据路径获取这个操作excel的实例
+            HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());
+            //根据页面index 获取sheet页
+            HSSFSheet sheet = wb.getSheetAt(0);
+            HSSFRow row = null;
+            //循环sesheet页中数据从第二行开始,第一行是标题
+            List<SearchFrequency> searchFrequencyList=new ArrayList<>();
+            for(int i=1;i<sheet.getPhysicalNumberOfRows()-1;i++){
+                row = sheet.getRow(i);
+                SearchFrequency searchFrequency=new SearchFrequency();
+                if(null !=row.getCell(1)){
+                searchFrequency.setKeyword(row.getCell(1).toString());
+                }else{
+                    continue;
+                }
+                if(null != row.getCell(2)){
+                    if("首页搜索".equals(row.getCell(2).toString())){
+                        searchFrequency.setFromSearch(1);
+                    }else if("信息中心搜索".equals(row.getCell(2).toString())){
+                        searchFrequency.setFromSearch(2);
+                    }else if("管理员添加".equals(row.getCell(2).toString())){
+                        searchFrequency.setFromSearch(6);
+                    }
+                }
+                if(null != row.getCell(3)){
+                    searchFrequency.setSearchTime(new java.sql.Timestamp(row.getCell(3).getDateCellValue().getTime()));
+                }
+                searchFrequency.setPath("管理员添加");
+                searchFrequency.setTrueStatus(1);
+                searchFrequencyList.add(searchFrequency);
+            }
+            //保存文件数据
+            keywordFrequencyService.importKeyword(searchFrequencyList);
+        } catch (IOException  e) {//| ParseException
+            e.printStackTrace();
+        }
+        addMessage(redirectAttributes,"导入的关键词成功");
+        return "redirect:"+Global.getAdminPath()+"/product/keywordFrequency/getKeywordThesaurusInfo";
+    }
 }

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

@@ -108,7 +108,7 @@
             var items = new Array();
             $items=$('.check-item:checked');
             if(0==$items.length){
-                top.$.jBox.tip('请选择', 'error');
+                top.$.jBox.tip('请选择需要加入关键词库的数据', 'error');
                 return;
             }
             $items.each(function(i){
@@ -120,7 +120,7 @@
             var items = new Array();
             $items=$('.check-item:checked');
             if(0==$items.length){
-                top.$.jBox.tip('请选择', 'error');
+                top.$.jBox.tip('请选择需要导出的关键词', 'error');
                 return;
             }
             $items.each(function(i){

+ 42 - 6
src/main/webapp/WEB-INF/views/modules/product/keywordThesaurus.jsp

@@ -11,15 +11,41 @@
 <html>
 <head>
     <title>词库列表</title>
+    <meta http-equiv="Content-Type" content="multipart/form-data;charset=utf-8" />
     <meta name="decorator" content="default"/>
     <style type="text/css">
         .table th{text-align: center;}
         .table td{text-align: center;}
     </style>
     <script type="text/javascript">
-        // $(document).ready(function() {
-        //
-        // });
+        $(document).ready(function() {
+            $("#btnImport").click(function(){
+                // //获取id为up_file的input的值
+                // var fileName = document.getElementById("up_file").value;
+                // alert(fileName);
+                //
+                // //截取文件后缀名
+                // var file_suffix = fileName.substr(fileName.length-3);
+                //
+                // //弹出后缀名
+                // alert(file_suffix);
+                // if(file_suffix != "dll"){
+                //     alert("您上传的文件类型不被允许,请重传,只允许上传.dll文件");
+                //     return false;
+                // }
+                $.jBox($("#importBox").html(), {title:"导入数据", buttons:{"关闭":true},
+                    bottomText:"导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件!"});
+            });
+        });
+
+        function aaa(){
+            var fileName = document.getElementById("uploadFile").value;
+            // if(1==1){
+            //     alert('请选择需要导入的文件', 'error');
+            //     return false;
+            // }
+            return true;
+        }
         function page(n,s){
             $("#pageNo").val(n);
             $("#pageSize").val(s);
@@ -124,7 +150,7 @@
             var items = new Array();
             $items=$('.check-item:checked');
             if(0==$items.length){
-                top.$.jBox.tip('请选择', 'error');
+                top.$.jBox.tip('请选择需要导出的关键词', 'error');
                 return;
             }
             $items.each(function(i){
@@ -139,6 +165,14 @@
     </script>
 </head>
 <body>
+<div id="importBox" class="hide">
+    <form id="importForm" action="${ctx}/product/keywordFrequency/importKeyword" method="post" enctype="multipart/form-data"
+          class="form-search" style="padding-left:20px;text-align:center;" onsubmit="loading('正在导入,请稍等...');"><br/>
+        <input id="uploadFile" name="file" type="file" style="width:330px"/><br/><br/>  
+        <input id="btnImportSubmit" class="btn btn-primary" type="submit" onclick=" return aaa('this.f')" value="   导    入   "/>
+<%--        <a href="${ctx}/sys/user/import/template">下载模板</a>--%>
+    </form>
+</div>
 <ul class="nav nav-tabs">
     <li class="active">关键词词库</li>
     <%--    <shiro:hasPermission name="user:newCmClub:edit"><li><a href="${ctx}/new/user/cmSp/cmSpForm">添加协销人员</a></li></shiro:hasPermission>--%>
@@ -159,8 +193,10 @@
         &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="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="import" class="btn btn-primary" type="file" value="导入" onclick="window.location='${ctx}/product/keywordFrequency/importKeyword'"/>--%>
+        <input id="btnImport" class="btn btn-primary" type="button" value="导入"/></li>
         &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">
@@ -193,7 +229,7 @@
                 </c:if>
             </td>
                 <%--<td>${newCmSp.spIdentity}</td>--%>
-            <td>${newCmSp.searchTime}</td>
+            <td>${newCmSp.serachDate}</td>
             <shiro:hasPermission name="user:newCmClub:edit">
                 <td>
                         <%--                    <c:if test="${newCmSp.status eq 90 || newCmSp.status eq 91}">--%>

+ 7 - 1
src/main/webapp/WEB-INF/views/modules/product/upkeyword.jsp

@@ -18,7 +18,13 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
-    <li><a href="${ctx}/product/keywordFrequency/getKeyInfo">用户关键词统计</a></li>
+    <c:if test="${searchFrequency.status eq '1'}">
+        <li><a href="${ctx}/product/keywordFrequency/getKeyInfo">用户关键词统计</a></li>
+    </c:if>
+    <c:if test="${searchFrequency.status eq '2'}">
+        <li><a href="${ctx}/product/keywordFrequency/getKeywordThesaurusInfo">词库列表</a></li>
+    </c:if>
+<%--    <li><a href="${ctx}/product/keywordFrequency/getKeyInfo">用户关键词统计</a></li>--%>
 <%--    <li class="active"><a href="${ctx}/order/cmAuthorizedConsignment/form?id=${cmAuthorizedConsignment.id}"><shiro:hasPermission name="order:cmAuthorizedConsignment:edit">${not empty cmAuthorizedConsignment.id?'编辑':'添加'}</shiro:hasPermission><shiro:lacksPermission name="order:cmAuthorizedConsignment:edit">查看</shiro:lacksPermission></a></li>--%>
     <li class="active"><a href="${ctx}/product/keywordFrequency/form?keyId=${searchFrequency.keyId}&status=${searchFrequency.status}"><shiro:hasPermission name="order:cmAuthorizedConsignment:edit">${not empty searchFrequency.keyId?'编辑':'添加'}</shiro:hasPermission><shiro:lacksPermission name="order:cmAuthorizedConsignment:edit">查看</shiro:lacksPermission></a></li>
 </ul><br/>