Browse Source

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smarCampus/backend_dormitory

夏文涛 11 months ago
parent
commit
ee4ea7adbe

+ 1 - 0
src/main/java/com/template/common/result/ResponseStatusEnum.java

@@ -39,6 +39,7 @@ public enum ResponseStatusEnum implements Code{
     SYSTEM_LOGIN_ERROR(558,false,"无效token"),
     SYSTEM_LOGIN_ERROR(558,false,"无效token"),
     PARAM_ERROR(560, false, "参数不能为空!"),
     PARAM_ERROR(560, false, "参数不能为空!"),
     GZH_ERROR(561, false, "设置失败,请先关联公众号!"),
     GZH_ERROR(561, false, "设置失败,请先关联公众号!"),
+    STUDENT_CAR_NUMBER_NOT_FOUNT(995, false, "学号/录取号不存在"),
     CAR_NUM_EXCEED(996, false, "预约车辆已超过上限,请更换日期后重试"),
     CAR_NUM_EXCEED(996, false, "预约车辆已超过上限,请更换日期后重试"),
     THIRD_API_ERROR(997, false, "第三方api请求失败"),
     THIRD_API_ERROR(997, false, "第三方api请求失败"),
     DATA_NOT_FOUND(998, false, "数据不存在"),
     DATA_NOT_FOUND(998, false, "数据不存在"),

+ 1 - 1
src/main/java/com/template/model/request/WelcomeVisitorRequest.java

@@ -65,7 +65,7 @@ public class WelcomeVisitorRequest implements Serializable {
 
 
     @ApiModelProperty(value = "同行人数")
     @ApiModelProperty(value = "同行人数")
     @NotNull(message = "同行人数不能为空")
     @NotNull(message = "同行人数不能为空")
-    @Min(value = 1, message = "同行人数不能少于1")
+    @Min(value = 0, message = "同行人数不能少于0")
     private Integer peerNum;
     private Integer peerNum;
 
 
     @ApiModelProperty(value = "访问事由")
     @ApiModelProperty(value = "访问事由")

+ 3 - 3
src/main/java/com/template/model/vo/WelcomeVisitorVO.java

@@ -15,9 +15,9 @@ public class WelcomeVisitorVO implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
-    @ApiModelProperty(value = "主键ID")
-    @ExcelProperty("id")
-    private Integer id;
+    @ApiModelProperty(value = "序号")
+    @ExcelProperty("序号")
+    private Integer num;
 
 
     @ApiModelProperty(value = "学号/录取号")
     @ApiModelProperty(value = "学号/录取号")
     @ExcelProperty("学号/录取号")
     @ExcelProperty("学号/录取号")

+ 14 - 0
src/main/java/com/template/services/WelcomeStudentService.java

@@ -60,4 +60,18 @@ public interface WelcomeStudentService extends IService<WelcomeStudent> {
     WelcomeStudent getDataByNum(String admissNum);
     WelcomeStudent getDataByNum(String admissNum);
 
 
     List<StudentTotalVo> queryStudentTotal();
     List<StudentTotalVo> queryStudentTotal();
+
+    /**
+     * 更新学生信息中的车牌信息
+     * @param studentCard 学号/录取号
+     * @param carNumber 车牌号
+     */
+    void updateCarNumber(String studentCard, String carNumber);
+
+    /**
+     * 根据学生学号/录取号统计数量
+     * @param studentCard 学号/录取号
+     * @return 数量
+     */
+    int countByStudentCard(String studentCard);
 }
 }

+ 30 - 6
src/main/java/com/template/services/impl/WelcomeStudentServiceImpl.java

@@ -1,19 +1,21 @@
 package com.template.services.impl;
 package com.template.services.impl;
 
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.WelcomeStudentMapper;
 import com.template.mapper.WelcomeStudentMapper;
-import com.template.model.pojo.WelcomeAccount;
-import com.template.model.pojo.WelcomeStudent;
 import com.template.model.pojo.WelcomeStudent;
 import com.template.model.pojo.WelcomeStudent;
-import com.template.mapper.WelcomeStudentMapper;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
-import com.template.model.vo.*;
+import com.template.model.vo.CheckInVo;
+import com.template.model.vo.StudentPageVo;
+import com.template.model.vo.StudentRegisterVo;
+import com.template.model.vo.StudentSexRatioVo;
+import com.template.model.vo.StudentTotalVo;
+import com.template.model.vo.StudentTrafficVo;
 import com.template.services.WelcomeStudentService;
 import com.template.services.WelcomeStudentService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
@@ -198,4 +200,26 @@ public class WelcomeStudentServiceImpl extends ServiceImpl<WelcomeStudentMapper,
         List<StudentTotalVo> result = welcomeStudentMapper.queryStudentTotal();
         List<StudentTotalVo> result = welcomeStudentMapper.queryStudentTotal();
         return result;
         return result;
     }
     }
+
+    @Override
+    public void updateCarNumber(String studentCard, String carNumber) {
+        LambdaQueryWrapper<WelcomeStudent> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(WelcomeStudent::getAdmissNum, studentCard);
+
+        WelcomeStudent student = getOne(queryWrapper);
+        if (ObjectUtil.isNotNull(student)) {
+            WelcomeStudent updateStudent = new WelcomeStudent();
+            updateStudent.setId(student.getId());
+            updateStudent.setCarNumber(carNumber);
+
+            updateById(updateStudent);
+        }
+    }
+
+    @Override
+    public int countByStudentCard(String studentCard) {
+        LambdaQueryWrapper<WelcomeStudent> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(WelcomeStudent::getAdmissNum, studentCard);
+        return count(queryWrapper);
+    }
 }
 }

