dingxin vor 5 Jahren
Ursprung
Commit
fa57082e70

+ 59
- 2
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java Datei anzeigen

@@ -1,6 +1,9 @@
1 1
 package com.huiju.estateagents.controller;
2 2
 
3 3
 
4
+import com.alibaba.excel.EasyExcel;
5
+import com.alibaba.excel.ExcelWriter;
6
+import com.alibaba.excel.write.metadata.WriteSheet;
4 7
 import com.alibaba.fastjson.JSONObject;
5 8
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 9
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -11,6 +14,9 @@ import com.huiju.estateagents.common.CommConstant;
11 14
 import com.huiju.estateagents.common.JWTUtils;
12 15
 import com.huiju.estateagents.common.StringUtils;
13 16
 import com.huiju.estateagents.entity.*;
17
+import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
18
+import com.huiju.estateagents.excel.TaActivityDynamicEnlistExport;
19
+import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
14 20
 import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
15 21
 import com.huiju.estateagents.mapper.TaBuildingMapper;
16 22
 import com.huiju.estateagents.mapper.TaSharePersonFromMapper;
@@ -29,8 +35,10 @@ import org.springframework.web.bind.ServletRequestDataBinder;
29 35
 import org.springframework.web.bind.annotation.*;
30 36
 
31 37
 import javax.servlet.http.HttpServletRequest;
38
+import javax.servlet.http.HttpServletResponse;
32 39
 import javax.servlet.http.HttpSession;
33 40
 import javax.swing.*;
41
+import java.io.IOException;
34 42
 import java.text.DateFormat;
35 43
 import java.text.SimpleDateFormat;
36 44
 import java.time.LocalDateTime;
@@ -469,17 +477,23 @@ public class TaBuildingDynamicController extends BaseController {
469 477
     @ApiImplicitParams({
470 478
             @ApiImplicitParam(dataTypeClass = Integer.class, name = "pageNum", paramType = "query",value = "第几页"),
471 479
             @ApiImplicitParam(dataTypeClass = Integer.class, name = "pageSize", paramType = "query",value = "一页多少行"),
472
-            @ApiImplicitParam(dataType = "String", name = "dynamicId", paramType = "query",value = "活动ID")
480
+            @ApiImplicitParam(dataType = "String", name = "dynamicId", paramType = "query",value = "活动ID"),
481
+            @ApiImplicitParam(dataType = "String", name = "isCheckin", paramType = "query",value = "0未签到1签到"),
482
+            @ApiImplicitParam(dataType = "String", name = "name", paramType = "query",value = "用户姓名"),
483
+            @ApiImplicitParam(dataType = "String", name = "phone", paramType = "query",value = "手机号")
473 484
     })
474 485
     @RequestMapping(value = "/admin/SignList", method = RequestMethod.GET)
475 486
     public ResponseBean getSignList(@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
476 487
                                     @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
477 488
                                     @RequestParam(value = "dynamicId",required = false)String dynamicId,
489
+                                    @RequestParam(value = "isCheckin",required = false)String isCheckin,
490
+                                    @RequestParam(value = "name",required = false)String name,
491
+                                    @RequestParam(value = "phone",required = false)String phone,
478 492
                                     HttpServletRequest request) {
479 493
         Page<TaActivityDynamicEnlist> page = new Page<>();
480 494
         page.setSize(pageSize);
481 495
         page.setCurrent(pageNum);
482
-        ResponseBean signList = iBuildingDynamicService.signList(page,dynamicId, getOrgId(request));
496
+        ResponseBean signList = iBuildingDynamicService.signList(page,dynamicId, getOrgId(request),isCheckin,name,phone);
483 497
 
484 498
         HashMap<String, Object> map = new HashMap<>();
485 499
         map.put("list", signList);
@@ -513,6 +527,49 @@ public class TaBuildingDynamicController extends BaseController {
513 527
         return responseBean;
514 528
     }
515 529
 
530
+    /**
531
+     * 报名记录导出
532
+     *
533
+     * @param request
534
+     * @param response
535
+     * @throws IOException
536
+     */
537
+    @GetMapping("/admin/activityDynamicEnlist/export")
538
+    public void activityDynamicEnlistExport(HttpServletRequest request,
539
+                                      HttpServletResponse response,
540
+                                      @RequestParam(value = "dynamicId",required = false)String dynamicId,
541
+                                      @RequestParam(value = "isCheckin",required = false)String isCheckin,
542
+                                      @RequestParam(value = "name",required = false)String name,
543
+                                      @RequestParam(value = "phone",required = false)String phone) throws IOException {
544
+        //        response.setContentType("application/vnd.ms-excel");
545
+        response.setContentType("application/octet-stream");
546
+        response.setCharacterEncoding("utf-8");
547
+        response.setHeader("Content-disposition", "attachment;filename=助力活动发起人.xlsx");
548
+
549
+        Integer orgId = getOrgId(request);
550
+
551
+        Integer pageCode = 0;
552
+        Integer pageSize = 100;
553
+        // 总页数
554
+        Integer pageCount = 0;
555
+
556
+            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TaActivityDynamicEnlistExport.class).registerWriteHandler(new CustomCellWriteHandler()).build();
557
+            // 设置 sheet, 同一个sheet只需要设置一次
558
+            WriteSheet writeSheet = EasyExcel.writerSheet("报名记录").build();
559
+            Integer count = iBuildingDynamicService.getTaActivityDynamicEnlist(dynamicId,isCheckin,name,phone);
560
+            pageCount = count % pageSize == 0 ? count / pageSize : (count / pageSize) + 1;
561
+            List<HelpInitiateRecordSucceed> publicList = null;
562
+            do {
563
+                publicList = iBuildingDynamicService.getTaActivityDynamicEnlistExport(pageCode * pageSize, pageSize,dynamicId,isCheckin,name,phone,getOrgId(request));
564
+                excelWriter.write(publicList, writeSheet);
565
+
566
+                pageCode++;
567
+            } while (pageCode <= pageCount);
568
+
569
+            // finish 会帮忙关闭流
570
+            excelWriter.finish();
571
+        }
572
+
516 573
 
517 574
 
518 575
 }

