liu преди 1 година
родител
ревизия
d3dc96484f
променени са 40 файла, в които са добавени 1595 реда и са изтрити 23 реда
  1. 1 1
      src/main/java/com/template/AutoCode.java
  2. 11 0
      src/main/java/com/template/api/SmartDepartmentControllerAPI.java
  3. 31 0
      src/main/java/com/template/api/SmartEnrollmentUserControllerAPI.java
  4. 7 0
      src/main/java/com/template/api/SmartLateSettingControllerAPI.java
  5. 7 0
      src/main/java/com/template/api/SmartLateTimeControllerAPI.java
  6. 22 0
      src/main/java/com/template/api/SmartSchoolSettingControllerAPI.java
  7. 13 0
      src/main/java/com/template/api/WechatScanLoginControllerAPI.java
  8. 113 0
      src/main/java/com/template/controller/SmartDepartmentController.java
  9. 437 0
      src/main/java/com/template/controller/SmartEnrollmentUserController.java
  10. 21 0
      src/main/java/com/template/controller/SmartLateSettingController.java
  11. 21 0
      src/main/java/com/template/controller/SmartLateTimeController.java
  12. 44 0
      src/main/java/com/template/controller/SmartSchoolSettingController.java
  13. 67 0
      src/main/java/com/template/controller/WechatScanLoginController.java
  14. 30 0
      src/main/java/com/template/mapper/SmartEnrollmentUserMapper.java
  15. 16 0
      src/main/java/com/template/mapper/SmartLateSettingMapper.java
  16. 16 0
      src/main/java/com/template/mapper/SmartLateTimeMapper.java
  17. 18 0
      src/main/java/com/template/mapper/SmartSchoolSettingMapper.java
  18. 5 0
      src/main/java/com/template/mapper/WechatScanLoginMapper.java
  19. 33 0
      src/main/java/com/template/model/dto/SmartEnrollmentUserSaveDto.java
  20. 107 0
      src/main/java/com/template/model/pojo/SmartEnrollmentUser.java
  21. 74 0
      src/main/java/com/template/model/pojo/SmartLateSetting.java
  22. 68 0
      src/main/java/com/template/model/pojo/SmartLateTime.java
  23. 65 0
      src/main/java/com/template/model/pojo/SmartSchoolSetting.java
  24. 3 0
      src/main/java/com/template/model/tongji/MeterMonthDataVo.java
  25. 21 0
      src/main/java/com/template/model/tongji/MeterStatisticsVo.java
  26. 22 22
      src/main/java/com/template/model/vo/DepartmentTreeVo.java
  27. 14 0
      src/main/java/com/template/model/vo/SmartEnrollmentAffiliateVo.java
  28. 12 0
      src/main/java/com/template/model/vo/SmartEnrollmentUserExamineDto.java
  29. 48 0
      src/main/java/com/template/model/vo/SmartEnrollmentUserVo.java
  30. 23 0
      src/main/java/com/template/services/SmartEnrollmentUserService.java
  31. 16 0
      src/main/java/com/template/services/SmartLateSettingService.java
  32. 16 0
      src/main/java/com/template/services/SmartLateTimeService.java
  33. 16 0
      src/main/java/com/template/services/SmartSchoolSettingService.java
  34. 6 0
      src/main/java/com/template/services/WechatScanLoginService.java
  35. 52 0
      src/main/java/com/template/services/impl/SmartEnrollmentUserServiceImpl.java
  36. 20 0
      src/main/java/com/template/services/impl/SmartLateSettingServiceImpl.java
  37. 20 0
      src/main/java/com/template/services/impl/SmartLateTimeServiceImpl.java
  38. 20 0
      src/main/java/com/template/services/impl/SmartSchoolSettingServiceImpl.java
  39. 37 0
      src/main/java/com/template/services/impl/WechatScanLoginServiceImpl.java
  40. 22 0
      src/main/resources/mapper/template/WechatScanLoginMapper.xml

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

@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("smart_operation_user"); // 设置要映射的表名"smart_class","smart_grade","smart_attendance"
+        strategy.setInclude("smart_late_setting"); // 设置要映射的表名"smart_class","smart_grade","smart_attendance"
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 11 - 0
src/main/java/com/template/api/SmartDepartmentControllerAPI.java

@@ -45,4 +45,15 @@ public interface SmartDepartmentControllerAPI {
     @GetMapping(value = "/queryAllDepartmentTree")
     @ApiOperation(value = "查询所有部门树形结构数据", notes = "查询所有部门树形结构数据", httpMethod = "GET")
     CommonResult queryAllDepartmentTree(String name, @RequestHeader("user_head") String userhead);
+
+
+    @GetMapping(value = "/patriarchDepartment")
+    @ApiOperation(value = "家长部门", notes = "家长部门", httpMethod = "GET")
+    @ResponseBody
+    CommonResult patriarchDepartment();
+
+    @GetMapping(value = "/studentDepartment")
+    @ApiOperation(value = "学生部门", notes = "学生部门", httpMethod = "GET")
+    @ResponseBody
+    CommonResult studentDepartment();
 }

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

@@ -0,0 +1,31 @@
+package com.template.api;
+
+import com.template.model.dto.SmartEnrollmentUserSaveDto;
+import com.template.model.result.CommonResult;
+import com.template.model.vo.SmartEnrollmentUserExamineDto;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/smartEnrollmentUser")
+public interface SmartEnrollmentUserControllerAPI {
+
+    @PostMapping(value = "/insertSmartEnrollmentUser")
+    @ApiOperation(value = "添加家长提交信息", notes = "添加家长提交信息", httpMethod = "POST")
+    CommonResult insertSmartEnrollmentUser(@Validated @RequestBody SmartEnrollmentUserSaveDto dto, BindingResult bindingResult);
+
+
+    @GetMapping(value = "/list")
+    @ApiOperation(value = "信息展示", notes = "信息展示", httpMethod = "GET")
+    CommonResult list(@RequestParam Integer currentPage,@RequestParam Integer pageCount, String status, String grade, Integer schoolClass, String keyWord);
+
+
+    @PostMapping(value = "/examine")
+    @ApiOperation(value = "状态审批", notes = "状态审批", httpMethod = "POST")
+    CommonResult examine(@RequestBody SmartEnrollmentUserExamineDto dto) throws Exception;
+
+}
+
+
+

+ 7 - 0
src/main/java/com/template/api/SmartLateSettingControllerAPI.java

@@ -0,0 +1,7 @@
+package com.template.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/auto/smart-late-setting")
+public interface SmartLateSettingControllerAPI {
+}

+ 7 - 0
src/main/java/com/template/api/SmartLateTimeControllerAPI.java

@@ -0,0 +1,7 @@
+package com.template.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/auto/smart-late-time")
+public interface SmartLateTimeControllerAPI {
+}

+ 22 - 0
src/main/java/com/template/api/SmartSchoolSettingControllerAPI.java

