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