+ 27 - 2
src/main/java/com/template/services/impl/WelcomeVisitorServiceImpl.java

@@ -25,6 +25,7 @@ import com.template.model.request.WelcomeVisitorRequest;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.WelcomeVisitorVO;
 import com.template.model.vo.WelcomeVisitorVO;
 import com.template.services.WelcomeSettingService;
 import com.template.services.WelcomeSettingService;
+import com.template.services.WelcomeStudentService;
 import com.template.services.WelcomeVisitorService;
 import com.template.services.WelcomeVisitorService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -39,9 +40,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 
 @Slf4j
 @Slf4j
 @Service
 @Service
@@ -50,6 +51,7 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
 
 
     private final ParkingFeeSystemComponent parkingFeeSystemComponent;
     private final ParkingFeeSystemComponent parkingFeeSystemComponent;
     private final WelcomeSettingService settingService;
     private final WelcomeSettingService settingService;
+    private final WelcomeStudentService studentService;
 
 
     @Autowired
     @Autowired
     private WelcomeVisitorMapper welcomeVisitorMapper;
     private WelcomeVisitorMapper welcomeVisitorMapper;
@@ -73,6 +75,9 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
 
 
         // 新增车辆信息
         // 新增车辆信息
         addVisitorCar(visitor);
         addVisitorCar(visitor);
+
+        // 更新学生信息中的车牌信息
+        studentService.updateCarNumber(studentCard, visitorRequest.getCarNumber());
     }
     }
 
 
     @Override
     @Override
@@ -113,6 +118,7 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
     }
     }
 
 
     @Override
     @Override
+    @Transactional
     public void addVisitorByAdmin(WelcomeVisitorRequest visitorRequest) {
     public void addVisitorByAdmin(WelcomeVisitorRequest visitorRequest) {
         checkBeforeAdd(visitorRequest);
         checkBeforeAdd(visitorRequest);
 
 
@@ -125,6 +131,9 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
 
 
         // 新增车辆信息
         // 新增车辆信息
         addVisitorCar(visitor);
         addVisitorCar(visitor);
+
+        // 更新学生信息中的车牌信息
+        studentService.updateCarNumber(visitor.getStudentCard(), visitorRequest.getCarNumber());
     }
     }
 
 
     private void checkBeforeAdd(WelcomeVisitorRequest visitorRequest) {
     private void checkBeforeAdd(WelcomeVisitorRequest visitorRequest) {
@@ -136,9 +145,16 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
             throw new MyCustomException(ResponseStatusEnum.SEND_PARAMS);
             throw new MyCustomException(ResponseStatusEnum.SEND_PARAMS);
         }
         }
 
 
+        // 校验学号/录取号是否存在
+        String studentCard = visitorRequest.getStudentCard();
+        int existCount = studentService.countByStudentCard(studentCard);
+        if (existCount <= 0) {
+            throw new MyCustomException(ResponseStatusEnum.STUDENT_CAR_NUMBER_NOT_FOUNT);
+        }
+
         // 查询当前用户是否已有访客记录
         // 查询当前用户是否已有访客记录
         LambdaQueryWrapper<WelcomeVisitor> queryWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<WelcomeVisitor> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(WelcomeVisitor::getStudentCard, visitorRequest.getStudentCard());
+        queryWrapper.eq(WelcomeVisitor::getStudentCard, studentCard);
         queryWrapper.ne(ObjectUtil.isNotNull(visitorRequest.getId()), WelcomeVisitor::getId, visitorRequest.getId());
         queryWrapper.ne(ObjectUtil.isNotNull(visitorRequest.getId()), WelcomeVisitor::getId, visitorRequest.getId());
         if (this.count(queryWrapper) > 0) {
         if (this.count(queryWrapper) > 0) {
             throw new MyCustomException(ResponseStatusEnum.EXISTS);
             throw new MyCustomException(ResponseStatusEnum.EXISTS);
@@ -200,6 +216,7 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
         checkBeforeAdd(visitorRequest);
         checkBeforeAdd(visitorRequest);
 
 
         WelcomeVisitor visitor = getById(visitorRequest.getId());
         WelcomeVisitor visitor = getById(visitorRequest.getId());
+        String oldCarNumber = visitor.getCarNumber();
         if (ObjectUtil.isNull(visitor)) {
         if (ObjectUtil.isNull(visitor)) {
             throw new MyCustomException(ResponseStatusEnum.SEND_PARAMS);
             throw new MyCustomException(ResponseStatusEnum.SEND_PARAMS);
         }
         }
@@ -212,6 +229,12 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
 
 
         // 更新车辆信息
         // 更新车辆信息
         addVisitorCar(visitor);
         addVisitorCar(visitor);
+
+        if (!StrUtil.equals(visitorRequest.getCarNumber(), oldCarNumber)) {
+            // 更新学生信息中的车牌信息
+            studentService.updateCarNumber(visitor.getStudentCard(), visitorRequest.getCarNumber());
+        }
+
     }
     }
 
 
     @Override
     @Override
@@ -235,6 +258,8 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
         List<WelcomeVisitor> welcomeVisitors = list(wrapper);
         List<WelcomeVisitor> welcomeVisitors = list(wrapper);
 
 
         List<WelcomeVisitorVO> welcomeVisitorVOS = BeanUtil.copyListProperties(welcomeVisitors, WelcomeVisitorVO::new);
         List<WelcomeVisitorVO> welcomeVisitorVOS = BeanUtil.copyListProperties(welcomeVisitors, WelcomeVisitorVO::new);
+        AtomicInteger i = new AtomicInteger(1);
+        welcomeVisitorVOS.forEach(e -> e.setNum(i.getAndIncrement()));
 
 
         try {
         try {
             RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
             RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();