@@ -0,0 +1,22 @@
+package com.template.api;
+
+import com.template.model.pojo.SmartSchoolSetting;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/auto/smart-school-setting")
+public interface SmartSchoolSettingControllerAPI {
+
+    @GetMapping("get")
+    @ApiOperation(value = "查询学校设置", notes = "查询学校设置", httpMethod = "GET")
+    CommonResult getList();
+
+
+    @PostMapping("saveOrUpdate")
+    @ApiOperation(value = "编辑学校设置", notes = "编辑学校设置", httpMethod = "POST")
+    CommonResult saveOrUpdate(SmartSchoolSetting smartSchoolSetting);
+
+}

+ 13 - 0
src/main/java/com/template/api/WechatScanLoginControllerAPI.java

@@ -124,4 +124,17 @@ public interface WechatScanLoginControllerAPI {
     @ResponseBody
     CommonResult checkToken(@RequestParam String token);
 
+
+    @GetMapping(value = "/waterAndElectricityStatistics")
+    @ApiOperation(value = "小程序水电统计", notes = "水电统计", httpMethod = "GET")
+    @ResponseBody
+    CommonResult statistics();
+
+
+    @GetMapping(value = "/getAppMeterMonthPage")
+    @ApiOperation(value = "小程序区域能耗统计", notes = "小程序区域能耗统计", httpMethod = "GET")
+    @ResponseBody
+    public CommonResult getAppMeterMonthPage(int currentPage, int pageCount,String date);
+
+
 }

+ 113 - 0
src/main/java/com/template/controller/SmartDepartmentController.java

@@ -2,11 +2,14 @@ package com.template.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.template.annotation.DESRespondSecret;
+import com.template.annotation.PassToken;
 import com.template.api.SmartDepartmentControllerAPI;
 import com.template.common.utils.*;
 import com.template.config.ControlConfig;
@@ -453,6 +456,116 @@ public class SmartDepartmentController implements SmartDepartmentControllerAPI {
         return CommonResult.ok(departments);
     }
 
