From f227e6ac3439116a0f8cc185bce053e19bd65307 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 28 十二月 2022 11:50:16 +0800
Subject: [PATCH] fix: 优化code
---
src/main/java/com/example/jz/service/impl/ReportServiceImpl.java | 78 ++++++++++++++++++++++++--------------
1 files changed, 49 insertions(+), 29 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 3fa340e..37e6ee6 100644
--- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java
@@ -3,7 +3,6 @@
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;
@@ -11,23 +10,19 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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;
@@ -36,13 +31,12 @@
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.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 鎶ユ琛�(Report)琛ㄦ湇鍔″疄鐜扮被
@@ -65,6 +59,10 @@
@Resource
UserDao userDao;
+ @Resource
+ UserService userService;
+ @Resource
+ ReportService reportService;
@Resource
MinIOService minIOService;
@@ -76,21 +74,28 @@
* @return
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public Boolean audit(Report report) {
// 1. 鏇存柊鎶ユ琛�
report.setStatus(1);
+ report.setIsInGroup(1);
reportDao.updateById(report);
// 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);
- groupUserDao.insert(groupUser);
+ if (!groupUserDao.selectUserList(group.getId()).contains(report.getUserId())) {
+ GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0);
+ return groupUserDao.insert(groupUser) == 1 ? true : false;
+ }
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));
}
@@ -143,7 +148,7 @@
}
);
String name = causeDao.selectOne(new QueryWrapper<Cause>().eq("id", id)).getName();
- response.setContentType("application/vnd.ms-excel");
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
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);
@@ -151,9 +156,7 @@
@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;
+ return reportDao.getPage(page, reportParamDto);
}
@Override
@@ -162,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;
}
@@ -175,25 +189,31 @@
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));
+// 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(1)
- .setReportMethod("鐜板満褰曞叆")
+ .setStatus(0)
+ .setIsInGroup(0)
+ .setReportMethod("鍚庡彴褰曞叆")
.setIsCommission("0").setReportTime(new Date())
.setCauseId(addReportDto.getCauseId());
- return reportDao.insert(report) > 0;
+ return reportService.save(report);
}
-}
+ @Override
+ public List<Report> listGroup(Integer id) {
+ return reportDao.selectListGroup(id);
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0