From 028bd9c7cccb1ba7569636c631fa3c83a16d3e48 Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期日, 23 四月 2023 17:29:31 +0800
Subject: [PATCH] 用户导出,案件成员导出

---
 src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java   |   59 +++++++++++++++++++
 src/main/java/com/example/jz/modle/dto/UserExpDto.java          |   13 +++
 src/main/java/com/example/jz/utils/EasyExcelUtils.java          |    2 
 src/main/java/com/example/jz/controller/CauseController.java    |   21 ++++++-
 src/main/java/com/example/jz/controller/WxAppController.java    |    1 
 src/main/java/com/example/jz/modle/vo/GroupUserVo.java          |    2 
 src/main/java/com/example/jz/service/impl/CauseServiceImpl.java |   30 ++++++++-
 src/main/resources/mapper/GroupDao.xml                          |    3 
 src/main/java/com/example/jz/service/CauseService.java          |    3 +
 9 files changed, 123 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java
index 403d41a..d92402d 100644
--- a/src/main/java/com/example/jz/controller/CauseController.java
+++ b/src/main/java/com/example/jz/controller/CauseController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.api.ApiController;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.example.jz.dao.GroupDao;
@@ -11,27 +12,31 @@
 import com.example.jz.dao.MessageDao;
 import com.example.jz.dao.ReportDao;
 import com.example.jz.modle.R;
-import com.example.jz.modle.dto.AddReportDto;
-import com.example.jz.modle.dto.CauseDto;
-import com.example.jz.modle.dto.ReportParamDto;
+import com.example.jz.modle.dto.*;
 import com.example.jz.modle.entity.Cause;
 import com.example.jz.modle.entity.GroupUser;
+import com.example.jz.modle.entity.User;
 import com.example.jz.modle.vo.NewCauseVo;
 import com.example.jz.modle.vo.ReportListVo;
 import com.example.jz.service.CauseService;
 import com.example.jz.service.GroupService;
 import com.example.jz.service.ReportService;
+import com.example.jz.utils.EasyExcelUtils;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 妗堜欢琛�(Cause)琛ㄦ帶鍒跺眰
@@ -115,6 +120,16 @@
         return R.ok(causeService.getReporterList(causeId));
     }
 
+    @PostMapping("/exp")
+    @ApiImplicitParam(name = "causeId", value = "妗堜欢id", required = true, dataType = "Integer")
+    @ApiOperation(httpMethod = "POST", value = "缇ゆ垚鍛樹俊鎭鍑�")
+    public void ReporterListExp(@RequestParam Integer causeId,HttpServletResponse response){
+        Cause one = causeService.getOne(Wrappers.<Cause>lambdaQuery().eq(Cause::getId, causeId));
+        List<CauseReportExpDto> res = causeService.getExpList(causeId);
+        String sheetName = "鐢ㄦ埛瀵煎嚭";
+        EasyExcelUtils.export1(response, sheetName, CauseReportExpDto.class, res, one.getName() + "妗堜欢鐢ㄦ埛瀵煎嚭");
+    }
+
     @ApiOperation(httpMethod = "GET", value = "妗堜欢鍙�-妗堜欢褰曞叆-鑾峰彇妗堜欢缇ゅ叕鍛�")
     @GetMapping("/getGroupAnnouncement")
     @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
diff --git a/src/main/java/com/example/jz/controller/WxAppController.java b/src/main/java/com/example/jz/controller/WxAppController.java
index 4b74b69..15defe0 100644
--- a/src/main/java/com/example/jz/controller/WxAppController.java
+++ b/src/main/java/com/example/jz/controller/WxAppController.java
@@ -438,6 +438,7 @@
                         messageMap.put("sex", user.getSex());
                         messageMap.put("pic", user.getPic());
                         messageMap.put("role", 0);