+    @Override
+    @DESRespondSecret(validated = false)
+    @PassToken
+    public CommonResult patriarchDepartment() {
+//        List<SmartDepartment> smartDepartments = new ArrayList<>();
+//
+//        LambdaQueryWrapper<SmartDepartment> wrapper=new LambdaQueryWrapper<>();
+//        wrapper.eq(SmartDepartment::getParentId,0);
+//        List<SmartDepartment> list = smartDepartmentService.list(wrapper);
+//
+//        smartDepartments.addAll(list);
+//
+//        for (SmartDepartment smartDepartment : list) {
+//            Integer id = smartDepartment.getId();
+//            LambdaQueryWrapper<SmartDepartment> wrapperBM=new LambdaQueryWrapper<>();
+//            wrapperBM.eq(SmartDepartment::getParentId,id)
+//                            .eq(SmartDepartment::getName,"家长部");
+////            获取部门
+//            List<SmartDepartment> listBM = smartDepartmentService.list(wrapperBM);
+//            smartDepartments.addAll(listBM);
+//            for (SmartDepartment department : listBM) {
+//                Integer idBM= department.getId();
+//                LambdaQueryWrapper<SmartDepartment> wrapperNJ=new LambdaQueryWrapper<>();
+//                wrapperNJ.eq(SmartDepartment::getParentId,idBM)
+//                                .notLike(SmartDepartment::getName,"毕业");
+////                获取年级
+//                List<SmartDepartment> listNJ = smartDepartmentService.list(wrapperNJ);
+//                smartDepartments.addAll(listNJ);
+//                for (SmartDepartment smartDepartmentBJ : listNJ) {
+//                    Integer idBJ = smartDepartmentBJ.getId();
+//                    LambdaQueryWrapper<SmartDepartment> wrapperBJ=new LambdaQueryWrapper<>();
+//                    wrapperBJ.eq(SmartDepartment::getParentId,idBJ);
+//                    List<SmartDepartment> listBJ = smartDepartmentService.list(wrapperBJ);
+//                    smartDepartments.addAll(listBJ);
+//                }
+//            }
+//        }
+//
+//        List<DepartmentTreeVo> departmentTreeVos = QueryAllDepartmentTreeRecords(0, smartDepartments);
+//
+//        return CommonResult.ok(departmentTreeVos);
+        LambdaQueryWrapper<SmartDepartment> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(SmartDepartment::getParentId,0);
+        List<SmartDepartment> list3 = smartDepartmentService.list(wrapper);
+
+        LambdaQueryWrapper<SmartDepartment> wrappers=new LambdaQueryWrapper<>();
+        wrappers.like(SmartDepartment::getName,"家长");
+        List<SmartDepartment> list = smartDepartmentService.list(wrappers);
+        list.addAll(list3);
+
+
+//        获取毕业家长数据
+        LambdaQueryWrapper<SmartDepartment> wrappers2=new LambdaQueryWrapper<>();
+        wrappers2.like(SmartDepartment::getName,"毕业家长");
+        List<SmartDepartment> list2= smartDepartmentService.list(wrappers2);
+        ArrayList<SmartDepartment> smartDepartments = new ArrayList<>();
+        smartDepartments.addAll(list2);
+        for (SmartDepartment smartDepartment : list2) {
+            Integer id = smartDepartment.getId();
+            LambdaQueryWrapper<SmartDepartment> wrapperBJ=new LambdaQueryWrapper<>();
+            wrapperBJ.eq(SmartDepartment::getParentId,id);
+            List<SmartDepartment> listBJ = smartDepartmentService.list(wrapperBJ);
+            smartDepartments.addAll(listBJ);
+        }
+
+//        删除毕业家长
+        list.removeAll(smartDepartments);
+
+        List<DepartmentTreeVo> departmentTreeVos = QueryAllDepartmentTreeRecords(0, list);
+
+        return CommonResult.ok(departmentTreeVos);
+
+    }
+
+    @Override
+    @DESRespondSecret(validated = false)
+    @PassToken
+    public CommonResult studentDepartment() {
+        LambdaQueryWrapper<SmartDepartment> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(SmartDepartment::getParentId,0);
+        List<SmartDepartment> list3 = smartDepartmentService.list(wrapper);
+
+        LambdaQueryWrapper<SmartDepartment> wrappers=new LambdaQueryWrapper<>();
+        wrappers.like(SmartDepartment::getName,"学生");
+        List<SmartDepartment> list = smartDepartmentService.list(wrappers);
+        list.addAll(list3);
+
+
+//        获取毕业学生数据
+        LambdaQueryWrapper<SmartDepartment> wrappers2=new LambdaQueryWrapper<>();
+        wrappers2.like(SmartDepartment::getName,"毕业学生");
+        List<SmartDepartment> list2= smartDepartmentService.list(wrappers2);
+        ArrayList<SmartDepartment> smartDepartments = new ArrayList<>();
+        smartDepartments.addAll(list2);
+        for (SmartDepartment smartDepartment : list2) {
+            Integer id = smartDepartment.getId();
+            LambdaQueryWrapper<SmartDepartment> wrapperBJ=new LambdaQueryWrapper<>();
+            wrapperBJ.eq(SmartDepartment::getParentId,id);
+            List<SmartDepartment> listBJ = smartDepartmentService.list(wrapperBJ);
+            smartDepartments.addAll(listBJ);
+        }
+
+//        删除毕业学生
+        list.removeAll(smartDepartments);
+
+        List<DepartmentTreeVo> departmentTreeVos = QueryAllDepartmentTreeRecords(0, list);
+
+        return CommonResult.ok(departmentTreeVos);
+    }
+
 
     /**
      * 根据父级ID获取树形数据

+ 437 - 0
src/main/java/com/template/controller/SmartEnrollmentUserController.java

@@ -0,0 +1,437 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.seewo.open.sdk.DefaultSeewoClient;
+import com.seewo.open.sdk.SeewoClient;
+import com.seewo.open.sdk.auth.Account;
+import com.template.annotation.DESRespondSecret;
+import com.template.annotation.PassToken;
+import com.template.api.SmartEnrollmentUserControllerAPI;
+import com.template.common.utils.TimeExchange;
+import com.template.config.SeewoConfig;
+import com.template.model.dto.SmartEnrollmentUserSaveDto;
+import com.template.model.enumModel.eDuties;
+import com.template.model.enumModel.eIdentityStatu;
+import com.template.model.enumModel.eLogOff;
+import com.template.model.enumModel.eSeewoUserType;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
+import com.template.model.pojo.*;
+import com.template.model.request.insertSmartUserRequest;
+import com.template.model.request.isrRequest;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.model.seewo.PhotoServiceSavePhotosParam;
+import com.template.model.vo.SmartEnrollmentUserExamineDto;
+import com.template.model.vo.SmartEnrollmentUserVo;
+import com.template.services.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-12-04
+ */
+@RestController
+public class SmartEnrollmentUserController implements SmartEnrollmentUserControllerAPI {
+
+    @Autowired
+    SmartEnrollmentUserService smartEnrollmentUserService;
+
+    @Autowired
+    SmartGradeService smartGradeService;
+
+    @Autowired
+    SmartClassService smartClassService;
+
+    @Autowired
+    SmartDepartmentService smartDepartmentService;
+
+    @Autowired
+    SmartUserController smartUserController;
+
+    @Autowired
+    SmartUserService smartUserService;
+
+    @Resource
+    private SeewoConfig seewoConfig;
+
+    @Autowired
+    private SmartOperationUserService smartOperationUserService;
+
+
+    @Override
+    @PassToken
+    @DESRespondSecret(validated = true)
+    public CommonResult insertSmartEnrollmentUser(SmartEnrollmentUserSaveDto dto, BindingResult bindingResult) {
+        SmartEnrollmentUser smartEnrollmentUser = new SmartEnrollmentUser();
+        BeanUtils.copyProperties(dto, smartEnrollmentUser);
+
+//        找到对应的年级
+        String gradeName = dto.getGradeName();
+        LambdaQueryWrapper<SmartGrade> wrapperSG = new LambdaQueryWrapper<>();
+        wrapperSG.eq(SmartGrade::getName, gradeName);
+        SmartGrade smartGrade = smartGradeService.getOne(wrapperSG);
+        if (ObjectUtils.isEmpty(smartGrade)) {
+            return CommonResult.fail("年级不存在");
+
+        }
+        smartEnrollmentUser.setGrade(smartGrade.getId() + "");
+
+//        找到对应的班级
+        String schoolClassName = dto.getSchoolClassName();
+        LambdaQueryWrapper<SmartClass> wrapperSC = new LambdaQueryWrapper<>();
+        wrapperSC.eq(SmartClass::getName, schoolClassName);
+        SmartClass smartClass = smartClassService.getOne(wrapperSC);
+        if (ObjectUtils.isEmpty(smartClass)) {
+            return CommonResult.fail("班级不存在");
+        }
+        smartEnrollmentUser.setSchoolClass(smartClass.getId());
+
+//        判断是否已添加学生
+//        LambdaQueryWrapper<SmartEnrollmentUser> wrappers=new LambdaQueryWrapper<>();
+//        wrappers.eq(SmartEnrollmentUser::getName,dto.getName())
+//                        .eq(getg)
+//        smartEnrollmentUserService.getOne(wrappers);
+
+        smartEnrollmentUser.setStatus("0");
+        smartEnrollmentUser.setIsCancel(0);
+        smartEnrollmentUser.setIdentityId(2);
+        smartEnrollmentUser.setTimeGroupId(8);
+//        获取学号
+        String[] s = schoolClassName.split("级");
+        if (s.length < 2) {
+            return CommonResult.fail("获取学号异常");
+        }
+        String s1 = s[1];
+        if (ObjectUtils.isEmpty(s1)) {
+            return CommonResult.fail("获取学号异常");
+        }
+        String[] s2 = s1.split("班");
+        String s3 = s2[0];
+        if (ObjectUtils.isEmpty(s3)) {
+            return CommonResult.fail("获取学号异常");
+        }
+        LambdaQueryWrapper<SmartEnrollmentUser> wrapperCount = new LambdaQueryWrapper<>();
+        wrapperCount.eq(SmartEnrollmentUser::getIdentityId, 2)
+                .eq(SmartEnrollmentUser::getGrade, smartGrade.getId())
+                .eq(SmartEnrollmentUser::getSchoolClass, smartClass.getId());
+        int count = smartEnrollmentUserService.count(wrapperCount);
+        String cardNo = cardNo(s3, count + 1);
+
+        smartEnrollmentUser.setCardNo(cardNo);
+
+        smartEnrollmentUserService.save(smartEnrollmentUser);
+
+        List<SmartEnrollmentUser> list = dto.getList();
+        for (SmartEnrollmentUser enrollmentUser : list) {
+//            判断该父母是否已存在
+            String phone = enrollmentUser.getPhone();
+            LambdaQueryWrapper<SmartEnrollmentUser> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(SmartEnrollmentUser::getPhone, phone);
+            SmartEnrollmentUser user = smartEnrollmentUserService.getOne(wrapper);
+
+
+            if (ObjectUtils.isEmpty(user)) {
+                enrollmentUser.setSexId(1);
+                enrollmentUser.setAffiliate(smartEnrollmentUser.getId() + "");
+                enrollmentUser.setStatus("0");
+                enrollmentUser.setIsCancel(0);
+
+                enrollmentUser.setIdentityId(1);
+                smartEnrollmentUserService.save(enrollmentUser);
+            } else {
+                String affiliate = user.getAffiliate();
+                user.setAffiliate(affiliate + "," + smartEnrollmentUser.getId() + "");
+                smartEnrollmentUserService.save(user);
+            }
+
+        }
+
+
+        return CommonResult.ok();
+    }
+
+    @Override
+    @PassToken
+    @DESRespondSecret(validated = false)
+    public CommonResult list(Integer currentPage, Integer pageCount, String status, String grade, Integer schoolClass, String keyWord) {
+
+        PageUtils<SmartEnrollmentUserVo> result = smartEnrollmentUserService.listPage(currentPage, pageCount, status, grade, schoolClass, keyWord);
+
+        return CommonResult.ok(result);
+    }
+
+    @Override
+    @PassToken
+    @DESRespondSecret(validated = false)
+    public CommonResult examine(SmartEnrollmentUserExamineDto dto) throws Exception {
+        Integer id = dto.getId();
+        String status = dto.getStatus();
+        String remark = dto.getRemark();
+
+        SmartEnrollmentUser smartEnrollmentUser2 = smartEnrollmentUserService.getById(id);
+
+        if (ObjectUtils.isEmpty(smartEnrollmentUser2)) {
+            return CommonResult.fail("学生信息不存在");
+        }
+
+        smartEnrollmentUser2.setStatus(status);
+        smartEnrollmentUser2.setRemark(remark);
+
+//        smartEnrollmentUserService.updateById(smartEnrollmentUser2);
+
+//        获取
+//        家长信息
+        Integer userId = smartEnrollmentUser2.getId();
+
+        List<SmartEnrollmentUser> list = smartEnrollmentUserService.getJiaZhang(userId);
+
+        ArrayList<SmartEnrollmentUser> smartEnrollmentUsers = new ArrayList<>();
+        smartEnrollmentUsers.add(smartEnrollmentUser2);
+        smartEnrollmentUsers.addAll(list);
+
+
+        SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
+
+        //同意
+        if ("1".equals(status)) {
+            for (SmartEnrollmentUser smartEnrollmentUser : smartEnrollmentUsers) {
+
+//            需要同步到学生表,然后同步到希沃,百胜门禁
+                int useBs = 1;
+                int useXw = 1;
+                SmartGrade gradeData = null;
+                SmartClass classData = null;
+                if (org.springframework.util.StringUtils.hasText(smartEnrollmentUser.getCardNo())) {
+                    //重复性判断
+                    int existCount = smartUserService.querySmartUserByCardNo(smartEnrollmentUser.getCardNo());
+                    if (existCount > 0) {
+                        return CommonResult.fail("当前学号已存在,请勿重复添加");
+                    }
+                }
+
+                SmartUser su = new SmartUser();
+                su.setTimeGroupId(smartEnrollmentUser.getTimeGroupId());
+                su.setCardNo(smartEnrollmentUser.getCardNo());
+                su.setName(smartEnrollmentUser.getName());
+                su.setIdentityId(smartEnrollmentUser.getIdentityId());
+                su.setIdCard(smartEnrollmentUser.getIdCard());
+                su.setSexId(smartEnrollmentUser.getSexId());
+                su.setDepartmentId(smartEnrollmentUser.getDepartmentId());
+                su.setHeadImage(smartEnrollmentUser.getHeadImage());
+                su.setGrade(smartEnrollmentUser.getGrade());
+                su.setSchoolClass(smartEnrollmentUser.getSchoolClass());
+                su.setPhone(smartEnrollmentUser.getPhone());
+                su.setAffiliate(smartEnrollmentUser.getAffiliate());
+                su.setIsCancel(eLogOff.Unlogout.getValue());
+
+                //region 人员信息加入到第三方api
+                //要将用户数据加入到希沃和百胜中
+                //希沃和百胜的老师、学生数据添加是不一样的,所以按身份添加
+                if (smartEnrollmentUser.getIdentityId().intValue() == eIdentityStatu.Parent.getValue()) {//家长
+
+                    //region 家长参数必填判断:手机号
+                    if (smartEnrollmentUser.getPhone() == null) {
+                        return CommonResult.fail("家长手机号不能为空");
+                    }
+                    //endregion
+
+                    //查找家长身份是否存在用了该手机号的用户
+//                    int existCount = smartUserService.queryParentByCount(smartEnrollmentUser.getPhone());
+//                    if (existCount > 0) {
+//                        return CommonResult.fail("当前手机号已被其他家长使用");
+//                    }
+
+                    //拿到被关联学生的信息去获取对应的卡号
+                    //有多个学生就循环学生
+
+                    if (smartEnrollmentUser.getAffiliate() == null) {
+                        return CommonResult.fail("被关联人不能为空");
+                    }
+                    String affiliate = smartEnrollmentUser.getAffiliate();
+                    String[] split = affiliate.split(",");
+                    ArrayList<String> affiliateList = new ArrayList<>();
+                    affiliateList.addAll(Arrays.asList(split));
+                    if (affiliateList.size() <= 0) {
+                        return CommonResult.fail("被关联人不能为空");
+                    }
+
+                    List<SmartUser> studentDatas = smartUserService.getSmartUserIds(affiliateList);
+
+                    //region 希沃新增编辑学生家长信息
+                    if (useXw == 1) {
+                        CommonResult insertOrUpdateStudent = smartUserController.insertOrUpdateStudentParent(seewoClient, studentDatas, "其他", smartEnrollmentUser.getPhone(), true);
+                        if (!insertOrUpdateStudent.isSuccess()) {
+                            return CommonResult.fail("希沃平台:" + insertOrUpdateStudent.getMessage());
+                        }
+                    }
+                    //endregion
+
+                } else if (smartEnrollmentUser.getIdentityId().intValue() == eIdentityStatu.Student.getValue()) {//学生
+
+                    //region 学生参数必填判断:年级、班级
+                    if (smartEnrollmentUser.getGrade() == null) {
+                        return CommonResult.fail("学生年级不能为空");
+                    }
+
+                    if (smartEnrollmentUser.getSchoolClass() == null) {
+                        return CommonResult.fail("学生班级不能为空");
+                    }
+                    //endregion
+
+                    //获取班级Uid
+                    classData = smartClassService.getSmartClassById(smartEnrollmentUser.getSchoolClass());
+                    if (classData == null) {
+                        return CommonResult.fail("班级数据无效,新增失败");
+                    }
+
+                    gradeData = smartGradeService.querySmartGradeById(su.getGrade() == null || su.getGrade() == "" ? null : Integer.valueOf(smartEnrollmentUser.getGrade()));
+                    if (gradeData == null) {
+                        return CommonResult.fail("年级数据无效,新增失败");
+                    }
+
+                    //region 希沃新增学生信息
+                    if (useXw == 1) {
+                        CommonResult<String> insertStudent = smartUserController.SeewoInsertStudent(seewoClient, smartEnrollmentUser.getName(), smartEnrollmentUser.getCardNo(), smartEnrollmentUser.getSexId(), smartEnrollmentUser.getPhone(), classData.getClassUid());
+                        if (!insertStudent.isSuccess()) {
+                            return CommonResult.fail("希沃平台:" + insertStudent.getMessage());
+                        }
+
+                        su.setXwStudentUid(insertStudent.getData());
+
+                        //上传图片
+                        List<PhotoServiceSavePhotosParam.ThirdSavePhotoQuery> photoList = new ArrayList<>();
+                        PhotoServiceSavePhotosParam.ThirdSavePhotoQuery photo = new PhotoServiceSavePhotosParam.ThirdSavePhotoQuery();
+                        photo.setPhotoUrl(su.getHeadImage());
+                        photo.setUserCode(su.getCardNo());
+                        photoList.add(photo);
+                        CommonResult result = smartUserController.SeewoInsertBatchPhoto(seewoClient, photoList, eSeewoUserType.Student.getValue());
+                        if (!result.isSuccess()) {
+                            return result;
+                        }
+                    }
+                    //endregion
+
+                    //region 百胜新增学生信息
+                    if (useBs == 1) {
+                        /**
+                         * 学生数据的有效期是到毕业年份的8月31日
+                         */
+                        String startTime = TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
+                        String endTime = smartUserController.queryGraduationYear(gradeData.getGradeNo());
+                        CommonResult<String> insertBsStudent = smartUserController.bsInsertStudent(smartEnrollmentUser.getName(), smartEnrollmentUser.getCardNo(), smartEnrollmentUser.getSexId(), smartEnrollmentUser.getHeadImage(), smartEnrollmentUser.getTimeGroupId(), classData.getBsClassNo(), startTime, endTime, smartEnrollmentUser.getIdCard());
+                        if (!insertBsStudent.isSuccess()) {
+                            return CommonResult.fail("百胜平台:" + insertBsStudent.getMessage());
+                        }
+                        su.setBsStudentNo(insertBsStudent.getData());
+                    }
+                }
+
+
+                //最后都要把数据加入到数据库中
+                if (org.springframework.util.StringUtils.hasText(smartEnrollmentUser.getPhone())) {
+                    //多身份
+                    List<SmartUser> users = smartUserService.getPhoneUsers(smartEnrollmentUser.getPhone());
+                    if (users != null && users.size() > 0) {
+                        Optional<SmartUser> ownerUser = users.stream().filter(e -> org.springframework.util.StringUtils.hasText(e.getXOpenId())).findFirst();
+                        if (ownerUser != null && ownerUser.isPresent()) {
+                            su.setXOpenId(ownerUser.get().getXOpenId());
+                        }
+                    }
+                }
+
+                int result = smartUserService.insertSmartUser(su);
+
+                if (result > 0) {
+                    //        将添加的用户同步到海康平台
+                    Integer identityId = su.getIdentityId();
+                    if (2 == identityId || identityId == 3) {
+                        Integer id2 = su.getId();
+                        SmartOperationUser smartOperationUser = new SmartOperationUser();
+                        smartOperationUser.setOperationId(id2);
+                        smartOperationUser.setOperationMode("1");
+                        smartOperationUser.setStatus(1);
+                        smartOperationUser.setType(identityId);
+                        smartOperationUserService.save(smartOperationUser);
+                    }
+                }
+            }
+
+        }else {//拒绝
+//          需要修改家长信息
+            for (int i = 0; i < list.size(); i++) {
+                SmartEnrollmentUser smartEnrollmentUser = list.get(i);
+                String affiliate = smartEnrollmentUser.getAffiliate();
+                String[] split = affiliate.split(",");
+                ArrayList<String> affiliateList = new ArrayList<>(Arrays.asList(split));
+                affiliateList.remove(String.valueOf(userId));
+                String aff="";
+                for (int j = 0; j < affiliateList.size(); j++) {
+                    String s = affiliateList.get(j);
+                    if (j==0) {
+                        aff=s;
+                    }else {
+                        aff=aff+","+s;
+                    }
+                }
+                if (ObjectUtils.isEmpty(aff)) {
+//                    则需要删除
+                    smartEnrollmentUserService.removeById(smartEnrollmentUser.getId());
+
+                }else {
+//                    需要修改关系人
+                    smartEnrollmentUser.setAffiliate(aff);
+                    smartEnrollmentUserService.updateById(smartEnrollmentUser);
+                }
+
+
+            }
+
+        }
+        smartEnrollmentUserService.updateById(smartEnrollmentUser2);
+
+        return CommonResult.ok();
+    }
+
+    public static String cardNo(String grade, Integer count) {
+        Calendar calendar = Calendar.getInstance();
+        // 获取当前年
+        int year = calendar.get(Calendar.YEAR);
+        if (grade.length() < 2) {
+            Integer i = 2 - grade.length();
+            for (int j = 0; j < i; j++) {
+                grade = "0" + grade;
+            }
+        }
+
+        String card = year + "" + grade;
+        String s = "";
+        if (count < 10) {
+            s = "0" + count + "";
+        } else {
+            s = count + "";
+        }
+        String cardNo = card + s;
+        return cardNo;
+    }
+
+
+
+}
+

