Browse Source

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

夏文涛 1 year ago
parent
commit
e280151577
22 changed files with 370 additions and 105 deletions
  1. 3 3
      src/main/java/com/template/AutoCode.java
  2. 1 2
      src/main/java/com/template/api/WelcomeBuildControllerAPI.java
  3. 31 0
      src/main/java/com/template/api/WelcomeSchoolControllerAPI.java
  4. 10 5
      src/main/java/com/template/api/WelcomeVisitorControllerAPI.java
  5. 8 14
      src/main/java/com/template/controller/WelcomeBuildController.java
  6. 10 7
      src/main/java/com/template/controller/WelcomeDormitoryController.java
  7. 51 0
      src/main/java/com/template/controller/WelcomeSchoolController.java
  8. 12 7
      src/main/java/com/template/controller/WelcomeVisitorController.java
  9. 0 3
      src/main/java/com/template/mapper/WelcomeBuildMapper.java
  10. 18 0
      src/main/java/com/template/mapper/WelcomeSchoolMapper.java
  11. 3 0
      src/main/java/com/template/model/pojo/WelcomeBuild.java
  12. 61 0
      src/main/java/com/template/model/pojo/WelcomeSchool.java
  13. 2 10
      src/main/java/com/template/model/query/PageQuery.java
  14. 13 0
      src/main/java/com/template/model/vo/WelcomeVisitorVO.java
  15. 2 4
      src/main/java/com/template/services/WelcomeBuildService.java
  16. 23 0
      src/main/java/com/template/services/WelcomeSchoolService.java
  17. 12 4
      src/main/java/com/template/services/WelcomeVisitorService.java
  18. 10 10
      src/main/java/com/template/services/impl/WelcomeBuildServiceImpl.java
  19. 41 0
      src/main/java/com/template/services/impl/WelcomeSchoolServixceImpl.java
  20. 54 17
      src/main/java/com/template/services/impl/WelcomeVisitorServiceImpl.java
  21. 0 19
      src/main/resources/mapper/template/WelcomeBuildMapper.xml
  22. 5 0
      src/main/resources/mapper/template/WelcomeSchoolMapper.xml

+ 3 - 3
src/main/java/com/template/AutoCode.java