+                        messageMap.put("remark", user.getUserMemo());
                     } else {
                         messageMap.put("id", item.getCopId());
                         User user = userService.getOne(new QueryWrapper<User>().eq("id", item.getCopId()));
diff --git a/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java b/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java
new file mode 100644
index 0000000..eb24325
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java
@@ -0,0 +1,59 @@
+package com.example.jz.modle.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class CauseReportExpDto {
+    @ApiModelProperty(value = "濮撳悕",dataType = "String", position = 0)
+    @ExcelProperty(value = "濮撳悕",index = 0)
+    @ColumnWidth(20)
+    private String realName;
+
+    @ApiModelProperty(value = "鎵嬫満鍙风爜",dataType = "String", position = 1)
+    @ExcelProperty(value = "鎵嬫満鍙风爜",index = 1)
+    @ColumnWidth(20)
+    private String userMobile;
+
+    @ApiModelProperty(value = "韬唤璇�",dataType = "String", position = 2)
+    @ExcelProperty(value = "韬唤璇�",index = 2)
+    @ColumnWidth(20)
+    private String userIdcard;
+
+    @ApiModelProperty(value = "鎬у埆",dataType = "String", position = 3)
+    @ExcelProperty(value = "鎬у埆",index = 3)
+    @ColumnWidth(10)
+    private String sex;
+
+    @ApiModelProperty(value = "鐜板眳鍦�",dataType = "String", position = 4)
+    @ExcelProperty(value = "鐜板眳鍦�",index = 4)
+    @ColumnWidth(20)
+    private String location;
+
+    @ApiModelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",dataType = "String", position = 5)
+    @ExcelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",index = 5)
+    @ColumnWidth(20)
+    private String workingLocation;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿",dataType = "Date",position = 6)
+    @ExcelProperty(value = "鍒涘缓鏃堕棿", index = 6)
+    @DateTimeFormat("yyyy/MM/dd HH:mm:ss")
+    @ColumnWidth(20)
+    private Date ctime;
+
+    @ApiModelProperty(value = "澶囨敞",dataType = "String", position = 7)
+    @ExcelProperty(value = "澶囨敞",index = 7)
+    @ColumnWidth(20)
+    private String userMemo;
+}
diff --git a/src/main/java/com/example/jz/modle/dto/UserExpDto.java b/src/main/java/com/example/jz/modle/dto/UserExpDto.java
index 5c2f0f8..445d0bd 100644
--- a/src/main/java/com/example/jz/modle/dto/UserExpDto.java
+++ b/src/main/java/com/example/jz/modle/dto/UserExpDto.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -16,36 +17,44 @@
 @Builder
 public class UserExpDto {
     @ApiModelProperty(value = "濮撳悕",dataType = "String", position = 0)
-    @ExcelProperty(value = "鎶ユ浜�",index = 0)
+    @ExcelProperty(value = "濮撳悕",index = 0)
+    @ColumnWidth(20)
     private String realName;
 
     @ApiModelProperty(value = "鎵嬫満鍙风爜",dataType = "String", position = 1)
     @ExcelProperty(value = "鎵嬫満鍙风爜",index = 1)
+    @ColumnWidth(20)
     private String userMobile;
 
     @ApiModelProperty(value = "韬唤璇�",dataType = "String", position = 2)
     @ExcelProperty(value = "韬唤璇�",index = 2)
+    @ColumnWidth(20)
     private String userIdcard;
 
     @ApiModelProperty(value = "鎬у埆",dataType = "String", position = 3)
     @ExcelProperty(value = "鎬у埆",index = 3)
+    @ColumnWidth(10)
     private String sex;
 
     @ApiModelProperty(value = "鐜板眳鍦�",dataType = "String", position = 4)
     @ExcelProperty(value = "鐜板眳鍦�",index = 4)
+    @ColumnWidth(20)
     private String location;
 
     @ApiModelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",dataType = "String", position = 5)
     @ExcelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",index = 5)
+    @ColumnWidth(20)
     private String workingLocation;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿",dataType = "Date",position = 6)
     @ExcelProperty(value = "鍒涘缓鏃堕棿", index = 6)
-    @DateTimeFormat("yyyy/MM/dd")
+    @DateTimeFormat("yyyy/MM/dd HH:mm:ss")
+    @ColumnWidth(20)
     private Date ctime;
 
     @ApiModelProperty(value = "澶囨敞",dataType = "String", position = 7)
     @ExcelProperty(value = "澶囨敞",index = 7)
+    @ColumnWidth(20)
     private String userMemo;
 
 }
diff --git a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java
index 0e0c000..e1616af 100644
--- a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java
+++ b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java
@@ -33,4 +33,6 @@
      * 鏄惁绂佽█(0涓哄惁1涓烘槸锛�
      */
     private Object banSpeech;
+
+    private String remark;
 }
diff --git a/src/main/java/com/example/jz/service/CauseService.java b/src/main/java/com/example/jz/service/CauseService.java
index df5799a..f1cd793 100644
--- a/src/main/java/com/example/jz/service/CauseService.java
+++ b/src/main/java/com/example/jz/service/CauseService.java
@@ -4,6 +4,7 @@
 import com.example.jz.modle.PageParam;
 import com.example.jz.modle.dto.AddReportDto;
 import com.example.jz.modle.dto.CauseDto;
+import com.example.jz.modle.dto.CauseReportExpDto;
 import com.example.jz.modle.entity.Announcement;
 import com.example.jz.modle.entity.Cause;
 import com.example.jz.modle.vo.*;
@@ -55,6 +56,8 @@
      **/
     PageParam<CauseReportVo> getReporterList(Integer causeId);
 
+    List<CauseReportExpDto> getExpList(Integer causeId);
+
     /**
      * @Description 妗堜欢缇ゅ叕鍛�
      * @Param [groupId]
diff --git a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
index 2a0731c..6c4b793 100644
--- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java
@@ -13,10 +13,7 @@
 import com.example.jz.enums.CauseEnums;
 import com.example.jz.exception.BusinessException;
 import com.example.jz.modle.PageParam;
-import com.example.jz.modle.dto.AddReportDto;
-import com.example.jz.modle.dto.AddReportLoadDto;
-import com.example.jz.modle.dto.CauseDto;
-import com.example.jz.modle.dto.CauseLoadDto;
+import com.example.jz.modle.dto.*;
 import com.example.jz.modle.entity.*;
 import com.example.jz.modle.vo.CauseReportVo;
 import com.example.jz.modle.vo.CauseVo;
@@ -242,6 +239,31 @@
     }
 
     @Override
+    public List<CauseReportExpDto> getExpList(Integer causeId) {
+        List<Report> reports = reportDao.selectList(Wrappers.<Report>lambdaQuery().eq(Report::getCauseId, causeId));
+        List<Integer> userIds = reports.stream().map(report -> report.getUserId()).collect(Collectors.toList());
+        List<User> users = userDao.selectList(Wrappers.<User>lambdaQuery().in(User::getId, userIds));
+        List<CauseReportExpDto> res = users.stream().map(new Function<User, CauseReportExpDto>() {
+            @Override
+            public CauseReportExpDto apply(User user) {
+                CauseReportExpDto build = CauseReportExpDto.builder()
+                        .realName(user.getRealName())
+                        .userMobile(user.getUserMobile())
+                        .userIdcard(user.getUserMobile())
+                        .userIdcard(user.getUserIdcard())
+                        .sex(user.getSex())
+                        .location(user.getLocation())
+                        .workingLocation(user.getWorkingLocation())
+                        .ctime(user.getCtime())
+                        .userMemo(user.getUserMemo())
+                        .build();
+                return build;
+            }
+        }).collect(Collectors.toList());
+        return res;
+    }
+
+    @Override
     public List<Announcement> getGroupAnnouncement(Integer groupId) {
         return announcementDao.selectList(new QueryWrapper<Announcement>().eq("group_id", groupId));
     }
diff --git a/src/main/java/com/example/jz/utils/EasyExcelUtils.java b/src/main/java/com/example/jz/utils/EasyExcelUtils.java
index f13ea1e..40b467e 100644
--- a/src/main/java/com/example/jz/utils/EasyExcelUtils.java
+++ b/src/main/java/com/example/jz/utils/EasyExcelUtils.java
@@ -31,7 +31,7 @@
         fileName = URLEncoder.encode(fileName, "UTF-8");
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + fileName  + ".xlsx");
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx");
         EasyExcel.write(response.getOutputStream(), className)
                 .sheet(sheetName)
                 .doWrite(collection);
diff --git a/src/main/resources/mapper/GroupDao.xml b/src/main/resources/mapper/GroupDao.xml
index e0d8f12..c3f3a16 100644
--- a/src/main/resources/mapper/GroupDao.xml
+++ b/src/main/resources/mapper/GroupDao.xml
@@ -7,10 +7,11 @@
         <result property="groupId" column="group_id"/>
         <result property="userName" column="real_name"/>
         <result property="banSpeech" column="ban_speech"/>
+        <result property="remark" column="user_memo"/>
     </resultMap>
 
     <select id="getAllUser" resultMap="GroupUserVoMap">
-        select group_user.user_id,group_user.group_id, group_user.ban_speech, user.real_name
+        select group_user.user_id,group_user.group_id, group_user.ban_speech, user.real_name, user.user_memo
         FROM group_user
                  JOIN report ON report.id = group_user.user_id
                  JOIN `user` ON `user`.id = report.user_id

--
Gitblit v1.8.0