+ 21 - 0
src/main/java/com/template/controller/SmartLateSettingController.java

@@ -0,0 +1,21 @@
+package com.template.controller;
+
+
+import com.template.api.SmartLateSettingControllerAPI;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+@RestController
+public class SmartLateSettingController implements SmartLateSettingControllerAPI {
+
+}
+

+ 21 - 0
src/main/java/com/template/controller/SmartLateTimeController.java

@@ -0,0 +1,21 @@
+package com.template.controller;
+
+
+import com.template.api.SmartLateTimeControllerAPI;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+@RestController
+public class SmartLateTimeController implements SmartLateTimeControllerAPI {
+
+}
+

+ 44 - 0
src/main/java/com/template/controller/SmartSchoolSettingController.java

@@ -0,0 +1,44 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.template.api.SmartSchoolSettingControllerAPI;
+import com.template.model.pojo.SmartSchoolSetting;
+import com.template.model.result.CommonResult;
+import com.template.services.SmartSchoolSettingService;
+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-02-18
+ */
+@RestController
+public class SmartSchoolSettingController implements SmartSchoolSettingControllerAPI {
+
+    @Autowired
+    SmartSchoolSettingService smartSchoolSettingService;
+
+    @Override
+    public CommonResult getList() {
+
+        SmartSchoolSetting smartSchoolSetting = smartSchoolSettingService.list(new QueryWrapper<>()).get(0);
+
+        return CommonResult.ok(smartSchoolSetting);
+    }
+
+    @Override
+    public CommonResult saveOrUpdate(SmartSchoolSetting smartSchoolSetting) {
+
+        smartSchoolSettingService.saveOrUpdate(smartSchoolSetting);
+
+        return CommonResult.ok();
+    }
+}
+