+ 63
- 0
src/main/java/com/huiju/estateagents/excel/TaActivityDynamicEnlistExport.java Datei anzeigen

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
5
+import lombok.Data;
6
+import java.io.Serializable;
7
+import java.util.Date;
8
+
9
+@Data
10
+public class TaActivityDynamicEnlistExport implements Serializable {
11
+
12
+    /**
13
+     * 姓名
14
+     */
15
+    @ColumnWidth(15)
16
+    @ExcelProperty(value = "用户姓名", index = 0)
17
+    private String name;
18
+
19
+    /**
20
+     * 手机号
21
+     */
22
+    @ColumnWidth(15)
23
+    @ExcelProperty(value = "手机号", index = 1)
24
+    private String phone;
25
+
26
+    /**
27
+     * 参与人数
28
+     */
29
+    @ColumnWidth(15)
30
+    @ExcelProperty(value = "参与人数", index = 2)
31
+    private Integer attendNum;
32
+
33
+    /**
34
+     * 报名时间
35
+     */
36
+    @ColumnWidth(20)
37
+    @ExcelProperty(value = "报名时间", index = 3)
38
+    private Date createDate;
39
+
40
+    /**
41
+     * 推广人
42
+     */
43
+    @ColumnWidth(15)
44
+    @ExcelProperty(value = "推广人", index = 4)
45
+    private String sharePersonName;
46
+
47
+    /**
48
+     * 公司
49
+     */
50
+    @ColumnWidth(15)
51
+    @ExcelProperty(value = "公司", index = 5)
52
+    private String orgName;
53
+
54
+    /**
55
+     * 公司
56
+     */
57
+    @ColumnWidth(15)
58
+    @ExcelProperty(value = "签到状态", index = 6)
59
+    private String isCheckin;
60
+
61
+
62
+
63
+}

+ 14
- 1
src/main/java/com/huiju/estateagents/mapper/TaActivityDynamicEnlistMapper.java Datei anzeigen

@@ -3,6 +3,7 @@ package com.huiju.estateagents.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 5
 import com.huiju.estateagents.entity.TaActivityDynamicEnlist;
6
+import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
6 7
 import org.apache.ibatis.annotations.Mapper;
7 8
 import org.apache.ibatis.annotations.Param;
8 9
 
@@ -25,7 +26,7 @@ public interface TaActivityDynamicEnlistMapper extends BaseMapper<TaActivityDyna
25 26
      * @param dynamicId
26 27
      * @return
27 28
      */
28
-    List<TaActivityDynamicEnlist> signList(Page<TaActivityDynamicEnlist> page, @Param("dynamicId") String dynamicId, @Param("orgId") Integer orgId);
29
+    List<TaActivityDynamicEnlist> signList(Page<TaActivityDynamicEnlist> page, @Param("dynamicId") String dynamicId, @Param("orgId") Integer orgId,@Param("isCheckin") String isCheckin,@Param("name") String name,@Param("phone") String phone);
29 30
 
