瀏覽代碼

* 新需求

顾绍勇 5 年之前
父節點
當前提交
b01dcb42ae

+ 15
- 16
src/main/java/com/huiju/estateagents/controller/TaQrcodeController.java 查看文件

1
 package com.huiju.estateagents.controller;
1
 package com.huiju.estateagents.controller;
2
 
2
 
3
-import com.alibaba.excel.EasyExcel;
4
-import com.alibaba.excel.ExcelWriter;
5
-import com.alibaba.excel.support.ExcelTypeEnum;
3
+import com.alibaba.fastjson.JSON;
6
 import com.alibaba.fastjson.JSONObject;
4
 import com.alibaba.fastjson.JSONObject;
7
 import com.huiju.estateagents.base.BaseController;
5
 import com.huiju.estateagents.base.BaseController;
8
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
9
 import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.common.CommConstant;
10
 import com.huiju.estateagents.entity.TaQrcode;
8
 import com.huiju.estateagents.entity.TaQrcode;
11
-import com.huiju.estateagents.excel.ActivityStatistics.VisitPersonNum;
12
 import com.huiju.estateagents.service.IMiniAppService;
9
 import com.huiju.estateagents.service.IMiniAppService;
13
 import com.huiju.estateagents.service.ITaQrcodeService;
10
 import com.huiju.estateagents.service.ITaQrcodeService;
14
-import org.apache.poi.sl.usermodel.Sheet;
15
 import org.slf4j.Logger;
11
 import org.slf4j.Logger;
16
 import org.slf4j.LoggerFactory;
12
 import org.slf4j.LoggerFactory;
17
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.beans.factory.annotation.Autowired;
20
 import javax.servlet.http.HttpServletRequest;
16
 import javax.servlet.http.HttpServletRequest;
21
 import javax.servlet.http.HttpServletResponse;
17
 import javax.servlet.http.HttpServletResponse;
22
 import java.io.IOException;
18
 import java.io.IOException;
23
-import java.io.OutputStream;
19
+import java.util.HashMap;
24
 import java.util.List;
20
 import java.util.List;
21
+import java.util.Map;
25
 
22
 
26
 /**
23
 /**
27
  * <p>
24
  * <p>
208
      * @param request
205
      * @param request
209
      * @return
206
      * @return
210
      */
207
      */
211
-    @RequestMapping(value = "/admin/getStatisticRecord", method = RequestMethod.GET)
208
+    @RequestMapping(value = "/admin/qrCode/getStatisticRecord", method = RequestMethod.GET)
212
     public ResponseBean getStatisticRecord(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
209
     public ResponseBean getStatisticRecord(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
213
                                            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
210
                                            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
214
                                            Integer qrCodeId, Integer type, HttpServletRequest request) {
211
                                            Integer qrCodeId, Integer type, HttpServletRequest request) {
222
         return responseBean;
219
         return responseBean;
223
     }
220
     }
224
 
221
 
225
-    @RequestMapping(value = "/admin/getStatisticRecordExport", method = RequestMethod.GET)
226
-    public void getStatisticRecordExport(Integer qrCodeId, Integer type, HttpServletRequest request, HttpServletResponse response) {
222
+    @RequestMapping(value = "/admin/qrCode/getStatisticRecordExport", method = RequestMethod.GET)
223
+    public void getStatisticRecordExport(@RequestParam(value = "qrCodeId") Integer qrCodeId,
224
+                                         @RequestParam(value = "type") Integer type, HttpServletRequest request, HttpServletResponse response) throws IOException {
227
         try {
225
         try {
228
             iTaQrcodeService.getStatisticRecordExport(type, qrCodeId, getOrgId(request), response);
226
             iTaQrcodeService.getStatisticRecordExport(type, qrCodeId, getOrgId(request), response);
229
         } catch (Exception e) {
227
         } catch (Exception e) {
230
-            e.printStackTrace();
231
-        } finally {
232
-            try {
233
-                response.getOutputStream().close();
234
-            } catch (IOException e) {
235
-                e.printStackTrace();
236
-            }
228
+            logger.error("getStatisticRecordExport 异常:", e);
229
+            response.reset();
230
+            response.setContentType("application/json");
231
+            response.setCharacterEncoding("utf-8");
232
+            Map<String, Object> map = new HashMap();
233
+            map.put("code", ResponseBean.ERROR_UNAVAILABLE);
234
+            map.put("message", "下载文件失败" + e.getMessage());
235
+            response.getWriter().println(JSON.toJSONString(map));
237
         }
236
         }
238
     }
237
     }
239
 
238
 

+ 10
- 5
src/main/java/com/huiju/estateagents/service/impl/TaQrcodeServiceImpl.java 查看文件

27
 
27
 
28
 import javax.servlet.http.HttpServletResponse;