+ 67 - 0
src/main/java/com/template/controller/WechatScanLoginController.java

@@ -51,6 +51,7 @@ import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.text.ParseException;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -373,6 +374,13 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
     @DESRespondSecret(validated = true)
     public CommonResult getElcTj() {
         DAll list = wechatScanLoginService.getElcTj();
+        Double num = list.getNum();
+        if (ObjectUtils.isNotEmpty(num)) {
+            BigDecimal bigDecimal = new BigDecimal(num);
+            BigDecimal subtract = bigDecimal.multiply(new BigDecimal(80));
+            Double el=subtract.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+            list.setNum(el);
+        }
         return CommonResult.ok(list);
     }
 
@@ -395,6 +403,21 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
     @DESRespondSecret(validated = true)
     public CommonResult getMonElc() throws ParseException {
         List<MonthMeterDetail> list = wechatScanLoginService.getMonElc();
+        for (int i = 0; i < list.size(); i++) {
+//          需要将电量乘以80倍
+            MonthMeterDetail monthMeterDetail = list.get(i);
+            List<Tj> lt = monthMeterDetail.getLt();
+            for (int i1 = 0; i1 < lt.size(); i1++) {
+                Tj tj = lt.get(i1);
+                Double num = tj.getNum();
+                BigDecimal bigDecimal = new BigDecimal(num);
+                if (ObjectUtils.isNotEmpty(num)) {
+                    BigDecimal multiply = bigDecimal.multiply(new BigDecimal(80)).setScale(2,BigDecimal.ROUND_HALF_UP);
+                    num=multiply.doubleValue();
+                }
+                tj.setNum(num);
+            }
+        }
         return CommonResult.ok(list);
     }
 