30 31
     /**
31 32
      * 查询活动已经报名的总人数
@@ -33,4 +34,16 @@ public interface TaActivityDynamicEnlistMapper extends BaseMapper<TaActivityDyna
33 34
      * @return
34 35
      */
35 36
     Integer selectEnlistCount(@Param("dynamicId") String dynamicId, @Param("orgId") Integer orgId);
37
+
38
+    /**
39
+     * 导出报名记录
40
+     * @param i
41
+     * @param pageSize
42
+     * @param dynamicId
43
+     * @param isCheckin
44
+     * @param name
45
+     * @param phone
46
+     * @return
47
+     */
48
+    List<HelpInitiateRecordSucceed> getTaActivityDynamicEnlistExport(@Param("pageCode") int i, @Param("pageSize") Integer pageSize, @Param("dynamicId") String dynamicId, @Param("isCheckin") String isCheckin, @Param("name") String name, @Param("phone") String phone,@Param("orgId") Integer orgId);
36 49
 }

+ 24
- 1
src/main/java/com/huiju/estateagents/service/ITaBuildingDynamicService.java Datei anzeigen

@@ -7,6 +7,7 @@ import com.huiju.estateagents.base.ResponseBean;
7 7
 import com.huiju.estateagents.entity.TaActivityDynamicEnlist;
8 8
 import com.huiju.estateagents.entity.TaBuildingDynamic;
9 9
 import com.huiju.estateagents.entity.TaPerson;
10
+import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
10 11
 
11 12
 import java.time.LocalDateTime;
12 13
 import java.util.HashMap;
@@ -80,7 +81,7 @@ public interface ITaBuildingDynamicService extends IService<TaBuildingDynamic> {
80 81
      * @param page
81 82
      * @return
82 83
      */
83
-    ResponseBean signList(Page<TaActivityDynamicEnlist> page,String dynamicId, Integer orgId);
84
+    ResponseBean signList(Page<TaActivityDynamicEnlist> page,String dynamicId, Integer orgId,String isCheckin,String name,String phone);
84 85
 
85 86
     IPage<TaBuildingDynamic> getJoinedActivity(int pageNumber, int pageSize, String building, TaPerson person);
86 87
 
@@ -97,4 +98,26 @@ public interface ITaBuildingDynamicService extends IService<TaBuildingDynamic> {
97 98
      * @param endActivityId
98 99
      */
99 100
     void updateEndActivity(List<String> endActivityId);
101
+
102
+    /**
103
+     * 报名记录导出当前总数
104
+     * @param dynamicId
105
+     * @param isCheckin
106
+     * @param name
107
+     * @param phone
108
+     * @return
109
+     */
110
+    Integer getTaActivityDynamicEnlist(String dynamicId, String isCheckin, String name, String phone);
111
+
112
+    /**
113
+     * 报名记录导出
114
+     * @param i
115
+     * @param pageSize
116
+     * @param dynamicId
117
+     * @param isCheckin
118
+     * @param name
119
+     * @param phone
120
+     * @return
121
+     */
122
+    List<HelpInitiateRecordSucceed> getTaActivityDynamicEnlistExport(int i, Integer pageSize, String dynamicId, String isCheckin, String name, String phone,Integer orgId);
100 123
 }

+ 18
- 2
src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java Datei anzeigen

@@ -9,6 +9,7 @@ import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.common.CommConstant;
10 10
 import com.huiju.estateagents.common.StringUtils;
11 11
 import com.huiju.estateagents.entity.*;
12
+import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
12 13
 import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
13 14
 import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
14 15
 import com.huiju.estateagents.mapper.TaBuildingMapper;
@@ -254,8 +255,8 @@ public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicM
254 255
     }
255 256
 
256 257
     @Override
257
-    public ResponseBean signList(Page<TaActivityDynamicEnlist> page, String dynamicId, Integer orgId) {
258
-        List<TaActivityDynamicEnlist> signList= taActivityDynamicEnlistMapper.signList(page,dynamicId, orgId);
258
+    public ResponseBean signList(Page<TaActivityDynamicEnlist> page, String dynamicId, Integer orgId,String isCheckin,String name,String phone) {
259
+        List<TaActivityDynamicEnlist> signList= taActivityDynamicEnlistMapper.signList(page,dynamicId, orgId,isCheckin,name,phone);
259 260
         return ResponseBean.success(signList);
260 261
     }
261 262
 
@@ -334,6 +335,21 @@ public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicM
334 335
         }
335 336
     }
