From caaa6ec6ee809b1c9e56600ba1468e8f4da0103b Mon Sep 17 00:00:00 2001
From: whj <1070107765@qq.com>
Date: 星期二, 19 七月 2022 15:39:15 +0800
Subject: [PATCH] commit
---
src/main/java/com/example/jz/service/impl/ReportServiceImpl.java | 129 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 128 insertions(+), 1 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 71860a6..d6dd6c8 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -1,20 +1,49 @@
package com.example.jz.service.impl;
+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.CauseDao;
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.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.service.MinIOService;
import com.example.jz.service.ReportService;
+import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+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.Date;
+import java.util.List;
/**
* 鎶ユ琛�(Report)琛ㄦ湇鍔″疄鐜扮被
@@ -31,6 +60,15 @@
private GroupDao groupDao;
@Autowired
private GroupUserDao groupUserDao;
+
+ @Resource
+ CauseDao causeDao;
+
+ @Resource
+ UserDao userDao;
+
+ @Resource
+ MinIOService minIOService;
/**
* 瀹℃牳鎶ユ
@@ -51,5 +89,94 @@
groupUserDao.insert(groupUser);
return true;
}
+
+ @Override
+ public void leaveGroup(Integer id, Integer groupId) {
+ groupUserDao.delete(new QueryWrapper<GroupUser>().eq("user_id", id).eq("group_id", groupId));
+ }
+
+ @Override
+ @SneakyThrows
+ public void exportReporter(Integer id, HttpServletResponse response) {
+ //鏌ヨ鎶ユ浜虹浉鍏充俊鎭�氳繃妗堜欢
+ List<Report> reports = reportDao.selectList(new QueryWrapper<Report>().eq("cause_id", id).orderByDesc());
+ ArrayList<ExportExcelReportVo> exportExcelReportVos = new ArrayList<>();
+ reports.forEach(
+ a -> {
+ ExportExcelReportVo exportExcelReportVo = new ExportExcelReportVo();
+ User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId()));
+ BeanUtils.copyProperties(a, exportExcelReportVo);
+ exportExcelReportVo.setUserIdcard(user.getUserIdcard());
+ exportExcelReportVo.setUserMobile(user.getUserMobile());
+ exportExcelReportVo.setRealName(user.getRealName());
+ WriteCellData<List<ImageData>> objectWriteCellData = new WriteCellData<>();
+ 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;
+ 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);
+ }
+ );
+ 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.setCharacterEncoding("utf-8");
+ response.setContentType("application/vnd.ms-excel");
+ 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})", "*")));
+ return aaa;
+ }
+
+ @Override
+ public ReportListVo getReportListVoById(Serializable id) {
+ return reportDao.getReportListVoById(id);
+ }
+
+ @Override
+ public Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId) {
+ Page<ReportListVo> aaa = reportDao.getPageByGroupId(page, reportParamDto,groupId);
+ aaa.getRecords().stream().forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")));
+ return aaa;
+ }
+
+ @Override
+ @Transactional
+ public Boolean addReport(AddReportDto addReportDto) {
+ User user = userDao.selectOne(new LambdaQueryWrapper<User>(User.class).eq(User::getUserIdcard, addReportDto.getIdcard()));
+ 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);
+ }
+ // 娣诲姞鎶ユ淇℃伅
+ Report report = new Report();
+ BeanUtils.copyProperties(addReportDto, report);
+ report
+ .setUserId(user.getId())
+ .setCtime(new Date())
+ .setStatus(0)
+ .setReportMethod("鐜板満褰曞叆")
+ .setIsCommission("0").setReportTime(new Date());
+ return reportDao.insert(report) > 0;
+ }
}
--
Gitblit v1.8.0