From 744cd0a3bc66de73a94e320724b1bb776a6e4080 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 19 十月 2022 17:43:50 +0800
Subject: [PATCH] 更新minlo

---
 src/main/java/com/example/jz/service/impl/ReportServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 68 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
index d6dd6c8..6842e8c 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -3,45 +3,38 @@
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.metadata.data.ImageData;
 import com.alibaba.excel.metadata.data.WriteCellData;
-import com.alibaba.excel.support.ExcelTypeEnum;
 import com.alibaba.excel.util.IoUtils;
 import com.alibaba.excel.util.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.example.jz.dao.GroupDao;
-import com.example.jz.dao.GroupUserDao;
-import com.example.jz.dao.ReportDao;
-import com.example.jz.dao.UserDao;
+import com.example.jz.dao.*;
+import com.example.jz.modle.PageParam;
 import com.example.jz.modle.dto.AddReportDto;
 import com.example.jz.modle.dto.ReportParamDto;
-import com.example.jz.modle.entity.Group;
-import com.example.jz.modle.entity.GroupUser;
-import com.example.jz.modle.entity.Report;
-import com.example.jz.modle.entity.User;
-import com.example.jz.modle.vo.ReportListVo;
-import com.example.jz.dao.*;
 import com.example.jz.modle.entity.*;
 import com.example.jz.modle.vo.ExportExcelReportVo;
+import com.example.jz.modle.vo.ReportListVo;
 import com.example.jz.service.MinIOService;
 import com.example.jz.service.ReportService;
+import com.example.jz.service.UserService;
 import lombok.SneakyThrows;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.io.Serializable;
 import java.net.URL;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
-import java.io.Serializable;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 
@@ -66,6 +59,10 @@
 
     @Resource
     UserDao userDao;
+    @Resource
+    UserService userService;
+    @Resource
+    ReportService reportService;
 
     @Resource
     MinIOService minIOService;
@@ -85,13 +82,17 @@
         // 2. 鏇存柊缇ょ敤鎴疯〃
         Group group = groupDao.selectOne(new LambdaQueryWrapper<>(Group.class)
                 .eq(Group::getCauseId, report.getCauseId()));
-        GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getUserId()).setCtime(new Date()).setBanSpeech(0);
+        GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0);
         groupUserDao.insert(groupUser);
         return true;
     }
 
     @Override
     public void leaveGroup(Integer id, Integer groupId) {
+        Report report = new Report();
+        report.setIsInGroup(0);
+        report.setId(id);
+        reportDao.updateById(report);
         groupUserDao.delete(new QueryWrapper<GroupUser>().eq("user_id", id).eq("group_id", groupId));
     }
 
@@ -113,35 +114,48 @@
                     ArrayList<ImageData> imageDataList = new ArrayList<>();
                     if (StringUtils.isNotBlank(a.getReportMaterials())) {
                         String[] urls = a.getReportMaterials().split(",");
-                        for (int i = 0; i < urls.length; i++) {
-                            int width=600;
+                        if (urls.length == 1) {
+                            int width = 600;
                             try {
                                 ImageData imageData = new ImageData();
-                                imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[i])).openConnection().getInputStream()));
-                                imageData.setLeft(width/ urls.length*i);
-                                imageData.setRight(width-width/ urls.length*(i+1));
+                                imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[0])).openConnection().getInputStream()));
+                                imageData.setRight(width / 2);
                                 imageDataList.add(imageData);
                             } catch (Exception e) {
                                 throw new RuntimeException(e);
                             }
+                        } else {
+                            for (int i = 0; i < urls.length; i++) {
+                                int width = 600;
+                                try {
+                                    ImageData imageData = new ImageData();
+                                    imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[i])).openConnection().getInputStream()));
+                                    imageData.setLeft(width / urls.length * i);
+                                    imageData.setRight(width - width / urls.length * (i + 1));
+                                    imageDataList.add(imageData);
+                                } catch (Exception e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
                         }