@@ -39,10 +39,10 @@ public class AutoCode {
         mpg.setGlobalConfig(gc);
 //2、设置数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://192.168.161.221:3306/welcome?useUnicode=tru&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true&allowPublicKeyRetrieval=true&allowMultiQueries=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai");
+        dsc.setUrl("jdbc:mysql://172.16.40.122:3306/welcome?useUnicode=tru&characterEncoding=UTF-8&useSSL=false&useAffectedRows=true&allowPublicKeyRetrieval=true&allowMultiQueries=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("root");
+        dsc.setPassword("Chuanghai2024.");
         dsc.setDbType(DbType.MYSQL);
         mpg.setDataSource(dsc);
         //3、包的配置
@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("welcome_dormitory"); // 设置要映射的表名
+        strategy.setInclude("welcome_school"); // 设置要映射的表名
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 1 - 2
src/main/java/com/template/api/WelcomeBuildControllerAPI.java

@@ -37,10 +37,9 @@ public interface WelcomeBuildControllerAPI {
     @ApiOperation(value = "校区分组", notes = "校区分组", httpMethod = "GET")
     CommonResult schoolGroup();
 
-
     @GetMapping(value = "/buildGroup")
     @ApiOperation(value = "楼栋分组", notes = "楼栋分组", httpMethod = "GET")
-    CommonResult buildGroup(String schoolName);
+    CommonResult buildGroup(Integer schoolId);
 
 
     @PostMapping(value = "/importBuildExcel")

+ 31 - 0
src/main/java/com/template/api/WelcomeSchoolControllerAPI.java

@@ -0,0 +1,31 @@
+package com.template.api;
+
+import com.template.model.pojo.WelcomeBuild;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/welcome-school")
+public interface WelcomeSchoolControllerAPI {
+
+    @PostMapping(value = "/saveSchool")
+    @ApiOperation(value = "添加校区", notes = "添加楼栋", httpMethod = "POST")
+    CommonResult saveSchool(@RequestBody WelcomeSchool WelcomeSchool);
+
+
+    @GetMapping(value = "/deleteSchool")
+    @ApiOperation(value = "删除校区", notes = "删除校区", httpMethod = "GET")
+    CommonResult deleteSchool(@RequestParam Integer schoolId);
+
+
+    @PostMapping(value = "/updateSchool")
+    @ApiOperation(value = "修改校区", notes = "修改校区", httpMethod = "POST")
+    CommonResult updateSchool(@RequestBody WelcomeSchool welcomeSchool);
+
+
+    @GetMapping(value = "/listSchool")
+    @ApiOperation(value = "查询校区", notes = "查询校区", httpMethod = "GET")
+    CommonResult listSchool(@RequestParam int currentPage, @RequestParam int pageCount);
+
+}

+ 10 - 5
src/main/java/com/template/api/WelcomeVisitorControllerAPI.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -28,19 +29,19 @@ public interface WelcomeVisitorControllerAPI {
 
     @PostMapping
     @ApiOperation(value = "新增访客记录")
-    CommonResult addVisitor(@Validated @RequestBody WelcomeVisitorRequest visitorRequest);
+    CommonResult addVisitor(@RequestParam String studentCard, @Validated @RequestBody WelcomeVisitorRequest visitorRequest);
 
     @GetMapping
     @ApiOperation(value = "获取当前用户访客记录")
-    CommonResult<WelcomeVisitorVO> getByCurUser();
+    CommonResult<WelcomeVisitorVO> getByCurUser(@RequestParam String studentCard);
 
     @DeleteMapping
     @ApiOperation(value = "删除当前用户的访客记录")
-    CommonResult deleteByCurUser();
+    CommonResult deleteByCurUser(@RequestParam String studentCard);
 
     @GetMapping("admin/page")
     @ApiOperation(value = "访客记录分页")
-    CommonResult<PageUtils<WelcomeVisitorVO>> page(@Validated WelcomeVisitorQuery visitorQuery);
+    CommonResult<PageUtils<WelcomeVisitorVO>> page(WelcomeVisitorQuery visitorQuery);
 
     @PostMapping("admin/add")
     @ApiOperation(value = "管理员新增访客记录")
@@ -51,6 +52,10 @@ public interface WelcomeVisitorControllerAPI {
     CommonResult<WelcomeVisitorVO> getById(@PathVariable Long id);
 
     @DeleteMapping("admin/batch-del")
-    @ApiOperation(value = "删除当前用户的所有访客记录")
+    @ApiOperation(value = "根据id删除访客记录")
     CommonResult deleteByIds(@RequestBody List<Long> ids);
+
+    @GetMapping("admin/export")
+    @ApiOperation(value = "导出访客记录")
+    void export();
 }

+ 8 - 14
src/main/java/com/template/controller/WelcomeBuildController.java

@@ -7,14 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.api.WelcomeBuildControllerAPI;
 import com.template.common.utils.ExcelUtils;
 import com.template.model.enumModel.eFileType;
-import com.template.model.pojo.WelcomeBuild;
-import com.template.model.pojo.WelcomeCity;
-import com.template.model.pojo.WelcomeOrg;
-import com.template.model.pojo.WelcomeStudent;
+import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.StudentPageVo;
 import com.template.services.WelcomeBuildService;
+import com.template.services.WelcomeSchoolService;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -54,6 +52,9 @@ public class WelcomeBuildController implements WelcomeBuildControllerAPI {
     @Autowired
     private WelcomeBuildService welcomeBuildService;
 
+    @Autowired
+    WelcomeSchoolService welcomeSchoolService;
+
     @Override
     public CommonResult saveBuild(WelcomeBuild welcomeBuild) {
         String build = welcomeBuild.getBuild();
@@ -110,21 +111,14 @@ public class WelcomeBuildController implements WelcomeBuildControllerAPI {
 
     @Override
     public CommonResult schoolGroup() {
-
-        LambdaQueryWrapper<WelcomeBuild> wrapper=new LambdaQueryWrapper<>();
-        wrapper.groupBy(WelcomeBuild::getSchool);
-        List<WelcomeBuild> schoolGroup = welcomeBuildService.list(wrapper);
+        List<WelcomeSchool> schoolGroup = welcomeSchoolService.schoolGroup();
 
         return CommonResult.ok(schoolGroup);
     }
 
     @Override
-    public CommonResult buildGroup(String schoolName) {
-
-        LambdaQueryWrapper<WelcomeBuild> wrapper=new LambdaQueryWrapper<>();
-        wrapper.eq(ObjectUtils.isNotEmpty(schoolName),WelcomeBuild::getSchool,schoolName)
-                .groupBy(WelcomeBuild::getBuild);
-        List<WelcomeBuild> schoolGroup = welcomeBuildService.list(wrapper);
+    public CommonResult buildGroup(Integer schoolId) {
+        List<WelcomeBuild> schoolGroup = welcomeBuildService.buildGroup(schoolId);
 
         return CommonResult.ok(schoolGroup);
     }

+ 10 - 7
src/main/java/com/template/controller/WelcomeDormitoryController.java

@@ -57,7 +57,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
     private WelcomeDormitoryService welcomeDormitoryService;
 
     @Autowired
-    private WelcomeStudentDormitoryService welcomeStudentDormitoryService;
+    private WelcomeBedService welcomeBedService;
 
     @Override
     public CommonResult saveDormitory(WelcomeDormitory welcomeDormitory) {
@@ -86,6 +86,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
     public CommonResult deleteDormitory(Integer dormitoryId) {
 
         welcomeDormitoryService.removeById(dormitoryId);
+        //        动态删除床位
 
         return CommonResult.ok();
     }
@@ -107,6 +108,8 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
 
         welcomeDormitoryService.updateById(welcomeDormitory);
 
+//        动态修改床位
+
         return CommonResult.ok();
     }
 
@@ -160,18 +163,18 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
         Integer bedNumber = welcomeDormitory.getBedNumber();
 
 //        查找哪些已经入住了
-        LambdaQueryWrapper<WelcomeStudentDormitory> wrapperStudentDormitory = new LambdaQueryWrapper<>();
-        wrapperStudentDormitory.eq(WelcomeStudentDormitory::getBuilding, buildName)
-                .eq(WelcomeStudentDormitory::getDormitory, dormitoryName);
-        List<WelcomeStudentDormitory> list1 = welcomeStudentDormitoryService.list(wrapperStudentDormitory);
+        LambdaQueryWrapper<WelcomeBed> wrapperBed = new LambdaQueryWrapper<>();
+        wrapperBed.eq(WelcomeBed::getBuild, buildName)
+                .eq(WelcomeBed::getDormitory, dormitoryName);
+        List<WelcomeBed> list1 = welcomeBedService.list(wrapperBed);
 
         ArrayList<Integer> bedNums = new ArrayList<>();
         for (int i = 1; i <= bedNumber; i++) {
             bedNums.add(i);
         }
 
-        for (WelcomeStudentDormitory welcomeStudentDormitory : list1) {
-            Integer bedNum = Integer.valueOf(welcomeStudentDormitory.getBedNum());
+        for (WelcomeBed welcomeBed : list1) {
+            Integer bedNum = welcomeBed.getNumber();
             bedNums.remove(bedNum);
         }
 

+ 51 - 0
src/main/java/com/template/controller/WelcomeSchoolController.java

@@ -0,0 +1,51 @@
+package com.template.controller;
+
+
+import com.template.api.WelcomeSchoolControllerAPI;
+import com.template.model.pojo.WelcomeBuild;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.services.WelcomeSchoolService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-19
+ */
+@RestController
+public class WelcomeSchoolController implements WelcomeSchoolControllerAPI {
+
+    @Autowired
+    WelcomeSchoolService welcomeSchoolService;
+
+
+    @Override
+    public CommonResult saveSchool(WelcomeSchool WelcomeSchool) {
+        return welcomeSchoolService.save(WelcomeSchool)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult deleteSchool(Integer schoolId) {
+        return welcomeSchoolService.removeById(schoolId)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult updateSchool(WelcomeSchool welcomeSchool) {
+        return welcomeSchoolService.updateById(welcomeSchool)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult listSchool(int currentPage, int pageCount) {
+        PageUtils<WelcomeSchool>pageUtils= welcomeSchoolService.listSchool(currentPage,pageCount);
+        return CommonResult.ok(pageUtils);
+    }
+}
+

+ 12 - 7
src/main/java/com/template/controller/WelcomeVisitorController.java

@@ -28,14 +28,14 @@ public class WelcomeVisitorController implements WelcomeVisitorControllerAPI {
 
 
     @Override
-    public CommonResult addVisitor(WelcomeVisitorRequest visitorRequest) {
-        welcomeVisitorService.addVisitor(visitorRequest);
+    public CommonResult addVisitor(String studentCard, WelcomeVisitorRequest visitorRequest) {
+        welcomeVisitorService.addVisitor(studentCard, visitorRequest);
         return CommonResult.ok();
     }
 
     @Override
-    public CommonResult<WelcomeVisitorVO> getByCurUser() {
-        WelcomeVisitorVO vo = welcomeVisitorService.getByCurUser();
+    public CommonResult<WelcomeVisitorVO> getByCurUser(String studentCard) {
+        WelcomeVisitorVO vo = welcomeVisitorService.getByCurUser(studentCard);
         return CommonResult.ok(vo);
     }
 
@@ -46,8 +46,8 @@ public class WelcomeVisitorController implements WelcomeVisitorControllerAPI {
     }
 
     @Override
-    public CommonResult deleteByCurUser() {
-        welcomeVisitorService.deleteByCurUser();
+    public CommonResult deleteByCurUser(String studentCard) {
+        welcomeVisitorService.deleteByCurUser(studentCard);
         return CommonResult.ok();
     }
 
@@ -71,6 +71,11 @@ public class WelcomeVisitorController implements WelcomeVisitorControllerAPI {
     @Override
     public CommonResult deleteByIds(List<Long> ids) {
         welcomeVisitorService.removeByIds(ids);
-        return null;
+        return CommonResult.ok();
+    }
+
+    @Override
+    public void export() {
+        welcomeVisitorService.export();
     }
 }

+ 0 - 3
src/main/java/com/template/mapper/WelcomeBuildMapper.java

@@ -18,7 +18,4 @@ import java.util.List;
 @Repository
 public interface WelcomeBuildMapper extends BaseMapper<WelcomeBuild> {
 
-    List<String> schoolGroup();
-
-    List<String> buildGroup(@Param("schoolName") String schoolName);
 }

+ 18 - 0
src/main/java/com/template/mapper/WelcomeSchoolMapper.java

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.template.model.pojo.WelcomeSchool;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-19
+ */
+@Mapper
+public interface WelcomeSchoolMapper extends BaseMapper<WelcomeSchool> {
+
+}

+ 3 - 0
src/main/java/com/template/model/pojo/WelcomeBuild.java

@@ -34,6 +34,9 @@ public class WelcomeBuild implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
+    @ApiModelProperty(value = "校区ID")
+    private String schoolId;
+
     @ApiModelProperty(value = "校区名称")
     private String school;
 

+ 61 - 0
src/main/java/com/template/model/pojo/WelcomeSchool.java

@@ -0,0 +1,61 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="WelcomeSchool对象", description="")
+public class WelcomeSchool implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "校区名称")
+    private String school;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 2 - 10
src/main/java/com/template/model/query/PageQuery.java

@@ -2,10 +2,6 @@ package com.template.model.query;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.hibernate.validator.constraints.Range;
-
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotNull;
 
 /**
  * 分页查询
@@ -14,15 +10,11 @@ import javax.validation.constraints.NotNull;
  */
 @Data
 public class PageQuery {
-    @NotNull(message = "页码不能为空")
-    @Min(value = 1, message = "页码最小值为 1")
     @ApiModelProperty(value = "当前页码", required = true)
-    Integer page;
+    Integer page = 1;
 
-    @NotNull(message = "每页条数不能为空")
-    @Range(min = 1, max = 1000, message = "每页条数,取值范围 1-1000")
     @ApiModelProperty(value = "每页条数", required = true)
-    Integer limit;
+    Integer limit = 10;
 
     @ApiModelProperty(value = "排序字段")
     String order;

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

@@ -1,5 +1,6 @@
 package com.template.model.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -13,38 +14,50 @@ public class WelcomeVisitorVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "主键ID")
+    @ExcelProperty("id")
     private Integer id;
 
     @ApiModelProperty(value = "学生身份证号")
+    @ExcelProperty("学生身份证号")
     private String studentCard;
 
     @ApiModelProperty(value = "访客姓名")
+    @ExcelProperty("访客姓名")
     private String name;
 
     @ApiModelProperty(value = "访客手机号")
+    @ExcelProperty("访客手机号")
     private String phone;
 
     @ApiModelProperty(value = "证件号")
+    @ExcelProperty("证件号")
     private String cardId;
 
     @ApiModelProperty(value = "校区名称")
+    @ExcelProperty("校区名称")
     private String school;
 
     @ApiModelProperty(value = "到访开始时间")
+    @ExcelProperty("到访开始时间")
     private String startTime;
 
     @ApiModelProperty(value = "到访结束时间")
+    @ExcelProperty("到访结束时间")
     private String endTime;
 
     @ApiModelProperty(value = "车牌号")
+    @ExcelProperty("车牌号")
     private String carNumber;
 
     @ApiModelProperty(value = "同行人数")
+    @ExcelProperty("同行人数")
     private Integer peerNum;
 
     @ApiModelProperty(value = "访问事由")
+    @ExcelProperty("访问事由")
     private String visitorReason;
 
     @ApiModelProperty(value = "备注")
+    @ExcelProperty("备注")
     private String remark;
 }

+ 2 - 4
src/main/java/com/template/services/WelcomeBuildService.java

@@ -26,11 +26,9 @@ public interface WelcomeBuildService extends IService<WelcomeBuild> {
 
     WelcomeBuild getManageById(String id);
 
-    List<String> schoolGroup();
-
-    List<String> buildGroup(String schoolName);
-
     PageUtils<WelcomeBuild> listBuild(int currentPage, int pageCount, String schoolName, String buildName, String sex);
 
     List<WelcomeBuild> listBuild( String schoolName, String buildName, String sex);
+
+    List<WelcomeBuild> buildGroup(Integer schoolId);
 }

+ 23 - 0
src/main/java/com/template/services/WelcomeSchoolService.java

@@ -0,0 +1,23 @@
+package com.template.services;
+
+import com.template.model.pojo.WelcomeSchool;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.result.PageUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-19
+ */
+public interface WelcomeSchoolService extends IService<WelcomeSchool> {
+
+    PageUtils<WelcomeSchool> listSchool(int currentPage, int pageCount);
+
+    List<WelcomeSchool> schoolGroup();
+
+}

+ 12 - 4
src/main/java/com/template/services/WelcomeVisitorService.java

@@ -1,7 +1,7 @@
 package com.template.services;
 
-import com.template.model.pojo.WelcomeVisitor;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.pojo.WelcomeVisitor;
 import com.template.model.query.WelcomeVisitorQuery;
 import com.template.model.request.WelcomeVisitorRequest;
 import com.template.model.result.PageUtils;
@@ -14,15 +14,17 @@ public interface WelcomeVisitorService extends IService<WelcomeVisitor> {
 
     /**
      * 新增访客记录
+     * @param studentCard 学生身份证号
      * @param visitorRequest 访客信息
      */
-    void addVisitor(WelcomeVisitorRequest visitorRequest);
+    void addVisitor(String studentCard, WelcomeVisitorRequest visitorRequest);
 
     /**
      * 获取当前用户访客记录
+     * @param studentCard 学生身份证号
      * @return 访客信息
      */
-    WelcomeVisitorVO getByCurUser();
+    WelcomeVisitorVO getByCurUser(String studentCard);
 
     /**
      * 根据记录id获取访客记录
@@ -33,8 +35,9 @@ public interface WelcomeVisitorService extends IService<WelcomeVisitor> {
 
     /**
      * 删除当前用户的访客记录
+     * @param studentCard 学生身份证号
      */
-    void deleteByCurUser();
+    void deleteByCurUser(String studentCard);
 
     /**
      * 管理员新增访客记录
@@ -48,4 +51,9 @@ public interface WelcomeVisitorService extends IService<WelcomeVisitor> {
      * @return 分页结果
      */
     PageUtils<WelcomeVisitorVO> page(WelcomeVisitorQuery visitorQuery);
+
+    /**
+     * 导出访客记录
+     */
+    void export();
 }

+ 10 - 10
src/main/java/com/template/services/impl/WelcomeBuildServiceImpl.java

@@ -64,17 +64,7 @@ public class WelcomeBuildServiceImpl extends ServiceImpl<WelcomeBuildMapper, Wel
         return result;
     }
 
-    @Override
-    public List<String> schoolGroup() {
-        List<String> result = welcomeBuildMapper.schoolGroup();
-        return result;
-    }
 
-    @Override
-    public List<String> buildGroup(String schoolName) {
-        List<String> result = welcomeBuildMapper.buildGroup(schoolName);
-        return result;
-    }
 
     @Override
     public PageUtils<WelcomeBuild> listBuild(int currentPage, int pageCount, String schoolName, String buildName, String sex) {
@@ -96,4 +86,14 @@ public class WelcomeBuildServiceImpl extends ServiceImpl<WelcomeBuildMapper, Wel
         List<WelcomeBuild> result = welcomeBuildMapper.selectList(queryWrapper);
         return result;
     }
+
+    @Override
+    public List<WelcomeBuild> buildGroup(Integer schoolId) {
+        LambdaQueryWrapper<WelcomeBuild> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ObjectUtils.isNotEmpty(schoolId),WelcomeBuild::getSchoolId,schoolId);
+        List<WelcomeBuild> result = welcomeBuildMapper.selectList(queryWrapper);
+        return result;
+    }
+
+
 }

+ 41 - 0
src/main/java/com/template/services/impl/WelcomeSchoolServixceImpl.java

@@ -0,0 +1,41 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.mapper.WelcomeSchoolMapper;
+import com.template.model.result.PageUtils;
+import com.template.services.WelcomeSchoolService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-19
+ */
+@Service
+public class WelcomeSchoolServixceImpl extends ServiceImpl<WelcomeSchoolMapper, WelcomeSchool> implements WelcomeSchoolService {
+
+    @Autowired
+    WelcomeSchoolMapper welcomeSchoolMapper;
+
+    @Override
+    public PageUtils<WelcomeSchool> listSchool(int currentPage, int pageCount) {
+        IPage<WelcomeSchool> result = welcomeSchoolMapper.selectPage(new Page<>(currentPage, pageCount), new QueryWrapper<>());
+        return new PageUtils<>(result);
+    }
+
+    @Override
+    public List<WelcomeSchool> schoolGroup() {
+        List<WelcomeSchool> welcomeSchools = welcomeSchoolMapper.selectList(new QueryWrapper<>());
+        return welcomeSchools;
+    }
+}

+ 54 - 17
src/main/java/com/template/services/impl/WelcomeVisitorServiceImpl.java

@@ -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,8 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
         // 新增访客记录
         WelcomeVisitor visitor = new WelcomeVisitor();
         BeanUtils.copyProperties(visitorRequest, visitor);
-        visitor.setStudentCard(studyCard);
+        visitor.setStudentCard(studentCard);
+        visitor.setRemark("用户新增");
 
         save(visitor);
 
@@ -58,12 +70,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 +100,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);
     }
@@ -115,6 +121,7 @@ public class WelcomeVisitorServiceImpl extends ServiceImpl<WelcomeVisitorMapper,
         // 新增访客记录
         WelcomeVisitor visitor = new WelcomeVisitor();
         BeanUtils.copyProperties(visitorRequest, visitor);
+        visitor.setRemark("管理员新增");
 
         save(visitor);
 
@@ -134,6 +141,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  访客信息

+ 0 - 19
src/main/resources/mapper/template/WelcomeBuildMapper.xml

@@ -2,23 +2,4 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.WelcomeBuildMapper">
 
-    <select id="schoolGroup" resultType="java.lang.String">
-        SELECT school
-        FROM `welcome_build`
-        WHERE deleted = 0
-        GROUP BY school
-    </select>
-
-    <select id="buildGroup" resultType="java.lang.String">
-        SELECT
-        build
-        FROM
-        `welcome_build`
-        WHERE
-        deleted = 0
-        <if test="schoolName != null and schoolName != ''">
-            AND school= #{schoolName}
-        </if>
-        GROUP BY build
-    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/template/WelcomeSchoolMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.mapper.WelcomeSchoolMapper">
+
+</mapper>