From d8e1d577b8024a586362c24ab1a4c23e32945e63 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 14 十一月 2025 10:29:03 +0800
Subject: [PATCH] 社区活动报名导出

---
 ruoyi-system/src/main/java/com/ruoyi/system/export/TRegistrationExport.java                             |   24 ++++++++++++
 ruoyi-system/src/main/resources/mapper/system/TCommunityActivityRegistrationMapper.xml                  |   18 +++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommunityActivityRegistrationServiceImpl.java |    7 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommunityActivityController.java                |   46 +++++++++++++++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/TCommunityActivityRegistrationService.java          |   10 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCommunityActivityRegistrationMapper.java            |    9 ++++
 6 files changed, 114 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommunityActivityController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommunityActivityController.java
index 934b341..945b53a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommunityActivityController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommunityActivityController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.api;
 
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.ImmutableMap;
 import com.ruoyi.common.annotation.Log;
@@ -8,11 +10,14 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.WebUtils;
 import com.ruoyi.system.dto.TCommunityActivityDTO;
+import com.ruoyi.system.export.TRegistrationExport;
 import com.ruoyi.system.model.TCommunityActivity;
 import com.ruoyi.system.model.TCommunityActivityRegistration;
 import com.ruoyi.system.query.RegistrationPageListQuery;
 import com.ruoyi.system.query.TCommunityActivityQuery;
+import com.ruoyi.system.query.TCourseOrderQuery;
 import com.ruoyi.system.service.TCommunityActivityRegistrationService;
 import com.ruoyi.system.service.TCommunityActivityService;
 import com.ruoyi.system.task.base.QuartzManager;
@@ -21,13 +26,19 @@
 import com.ruoyi.system.vo.TCommunityActivityVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -236,5 +247,40 @@
         return R.ok();
     }
 
+    @Log(title = "社区活动管理信息-社区活动报名信息导出", businessType = BusinessType.EXPORT)
+    @ApiOperation(value = "社区活动报名信息导出")
+    @PostMapping("/exportRegistration")
+    public void exportRegistration(@RequestBody RegistrationPageListQuery query){
+        List<TRegistrationExport> registrationExports = communityActivityRegistrationService.exportRegistration(query);
+        for (TRegistrationExport registrationExport : registrationExports) {
+            if(Objects.nonNull(registrationExport.getCreateTime())){
+                registrationExport.setCreateTimeStr(DateUtils.localDateTimeToString(registrationExport.getCreateTime()));
+            }
+        }
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TRegistrationExport.class, registrationExports);
+        HttpServletResponse response = WebUtils.response();
+        assert response != null;
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("社区活动报名信息.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TRegistrationExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TRegistrationExport.java
new file mode 100644
index 0000000..a067739
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TRegistrationExport.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "社区活动报名信息导出参数TRegistrationExport")
+public class TRegistrationExport implements Serializable {
+
+    @Excel(name = "报名时间")
+    private String createTimeStr;
+    private LocalDateTime createTime;
+
+    @Excel(name = "报名人")
+    private String userName;
+
+    @Excel(name = "联系电话")
+    private String userPhone;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCommunityActivityRegistrationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCommunityActivityRegistrationMapper.java
index 719e9c7..6a37ea1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCommunityActivityRegistrationMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCommunityActivityRegistrationMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.export.TRegistrationExport;
 import com.ruoyi.system.model.TCommunityActivityRegistration;
 import com.ruoyi.system.query.RegistrationPageListQuery;
 import org.apache.ibatis.annotations.Param;
@@ -26,4 +27,12 @@
      * @return
      */
     List<TCommunityActivityRegistration> registrationPageList(@Param("query") RegistrationPageListQuery query, @Param("pageInfo")PageInfo<TCommunityActivityRegistration> pageInfo);
+
+    /**
+     * 获取导出列表
+     *
+     * @param query
+     * @return
+     */
+    List<TRegistrationExport> exportRegistration(@Param("query")RegistrationPageListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCommunityActivityRegistrationService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCommunityActivityRegistrationService.java
index f23ffd1..2a1d59d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCommunityActivityRegistrationService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCommunityActivityRegistrationService.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.export.TRegistrationExport;
 import com.ruoyi.system.model.TCommunityActivityRegistration;
 import com.ruoyi.system.query.RegistrationPageListQuery;
+
+import java.util.List;
 
 /**
  * <p>
@@ -20,4 +23,11 @@
      */
     PageInfo<TCommunityActivityRegistration> registrationPageList(RegistrationPageListQuery query);
 
+    /**
+     * 社区活动报名信息导出
+     * @param query
+     * @return
+     */
+    List<TRegistrationExport> exportRegistration(RegistrationPageListQuery query);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommunityActivityRegistrationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommunityActivityRegistrationServiceImpl.java
index 4baa9fa..15bca85 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommunityActivityRegistrationServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCommunityActivityRegistrationServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.export.TRegistrationExport;
 import com.ruoyi.system.mapper.TCommunityActivityRegistrationMapper;
 import com.ruoyi.system.model.TCommunityActivityRegistration;
 import com.ruoyi.system.query.RegistrationPageListQuery;
@@ -29,4 +30,10 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public List<TRegistrationExport> exportRegistration(RegistrationPageListQuery query) {
+        List<TRegistrationExport> list = this.baseMapper.exportRegistration(query);
+        return list;
+    }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/TCommunityActivityRegistrationMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCommunityActivityRegistrationMapper.xml
index 1e01d14..bf6e923 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TCommunityActivityRegistrationMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TCommunityActivityRegistrationMapper.xml
@@ -37,5 +37,23 @@
         </where>
         order by create_time desc
     </select>
+    <select id="exportRegistration" resultType="com.ruoyi.system.export.TRegistrationExport">
+        select
+        <include refid="Base_Column_List"/>
+        from t_community_activity_registration
+        <where>
+            <if test="query.activityId != null and query.activityId != ''">
+                and activity_id = #{query.activityId}
+            </if>
+            <if test="query.userName != null and query.userName != ''">
+                and user_name like concat('%',#{query.userName},'%')
+            </if>
+            <if test="query.userPhone != null and query.userPhone != ''">
+                and user_phone like concat('%',#{query.userPhone},'%')
+            </if>
+            and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        order by create_time desc
+    </select>
 
 </mapper>

--
Gitblit v1.7.1