顾绍勇 пре 5 година
родитељ
комит
b01dcb42ae

+ 15
- 16
src/main/java/com/huiju/estateagents/controller/TaQrcodeController.java Прегледај датотеку

@@ -1,17 +1,13 @@
1 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 4
 import com.alibaba.fastjson.JSONObject;
7 5
 import com.huiju.estateagents.base.BaseController;
8 6
 import com.huiju.estateagents.base.ResponseBean;
9 7
 import com.huiju.estateagents.common.CommConstant;
10 8
 import com.huiju.estateagents.entity.TaQrcode;
11
-import com.huiju.estateagents.excel.ActivityStatistics.VisitPersonNum;
12 9
 import com.huiju.estateagents.service.IMiniAppService;
13 10
 import com.huiju.estateagents.service.ITaQrcodeService;
14
-import org.apache.poi.sl.usermodel.Sheet;
15 11
 import org.slf4j.Logger;
16 12
 import org.slf4j.LoggerFactory;
17 13
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,8 +16,9 @@ import org.springframework.web.bind.annotation.*;
20 16
 import javax.servlet.http.HttpServletRequest;
21 17
 import javax.servlet.http.HttpServletResponse;
22 18
 import java.io.IOException;
23
-import java.io.OutputStream;
19
+import java.util.HashMap;
24 20
 import java.util.List;
21
+import java.util.Map;
25 22
 
26 23
 /**
27 24
  * <p>
@@ -208,7 +205,7 @@ public class TaQrcodeController extends BaseController {
208 205
      * @param request
209 206
      * @return
210 207
      */
211
-    @RequestMapping(value = "/admin/getStatisticRecord", method = RequestMethod.GET)
208
+    @RequestMapping(value = "/admin/qrCode/getStatisticRecord", method = RequestMethod.GET)
212 209
     public ResponseBean getStatisticRecord(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
213 210
                                            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
214 211
                                            Integer qrCodeId, Integer type, HttpServletRequest request) {
@@ -222,18 +219,20 @@ public class TaQrcodeController extends BaseController {
222 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 225
         try {
228 226
             iTaQrcodeService.getStatisticRecordExport(type, qrCodeId, getOrgId(request), response);
229 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,6 +27,7 @@ import org.springframework.stereotype.Service;
27 27
 
28 28
 import javax.servlet.http.HttpServletResponse;
29 29
 import java.io.IOException;
30
+import java.net.URLEncoder;
30 31
 import java.time.LocalDateTime;
31 32
 import java.util.List;
32 33
 
@@ -189,22 +190,26 @@ public class TaQrcodeServiceImpl extends ServiceImpl<TaQrcodeMapper, TaQrcode> i
189 190
 
190 191
     @Override
191 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 194
         response.setCharacterEncoding("utf-8");
195
+        String fileName;
194 196
         switch (type) {
195 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 201
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitPersonNum.class).sheet("访问人数").doWrite(records);
199 202
                 break;
200 203
             case 2:
201 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 207
                 EasyExcel.write(response.getOutputStream(), QrCodeVisitNum.class).sheet("访问次数").doWrite(records2);
204 208
                 break;
205 209
             case 3:
206 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 213
                 EasyExcel.write(response.getOutputStream(), QrCodeNewPersonNum.class).sheet("新增注册用户").doWrite(records3);
209 214
                 break;
210 215
             default:

+ 2
- 2
src/main/resources/mapper/TaQrcodeMapper.xml Прегледај датотеку

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