@@ -947,4 +970,48 @@ public class WechatScanLoginController implements WechatScanLoginControllerAPI {
         return CommonResult.fail("校验失败");
     }
 
+    @Override
+    @PassToken
+    @DESRespondSecret(validated = false)
+    public CommonResult statistics() {
+        LocalDateTime end = LocalDateTime.now();
+
+//        近24小时能耗统计
+        LocalDateTime startDay = end.minusHours(24);
+//        电
+        BigDecimal elcDay=wechatScanLoginService.statisticsElc(startDay,end);
+//        水
+        BigDecimal waterDay=wechatScanLoginService.statisticsWater(startDay,end);
+
+//        近30天能耗统计
+        LocalDateTime startMonth = end.minusDays(30);
+        BigDecimal elcMonth=wechatScanLoginService.statisticsElc(startMonth,end);
+        BigDecimal waterMonth=wechatScanLoginService.statisticsWater(startMonth,end);
+
+//        近1年能耗统计
+        LocalDateTime startYear = end.minusYears(1);
+        BigDecimal elcYear=wechatScanLoginService.statisticsElc(startYear,end);
+        BigDecimal waterYear=wechatScanLoginService.statisticsWater(startYear,end);
+
+        MeterStatisticsVo meterStatisticsVo = new MeterStatisticsVo();
+        meterStatisticsVo.setElcDay(elcDay);
+        meterStatisticsVo.setWaterDay(waterDay);
+        meterStatisticsVo.setElcMonth(elcMonth);
+        meterStatisticsVo.setWaterMonth(waterMonth);
+        meterStatisticsVo.setElcYear(elcYear);
+        meterStatisticsVo.setWaterYear(waterYear);
+
+        return CommonResult.ok(meterStatisticsVo);
+    }
+
+    @Override
+    @PassToken
+    public CommonResult getAppMeterMonthPage(int currentPage, int pageCount, String date) {
+        PageHelper.startPage(currentPage, pageCount);
+        MeterMonthData meterMonthData = new MeterMonthData();
+        meterMonthData.setDate(date);
+        PageInfo<MeterMonthData> list = wechatScanLoginService.getMeterMonthPage(meterMonthData);
+        return CommonResult.ok(list);
+    }
+
 }

+ 30 - 0
src/main/java/com/template/mapper/SmartEnrollmentUserMapper.java

@@ -0,0 +1,30 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.model.pojo.SmartEnrollmentUser;
+import com.template.model.vo.SmartEnrollmentAffiliateVo;
+import com.template.model.vo.SmartEnrollmentUserVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-12-04
+ */
+@Mapper
+public interface SmartEnrollmentUserMapper extends BaseMapper<SmartEnrollmentUser> {
+
+    IPage<SmartEnrollmentUserVo> listPage(Page<SmartEnrollmentUserVo> page, @Param("status") String status,@Param("grade")  String grade,@Param("schoolClass")  Integer schoolClass,@Param("keyWord")  String keyWord);
+
+    List<SmartEnrollmentAffiliateVo> getAffiliate(@Param("id") Integer id);
+
+    List<SmartEnrollmentUser> getJiaZhang(@Param("userId") Integer userId);
+}

+ 16 - 0
src/main/java/com/template/mapper/SmartLateSettingMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.template.model.pojo.SmartLateSetting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+public interface SmartLateSettingMapper extends BaseMapper<SmartLateSetting> {
+
+}

+ 16 - 0
src/main/java/com/template/mapper/SmartLateTimeMapper.java

@@ -0,0 +1,16 @@
+package com.template.mapper;
+
+import com.template.model.pojo.SmartLateTime;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+public interface SmartLateTimeMapper extends BaseMapper<SmartLateTime> {
+
+}

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

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

+ 5 - 0
src/main/java/com/template/mapper/WechatScanLoginMapper.java

@@ -7,6 +7,8 @@ import com.template.model.tongji.*;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Repository
@@ -69,4 +71,7 @@ public interface WechatScanLoginMapper extends BaseMapper<SmartUser> {
     // 实时抄表
     List<MeterMonthDataVo> getMeterDayPage(@Param("meterMonthData") MeterMonthData meterMonthData);
 
+    BigDecimal statisticsElc(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
+
+    BigDecimal statisticsWater(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
 }

+ 33 - 0
src/main/java/com/template/model/dto/SmartEnrollmentUserSaveDto.java

@@ -0,0 +1,33 @@
+package com.template.model.dto;
+
+import com.template.model.pojo.SmartEnrollmentUser;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SmartEnrollmentUserSaveDto {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "性别  女:2   男:1")
+    private Integer sexId;
+
+    @ApiModelProperty(value = "人脸照片")
+    private String headImage;
+
+    @ApiModelProperty(value = "部门ID")
+    private Integer departmentId;
+
+    @ApiModelProperty(value = "年级名称")
+    private String gradeName;
+
+    @ApiModelProperty(value = "班级名称")
+    private String schoolClassName;
+
+    private List<SmartEnrollmentUser> list;
+}

+ 107 - 0
src/main/java/com/template/model/pojo/SmartEnrollmentUser.java

@@ -0,0 +1,107 @@
+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 2024-12-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartEnrollmentUser对象", description="")
+public class SmartEnrollmentUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "用户登记表")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "时间组ID")
+    private Integer timeGroupId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "编号(学号)")
+    private String cardNo;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "性别  女:2   男:1")
+    private Integer sexId;
+
+    @ApiModelProperty(value = "人脸照片")
+    private String headImage;
+
+    @ApiModelProperty(value = "部门ID")
+    private Integer departmentId;
+
+    @ApiModelProperty(value = "身份ID")
+    private Integer identityId;
+
+    @ApiModelProperty(value = "年级")
+    private String grade;
+
+    @ApiModelProperty(value = "班级ID")
+    private Integer schoolClass;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "关联人 被关联用户的id 多个用户用逗号隔开")
+    private String affiliate;
+
+    @ApiModelProperty(value = "家属关系")
+    private String ship;
+
+    @ApiModelProperty(value = "状态 0待审核 1已同意 2已拒绝")
+    private String status;
+
+    @ApiModelProperty(value = "是否注销  未注销:0  注销:1")
+    private Integer isCancel;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @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;
+
+
+}