-                        }
-                        objectWriteCellData.setImageDataList(imageDataList);
-                        exportExcelReportVo.setWriteCellData(objectWriteCellData);
-                        exportExcelReportVos.add(exportExcelReportVo);
+                    }
+                    objectWriteCellData.setImageDataList(imageDataList);
+                    exportExcelReportVo.setWriteCellData(objectWriteCellData);
+                    exportExcelReportVos.add(exportExcelReportVo);
                 }
         );
         String name = causeDao.selectOne(new QueryWrapper<Cause>().eq("id", id)).getName();
-        response.setHeader("Content-disposition", "attachment;filename="+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))+URLEncoder.encode(name+".xlsx","utf-8"));
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setCharacterEncoding("utf-8");
-        response.setContentType("application/vnd.ms-excel");
+        response.setHeader("Content-disposition", "attachment;filename=" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + URLEncoder.encode(name + ".xlsx", "utf-8"));
         EasyExcel.write(response.getOutputStream(), ExportExcelReportVo.class).sheet("鏉愭枡瀵煎嚭").doWrite(exportExcelReportVos);
     }
 
     @Override
     public Page<ReportListVo> getPage(Page<ReportListVo> page, ReportParamDto reportParamDto) {
         Page<ReportListVo> aaa = reportDao.getPage(page, reportParamDto);
-        aaa.getRecords().stream().forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")));
+        aaa.getRecords().stream()
+                .forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")));
         return aaa;
     }
 
@@ -151,8 +165,19 @@
     }
 
     @Override
-    public Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId) {
-        Page<ReportListVo> aaa = reportDao.getPageByGroupId(page, reportParamDto,groupId);
+    public Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer causeId) {
+        Long size = (page.getCurrent() - 1) * page.getSize();
+        Long current = page.getSize();
+        Page<ReportListVo> aaa = new PageParam<>();
+        List<ReportListVo> list = reportDao.getPageByGroupId(reportParamDto, causeId, size, current);
+        list.forEach(item -> {
+            if (item.getIsInGroup() == 1) {
+                item.setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", causeId)).getId());
+            }
+        });
+        aaa.setRecords(list);
+        Integer pageByGroupIdCount = reportDao.getPageByGroupIdCount(reportParamDto, causeId);
+        aaa.setTotal(pageByGroupIdCount);
         aaa.getRecords().stream().forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")));
         return aaa;
     }
@@ -164,19 +189,26 @@
         if (user == null) {
             // 濡傛灉鐢ㄦ埛涓嶅瓨鍦� 鍒欐坊鍔犵敤鎴�
             user = new User().setUserIdcard(addReportDto.getIdcard()).setUserMobile(addReportDto.getMobile()).setRealName(addReportDto.getReporterName())
-                    .setModifyTime(new Date()).setUserRegtime(new Date()).setPic(addReportDto.getPic());
-            userDao.insert(user);
+                    .setModifyTime(new Date()).setUserRegtime(new Date()).setPic(addReportDto.getPic()).setCtime(new Date());
+            userService.save(user);
         }
+        // 娣诲姞浜哄憳杩涚兢缁�
+//        groupUserDao.insert(new GroupUser()
+//                .setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", addReportDto.getCauseId())).getId())
+//                .setUserId(user.getId()).setCtime(new Date())
+//                .setBanSpeech(0));
         // 娣诲姞鎶ユ淇℃伅
         Report report = new Report();
         BeanUtils.copyProperties(addReportDto, report);
         report
+                .setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId())
                 .setUserId(user.getId())
                 .setCtime(new Date())
                 .setStatus(0)
-                .setReportMethod("鐜板満褰曞叆")
-                .setIsCommission("0").setReportTime(new Date());
-        return reportDao.insert(report) > 0;
+                .setIsInGroup(0)
+                .setReportMethod("鍚庡彴褰曞叆")
+                .setIsCommission("0").setReportTime(new Date())
+                .setCauseId(addReportDto.getCauseId());
+        return reportService.save(report);
     }
-}
-
+}
\ No newline at end of file

--
Gitblit v1.8.0