diff --git a/pom.xml b/pom.xml
index e8ad86b..87c1ba9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,6 +125,12 @@
jackson-datatype-jsr310
+
+ com.alibaba
+ easyexcel
+ 3.3.2
+
+
diff --git a/src/main/java/com/cdzy/activity/controller/ActivityController.java b/src/main/java/com/cdzy/activity/controller/ActivityController.java
index 3745a9d..20508b5 100644
--- a/src/main/java/com/cdzy/activity/controller/ActivityController.java
+++ b/src/main/java/com/cdzy/activity/controller/ActivityController.java
@@ -1,7 +1,10 @@
package com.cdzy.activity.controller;
import com.cdzy.activity.mapper.ActivityUserMapper;
-import com.cdzy.activity.model.*;
+import com.cdzy.activity.model.Activity;
+import com.cdzy.activity.model.JsonResult;
+import com.cdzy.activity.model.PageParam;
+import com.cdzy.activity.model.User;
import com.cdzy.activity.model.dto.ActivityDto;
import com.cdzy.activity.model.vo.ActivityVo;
import com.cdzy.activity.service.ActivityService;
@@ -10,7 +13,7 @@ import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.StringUtil;
import jakarta.annotation.Resource;
-import org.springframework.beans.factory.annotation.Autowired;
+import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@@ -36,7 +39,8 @@ public class ActivityController {
@Resource
private UserService userService;
- @Autowired
+
+ @Resource
private ActivityUserMapper activityUserMapper;
/**
@@ -53,6 +57,15 @@ public class ActivityController {
return JsonResult.success(paged);
}
+ /**
+ * 用户数据导出。
+ *
+ */
+ @PostMapping("user/export")
+ public void export(HttpServletResponse response) throws Exception {
+ userService.exportUserData(response);
+ }
+
/**
* 添加。
*
@@ -113,7 +126,7 @@ public class ActivityController {
.select(USER.ALL_COLUMNS)
.where(ACTIVITY_USER.ACTIVITY_ID.eq(activity.getActivityId()))
.leftJoin(USER).on(USER.USER_ID.eq(ACTIVITY_USER.USER_ID));
- List list = activityUserMapper.selectListByQueryAs(queryWrapper,User.class);
+ List list = activityUserMapper.selectListByQueryAs(queryWrapper, User.class);
ActivityDto activityDto = new ActivityDto(activity, list);
return JsonResult.success(activityDto);
}
diff --git a/src/main/java/com/cdzy/activity/model/User.java b/src/main/java/com/cdzy/activity/model/User.java
index fb547d0..c007bb9 100644
--- a/src/main/java/com/cdzy/activity/model/User.java
+++ b/src/main/java/com/cdzy/activity/model/User.java
@@ -1,5 +1,6 @@
package com.cdzy.activity.model;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
@@ -30,49 +31,59 @@ public class User implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
+ @ExcelProperty(value = "用户ID", index = 0)
@Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
private Long userId;
+ @ExcelProperty(value = "用户微信唯一标识", index = 1)
private String wxOpenId;
/**
* 姓名
*/
+ @ExcelProperty(value = "姓名", index = 2)
private String name;
/**
* 手机号
*/
+ @ExcelProperty(value = "手机号", index = 3)
private String phone;
/**
* 性别
*/
+ @ExcelProperty(value = "性别", index = 4)
private String gender;
/**
* 地址
*/
+ @ExcelProperty(value = "地址", index = 5)
private String address;
/**
* 年龄
*/
+ @ExcelProperty(value = "年龄", index = 6)
private Integer age;
/**
* 慢性病史:1-有 2-无
*/
+ @ExcelProperty(value = "慢性病史:1-有 2-无", index = 7)
private Integer chronicDiseasesHistory;
/**
* 所患慢性病
*/
+ @ExcelProperty(value = "所患慢性病", index = 8)
private String chronicDisease;
/**
* 健康:1-健康 2-不健康
*/
+ @ExcelProperty(value = "健康状态", index = 9)
private Integer heath;
/**
diff --git a/src/main/java/com/cdzy/activity/service/UserService.java b/src/main/java/com/cdzy/activity/service/UserService.java
index 152211a..73e9627 100644
--- a/src/main/java/com/cdzy/activity/service/UserService.java
+++ b/src/main/java/com/cdzy/activity/service/UserService.java
@@ -5,6 +5,7 @@ import com.cdzy.activity.model.vo.RegistrationVo;
import com.cdzy.activity.model.vo.UserVo;
import com.mybatisflex.core.service.IService;
import com.cdzy.activity.model.User;
+import jakarta.servlet.http.HttpServletResponse;
/**
* 服务层。
@@ -21,4 +22,6 @@ public interface UserService extends IService {
ActivityInfo activityInfo(Long activityId);
void cancel(RegistrationVo registrationVo);
+
+ void exportUserData(HttpServletResponse response) throws Exception;
}
diff --git a/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java b/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java
index 2889e05..ed86912 100644
--- a/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/cdzy/activity/service/impl/UserServiceImpl.java
@@ -1,5 +1,6 @@
package com.cdzy.activity.service.impl;
+import com.alibaba.excel.EasyExcel;
import com.cdzy.activity.mapper.ActivityMapper;
import com.cdzy.activity.mapper.ActivityUserMapper;
import com.cdzy.activity.mapper.UserRegistrationActivityMapper;
@@ -15,9 +16,12 @@ import com.cdzy.activity.model.User;
import com.cdzy.activity.mapper.UserMapper;
import com.cdzy.activity.service.UserService;
import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Service;
+import java.net.URLEncoder;
import java.time.LocalDateTime;
+import java.util.List;
import static com.cdzy.activity.model.table.ActivityTableDef.ACTIVITY;
import static com.cdzy.activity.model.table.ActivityUserTableDef.ACTIVITY_USER;
@@ -162,4 +166,27 @@ public class UserServiceImpl extends ServiceImpl implements Us
}
userRegistrationActivityMapper.delete(userRegistrationActivity);
}
+
+ @Override
+ public void exportUserData(HttpServletResponse response) throws Exception {
+ QueryWrapper queryWrapper = QueryWrapper.create();
+ List list = userMapper.selectListByQuery(queryWrapper);
+
+ // 2. 设置响应头
+ setupResponse(response, "用户数据");
+
+ // 3. 写入Excel
+ EasyExcel.write(response.getOutputStream(), User.class)
+ .sheet("用户数据")
+ .doWrite(list);
+
+ }
+
+ private void setupResponse(HttpServletResponse response, String fileName) throws Exception {
+ String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + encodedFileName + ".xlsx");
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ }
}
diff --git a/target/ActivityRegistration-0.0.1-SNAPSHOT.jar b/target/ActivityRegistration-0.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000..79b1657
Binary files /dev/null and b/target/ActivityRegistration-0.0.1-SNAPSHOT.jar differ
diff --git a/target/ActivityRegistration-0.0.1-SNAPSHOT.jar.original b/target/ActivityRegistration-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 0000000..6972b41
Binary files /dev/null and b/target/ActivityRegistration-0.0.1-SNAPSHOT.jar.original differ
diff --git a/target/generated-sources/annotations/com/cdzy/activity/model/vo/table/UserVoTableDef.java b/target/generated-sources/annotations/com/cdzy/activity/model/vo/table/UserVoTableDef.java
deleted file mode 100644
index 3b78573..0000000
--- a/target/generated-sources/annotations/com/cdzy/activity/model/vo/table/UserVoTableDef.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.cdzy.activity.model.vo.table;
-
-import com.mybatisflex.core.query.QueryColumn;
-import com.mybatisflex.core.table.TableDef;
-
-public class UserVoTableDef extends TableDef{
-
- public static final UserVoTableDef USER_VO=new UserVoTableDef();
-
- public final QueryColumn IS_FILLED =new QueryColumn(this,"");
- public final QueryColumn CHRONIC_DISEASES_HISTORY =new QueryColumn(this,"chronicDiseasesHistory");
- public final QueryColumn ADDRESS =new QueryColumn(this,"address");
- public final QueryColumn PHONE =new QueryColumn(this,"phone");
- public final QueryColumn CHRONIC_DISEASE =new QueryColumn(this,"chronicDisease");
- public final QueryColumn GENDER =new QueryColumn(this,"gender");
- public final QueryColumn HEATH =new QueryColumn(this,"heath");
- public final QueryColumn WX_OPEN_ID =new QueryColumn(this,"wxOpenId");
- public final QueryColumn AGE =new QueryColumn(this,"age");
- public final QueryColumn NAME =new QueryColumn(this,"name");
- /**
- * 所有字段。
- */
- public final QueryColumn ALL_COLUMNS=new QueryColumn(this,"*");
-
- /**
- * 默认字段,不包含逻辑删除或者 large 等字段。
- */
- public final QueryColumn[]DEFAULT_COLUMNS=new QueryColumn[]{ IS_FILLED , CHRONIC_DISEASES_HISTORY , ADDRESS , PHONE , CHRONIC_DISEASE , GENDER , HEATH , WX_OPEN_ID , AGE , NAME };
- public UserVoTableDef(){super("","user");}
- private UserVoTableDef(String schema, String name, String alisa) {
- super(schema, name, alisa);
- }
- public UserVoTableDef as(String alias) {
- String key = getNameWithSchema() + "." + alias;
- return getCache(key, k -> new UserVoTableDef("", "user", alias));
- }
-}
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..17c4a59
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=ActivityRegistration
+groupId=com.cdzy
+version=0.0.1-SNAPSHOT
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..66493d8
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,64 @@
+com\cdzy\activity\component\ActivityStatusScheduler.class
+com\cdzy\activity\service\StaffService.class
+com\cdzy\activity\model\User.class
+com\cdzy\activity\model\Bulletin$BulletinBuilder.class
+com\cdzy\activity\model\PageParam.class
+com\cdzy\activity\controller\ImagePreviewController.class
+com\cdzy\activity\model\JsonResult.class
+com\cdzy\activity\model\UserRegistrationActivity.class
+com\cdzy\activity\model\vo\BulletinVo$BulletinVoBuilder.class
+com\cdzy\activity\mapper\BulletinMapper.class
+com\cdzy\activity\component\WebMvcConfig$StringToLocalDateTimeConverter.class
+com\cdzy\activity\controller\ActivityController.class
+com\cdzy\activity\uitls\FileUtils.class
+com\cdzy\activity\mapper\UserMapper.class
+com\cdzy\activity\model\UserRegistrationActivity$UserRegistrationActivityBuilder.class
+com\cdzy\activity\service\impl\UserServiceImpl.class
+com\cdzy\activity\mapper\ActivityMapper.class
+com\cdzy\activity\model\vo\RegistrationVo.class
+com\cdzy\activity\enums\ActivityStatus.class
+com\cdzy\activity\model\dto\ActivityInfo.class
+com\cdzy\activity\controller\BulletinController.class
+com\cdzy\activity\model\ActivityUser.class
+com\cdzy\activity\mapper\StaffMapper.class
+com\cdzy\activity\component\WebMvcConfig$LocalDateTimeToStringConverter.class
+com\cdzy\activity\mapper\ActivityUserMapper.class
+com\cdzy\activity\component\WebMvcConfig.class
+com\cdzy\activity\model\vo\StaffVo.class
+com\cdzy\activity\service\impl\ActivityServiceImpl.class
+com\cdzy\activity\controller\StaffController.class
+com\cdzy\activity\model\vo\UserVo.class
+com\cdzy\activity\model\dto\ActivityDto.class
+com\cdzy\activity\component\WechatConfig.class
+com\cdzy\activity\model\vo\ActivityVo.class
+com\cdzy\activity\model\UserCollectActivity.class
+com\cdzy\activity\model\vo\UserVo$UserVoBuilder.class
+com\cdzy\activity\uitls\VerifyUtil.class
+com\cdzy\activity\component\SaTokenConfigure.class
+com\cdzy\activity\model\Bulletin.class
+com\cdzy\activity\service\impl\BulletinServiceImpl.class
+com\cdzy\activity\controller\UserController.class
+com\cdzy\activity\component\JacksonConfig.class
+com\cdzy\activity\enums\Message.class
+com\cdzy\activity\model\vo\BulletinVo.class
+com\cdzy\activity\mapper\UserRegistrationActivityMapper.class
+com\cdzy\activity\service\ActivityService.class
+com\cdzy\activity\service\BulletinService.class
+com\cdzy\activity\model\Activity.class
+com\cdzy\activity\service\impl\StaffServiceImpl.class
+com\cdzy\activity\model\ActivityUser$ActivityUserBuilder.class
+com\cdzy\activity\ActivityRegistrationApplication.class
+com\cdzy\activity\enums\Code.class
+com\cdzy\activity\model\dto\ActivityInfo$ActivityInfoBuilder.class
+com\cdzy\activity\component\GlobalExceptionHandler.class
+com\cdzy\activity\model\vo\StaffVo$StaffVoBuilder.class
+com\cdzy\activity\model\UserCollectActivity$UserCollectActivityBuilder.class
+com\cdzy\activity\model\Staff.class
+com\cdzy\activity\component\ImageConfig.class
+com\cdzy\activity\model\Staff$StaffBuilder.class
+com\cdzy\activity\uitls\ImageToBase64Converter.class
+com\cdzy\activity\mapper\UserCollectActivityMapper.class
+com\cdzy\activity\model\User$UserBuilder.class
+com\cdzy\activity\model\Activity$ActivityBuilder.class
+com\cdzy\activity\model\vo\ActivityVo$ActivityVoBuilder.class
+com\cdzy\activity\service\UserService.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..471abb6
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,50 @@
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\ActivityRegistrationApplication.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\ActivityStatusScheduler.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\GlobalExceptionHandler.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\ImageConfig.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\JacksonConfig.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\SaTokenConfigure.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\WebMvcConfig.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\component\WechatConfig.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\controller\ActivityController.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\controller\BulletinController.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\controller\ImagePreviewController.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\controller\StaffController.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\controller\UserController.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\enums\ActivityStatus.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\enums\Code.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\enums\Message.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\ActivityMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\ActivityUserMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\BulletinMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\StaffMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\UserCollectActivityMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\UserMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\mapper\UserRegistrationActivityMapper.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\Activity.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\ActivityUser.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\Bulletin.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\dto\ActivityDto.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\dto\ActivityInfo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\JsonResult.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\PageParam.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\Staff.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\User.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\UserCollectActivity.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\UserRegistrationActivity.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\vo\ActivityVo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\vo\BulletinVo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\vo\RegistrationVo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\vo\StaffVo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\model\vo\UserVo.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\ActivityService.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\BulletinService.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\impl\ActivityServiceImpl.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\impl\BulletinServiceImpl.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\impl\StaffServiceImpl.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\impl\UserServiceImpl.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\StaffService.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\service\UserService.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\uitls\FileUtils.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\uitls\ImageToBase64Converter.java
+D:\Projects\ActivityRegistration\src\main\java\com\cdzy\activity\uitls\VerifyUtil.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..d5724e8
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+D:\Projects\ActivityRegistration\src\test\java\com\cdzy\activity\ActivityRegistrationApplicationTests.java