Преглед на файлове

百胜希沃逻辑修改

溪鸭夏 преди 2 години
родител
ревизия
54b86cbe6b

Файловите разлики са ограничени, защото са твърде много
+ 320 - 302
.idea/workspace.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_time_group"); // 设置要映射的表名"smart_class","smart_grade","smart_attendance"
+        strategy.setInclude("smart_family_index"); // 设置要映射的表名"smart_class","smart_grade","smart_attendance"
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 16 - 1
src/main/java/com/template/api/SmartUserControllerAPI.java

@@ -59,6 +59,16 @@ public interface SmartUserControllerAPI {
     CommonResult importExcelUsers(@RequestParam("file") MultipartFile excelFile, @RequestParam String headImage) throws Exception;
 
     /**
+     * 批量导入学生家长信息
+     *
+     * @param excelFile excel文件
+     * @return
+     */
+    @PostMapping(value = "importExcelFamilys")
+    @ApiOperation(value = "批量导入学生家长信息", notes = "批量导入学生家长信息", httpMethod = "POST")
+    CommonResult importExcelFamilys(@RequestParam("file") MultipartFile excelFile) throws Exception;
+
+    /**
      * 批量更新学生信息
      *
      * @param excelFile excel文件
@@ -95,6 +105,11 @@ public interface SmartUserControllerAPI {
     @ApiOperation(value = "用户分页数据", notes = "用户分页数据", httpMethod = "GET")
     CommonResult queryPageSmartUser(@RequestParam int currentPage, @RequestParam int pageCount, Integer departmentId, String name, @RequestHeader("user_head") String userhead);
 
+
+    @GetMapping(value = "/testDeleteUserById")
+    @ApiOperation(value = "测试删除用户", notes = "测试删除用户", httpMethod = "POST")
+    CommonResult testDeleteUserById(@RequestParam int userId) throws Exception;
+
     /**
      * 导出用户数据
      */
@@ -194,7 +209,7 @@ public interface SmartUserControllerAPI {
      */
     @GetMapping(value = "/queryClassUser")
     @ApiOperation(value = "获取班级下的学生", notes = "获取班级下的学生", httpMethod = "GET")
-    CommonResult queryClassUser(@RequestParam int userId);
+    CommonResult queryClassUser(@RequestParam int userId, String keyWord);
 
 
     /**

+ 20 - 0
src/main/java/com/template/controller/SmartFamilyIndexController.java

@@ -0,0 +1,20 @@
+package com.template.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 楼栋表 前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-04-23
+ */
+@RestController
+public class SmartFamilyIndexController {
+
+}
+

+ 271 - 43
src/main/java/com/template/controller/SmartUserController.java

@@ -38,6 +38,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -102,6 +103,9 @@ public class SmartUserController implements SmartUserControllerAPI {
     @Autowired
     private SmartAuthorityService smartAuthorityService;
 
+    @Autowired
+    private SmartFamilyIndexService smartFamilyIndexService;
+
     @Override
     @DESRespondSecret(validated = true)
     public CommonResult logoffAccount(useridsRequest ur, BindingResult bindingResult) {
@@ -243,7 +247,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                         SmartUser user = new SmartUser();
                         String name = dataFormatter.formatCellValue(row.getCell(4));
                         if (ObjectUtils.isEmpty(name)) {
-                            return CommonResult.fail("第" + (rowNum + 2) + "条数据的姓名不能为空");
+                            return CommonResult.fail("第" + (rowNum + 1) + "条数据的姓名不能为空");
                         }
 
                         String schoolGrade = dataFormatter.formatCellValue(row.getCell(0));//年级
@@ -474,6 +478,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                 return CommonResult.fail("导入失败");
             }
 
+            List<SmartFamilyIndex> familyIndexs = new ArrayList<>();
             //region 希沃新增编辑学生家长信息
             if (useXw == 1) {
                 int num = (int) Math.ceil((double) studentDatas.size() / 100);
@@ -497,6 +502,11 @@ public class SmartUserController implements SmartUserControllerAPI {
                         List<ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem> parents = new ArrayList<>();
                         int i = 0;
                         for (SmartUser parent : parentDatas) {
+                            SmartFamilyIndex familyIndex = new SmartFamilyIndex();
+                            familyIndex.setParentPhone(parent.getPhone());
+                            familyIndex.setStudentNo(student.getCardNo());
+                            familyIndex.setIndexData(i);
+                            familyIndexs.add(familyIndex);
                             ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem data = ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem.builder()
                                     .name(parent.getName())
                                     .phone(parent.getPhone())
@@ -549,6 +559,12 @@ public class SmartUserController implements SmartUserControllerAPI {
 
             }
             //endregion
+            if (familyIndexs != null && familyIndexs.size() > 0) {
+                boolean insertBatch = smartFamilyIndexService.saveBatch(familyIndexs);
+                if (!insertBatch) {
+                    return CommonResult.fail("导入失败!");
+                }
+            }
         }
         //endregion
 
@@ -614,6 +630,87 @@ public class SmartUserController implements SmartUserControllerAPI {
         return CommonResult.ok("导入成功");
     }
 
+    @Override
+    public CommonResult importExcelFamilys(MultipartFile excelFile) throws Exception {
+        //先解析excel如果excel不满足格式就提示错误信息 避免提前占用带宽上传头像
+        if (excelFile.isEmpty() || excelFile.getSize() == 0) {
+            return CommonResult.fail("压缩包中的excel文件不能为空");
+        }
+
+        String ContentType = excelFile.getContentType();
+        InputStream inputStream = excelFile.getInputStream();
+        List<SmartFamilyIndex> result = new ArrayList<>();
+        CommonResult<List<SmartFamilyIndex>> resultData = readFamilyXlsx(inputStream);
+        if (!resultData.isSuccess()) {
+            return resultData;
+        }
+        result = resultData.getData();
+
+        boolean insertBatch = smartFamilyIndexService.saveBatch(result);
+
+        return insertBatch ? CommonResult.ok("操作成功") : CommonResult.fail("操作失败");
+    }
+
+    /**
+     * Xlsx文件读取方法
+     *
+     * @param inputStream 文件流
+     * @return
+     * @throws IOException
+     */
+    private CommonResult<List<SmartFamilyIndex>> readFamilyXlsx(InputStream inputStream) throws IOException {
+        List<SmartFamilyIndex> result = new ArrayList<>();
+        XSSFWorkbook sheets = new XSSFWorkbook(inputStream);
+
+        //读取第一张sheet
+        XSSFSheet sheetAt = sheets.getSheetAt(0);
+
+        DataFormatter dataFormatter = new DataFormatter();
+        try {
+            for (int rowNum = 1; rowNum < sheetAt.getLastRowNum() + 1; rowNum++) {
+                XSSFRow row = sheetAt.getRow(rowNum);
+
+                if (row != null) {
+                    //使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。
+                    //所以先使用setCellType()方法先将该单元格的类型设置为STRING
+                    //然后poi会根据字符串读取它
+                    //标题 校验
+                    if (rowNum < 3) {
+                        //不做校验处理了
+                    } else {
+                        String cardNo = dataFormatter.formatCellValue(row.getCell(4));//学号
+                        if (ObjectUtils.isEmpty(cardNo)) {
+                            continue;
+                        }
+
+                        String phone1 = dataFormatter.formatCellValue(row.getCell(10));//手机号1
+                        if (!ObjectUtils.isEmpty(phone1)) {
+                            SmartFamilyIndex index = new SmartFamilyIndex();
+                            index.setStudentNo(cardNo);
+                            index.setParentPhone(phone1);
+                            index.setIndexData(0);
+                            result.add(index);
+                        }
+
+                        String phone2 = dataFormatter.formatCellValue(row.getCell(12));//手机号1
+                        if (!ObjectUtils.isEmpty(phone1)) {
+                            SmartFamilyIndex index = new SmartFamilyIndex();
+                            index.setStudentNo(cardNo);
+                            index.setParentPhone(phone1);
+                            index.setIndexData(1);
+                            result.add(index);
+                        }
+
+                    }
+                }
+            }
+        } catch (Exception e) {
+            return CommonResult.fail("请按模板格式导入数据");
+        }
+
+        return CommonResult.ok(result);
+    }
+    //endregion
 
     //region 批量更新用户
 
@@ -1171,8 +1268,11 @@ public class SmartUserController implements SmartUserControllerAPI {
                     } else {
                         SmartUser user = new SmartUser();
                         String name = dataFormatter.formatCellValue(row.getCell(3));
+//                        if (ObjectUtils.isEmpty(name)) {
+//                            return CommonResult.fail("第" + (rowNum + 1) + "条数据的名称不能为空");
+//                        }
                         if (ObjectUtils.isEmpty(name)) {
-                            return CommonResult.fail("第" + (rowNum + 2) + "条数据的名称不能为空");
+                            continue;
                         }
 
                         String schoolGrade = dataFormatter.formatCellValue(row.getCell(0));//年级
@@ -1454,8 +1554,11 @@ public class SmartUserController implements SmartUserControllerAPI {
                     } else {
                         SmartUser user = new SmartUser();
                         String name = dataFormatter.formatCellValue(row.getCell(3));
+//                        if (ObjectUtils.isEmpty(name)) {
+//                            return CommonResult.fail("第" + (rowNum + 1) + "条数据的名称不能为空");
+//                        }
                         if (ObjectUtils.isEmpty(name)) {
-                            return CommonResult.fail("第" + (rowNum + 2) + "条数据的名称不能为空");
+                            continue;
                         }
 
                         String schoolGrade = dataFormatter.formatCellValue(row.getCell(0));//年级
@@ -1822,7 +1925,7 @@ public class SmartUserController implements SmartUserControllerAPI {
 
             //region 希沃新增编辑学生家长信息
             if (useXw == 1) {
-                CommonResult insertOrUpdateStudent = insertOrUpdateStudentParent(seewoClient, studentDatas, isur.getName(), isur.getPhone());
+                CommonResult insertOrUpdateStudent = insertOrUpdateStudentParent(seewoClient, studentDatas, isur.getName(), isur.getPhone(), true);
                 if (!insertOrUpdateStudent.isSuccess()) {
                     return CommonResult.fail(insertOrUpdateStudent.getMessage());
                 }
@@ -2067,7 +2170,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                 //region 希沃新增编辑学生家长信息
                 if (useXw == 1) {
                     //学生与家长列表,最大100条
-                    CommonResult insertOrUpdateResult = insertOrUpdateStudentParent(seewoClient, studentDatas, usur.getName(), usur.getPhone());
+                    CommonResult insertOrUpdateResult = insertOrUpdateStudentParent(seewoClient, studentDatas, usur.getName(), usur.getPhone(), false);
                     if (!insertOrUpdateResult.isSuccess()) {
                         return CommonResult.fail(insertOrUpdateResult.getMessage());
                     }
@@ -2136,7 +2239,12 @@ public class SmartUserController implements SmartUserControllerAPI {
 
                 //region 希沃新增编辑学生家长信息
                 if (useXw == 1) {
-                    CommonResult insertOrUpdate = insertOrUpdateStudentParent(seewoClient, studentDatas, su.getName(), su.getPhone());
+                    List<SmartFamilyIndex> indexs = smartFamilyIndexService.querySmartFamilyByCardNo(su.getCardNo());
+                    if (indexs != null && indexs.size() >= 4) {
+                        return CommonResult.fail("绑定失败,希沃学生家长最多绑定四个家长");
+                    }
+
+                    CommonResult insertOrUpdate = insertOrUpdateStudentParent(seewoClient, studentDatas, su.getName(), su.getPhone(), true);
                     if (!insertOrUpdate.isSuccess()) {
                         return CommonResult.fail(insertOrUpdate.getMessage());
                     }
@@ -2272,6 +2380,8 @@ public class SmartUserController implements SmartUserControllerAPI {
                         if (!deleteResult.isSuccess()) {
                             return CommonResult.fail(deleteResult.getMessage());
                         }
+
+                        smartFamilyIndexService.deleteSmartFamilyByPhone(su.getPhone());
                     }
                     //endregion
                 } else if (oldIdentity.intValue() == eIdentityStatu.Teacher.getValue()) {
@@ -2369,6 +2479,8 @@ public class SmartUserController implements SmartUserControllerAPI {
                         if (!deleteOldShip.isSuccess()) {
                             return CommonResult.fail(deleteOldShip.getMessage());
                         }
+
+                        smartFamilyIndexService.deleteSmartFamilyByPhone(su.getPhone());
                     }
                     //endregion
                 } else if (oldIdentity.intValue() == eIdentityStatu.Student.getValue()) {
@@ -2908,12 +3020,65 @@ public class SmartUserController implements SmartUserControllerAPI {
     //endregion
 
     //region 希沃新增编辑学生家长信息
-    public CommonResult insertOrUpdateStudentParent(SeewoClient
-                                                            seewoClient, List<SmartUser> studentDatas, String name, String phone) {
+    public CommonResult insertOrUpdateStudentParent(SeewoClient seewoClient, List<SmartUser> studentDatas, String name, String phone, boolean isInsert) {
+
         //region 希沃新增编辑学生家长信息
         //学生与家长列表,最大100条
         List<ParentServiceBatchSaveOrUpdateParentsParam.StudentParentsItem> studentParents = new ArrayList<>();
+        List<SmartFamilyIndex> insertIndexs = new ArrayList<>();
         for (SmartUser student : studentDatas) {
+
+            int index = 0;
+            if (isInsert) {
+                List<SmartFamilyIndex> indexs = smartFamilyIndexService.querySmartFamilyByCardNo(student.getCardNo());
+                if (indexs != null && indexs.size() >= 4) {
+                    return CommonResult.fail("绑定失败,希沃学生家长最多绑定四个家长");
+                }
+
+                if (indexs != null) {
+                    for (SmartFamilyIndex data : indexs) {
+                        if (data.getIndexData().intValue() == index && index < 3) {
+                            index++;
+                            continue;
+                        } else {
+                            break;
+                        }
+                    }
+                }
+
+                SmartFamilyIndex insertFamily = new SmartFamilyIndex();
+                insertFamily.setParentPhone(phone);
+                insertFamily.setStudentNo(student.getCardNo());
+                insertFamily.setIndexData(index);
+                insertIndexs.add(insertFamily);
+            } else {
+                SmartFamilyIndex familyIndex = smartFamilyIndexService.queryFamilyByPhoneCardNo(phone, student.getCardNo());
+                if (familyIndex == null) {
+                    List<SmartFamilyIndex> indexs = smartFamilyIndexService.querySmartFamilyByCardNo(student.getCardNo());
+                    if (indexs != null && indexs.size() >= 4) {
+                        return CommonResult.fail("绑定失败,希沃学生家长最多绑定四个家长");
+                    }
+
+                    if (indexs != null) {
+                        for (SmartFamilyIndex data : indexs) {
+                            if (data.getIndexData().intValue() == index && index < 3) {
+                                index++;
+                                continue;
+                            } else {
+                                break;
+                            }
+                        }
+                    }
+
+                    SmartFamilyIndex insertFamily = new SmartFamilyIndex();
+                    insertFamily.setParentPhone(phone);
+                    insertFamily.setStudentNo(student.getCardNo());
+                    insertFamily.setIndexData(index);
+                    insertIndexs.add(insertFamily);
+                }
+            }
+
+
             ParentServiceBatchSaveOrUpdateParentsParam.StudentParentsItem students = ParentServiceBatchSaveOrUpdateParentsParam.StudentParentsItem.builder()
                     .studentCode(student.getCardNo())
                     .build();
@@ -2923,12 +3088,17 @@ public class SmartUserController implements SmartUserControllerAPI {
             ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem parents = ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem.builder()
                     .name(name)
                     .phone(phone)
-                    .index(0)
+                    .index(index)
                     .build();
 
             students.setParents(java.util.Collections.singletonList(parents));
         }
 
+        if (insertIndexs != null && insertIndexs.size() > 0) {
+            smartFamilyIndexService.saveBatch(insertIndexs);
+        }
+
+
         //初始化客户端
         //SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
         ParentServiceBatchSaveOrUpdateParentsParam param = new ParentServiceBatchSaveOrUpdateParentsParam();
@@ -3190,6 +3360,17 @@ public class SmartUserController implements SmartUserControllerAPI {
     }
     //endregion
 
+
+    @Override
+    public CommonResult testDeleteUserById(int userId) throws Exception {
+        SmartUser user = smartUserService.getSmartById(userId);
+
+        bsDeleteStudent(user);
+
+        return CommonResult.ok();
+    }
+
+
     //region 百胜删除学生
     public CommonResult bsDeleteStudent(SmartUser su) throws Exception {
         //region 百胜删除学生
@@ -3342,9 +3523,9 @@ public class SmartUserController implements SmartUserControllerAPI {
         String bsResult = RequestUtils.httpPost(url, jsonobject.toJSONString());
 
         ObjectMapper objectMapper = new ObjectMapper();
-        BsControlVo result = objectMapper.readValue(bsResult, BsControlVo.class);
+        BsDeleteStudentVo result = objectMapper.readValue(bsResult, BsDeleteStudentVo.class);
 
-        if (!bsResult.contains("删除成功")) {
+        if (!bsResult.contains("删除员工成功")) {
             return CommonResult.fail(result.getMsg());
         }
 
@@ -3716,6 +3897,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                     return CommonResult.fail(deleteResult.getMessage());
                 }
                 //endregion
+
             } else if (user.getIdentityId().intValue() == eIdentityStatu.Student.getValue()) {
                 //查找家长
                 List<SmartUser> parents = smartUserService.getAffiliateList(user.getId());
@@ -3749,11 +3931,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                 }
 
             } else if (user.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()) {
-                //获取班级Uid
-                SmartClass classData = smartClassService.getSmartClassById(user.getSchoolClass());
-                if (classData == null) {
-                    return CommonResult.fail("班级数据无效,更新失败");
-                }
+
 
                 //region 希沃删除教师
                 CommonResult deleteTeacher = SeewoDeleteTeacher(seewoClient, user.getPhone());
@@ -3762,12 +3940,25 @@ public class SmartUserController implements SmartUserControllerAPI {
                 }
                 //endregion
 
-                //region 希沃删除班主任
-                CommonResult deleteTeacherMaster = SeewoDeleteTeacherMaster(seewoClient, classData.getClassUid(), user.getPhone());
-                if (deleteTeacherMaster.isSuccess()) {
-                    return CommonResult.fail(deleteTeacherMaster.getMessage());
+                if (user.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
+                    if (user.getSchoolClass() == null) {
+                        return CommonResult.fail("班级数据无效,删除失败");
+                    }
+                    //获取班级Uid
+                    SmartClass classData = smartClassService.getSmartClassById(user.getSchoolClass());
+                    if (classData == null) {
+                        return CommonResult.fail("班级数据无效,删除失败");
+                    }
+                    //region 希沃删除班主任
+                    if (user.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
+                        CommonResult deleteTeacherMaster = SeewoDeleteTeacherMaster(seewoClient, classData.getClassUid(), user.getPhone());
+                        if (deleteTeacherMaster.isSuccess()) {
+                            return CommonResult.fail(deleteTeacherMaster.getMessage());
+                        }
+                    }
+                    //endregion
                 }
-                //endregion
+
 
                 //region 百胜删除教师
                 CommonResult bsDeleteTeacher = bsDeleteTeacher(user.getBsStaffCode());
@@ -3819,6 +4010,10 @@ public class SmartUserController implements SmartUserControllerAPI {
                     //return CommonResult.fail(deleteResult.getMessage());
                 }
                 //endregion
+
+                //删除家长 根据家长手机号删除下标数据
+                smartFamilyIndexService.deleteSmartFamilyByPhone(user.getPhone());
+
             } else if (user.getIdentityId().intValue() == eIdentityStatu.Student.getValue()) {
                 //查找家长
                 List<SmartUser> parents = smartUserService.getAffiliateList(user.getId());
@@ -3860,42 +4055,51 @@ public class SmartUserController implements SmartUserControllerAPI {
                         //return CommonResult.fail(deleteResult.getMessage());
                     }
                     //endregion
+
+                    //删除学生 根据学生学号删除下标数据
+                    smartFamilyIndexService.deleteSmartFamilyByCardNo(user.getCardNo());
                 }
 
             } else if (user.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()) {
-                //获取班级Uid
-                SmartClass classData = smartClassService.getSmartClassById(user.getSchoolClass());
-                if (classData == null) {
-                    String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "班级数据无效,百胜删除学生失败;";
-                    deleteUser.setReason(reason);
-                    //return CommonResult.fail("班级数据无效,更新失败");
+
+                if (user.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
+                    if(user.getSchoolClass() == null){
+                        String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "班级数据无效,希沃删除班主任失败;";
+                        deleteUser.setReason(reason);
+                    }else{
+                        //获取班级Uid
+                        SmartClass classData = smartClassService.getSmartClassById(user.getSchoolClass());
+                        if (classData == null) {
+                            String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "班级数据无效,希沃删除教师失败;";
+                            deleteUser.setReason(reason);
+                            //return CommonResult.fail("班级数据无效,更新失败");
+                        }
+                        //region 希沃删除班主任
+                        CommonResult deleteTeacherMaster = SeewoDeleteTeacherMaster(seewoClient, classData.getClassUid(), user.getPhone());
+                        if (!deleteTeacherMaster.isSuccess()) {
+                            String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "希沃删除班主任失败;" + deleteTeacherMaster.getMessage() + ";";
+                            deleteUser.setReason(reason);
+                            //return CommonResult.fail(deleteTeacherMaster.getMessage());
+                        }
+                        //endregion
+                    }
+
                 }
 
                 //region 希沃删除教师
                 CommonResult deleteTeacher = SeewoDeleteTeacher(seewoClient, user.getPhone());
                 if (!deleteTeacher.isSuccess()) {
                     String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "百胜删除老师失败;" + deleteTeacher.getMessage() + ";";
-                    ;
                     deleteUser.setReason(reason);
                     //return CommonResult.fail(deleteTeacher.getMessage());
                 }
                 //endregion
 
-                //region 希沃删除班主任
-                CommonResult deleteTeacherMaster = SeewoDeleteTeacherMaster(seewoClient, classData.getClassUid(), user.getPhone());
-                if (deleteTeacherMaster.isSuccess()) {
-                    String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "希沃删除班主任失败;" + deleteTeacherMaster.getMessage() + ";";
-                    ;
-                    deleteUser.setReason(reason);
-                    //return CommonResult.fail(deleteTeacherMaster.getMessage());
-                }
-                //endregion
 
                 //region 百胜删除教师
                 CommonResult bsDeleteTeacher = bsDeleteTeacher(user.getBsStaffCode());
                 if (!bsDeleteTeacher.isSuccess()) {
                     String reason = (deleteUser.getReason() == null ? "" : deleteUser.getReason()) + "百胜删除老师失败;" + bsDeleteTeacher.getMessage() + ";";
-                    ;
                     deleteUser.setReason(reason);
                     //return CommonResult.fail(bsDeleteTeacher.getMessage());
                 }
@@ -4081,6 +4285,7 @@ public class SmartUserController implements SmartUserControllerAPI {
             return CommonResult.fail("当前学生不存在,绑定失败!");
         }
 
+
         //判断是否已绑定过
         if (parentUser.getAffiliate() == null) {
             parentUser.setAffiliate(String.valueOf(studentUser.getId()));
@@ -4092,7 +4297,24 @@ public class SmartUserController implements SmartUserControllerAPI {
                 return CommonResult.fail("当前学生信息已绑定过,请勿重复操作!");
             }
 
-            parentUser.setAffiliate(parentUser.getAffiliate() + "," + String.valueOf(studentUser.getId()));
+            parentUser.setAffiliate(parentUser.getAffiliate() + "," + studentUser.getId());
+        }
+
+        List<SmartFamilyIndex> indexs = smartFamilyIndexService.querySmartFamilyByCardNo(studentUser.getCardNo());
+        if (indexs != null && indexs.size() >= 4) {
+            return CommonResult.fail("绑定失败,希沃学生家长最多绑定四个家长");
+        }
+
+        int index = 0;
+        if (indexs != null) {
+            for (SmartFamilyIndex data : indexs) {
+                if (data.getIndexData().intValue() == index && index < 3) {
+                    index++;
+                    continue;
+                } else {
+                    break;
+                }
+            }
         }
 
         //region 新增希沃学生家长信息
@@ -4118,7 +4340,7 @@ public class SmartUserController implements SmartUserControllerAPI {
         ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem parents = ParentServiceBatchSaveOrUpdateParentsParam.ParentsItem.builder()
                 .name(parentUser.getName())
                 .phone(parentUser.getPhone())
-                .index(0)
+                .index(index)
                 .build();
         studentParents.setParents(java.util.Collections.singletonList(parents));
         param.setRequestBody(requestBody);
@@ -4170,13 +4392,13 @@ public class SmartUserController implements SmartUserControllerAPI {
     }
 
     @Override
-    public CommonResult queryClassUser(int userId) {
+    public CommonResult queryClassUser(int userId, String keyWord) {
         SmartUser userData = smartUserService.getSmartById(userId);
         if (userData == null) {
             return CommonResult.fail("未查到用户信息,获取失败");
         }
 
-        if(userData.getSchoolClass() == null){
+        if (userData.getSchoolClass() == null) {
             return CommonResult.fail("当前用户所在班级为空,获取失败");
         }
 
@@ -4204,7 +4426,6 @@ public class SmartUserController implements SmartUserControllerAPI {
         result.setClassId(userData.getSchoolClass());
         result.setName(departmentStr);
         List<ClassUserDetailVo> userDetails = new ArrayList<>();
-
         //region 用户明细集合数据
         List<SmartUser> users = smartUserService.queryUsersByClass(userData.getSchoolClass());
         if (users != null && users.size() > 0) {
@@ -4213,15 +4434,22 @@ public class SmartUserController implements SmartUserControllerAPI {
                 ClassUserDetailVo userDetail = new ClassUserDetailVo();
                 userDetail.setId(user.getId());
                 userDetail.setName(user.getName());
+                userDetail.setCardNo(user.getCardNo());
                 Optional<SmartTimeGroup> timeGroup = timeGroups.stream().filter(e -> e.getId().equals(user.getTimeGroupId())).findFirst();
                 if (timeGroup != null && timeGroup.isPresent()) {
                     userDetail.setTimeGroup(timeGroup.get().getName());
                 }
                 userDetails.add(userDetail);
             }
+
+            if (!ObjectUtils.isEmpty(keyWord)) {
+                userDetails = userDetails.stream().filter(e -> (e.getName() != null && e.getName().contains(keyWord)) || (e.getTimeGroup() != null && e.getTimeGroup().contains(keyWord))).collect(Collectors.toList());
+            }
+
         }
         //endregion
 
+
         result.setUserDetails(userDetails);
 
         return CommonResult.ok(result);

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

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.template.model.pojo.SmartFamilyIndex;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * 楼栋表 Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-04-23
+ */
+@Repository
+public interface SmartFamilyIndexMapper extends BaseMapper<SmartFamilyIndex> {
+
+}

+ 68 - 0
src/main/java/com/template/model/pojo/SmartFamilyIndex.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 2024-04-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="SmartFamilyIndex对象", description="下标表")
+public class SmartFamilyIndex implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "家长手机号")
+    private String parentPhone;
+
+    @ApiModelProperty(value = "学生学号")
+    private String studentNo;
+
+    @ApiModelProperty(value = "下标")
+    private Integer indexData;
+
+    @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/pojo/SmartQrcode.java

@@ -45,6 +45,9 @@ public class SmartQrcode implements Serializable {
     @ApiModelProperty(value = "刷码成功或失败 成功:1  失败:2")
     private Integer isSuccess;
 
+    @ApiModelProperty(value = "进出状态   进:1     出:2")
+    private Integer accessState;
+
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

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

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -24,7 +25,7 @@ public class setUserTimeGroupRequest {
     /**
      * 时间组ID
      */
-    @NotBlank(message = "时间组ID不能为空")
+    @NotNull(message = "时间组ID不能为空")
     private Integer timeGroupId;
 
 }

+ 5 - 0
src/main/java/com/template/model/vo/ClassUserDetailVo.java

@@ -21,6 +21,11 @@ public class ClassUserDetailVo {
     private String name;
 
     /**
+     * 学号
+     */
+    private String cardNo;
+
+    /**
      * 时间组
      */
     private String timeGroup;

+ 25 - 0
src/main/java/com/template/services/SmartFamilyIndexService.java

@@ -0,0 +1,25 @@
+package com.template.services;
+
+import com.template.model.pojo.SmartFamilyIndex;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 楼栋表 服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-04-23
+ */
+public interface SmartFamilyIndexService extends IService<SmartFamilyIndex> {
+
+    SmartFamilyIndex queryFamilyByPhoneCardNo(String phone,String cardNo);
+
+    List<SmartFamilyIndex> querySmartFamilyByCardNo(String cardNo);
+
+    int deleteSmartFamilyByPhone(String phone);
+
+    int deleteSmartFamilyByCardNo(String cardNo);
+}

+ 62 - 0
src/main/java/com/template/services/impl/SmartFamilyIndexServiceImpl.java

@@ -0,0 +1,62 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.template.mapper.SmartUserMapper;
+import com.template.model.pojo.SmartFamilyIndex;
+import com.template.mapper.SmartFamilyIndexMapper;
+import com.template.services.SmartFamilyIndexService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 楼栋表 服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-04-23
+ */
+@Service
+public class SmartFamilyIndexServiceImpl extends ServiceImpl<SmartFamilyIndexMapper, SmartFamilyIndex> implements SmartFamilyIndexService {
+
+    @Autowired
+    private SmartFamilyIndexMapper smartFamilyIndexMapper;
+
+    @Override
+    public SmartFamilyIndex queryFamilyByPhoneCardNo(String phone, String cardNo) {
+        QueryWrapper<SmartFamilyIndex> queryWrapper = new QueryWrapper();
+        queryWrapper.eq(StringUtils.hasText(phone), "parent_phone", phone);
+        queryWrapper.eq(StringUtils.hasText(cardNo), "student_no", cardNo);
+        SmartFamilyIndex result = smartFamilyIndexMapper.selectOne(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public List<SmartFamilyIndex> querySmartFamilyByCardNo(String cardNo) {
+        QueryWrapper<SmartFamilyIndex> queryWrapper = new QueryWrapper();
+        queryWrapper.eq(StringUtils.hasText(cardNo), "student_no", cardNo);
+        queryWrapper.orderByAsc("index_data");
+        List<SmartFamilyIndex> indexs = smartFamilyIndexMapper.selectList(queryWrapper);
+        return indexs;
+    }
+
+    @Override
+    public int deleteSmartFamilyByPhone(String phone) {
+        QueryWrapper<SmartFamilyIndex> queryWrapper = new QueryWrapper();
+        queryWrapper.eq(StringUtils.hasText(phone), "parent_phone", phone);
+        int result = smartFamilyIndexMapper.delete(queryWrapper);
+        return result;
+    }
+
+    @Override
+    public int deleteSmartFamilyByCardNo(String cardNo) {
+        QueryWrapper<SmartFamilyIndex> queryWrapper = new QueryWrapper();
+        queryWrapper.eq(StringUtils.hasText(cardNo), "student_no", cardNo);
+        int result = smartFamilyIndexMapper.delete(queryWrapper);
+        return result;
+    }
+}

+ 2 - 2
src/main/resources/application-prod.yml

@@ -37,9 +37,9 @@ mybatis-plus:
   mapper-locations: classpath:/mapper/template/*.xml
   configuration:
     #开启sql打印
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     #    #关闭sql打印
-#    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   global-config:
     db-config:
       logic-delete-value: 1

+ 2 - 2
target/classes/application-prod.yml

@@ -37,9 +37,9 @@ mybatis-plus:
   mapper-locations: classpath:/mapper/template/*.xml
   configuration:
     #开启sql打印
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     #    #关闭sql打印
-#    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   global-config:
     db-config:
       logic-delete-value: 1

+ 5 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -184,12 +184,14 @@ com\template\services\SmartVisitorService.class
 com\template\mapper\SmartDataClassMapper.class
 com\template\services\impl\SmartQrcodeServiceImpl.class
 com\template\common\utils\FileUtils.class
+com\template\mapper\SmartFamilyIndexMapper.class
 com\template\model\seewo\OrgClassOpenSeewoUcOpenV1ClassFullParam$OrgClassOpenSeewoUcOpenV1ClassFullParamBuilder.class
 com\template\annotation\ExcelImport.class
 com\template\mapper\SmartEvaluateSdetailMapper.class
 com\template\config\MyBatisPlusConfig.class
 com\template\model\vo\BsGradeNoVo.class
 com\template\model\request\changeDepartmentRequest.class
+com\template\controller\SmartFamilyIndexController.class
 com\template\model\pojo\SmartDataSource.class
 com\template\config\MySecurity.class
 com\template\controller\SmartAttendanceController.class
@@ -341,6 +343,7 @@ com\template\model\result\BaseResult.class
 com\template\model\seewo\StudentServiceBatchSaveClassStudentsParam$JSONRequestBody$JSONRequestBodyBuilder.class
 com\template\services\SmartBuildMeterService.class
 com\template\controller\HikvisionController.class
+com\template\model\pojo\SmartFamilyIndex.class
 com\template\core\CORSConfiguration.class
 com\template\model\seewo\AttendanceServiceListAttendClassRecordsParam.class
 com\template\model\seewo\ParentServiceRemoveStudentParentConditionParam$JSONRequestBody$JSONRequestBodyBuilder.class
@@ -470,6 +473,7 @@ com\template\model\vo\BsDepartmentVo.class
 com\template\services\impl\SmartEvaluateStudentServiceImpl.class
 com\template\model\seewo\StudentServiceBatchSaveClassStudentsResult.class
 com\template\common\utils\QuartzJobUtils.class
+com\template\services\impl\SmartFamilyIndexServiceImpl.class
 com\template\api\SmartMenuControllerAPI.class
 com\template\services\impl\SmartMeterServiceImpl.class
 com\template\common\utils\smsUtil.class
@@ -496,6 +500,7 @@ com\template\core\JwtlnterceptorConfig.class
 com\template\model\request\updateSmartUserRequest.class
 com\template\mapper\SmartClassMapper.class
 com\template\model\seewo\StudentServiceBatchSaveClassStudentsResult$StudentInfoDto.class
+com\template\services\SmartFamilyIndexService.class
 com\template\model\pojo\SmartDataSourceLog.class
 com\template\common\utils\ExcelUtils.class
 com\template\model\vo\DepartmentVo.class

+ 5 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -143,6 +143,7 @@ D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\templa
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\request\insertFreezeRecordRequest.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\pojo\SmartCodeOpenId.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\api\SmartFreezeRecordControllerAPI.java
+D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\mapper\SmartFamilyIndexMapper.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\impl\SmsCodeServiceImpl.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\request\bindStudentRequest.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\vo\BsGradeNoVo.java
@@ -452,6 +453,7 @@ D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\templa
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\impl\WechatScanLoginServiceImpl.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\impl\RepairAdminServiceImpl.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\pojo\SmartQrcode.java
+D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\SmartFamilyIndexService.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\annotation\UserLoginCheck.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\evaluate\student\SmartSubjectRuleOutList.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\mapper\SmartUserMapper.java
@@ -518,6 +520,7 @@ D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\templa
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\request\updateDepartmentRequest.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\vo\SystemMenuVo.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\api\SmartGradeControllerAPI.java
+D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\impl\SmartFamilyIndexServiceImpl.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\SmartNotificationService.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\api\SmartNotificationControllerAPI.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\pojo\SmartIdentity.java
@@ -538,6 +541,7 @@ D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\templa
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\api\SmartDepartmentControllerAPI.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\api\WechatScanLoginControllerAPI.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\SmartSchoolService.java
+D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\controller\SmartFamilyIndexController.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\vo\BsClassVo.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\vo\DepartmentVo.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\request\turnOnTheDeviceRequest.java
@@ -548,6 +552,7 @@ D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\templa
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\services\impl\SmartFreezeRecordServiceImpl.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\controller\SmartMeterDetailController.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\controller\WxGzhController.java
+D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\pojo\SmartFamilyIndex.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\seewo\TeacherServiceBatchSaveOrUpdateTeacherResult.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\seewo\AttendanceRuleListSchoolAttendRuleResult.java
 D:\Bingo\Desktop\工作内容\万载三中\backend_code\src\main\java\com\template\model\seewo\AttendanceRuleListEventByClazzParam.java

BIN
target/mybatis_plus-0.0.1-SNAPSHOT.jar.original