+ 74 - 0
src/main/java/com/template/model/pojo/SmartLateSetting.java

@@ -0,0 +1,74 @@
+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-02-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartLateSetting对象", description="")
+public class SmartLateSetting implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "迟到设置表")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "开始时间")
+    private Date satrtTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "迟到时间组")
+    private String smartLateTimeGroup;
+
+    @ApiModelProperty(value = "设备id")
+    private Integer smartDeviceId;
+
+    @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;
+
+
+}

+ 68 - 0
src/main/java/com/template/model/pojo/SmartLateTime.java

@@ -0,0 +1,68 @@
+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-02-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartLateTime对象", description="")
+public class SmartLateTime implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "迟到时间组")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "年级")
+    private Integer gradeId;
+
+    @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;
+
+
+}

+ 65 - 0
src/main/java/com/template/model/pojo/SmartSchoolSetting.java

@@ -0,0 +1,65 @@
+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-02-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartSchoolSetting对象", description="")
+public class SmartSchoolSetting implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "学校设置表")
+    @TableId(value = "id", type = IdType.UUID)
+    private Integer id;
+
+    @ApiModelProperty(value = "升班时间")
+    private Date progressingTime;
+
+    @ApiModelProperty(value = "毕业时间")
+    private Date graduateTime;
+
+    @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;
+
+
+}

+ 3 - 0
src/main/java/com/template/model/tongji/MeterMonthDataVo.java

@@ -1,5 +1,8 @@
 package com.template.model.tongji;
 
+import lombok.Data;
+
+@Data
 public class MeterMonthDataVo {
 
     public Integer id;

+ 21 - 0
src/main/java/com/template/model/tongji/MeterStatisticsVo.java

@@ -0,0 +1,21 @@
+package com.template.model.tongji;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class MeterStatisticsVo {
+    //    近24小时消耗的电
+    private BigDecimal elcDay;
+    //    近24小时消耗的水
+    private BigDecimal WaterDay;
+    //    近30天消耗的电
+    private BigDecimal elcMonth;
+    //    近30天消耗的水
+    private BigDecimal WaterMonth;
+    //    近1年消耗的电
+    private BigDecimal elcYear;
+    //    近1年消耗的水
+    private BigDecimal WaterYear;
+}

+ 22 - 22
src/main/java/com/template/model/vo/DepartmentTreeVo.java

@@ -16,30 +16,30 @@ import java.util.List;
 @AllArgsConstructor
 @NoArgsConstructor
 public class DepartmentTreeVo {
-    /**
-     * 数据ID
-     */
-    private int id;
+        /**
+         * 数据ID
+         */
+        private int id;
 
-    /**
-     * 父级ID
-     */
-    private int parentId;
+        /**
+         * 父级ID
+         */
+        private int parentId;
 
-    /**
-     * 部门名称
-     */
-    private String name;
+        /**
+         * 部门名称
+         */
+        private String name;
 
-    /**
-     * 是否能进行管理
-     * 0:否
-     * 1:是
-     */
-    private int isManage;
+        /**
+         * 是否能进行管理
+         * 0:否
+         * 1:是
+         */
+        private int isManage;
 
-    /**
-     * 子级部门
-     */
-    private List<DepartmentTreeVo> children;
+        /**
+         * 子级部门
+         */
+        private List<DepartmentTreeVo> children;
 }

+ 14 - 0
src/main/java/com/template/model/vo/SmartEnrollmentAffiliateVo.java

@@ -0,0 +1,14 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class SmartEnrollmentAffiliateVo {
+    private String name;
+
+    private String phone;
+
+    private String ship;
+
+    private String status;
+}

+ 12 - 0
src/main/java/com/template/model/vo/SmartEnrollmentUserExamineDto.java

@@ -0,0 +1,12 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class SmartEnrollmentUserExamineDto {
+    private Integer id;
+
+    private String status;
+
+    private String remark;
+}

+ 48 - 0
src/main/java/com/template/model/vo/SmartEnrollmentUserVo.java

@@ -0,0 +1,48 @@
+package com.template.model.vo;
+
+import com.template.model.pojo.SmartEnrollmentUser;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SmartEnrollmentUserVo {
+    private Integer id;
+
+    @ApiModelProperty(value = "时间组名称")
+    private String timeGroupName;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "编号(学号)")
+    private String cardNo;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "性别  女:2   男:1")
+    private Integer sexId;
+
+    @ApiModelProperty(value = "人脸照片")
+    private String headImage;
+
+    @ApiModelProperty(value = "部门名称")
+    private String departmentName;
+
+    @ApiModelProperty(value = "身份名称")
+    private String identityName;
+
+    @ApiModelProperty(value = "年级名称")
+    private String gradeName;
+
+    @ApiModelProperty(value = "班级名称")
+    private String schoolClassName;
+
+    private Integer status;
+
+    private String remark;
+
+    private List<SmartEnrollmentAffiliateVo> list;
+}

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

@@ -0,0 +1,23 @@
+package com.template.services;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.pojo.SmartEnrollmentUser;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.SmartEnrollmentUserVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-12-04
+ */
+public interface SmartEnrollmentUserService extends IService<SmartEnrollmentUser> {
+
+    PageUtils<SmartEnrollmentUserVo> listPage(Integer currentPage, Integer pageCount, String status, String grade, Integer schoolClass, String keyWord);
+
+    List<SmartEnrollmentUser> getJiaZhang(Integer userId);
+}

+ 16 - 0
src/main/java/com/template/services/SmartLateSettingService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartLateSetting;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+public interface SmartLateSettingService extends IService<SmartLateSetting> {
+
+}

+ 16 - 0
src/main/java/com/template/services/SmartLateTimeService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartLateTime;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+public interface SmartLateTimeService extends IService<SmartLateTime> {
+
+}

+ 16 - 0
src/main/java/com/template/services/SmartSchoolSettingService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartSchoolSetting;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+public interface SmartSchoolSettingService extends IService<SmartSchoolSetting> {
+
+}

+ 6 - 0
src/main/java/com/template/services/WechatScanLoginService.java

@@ -8,7 +8,9 @@ import com.template.model.weixin.PhoneAccessToken;
 import com.template.model.weixin.WechatUserUnionID;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.text.ParseException;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -71,4 +73,8 @@ public interface WechatScanLoginService {
 	 PageInfo<MeterMonthDataVo> getMeterDayPage(@Param("meterMonthData")MeterMonthData meterMonthData);
 
 	PageInfo<com.template.model.pojo.MonthMeterDetail> getMeterMonthPageDatas(@Param("meterMonthData")MeterMonthData meterMonthData);
+
+	BigDecimal statisticsElc(LocalDateTime start, LocalDateTime end);
+
+	BigDecimal statisticsWater(LocalDateTime start, LocalDateTime end);
 }

+ 52 - 0
src/main/java/com/template/services/impl/SmartEnrollmentUserServiceImpl.java

