|
|
@@ -1,7 +1,11 @@
|
|
|
package com.template.services.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.core.util.URLUtil;
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.excel.converters.longconverter.LongStringConverter;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -19,12 +23,22 @@ import com.template.model.result.PageUtils;
|
|
|
import com.template.model.vo.WelcomeVisitorVO;
|
|
|
import com.template.services.WelcomeVisitorService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
+import org.springframework.web.context.request.RequestAttributes;
|
|
|
+import org.springframework.web.context.request.RequestContextHolder;
|
|
|
+import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper, WelcomeVisitor> implements WelcomeVisitorService {
|
|
|
@@ -33,13 +47,10 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void addVisitor(WelcomeVisitorRequest visitorRequest) {
|
|
|
- // TODO 获取studyCard
|
|
|
- String studyCard = "";
|
|
|
-
|
|
|
+ public void addVisitor(String studentCard, WelcomeVisitorRequest visitorRequest) {
|
|
|
// 查询当前用户是否已有访客记录
|
|
|
LambdaQueryWrapper<WelcomeVisitor> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(WelcomeVisitor::getStudentCard, studyCard);
|
|
|
+ queryWrapper.eq(WelcomeVisitor::getStudentCard, studentCard);
|
|
|
if (this.count(queryWrapper) > 0) {
|
|
|
throw new MyCustomException(ResponseStatusEnum.EXISTS);
|
|
|
}
|
|
|
@@ -49,7 +60,7 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
|
|
|
// 新增访客记录
|
|
|
WelcomeVisitor visitor = new WelcomeVisitor();
|
|
|
BeanUtils.copyProperties(visitorRequest, visitor);
|
|
|
- visitor.setStudentCard(studyCard);
|
|
|
+ visitor.setStudentCard(studentCard);
|
|
|
|
|
|
save(visitor);
|
|
|
|
|
|
@@ -58,12 +69,9 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public WelcomeVisitorVO getByCurUser() {
|
|
|
- // TODO 获取studyCard
|
|
|
- String studyCard = "";
|
|
|
-
|
|
|
+ public WelcomeVisitorVO getByCurUser(String studentCard) {
|
|
|
LambdaQueryWrapper<WelcomeVisitor> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(WelcomeVisitor::getStudentCard, studyCard);
|
|
|
+ queryWrapper.eq(WelcomeVisitor::getStudentCard, studentCard);
|
|
|
|
|
|
WelcomeVisitor visitor = this.getOne(queryWrapper);
|
|
|
if (ObjectUtil.isNull(visitor)) {
|
|
|
@@ -91,12 +99,9 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void deleteByCurUser() {
|
|
|
- // TODO 获取studyCard
|
|
|
- String studyCard = "";
|
|
|
-
|
|
|
+ public void deleteByCurUser(String studentCard) {
|
|
|
LambdaQueryWrapper<WelcomeVisitor> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(WelcomeVisitor::getStudentCard, studyCard);
|
|
|
+ queryWrapper.eq(WelcomeVisitor::getStudentCard, studentCard);
|
|
|
|
|
|
remove(queryWrapper);
|
|
|
}
|
|
|
@@ -134,6 +139,36 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
|
|
|
return new PageUtils<>(welcomeVisitorVOS, (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void export() {
|
|
|
+ LambdaQueryWrapper<WelcomeVisitor> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.orderByDesc(WelcomeVisitor::getId);
|
|
|
+ List<WelcomeVisitor> welcomeVisitors = list(wrapper);
|
|
|
+
|
|
|
+ List<WelcomeVisitorVO> welcomeVisitorVOS = BeanUtil.copyListProperties(welcomeVisitors, WelcomeVisitorVO::new);
|
|
|
+
|
|
|
+ try {
|
|
|
+ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
|
|
+ HttpServletResponse response = ((ServletRequestAttributes) requestAttributes).getResponse();
|
|
|
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
|
+ response.setCharacterEncoding("UTF-8");
|
|
|
+
|
|
|
+ String excelName = "访客预约记录_";
|
|
|
+ excelName += DateUtil.format(new Date(), "yyyyMMddHHmmss");
|
|
|
+ String fileName = URLUtil.encode(excelName, StandardCharsets.UTF_8);
|
|
|
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
|
|
+
|
|
|
+ EasyExcel.write(response.getOutputStream(), WelcomeVisitorVO.class)
|
|
|
+ .sheet("sheet1")
|
|
|
+ .registerConverter(new LongStringConverter())
|
|
|
+ .doWrite(welcomeVisitorVOS);
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error("访客记录导出失败:{}", e.getMessage());
|
|
|
+ throw new MyCustomException(ResponseStatusEnum.FAILED);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 新增车辆信息
|
|
|
* @param visitor 访客信息
|