28
 import javax.servlet.http.HttpServletResponse;
29
 import java.io.IOException;
29
 import java.io.IOException;
30
+import java.net.URLEncoder;
30
 import java.time.LocalDateTime;
31
 import java.time.LocalDateTime;
31
 import java.util.List;
32
 import java.util.List;
32
 
33
 
189
 
190
 
190
     @Override
191
     @Override
191
     public void getStatisticRecordExport(Integer type, Integer qrCodeId, Integer orgId, HttpServletResponse response) throws IOException {
192
     public void getStatisticRecordExport(Integer type, Integer qrCodeId, Integer orgId, HttpServletResponse response) throws IOException {
192
-        response.setContentType("application/vnd.ms-excel");
193
+        response.setContentType("application/octet-stream");
193
         response.setCharacterEncoding("utf-8");
194
         response.setCharacterEncoding("utf-8");
195
+        String fileName;
194
         switch (type) {
196
         switch (type) {
195
             case 1:
197
             case 1:
196
-                List<QrCodeVisitPersonNum> records = taQrcodeMapper.getVisitPersonsRecordExport(qrCodeId,orgId);
197
-                response.setHeader("Content-disposition", "attachment;filename=访问人数.xlsx");
198
+                List<QrCodeVisitPersonNum> records = taQrcodeMapper.getVisitPersonsRecordExport(qrCodeId, orgId);
199
+                fileName = URLEncoder.encode("访问人数", "UTF-8");
200
+                response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
198
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitPersonNum.class).sheet("访问人数").doWrite(records);
201
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitPersonNum.class).sheet("访问人数").doWrite(records);
199
                 break;
202
                 break;
200
             case 2:
203
             case 2:
201
                 List<QrCodeVisitNum> records2 = taQrcodeMapper.getVisitNumRecordExport(qrCodeId, orgId);
204
                 List<QrCodeVisitNum> records2 = taQrcodeMapper.getVisitNumRecordExport(qrCodeId, orgId);
202
-                response.setHeader("Content-disposition", "attachment;filename=访问次数.xlsx");
205
+                fileName = URLEncoder.encode("访问次数", "UTF-8");
206
+                response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
203
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitNum.class).sheet("访问次数").doWrite(records2);
207
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitNum.class).sheet("访问次数").doWrite(records2);
204
                 break;
208
                 break;
205
             case 3:
209
             case 3:
206
                 List<QrCodeNewPersonNum> records3 = taQrcodeMapper.getNewPersonsRecordExport(qrCodeId, orgId);
210
                 List<QrCodeNewPersonNum> records3 = taQrcodeMapper.getNewPersonsRecordExport(qrCodeId, orgId);
207
-                response.setHeader("Content-disposition", "attachment;filename=新增注册用户.xlsx");
211
+                fileName = URLEncoder.encode("新增注册用户", "UTF-8");
212
+                response.setHeader("Content-disposition", "attachment;filename="+fileName+".xlsx");
208
                 EasyExcel.write(response.getOutputStream(), QrCodeNewPersonNum.class).sheet("新增注册用户").doWrite(records3);
213
                 EasyExcel.write(response.getOutputStream(), QrCodeNewPersonNum.class).sheet("新增注册用户").doWrite(records3);
209
                 break;
214
                 break;
210
             default:
215
             default:

+ 2
- 2
src/main/resources/mapper/TaQrcodeMapper.xml 查看文件

113
             AND t.qrcode_id = #{qrCodeId}
113
             AND t.qrcode_id = #{qrCodeId}
114
     </select>
114
     </select>
115
 
115
 
116
-    <select id="getVisitPersonsRecordExport" resultType="com.huiju.estateagents.excel.QrCodeStatistics.QrCodeVisitNum">
116
+    <select id="getVisitNumRecordExport" resultType="com.huiju.estateagents.excel.QrCodeStatistics.QrCodeVisitNum">
117
         SELECT
117
         SELECT
118
             IFNULL( t2.`name`, t2.nickname ) nickName,
118
             IFNULL( t2.`name`, t2.nickname ) nickName,
119
             t2.tel phone,
119
             t2.tel phone,
147
     <select id="getNewPersonsRecordExport" resultType="com.huiju.estateagents.excel.QrCodeStatistics.QrCodeNewPersonNum">
147
     <select id="getNewPersonsRecordExport" resultType="com.huiju.estateagents.excel.QrCodeStatistics.QrCodeNewPersonNum">
148
         SELECT
148
         SELECT
149
             t2.`name` nickName,
149
             t2.`name` nickName,
150
-            t2.tel phone,
150
+            t2.phone,
151
             t2.sex gender,
151
             t2.sex gender,
152
             t2.city province,
152
             t2.city province,
153
             t.create_date registerTime
153
             t.create_date registerTime