336 337
 
338
+    @Override
339
+    public Integer getTaActivityDynamicEnlist(String dynamicId, String isCheckin, String name, String phone) {
340
+        QueryWrapper<TaActivityDynamicEnlist> querTaActivityDynamicEnlist = new QueryWrapper<>();
341
+        querTaActivityDynamicEnlist.eq("dynamic_id",dynamicId);
342
+        querTaActivityDynamicEnlist.eq(!StringUtils.isEmpty(isCheckin),"is_checkin",isCheckin);
343
+        querTaActivityDynamicEnlist.eq(!StringUtils.isEmpty(name),"name",name);
344
+        querTaActivityDynamicEnlist.eq(!StringUtils.isEmpty(phone),"name",phone);
345
+        return taActivityDynamicEnlistMapper.selectCount(querTaActivityDynamicEnlist);
346
+    }
347
+
348
+    @Override
349
+    public List<HelpInitiateRecordSucceed> getTaActivityDynamicEnlistExport(int i, Integer pageSize, String dynamicId, String isCheckin, String name, String phone,Integer orgId) {
350
+        return taActivityDynamicEnlistMapper.getTaActivityDynamicEnlistExport(i,pageSize,dynamicId,isCheckin,name,phone,orgId);
351
+    }
352
+
337 353
     @Override
338 354
     public IPage<TaBuildingDynamic> getJoinedActivity(int pageNumber, int pageSize,String building,TaPerson person){
339 355
         QueryWrapper<TaActivityDynamicEnlist> activityDynamicEnlistQueryWrapper = new QueryWrapper<>();

+ 41
- 2
src/main/resources/mapper/TaActivityDynamicEnlistMapper.xml Datei anzeigen

@@ -11,13 +11,52 @@
11 11
                     ta_activity_dynamic_enlist tade
12 12
                     LEFT JOIN ta_share_person_from tspf ON tade.dynamic_id = tspf.target_id AND tspf.target_type = 'dynamic_share' and tspf.status = 1 and tade.person_id = tspf.person_id
13 13
                     LEFT JOIN ta_person tp ON tspf.share_person = tp.user_id
14
-                WHERE
14
+                <where>
15 15
                     tade.dynamic_id = #{dynamicId}
16
-                AND tade.org_id = #{orgId}
16
+                    AND tade.org_id = #{orgId}
17
+
18
+                    <if test="name != null and name !=''">
19
+                        and tade.name like CONCAT('%',#{name}, '%')
20
+                    </if>
21
+                    <if test="isCheckin != null and isCheckin !=''">
22
+                        and tade.is_checkin like CONCAT('%',#{isCheckin}, '%')
23
+                    </if>
24
+                    <if test="phone != null and phone !=''">
25
+                        and tade.phone like CONCAT('%',#{phone}, '%')
26
+                    </if>
27
+                </where>
28
+
17 29
 
18 30
         </select>
19 31
 
20 32
         <select id="selectEnlistCount" resultType="Integer" >
21 33
             select ifnull(sum( attend_num ), 0) from ta_activity_dynamic_enlist where dynamic_id = #{dynamicId} and org_id = #{orgId}
22 34
         </select>
35
+
36
+    <select id="getTaActivityDynamicEnlistExport" resultType="com.huiju.estateagents.excel.TaActivityDynamicEnlistExport">
37
+
38
+        SELECT
39
+        tade.*,
40
+        tp.NAME AS sharePersonName,
41
+        tp.company AS orgName
42
+        FROM
43
+        ta_activity_dynamic_enlist tade
44
+        LEFT JOIN ta_share_person_from tspf ON tade.dynamic_id = tspf.target_id AND tspf.target_type = 'dynamic_share' and tspf.status = 1 and tade.person_id = tspf.person_id
45
+        LEFT JOIN ta_person tp ON tspf.share_person = tp.user_id
46
+        <where>
47
+            tade.dynamic_id = #{dynamicId}
48
+            AND tade.org_id = #{orgId}
49
+
50
+            <if test="name != null and name !=''">
51
+                and tade.name like CONCAT('%',#{name}, '%')
52
+            </if>
53
+            <if test="isCheckin != null and isCheckin !=''">
54
+                and tade.is_checkin like CONCAT('%',#{isCheckin}, '%')
55
+            </if>
56
+            <if test="phone != null and phone !=''">
57
+                and tade.phone like CONCAT('%',#{phone}, '%')
58
+            </if>
59
+        </where>
60
+        limit #{pageCode}, #{pageSize}
61
+    </select>
23 62
 </mapper>