@@ -0,0 +1,52 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.mapper.SmartEnrollmentUserMapper;
+import com.template.model.pojo.SmartEnrollmentUser;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.FaceManagementVo;
+import com.template.model.vo.SmartEnrollmentAffiliateVo;
+import com.template.model.vo.SmartEnrollmentUserVo;
+import com.template.services.SmartEnrollmentUserService;
+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 2024-12-04
+ */
+@Service
+public class SmartEnrollmentUserServiceImpl extends ServiceImpl<SmartEnrollmentUserMapper, SmartEnrollmentUser> implements SmartEnrollmentUserService {
+
+    @Autowired
+    SmartEnrollmentUserMapper smartEnrollmentUserMapper;
+
+    @Override
+    public PageUtils<SmartEnrollmentUserVo> listPage(Integer currentPage, Integer pageCount, String status, String grade, Integer schoolClass, String keyWord) {
+        Page<SmartEnrollmentUserVo> page = new Page<>(currentPage,pageCount);
+        IPage<SmartEnrollmentUserVo> datas = smartEnrollmentUserMapper.listPage(page,status,grade,schoolClass,keyWord);
+        List<SmartEnrollmentUserVo> records = datas.getRecords();
+
+        for (int i = 0; i < records.size(); i++) {
+            SmartEnrollmentUserVo vo = records.get(i);
+            Integer id = vo.getId();
+            List<SmartEnrollmentAffiliateVo> vos=smartEnrollmentUserMapper.getAffiliate(id);
+            vo.setList(vos);
+        }
+
+        return new PageUtils(datas);
+    }
+
+    @Override
+    public List<SmartEnrollmentUser> getJiaZhang(Integer userId) {
+        return smartEnrollmentUserMapper.getJiaZhang(userId);
+    }
+}

+ 20 - 0
src/main/java/com/template/services/impl/SmartLateSettingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.SmartLateSetting;
+import com.template.mapper.SmartLateSettingMapper;
+import com.template.services.SmartLateSettingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+@Service
+public class SmartLateSettingServiceImpl extends ServiceImpl<SmartLateSettingMapper, SmartLateSetting> implements SmartLateSettingService {
+
+}

+ 20 - 0
src/main/java/com/template/services/impl/SmartLateTimeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.SmartLateTime;
+import com.template.mapper.SmartLateTimeMapper;
+import com.template.services.SmartLateTimeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+@Service
+public class SmartLateTimeServiceImpl extends ServiceImpl<SmartLateTimeMapper, SmartLateTime> implements SmartLateTimeService {
+
+}

+ 20 - 0
src/main/java/com/template/services/impl/SmartSchoolSettingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.SmartSchoolSetting;
+import com.template.mapper.SmartSchoolSettingMapper;
+import com.template.services.SmartSchoolSettingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-02-18
+ */
+@Service
+public class SmartSchoolSettingServiceImpl extends ServiceImpl<SmartSchoolSettingMapper, SmartSchoolSetting> implements SmartSchoolSettingService {
+
+}

+ 37 - 0
src/main/java/com/template/services/impl/WechatScanLoginServiceImpl.java

@@ -2,6 +2,7 @@ package com.template.services.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.github.pagehelper.PageInfo;
 import com.template.common.constanst.Constanst;
 import com.template.common.utils.*;
@@ -23,6 +24,7 @@ import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.text.ParseException;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -281,6 +283,7 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
             if (e == null) {
                 elcl.get(j).setType(1);
                 elcl.get(j).setDate(day);
+
                 wechatScanLoginMapper.insertDayMeter(elcl.get(j));
             } else {
                 elcl.get(j).setId(e.getId());
@@ -362,6 +365,18 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
     @Override
     public PageInfo<MeterMonthData> getMeterMonthPage(@Param("meterMonthData") MeterMonthData meterMonthData) {
         List<MeterMonthData> list = wechatScanLoginMapper.getMeterMonthPage(meterMonthData);
+//        电费需要乘以80倍
+        for (int i = 0; i < list.size(); i++) {
+            MeterMonthData meterMonthData1 = list.get(i);
+            Double aDouble = meterMonthData1.geteNum();
+            if (ObjectUtils.isNotEmpty(aDouble)) {
+                BigDecimal bigDecimal = new BigDecimal(aDouble);
+                BigDecimal subtract = bigDecimal.multiply(new BigDecimal(80));
+                Double el=subtract.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+                meterMonthData1.seteNum(el);
+            }
+        }
+
         PageInfo<MeterMonthData> meterPageInfo = new PageInfo<>(list);
         return meterPageInfo;
     }
@@ -370,6 +385,16 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
     @Override
     public PageInfo<MeterMonthDataVo> getMeterDayPage(@Param("meterMonthData") MeterMonthData meterMonthData) {
         List<MeterMonthDataVo> list = wechatScanLoginMapper.getMeterDayPage(meterMonthData);
+        for (int i = 0; i < list.size(); i++) {
+            MeterMonthDataVo meterMonthDataVo = list.get(i);
+            Double meterPowerRecord = meterMonthDataVo.getMeterPowerRecord();
+            if (ObjectUtils.isNotEmpty(meterPowerRecord)) {
+                BigDecimal bigDecimal = new BigDecimal(meterPowerRecord);
+                BigDecimal subtract = bigDecimal.multiply(new BigDecimal(80));
+                Double el=subtract.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+                meterMonthDataVo.setMeterPowerRecord(el);
+            }
+        }
         PageInfo<MeterMonthDataVo> meterPageInfo = new PageInfo<>(list);
         return meterPageInfo;
     }
@@ -380,4 +405,16 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
         PageInfo<com.template.model.pojo.MonthMeterDetail> meterPageInfo = new PageInfo<>(list);
         return meterPageInfo;
     }
+
+    @Override
+    public BigDecimal statisticsElc(LocalDateTime start, LocalDateTime end) {
+        BigDecimal elc=wechatScanLoginMapper.statisticsElc(start,end);
+        elc=elc.multiply(new BigDecimal(80));
+        return elc;
+    }
+
+    @Override
+    public BigDecimal statisticsWater(LocalDateTime start, LocalDateTime end) {
+        return wechatScanLoginMapper.statisticsWater(start,end);
+    }
 }

+ 22 - 0
src/main/resources/mapper/template/WechatScanLoginMapper.xml

@@ -281,4 +281,26 @@
         </if>
         order by smd.create_time desc
     </select>
+    <select id="statisticsElc" resultType="java.math.BigDecimal">
+        SELECT
+            ifnull( sum( meter_power ), 0 )
+        FROM
+            `smart_meter_detail`
+        WHERE
+            meter_type = 1
+          AND deleted =0
+          AND create_time >= #{start}
+          AND #{end} >= create_time
+    </select>
+    <select id="statisticsWater" resultType="java.math.BigDecimal">
+        SELECT
+            ifnull( sum( meter_power ), 0 )
+        FROM
+            `smart_meter_detail`
+        WHERE
+            meter_type = 0
+          AND deleted =0
+          AND create_time >= #{start}
+          AND #{end} >= create_time
+    </select>
 </mapper>