From 5d7b0a0bbcae6844e2296ef53c3f4c88293dacfe Mon Sep 17 00:00:00 2001
From: jinquanOu <1511349576@qq.com>
Date: 星期二, 11 六月 2024 18:18:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 zhang-content/src/main/java/com/ruoyi/mapper/MeetingRatifyMapper.java                               |    9 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/sysUserInfo.java                     |  356 +++++
 ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java |    1 
 zhang-content/src/main/java/com/ruoyi/service/ZfDoctorShareService.java                             |   25 
 zhang-content/src/main/java/com/ruoyi/service/impl/MeetingStatisticServiceImpl.java                 |  301 ++++
 zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java                      |    2 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java                        |  104 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java                   |    4 
 zhang-content/src/main/java/com/ruoyi/service/ZfFamilyService.java                                  |   12 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java                     |    5 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java                         |   39 
 zhang-content/src/main/java/com/ruoyi/service/MeetingStatisticService.java                          |   22 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                               |    6 
 zhang-content/src/main/java/com/ruoyi/service/MeetingRatifyService.java                             |   13 
 ruoyi-admin/src/test/java/com/ruoyi/generatorTest.java                                              |   98 
 zhang-content/src/main/java/com/ruoyi/domain/dto/EmpowerDto.java                                    |   14 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java                            |    5 
 ruoyi-admin/src/test/java/com/ruoyi/esTest.java                                                     |   34 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MemoBookController.java                    |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfDoctorShareController.java               |   50 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfPropertyController.java                  |    2 
 zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java                                          |    1 
 zhang-content/src/main/java/com/ruoyi/service/IZfPropertyService.java                               |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java           |   40 
 zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java                                       |    5 
 zhang-content/src/main/java/com/ruoyi/domain/ZfFamily.java                                          |   13 
 zhang-content/src/main/java/com/ruoyi/service/impl/MemoBookServiceImpl.java                         |    3 
 zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java                    |  132 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingRatifyController.java               |   37 
 ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml                                     |    2 
 zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java                |   77 +
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java                          |   13 
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                     |   46 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java                     |   83 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfFamilyController.java                    |   69 +
 zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java                             |   16 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfRegisterServiceImpl.java                       |    4 
 zhang-content/src/main/java/com/ruoyi/domain/ZTravelPriceDetail.java                                |    2 
 zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java                         |   13 
 zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java                                 |    5 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java                 |    4 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java                        |    6 
 zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java                               |    9 
 zhang-content/src/main/java/com/ruoyi/mapper/MeetingStatisticMapper.java                            |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZAuthorityController.java                  |   29 
 zhang-content/src/main/java/com/ruoyi/mapper/ZfDoctorShareMapper.java                               |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java               |   48 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingController.java                     |  130 ++
 zhang-content/src/main/java/com/ruoyi/domain/ZfDoctorShare.java                                     |   35 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java                            |    8 
 zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java                                      |    2 
 zhang-content/src/main/java/com/ruoyi/service/ZAuthorityService.java                                |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java                    |   76 +
 zhang-content/src/main/java/com/ruoyi/domain/MeetingRatify.java                                     |   28 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java                         |  148 +
 zhang-content/src/main/java/com/ruoyi/service/impl/MeetingServiceImpl.java                          |  425 ++++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java                          |    5 
 zhang-content/src/main/java/com/ruoyi/domain/Meeting.java                                           |  103 +
 ruoyi-system/pom.xml                                                                                |   11 
 ruoyi-admin/src/test/java/com/ruoyi/ExcelTest.java                                                  |    6 
 zhang-content/src/main/java/com/ruoyi/domain/MemoBook.java                                          |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingStatisticController.java            |   72 +
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java                      |    5 
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java                |    2 
 zhang-content/src/main/java/com/ruoyi/domain/ZTravelPrice.java                                      |    2 
 zhang-content/src/main/java/com/ruoyi/mapper/MeetingMapper.java                                     |   18 
 zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java                      |   24 
 zhang-content/src/main/java/com/ruoyi/domain/ShareMore.java                                         |   27 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfFamilyServiceImpl.java                         |   53 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                    |  103 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MarrySelfController.java                   |    2 
 zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java                                     |   63 +
 zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java                       |   70 +
 zhang-content/src/main/java/com/ruoyi/service/impl/MeetingRatifyServiceImpl.java                    |  130 ++
 zhang-content/src/main/java/com/ruoyi/service/MeetingService.java                                   |   31 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java                        |    5 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorShareServiceImpl.java                    |  176 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java                   |   20 
 zhang-content/src/main/java/com/ruoyi/domain/MeetingStatistic.java                                  |   63 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java             |    4 
 zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java                           |    9 
 81 files changed, 3,426 insertions(+), 218 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index b581239..1761f22 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -139,42 +139,53 @@
         }
     }
 
-//    /**
-//     * 閫氱敤涓婁紶璇锋眰锛堝涓級
-//     */
-//    @PostMapping("/uploads")
-//    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-//    {
-//        try
-//        {
-//            // 涓婁紶鏂囦欢璺緞
-//            String filePath = RuoYiConfig.getUploadPath();
-//            List<String> urls = new ArrayList<String>();
-//            List<String> fileNames = new ArrayList<String>();
-//            List<String> newFileNames = new ArrayList<String>();
-//            List<String> originalFilenames = new ArrayList<String>();
-//            for (MultipartFile file : files)
-//            {
-//                // 涓婁紶骞惰繑鍥炴柊鏂囦欢鍚嶇О
-//                String fileName = FileUploadUtils.upload(filePath, file);
-//                String url = serverConfig.getUrl() + fileName;
-//                urls.add(url);
-//                fileNames.add(fileName);
-//                newFileNames.add(FileUtils.getName(fileName));
-//                originalFilenames.add(file.getOriginalFilename());
-//            }
-//            AjaxResult ajax = AjaxResult.success();
-//            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
-//            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
-//            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
-//            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
-//            return ajax;
-//        }
-//        catch (Exception e)
-//        {
-//            return AjaxResult.error(e.getMessage());
-//        }
-//    }
+    /**
+     * 閫氱敤涓婁紶璇锋眰锛堝涓級
+     */
+    @PostMapping("/uploads")
+    public AjaxResult uploadFiles(@RequestParam("files")  List<MultipartFile> files) throws Exception
+    {
+        //System.out.println("99999999999999999999999990000000000000000");
+        try
+        {
+            // 涓婁紶鏂囦欢璺緞
+            String filePath = RuoYiConfig.getUploadPath();
+            List<String> urls = new ArrayList<String>();
+            List<String> fileNames = new ArrayList<String>();
+            List<String> newFileNames = new ArrayList<String>();
+            List<String> originalFilenames = new ArrayList<String>();
+           // System.out.println("99999999999999999999999990000000000000000");
+          //  System.out.println(files);
+          //  System.out.println(files.size());
+
+            for (MultipartFile file : files)
+            {
+                // 涓婁紶骞惰繑鍥炴柊鏂囦欢鍚嶇О
+                String filename = "";
+             //   System.out.println("1122123330+++++++++++++++++++++++++++++");
+
+                String fileName = FileUploadUtils.upload(filePath, file, filename);
+                String url = serverConfig.getUrl() + fileName;
+                urls.add(url);
+                fileNames.add(fileName);
+                newFileNames.add(FileUtils.getName(fileName));
+                originalFilenames.add(file.getOriginalFilename());
+            }
+            AjaxResult ajax = AjaxResult.success();
+          //  System.out.println("99999999999999999999999990000000000000000");
+
+            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
+            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+          //  System.out.println("1122123330+++++++++++++++++++++++++++++");
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
 
     /**
      * 鏈湴璧勬簮閫氱敤涓嬭浇
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index b3231d9..a8b5321 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -5,6 +5,7 @@
 import java.util.Set;
 
 import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.framework.web.domain.server.Sys;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -84,6 +85,7 @@
         Set<String> roles = permissionService.getRolePermission(user);
         // 鏉冮檺闆嗗悎
         Set<String> permissions = permissionService.getMenuPermission(user);
+        System.out.println(permissions);
         AjaxResult ajax = AjaxResult.success();
         ajax.put("user", user);
         ajax.put("roles", roles);
@@ -100,7 +102,9 @@
     public AjaxResult getRouters()
     {
         Long userId = SecurityUtils.getUserId();
+        System.out.println("9222222222kkkkkkkkkkksssssssssssssssssss");
         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);//杩欓噷涔嬪悗宸茬粡鐢熸垚浜嗘爲褰㈢粨鏋�
+        System.out.println(menus);
         return AjaxResult.success(menuService.buildMenus(menus));//杩欓噷涔嬪悗灏卞皝瑁呭ソ浜嗗彂缁欏墠绔殑vo
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 2cb0e8f..346e91e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -1,10 +1,19 @@
 package com.ruoyi.web.controller.system;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.core.domain.entity.sysUserInfo;
+import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.domain.ZfFamily;
+import com.ruoyi.service.ZInfoUserService;
+import com.ruoyi.service.ZfFamilyService;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -54,7 +63,10 @@
 
     @Autowired
     private ISysPostService postService;
-
+    @Resource
+    private ZInfoUserService zInfoUserService;
+    @Resource
+    private ZfFamilyService zfFamilyService;
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
      */
@@ -125,8 +137,23 @@
     @PreAuthorize("@ss.hasPermi('system:user:add')")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysUser user)
+    public AjaxResult add(@Validated @RequestBody sysUserInfo userAll)
     {
+        SysUser user = new SysUser();
+        user.setUserId(userAll.getUserId());
+        user.setAvatar(userAll.getAvatar());
+        user.setPassword(userAll.getPassword());
+        user.setNickName(userAll.getNickName());
+        user.setUserName(userAll.getUserName());
+        user.setPhonenumber(userAll.getPhonenumber());
+        user.setRoleId(userAll.getRoleId());
+        user.setRoleIds(userAll.getRoleIds());
+        user.setStatus(userAll.getStatus());
+        user.setSex(userAll.getSex());
+        user.setRemark(userAll.getRemark());
+        user.setUpdateBy(userAll.getUpdateBy());
+        user.setPostIds(userAll.getPostIds());
+      //  user.set
         if (!userService.checkUserNameUnique(user))
         {
             return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
@@ -141,6 +168,49 @@
         }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        //鍐欏叆鍒� 鏂板缓绔嬬殑淇℃伅琛ㄩ噷闈�
+
+        ZfFamily zfFamily = zfFamilyService.getByFamId(userAll.getFamilyId());
+        ZInfoUser infoUser = new ZInfoUser();
+        infoUser.setUserId(user.getUserId());
+        infoUser.setNickName(user.getNickName());
+        infoUser.setPhoneNumber(user.getPhonenumber());
+        infoUser.setSex(user.getSex()=="鐢�"?1:0);
+        infoUser.setFamilyId(userAll.getFamilyId());
+        if(zfFamily!=null) {
+            infoUser.setFatherId(zfFamily.getFid());
+       //     infoUser.setMomId(zfFamily.getMid());
+        }
+        System.out.println("-----");
+        System.out.println(userAll.getIsMyFamily());
+        infoUser.setIsMyFamily(userAll.getIsMyFamily());
+        if(userAll.getSpouseId()==0)
+            infoUser.setSpouseId(null);
+        else {
+            infoUser.setSpouseId(userAll.getSpouseId());
+
+        }
+        //鍓嶇淇濊瘉浜嗚鑹蹭笉涓虹┖
+        if(user.getRoleIds()[0]==102)
+            infoUser.setRoleId(3L);
+        // infoUser.setRoleName(user.g);
+        if(userAll.getFamilyId()!=-1) {
+            zInfoUserService.saveOrUpdate(infoUser);
+            LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(ZInfoUser::getSpouseId, userAll.getSpouseId());
+            List<ZInfoUser> lis = zInfoUserService.list(lqw);
+            if(lis.size()>0) {
+//                ZInfoUser zi = new ZInfoUser();
+//                zi.setUserId(userAll.getSpouseId());
+//              //  UpdateWrapper wrapper = new UpdateWrapper();
+//                zi.setSpouseId(lis.get(0).getUserId());
+//                System.out.println(userAll.getSpouseId());
+//                System.out.println(lis.get(0).getUserId());
+                zInfoUserService.lambdaUpdate().eq(ZInfoUser::getUserId, userAll.getSpouseId())
+                        .set(ZInfoUser::getSpouseId, lis.get(0).getUserId())
+                        .update();
+            }
+        }
         return toAjax(userService.insertUser(user));
     }
 
@@ -176,7 +246,7 @@
     @PreAuthorize("@ss.hasPermi('system:user:remove')")
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    public AjaxResult remove(@PathVariable Long[] userIds)
+    public AjaxResult remove(@PathVariable("userIds") Long[] userIds)
     {
         if (ArrayUtils.contains(userIds, getUserId()))
         {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java
new file mode 100644
index 0000000..f0a88f2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java
@@ -0,0 +1,40 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.LiveStreaming;
+import com.ruoyi.service.LiveStreamingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+@Slf4j
+@RestController
+@RequestMapping("/zLiveStreamingBack")
+public class LiveStreamingBackController extends BaseController {
+    @Autowired
+    private LiveStreamingService liveStreamingService;
+
+    @GetMapping("/all")
+    public AjaxResult listAll(LiveStreaming liveStreaming){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize);
+    }
+    /**
+     * 閫氳繃id鑾峰彇鐩存挱鍥炴斁璇︾粏淇℃伅
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(liveStreamingService.getById(id));
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java
new file mode 100644
index 0000000..938c27d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java
@@ -0,0 +1,48 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.LiveStreaming;
+
+import com.ruoyi.service.LiveStreamingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+@Slf4j
+@RestController
+@RequestMapping("/zLiveStreaming")
+public class LiveStreamingController extends BaseController {
+    @Autowired
+    private LiveStreamingService liveStreamingService;
+
+    @GetMapping("/all")
+    public AjaxResult listAll(LiveStreaming liveStreaming){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize);
+    }
+    /**
+     * 閫氳繃id鑾峰彇鐩存挱璇︾粏淇℃伅
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(liveStreamingService.getById(id));
+    }
+    /**
+     * 鏂板鐩存挱
+     */
+    @Log(title = "鐩存挱", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LiveStreaming liveStreaming)
+    {
+        return liveStreamingService.addData(liveStreaming);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MarrySelfController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MarrySelfController.java
index c8edbbc..940110d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MarrySelfController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MarrySelfController.java
@@ -33,7 +33,7 @@
     //鏂板鎴栦慨鏀瑰熀鏈俊鎭�
     @PostMapping()
     public AjaxResult updateData(@RequestBody MarryInfoDto marryInfoDto){
-
+        System.out.println("===========");
         return marrySelfService.updateData(marryInfoDto);
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingController.java
new file mode 100644
index 0000000..d29677a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingController.java
@@ -0,0 +1,130 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.domain.Meeting;
+import com.ruoyi.domain.ZfEvent;
+import com.ruoyi.domain.excel.ZfEventExcelBean;
+import com.ruoyi.service.MeetingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-03-12
+ */
+@Slf4j
+@RestController
+@RequestMapping("/zMeeting")
+public class MeetingController extends BaseController {
+    @Autowired
+    private MeetingService meetingService;
+
+    @GetMapping("/all")
+    public AjaxResult listAll(Meeting meeting){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return meetingService.selectDataList(meeting, pageNum, pageSize);
+    }
+
+    /**
+     * 鑾峰彇浼氳璁板綍璇︾粏淇℃伅
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(meetingService.getById(id));
+    }
+
+    /**
+     * 鏂板浼氳璁板綍
+     */
+    @Log(title = "浼氳璁板綍", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Meeting meeting)
+    {
+        return meetingService.addData(meeting);
+    }
+
+    /**
+     * 鑾峰彇瀵煎叆妯℃澘
+     */
+    @PostMapping("/model")
+    public void getExportModel(HttpServletResponse response){
+        List<Meeting> list = Collections.singletonList(new Meeting());
+        ExcelUtil<Meeting> util = new ExcelUtil<>(Meeting.class);
+        util.exportExcel(response,list,"浼氳瀵煎叆妯℃澘");
+    }
+
+    /**
+     * 瀵煎嚭浼氳璁板綍鍒楄〃
+     */
+    @Log(title = "浼氳璁板綍", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Meeting meeting) {
+        List<Meeting> list = new ArrayList<>();
+
+        list = meetingService.selectByCondition(meeting);
+        log.info("瀵煎嚭璁板綍涓�:{}", list);
+        ExcelUtil<Meeting> util = new ExcelUtil<>(Meeting.class);
+        util.exportExcel(response, list, "浼氳璁板綍鏁版嵁");
+
+    }
+    /**
+     * 瀵煎嚭浼氳璁板綍鍒楄〃
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:export')")
+    @Log(title = "瀹跺涵澶т簨浠惰褰�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export1/{ids}")
+    public void export(HttpServletResponse response, @PathVariable Long[] ids) {
+        List<Meeting> list = meetingService.selectByIds(ids);
+        log.info("瀵煎嚭璁板綍涓�:{}", list);
+        ExcelUtil<Meeting> util = new ExcelUtil<>(Meeting.class);
+        util.exportExcel(response, list, "浼氳璁板綍鏁版嵁");
+
+    }
+    /**
+     * 淇敼浼氳璁板綍
+     */
+    @Log(title = "浼氳璁板綍", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Meeting meeting) {
+        return meetingService.updateData(meeting);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浼氳璁板綍
+     */
+    @Log(title = "浼氳璁板綍", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return meetingService.deleteData(ids);
+    }
+
+    /**
+     * 瀵煎叆浼氳璁板綍鍒楄〃
+     */
+    @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT)
+    @PostMapping("/importData")
+    public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception {
+        return meetingService.importExcel(file);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingRatifyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingRatifyController.java
new file mode 100644
index 0000000..c69c303
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingRatifyController.java
@@ -0,0 +1,37 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.Meeting;
+import com.ruoyi.service.MeetingRatifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+@Slf4j
+@RestController
+@RequestMapping("/zMeetingRatify")
+public class MeetingRatifyController extends BaseController {
+    @Autowired
+    private MeetingRatifyService meetingRatifyService;
+
+    @Log(title = "浼氳瀹℃壒", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Meeting meeting) {
+        return meetingRatifyService.updateData(meeting);
+    }
+
+    @GetMapping("/all")
+    public AjaxResult listAll(Meeting meeting){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return meetingRatifyService.selectDataList(meeting, pageNum, pageSize);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingStatisticController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingStatisticController.java
new file mode 100644
index 0000000..027836c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MeetingStatisticController.java
@@ -0,0 +1,72 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.MeetingStatistic;
+import com.ruoyi.service.MeetingStatisticService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+@RestController
+@RequestMapping("/zMeetingStatistic")
+public class MeetingStatisticController extends BaseController {
+    @Autowired
+    private MeetingStatisticService meetingStatisticService;
+
+    /**
+     * 鍏ㄩ儴鏁版嵁
+     */
+    @GetMapping("/all")
+    public AjaxResult listAll(MeetingStatistic meetingStatistic){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return meetingStatisticService.selectDataList(meetingStatistic, pageNum, pageSize);
+    }
+    /**
+     * 鏍规嵁id,鑾峰彇浼氳璁板綍璇︾粏淇℃伅
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(meetingStatisticService.getById(id));
+    }
+
+    /**
+     * 鍙緭鍑哄搴彿鍜屽垱寤烘椂闂�
+     */
+    @GetMapping("/one")
+    public AjaxResult listOne(MeetingStatistic meetingStatistic){
+        return meetingStatisticService.DataList(meetingStatistic);
+    }
+    /**
+     * 淇敼浼氳缁熻
+     */
+    @Log(title = "浼氳缁熻", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MeetingStatistic meetingStatistic) {
+        return meetingStatisticService.updateData(meetingStatistic);
+    }
+
+
+    /**
+     * 鎵归噺鍒犻櫎浼氳缁熻璁板綍
+     */
+    @Log(title = "浼氳缁熻璁板綍", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return meetingStatisticService.deleteData(ids);
+    }
+
+    /**
+     * 鏂板浼氳缁熻璁板綍
+     */
+    @Log(title = "浼氳缁熻璁板綍", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MeetingStatistic meetingStatistic) { return meetingStatisticService.addData(meetingStatistic); }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MemoBookController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MemoBookController.java
index 95c324a..8943f67 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MemoBookController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/MemoBookController.java
@@ -51,6 +51,7 @@
     public AjaxResult updateData(@RequestBody MemoBook memoBook){
         boolean b = memoBookService.updateById(memoBook);
         if (b){
+            System.out.println("sssddddddddddddddddddddddd");
             return AjaxResult.success();
         }else {
             return AjaxResult.error();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
index fd94d83..3f68808 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
@@ -52,7 +52,9 @@
 
 
 
-        return travelCountService.selectDataList(userId,pageNum,pageSize,travelCount,happenStartTime,happenEndTime);
+        AjaxResult res = travelCountService.selectDataList(userId,pageNum,pageSize,travelCount,happenStartTime,happenEndTime);
+        System.out.println(res);
+        return res;
     }
 
     @GetMapping("/{id}")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZAuthorityController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZAuthorityController.java
index 2974de9..21e9123 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZAuthorityController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZAuthorityController.java
@@ -6,6 +6,7 @@
 import com.ruoyi.domain.ZAuthority;
 import com.ruoyi.domain.dto.AuthorityDto;
 import com.ruoyi.domain.dto.AuthorityDto2;
+import com.ruoyi.domain.dto.EmpowerDto;
 import com.ruoyi.service.ZAuthorityService;
 import org.springframework.web.bind.annotation.*;
 
@@ -64,13 +65,27 @@
         return zAuthorityService.getOtherAuthority(authorityDto);
     }
 
-//    /**
-//     * 鎺堟潈(鍙湁瀹跺涵绠$悊鍛樻墠鑳借皟鐢ㄨ繖涓帴鍙�)
-//     */
-//    @PostMapping("/empower")
-//    public AjaxResult empower(){
-//
-//    }
+    /**
+     * 鎺堟潈(鍙湁瀹跺涵绠$悊鍛樻墠鑳借皟鐢ㄨ繖涓帴鍙�)
+     */
+    @PostMapping("/empower")
+    public AjaxResult empower(@RequestBody EmpowerDto zAuthority){
+        return zAuthorityService.saveZa(zAuthority);
+    }
+    /**
+     * 鏍规嵁authorityId鍜屽搴璱d鏌ョ湅宸茬粡鎺堟潈缁欓偅浜涗汉
+     */
+    @PostMapping("/getInfoByAidFid")
+    public AjaxResult empowerGetInfo(@RequestBody ZAuthority zAuthority){
+        return zAuthorityService.listByFidAid(zAuthority);
+    }
+    /**
+     * 鏍规嵁authorityId鍜屽搴璱d鏀跺洖宸茬粡鎺堟潈缁欓偅浜涗汉
+     */
+    @PostMapping("/deleteInfoByAidFid")
+    public AjaxResult deleteEmpower(@RequestBody EmpowerDto zAuthority){
+        return zAuthorityService.deleteZa(zAuthority);
+    }
 
 
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java
index b9de3a2..bca0651 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java
@@ -116,6 +116,12 @@
         Long userId = user.getUserId();
         return AjaxResult.success(zInfoUserService.getInfoById(userId));
     }
+    @GetMapping("/{id}")
+    public AjaxResult getInfoById(@PathVariable("id") Long id) {
+      //  SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = id;
+        return AjaxResult.success(zInfoUserService.getInfoById(userId));
+    }
 //
 
     /**
@@ -200,7 +206,14 @@
     public AjaxResult listAllPeopleWithTree(@PathParam("depth") Integer depth){
         return zInfoUserService.listWithTree(depth);
     }
-
+    /**
+     * 鏍规嵁瀹跺涵鎴愬憳鎵惧埌鎵�鏈変汉
+     */
+    @GetMapping("/allFamInfo")
+        public AjaxResult listAllFamilyPeople()
+        {
+            return zInfoUserService.listAllFamilyPeople();
+        }
 
     /**
      * 鎵惧埌鎵�鏈夌殑鎴愬憳
@@ -257,6 +270,11 @@
         return zInfoUserService.listGenealogy2(genealogy,pageNum,pageSize);
     }
 
+    @GetMapping("/list/getInfoByfid/{fid}")
+    public AjaxResult getInfoByfid(@PathVariable("fid") Long fid)
+    {
+        return zInfoUserService.getInfoByfid(fid);
+    }
 
 
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfDoctorShareController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfDoctorShareController.java
new file mode 100644
index 0000000..1cb8036
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfDoctorShareController.java
@@ -0,0 +1,50 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.ShareMore;
+import com.ruoyi.service.ZfDoctorShareService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/ZfDoctorShare")
+public class ZfDoctorShareController extends BaseController {
+    @Resource
+    ZfDoctorShareService zfDoctorShareService;
+
+    /**
+     * 鍒嗕韩鏁版嵁
+     */
+    @PostMapping("/share")
+    public AjaxResult share(@RequestBody ShareMore zfDoctor){
+        return zfDoctorShareService.saveZa(zfDoctor);
+    }
+
+    /**
+     * 鏍规嵁UserId鍜屽垎浜汉shareId鏌ョ湅宸茬粡鎺堟潈缁欓偅浜涗汉閭d簺鏁版嵁
+     */
+    @PostMapping("/getInfoByUserId")
+    public AjaxResult empowerGetInfo(@RequestBody ShareMore zfDoctor){
+
+        return zfDoctorShareService.listByFidAid(zfDoctor);
+    }
+
+    /**
+     * 鐢ㄦ埛鑷繁鏌ョ湅鍒汉鍒嗕韩鐨勬暟鎹拰鍒嗕韩浜�
+     */
+    @GetMapping("/getInfoByShareId")
+    public AjaxResult empowerGetInfo2(){
+        return zfDoctorShareService.listByUserId();
+    }
+    /**
+     * 鏍规嵁userId鍜宻hareId鏀跺洖宸茬粡鎺堟潈缁欓偅浜涗汉
+     */
+    @PostMapping("/deleteInfoByUserId")
+    public AjaxResult deleteEmpower(@RequestBody ShareMore zfDoctor){
+        return zfDoctorShareService.deleteZa(zfDoctor);
+    }
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfFamilyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfFamilyController.java
index 13bc437..6cae23e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfFamilyController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfFamilyController.java
@@ -1,12 +1,19 @@
 package com.ruoyi.web.controller.zhang;
 
+import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.domain.ZfEvent;
+import com.ruoyi.domain.ZfFamily;
 import com.ruoyi.domain.dto.UserInfoDto;
 import com.ruoyi.service.ZfFamilyService;
 import org.springframework.security.core.parameters.P;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * @Author Jinquan_Ou
@@ -33,6 +40,15 @@
     public AjaxResult getByFamilyId(@PathVariable Long fid){
         return AjaxResult.success(zfFamilyService.getByFamilyId(fid));
     }
+    @GetMapping("/findByfid/{fid}")
+    public AjaxResult getByFId(@PathVariable("fid") Long fid){
+        return AjaxResult.success(zfFamilyService.getByFid(fid));
+    }
+    @GetMapping("/findByFname/{name}")
+    public AjaxResult getByFName(@PathVariable("name") String name){
+        return AjaxResult.success(zfFamilyService.getByName(name));
+    }
+
 
     /**
      * 鏌ョ湅褰撳墠鐢ㄦ埛褰撳墠瀹跺涵鐨勫搴垚鍛�
@@ -48,11 +64,64 @@
      */
     @PostMapping()
     public AjaxResult addFamilyMember(@RequestBody UserInfoDto userInfoDto){
+
         return zfFamilyService.addMember(userInfoDto);
 
     }
 
     /**
+     * 瀵煎嚭瀹跺涵澶т簨浠惰褰曞垪琛�
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:export')")
+    @Log(title = "瀹跺涵澶т簨浠惰褰�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response) {
+        List<ZfFamily> list = zfFamilyService.list();
+        System.out.println("------------------");
+        ExcelUtil<ZfFamily> util = new ExcelUtil<>(ZfFamily.class);
+        util.exportExcel(response, list, "瀹跺涵澶т簨浠惰褰曟暟鎹�");
+
+    }
+
+    @Log(title = "瀹跺涵澶т簨浠惰褰�", businessType = BusinessType.DELETE)
+    @DeleteMapping("/deleteFam/{ids}")
+    public AjaxResult deleteFamily(@PathVariable Long[] ids) {
+        return zfFamilyService.deleteFam(ids);
+    }
+    /**
+     *
+     * @param zfFamily
+     * @return
+     */
+    @PostMapping("/addFam")
+    public AjaxResult addFamilyMember(@RequestBody ZfFamily zfFamily){
+
+        return zfFamilyService.addFamily(zfFamily);
+
+    }
+    /**
+     *
+     * @param zfFamily
+     * @return
+     */
+    @PostMapping("/findInfo")
+    public AjaxResult findFamilyMember(@RequestBody ZfFamily zfFamily){
+
+        return AjaxResult.success(zfFamilyService.getByNameAndUser(zfFamily));
+
+    }
+    /**
+     *
+     * @param zfFamily
+     * @return
+     */
+    @PostMapping("/updateFam")
+    public AjaxResult updateFamily(@RequestBody ZfFamily zfFamily){
+
+        return zfFamilyService.updateFam(zfFamily);
+
+    }
+    /**
      * 鍒犻櫎瀹跺涵鎴愬憳
      */
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfPropertyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfPropertyController.java
index 3b12569..1da60dc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfPropertyController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfPropertyController.java
@@ -47,7 +47,7 @@
 
     @GetMapping("/type")
     public AjaxResult listType(){
-        return zfPropertyService.listType();
+        return zfPropertyService.selectType();
     }
 
     /**
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/ExcelTest.java b/ruoyi-admin/src/test/java/com/ruoyi/ExcelTest.java
index e0d8ec9..a201ed9 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/ExcelTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/ExcelTest.java
@@ -20,8 +20,8 @@
 
     @Test
     public void testExcelImport() throws Exception {
-        InputStream is = new FileInputStream(new File("D:\\test.xlsx"));
-        ExcelUtil<ZfProperty> util = new ExcelUtil<ZfProperty>(ZfProperty.class);
-        List<ZfProperty> userList = util.importExcel(is);
+//        InputStream is = new FileInputStream(new File("D:\\test.xlsx"));
+//        ExcelUtil<ZfProperty> util = new ExcelUtil<ZfProperty>(ZfProperty.class);
+//        List<ZfProperty> userList = util.importExcel(is);
     }
 }
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
index 4c071ab..ee9e9df 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/esTest.java
@@ -32,8 +32,8 @@
     @Test
     public void esUser()
     {
-        System.out.println("__________________________");
-        System.out.println(ess.findByCondition("鎴戠湡鐨勫緢寮�蹇�"));
+//        System.out.println("__________________________");
+//        System.out.println(ess.findByCondition("鎴戠湡鐨勫緢寮�蹇�"));
 //     request.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
 //     request.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
     }
@@ -41,21 +41,21 @@
     public void esUs()
     {
 //        // 鎿嶄綔绱㈠紩鐨勫璞�
-        System.out.println(ess);
-        ZfEvent zfe = new ZfEvent();
-        zfe.setId(1489);
-        zfe.setRemark("澶у濂�90");
-        zfe.setAddress("浣犲ソ2");
-        zfe.setTitle("寰堝ソ寰堝ソ");
-        zfe.setPeople("浣犲ソ");
-        zfEs.addData(zfe);
-
-        System.out.println(ess);
-        System.out.println("sdsdsdsds");
-        System.out.println("sdsdsdsds");
-
-        System.out.println("sdsdsdsds");
-        System.out.println(ess);
+//        System.out.println(ess);
+//        ZfEvent zfe = new ZfEvent();
+//        zfe.setId(1489);
+//        zfe.setRemark("澶у濂�90");
+//        zfe.setAddress("浣犲ソ2");
+//        zfe.setTitle("寰堝ソ寰堝ソ");
+//        zfe.setPeople("浣犲ソ");
+//        zfEs.addData(zfe);
+//
+//        System.out.println(ess);
+//        System.out.println("sdsdsdsds");
+//        System.out.println("sdsdsdsds");
+//
+//        System.out.println("sdsdsdsds");
+//        System.out.println(ess);
 
 //
 //        EsModel esModel = new EsModel();
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/generatorTest.java b/ruoyi-admin/src/test/java/com/ruoyi/generatorTest.java
index b2c85b9..9ebe193 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/generatorTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/generatorTest.java
@@ -19,55 +19,55 @@
 public class generatorTest {
     @Test
     public void test01() {
-        //鍒涘缓涓�涓唬鐮佺敓鎴愬櫒
-        FastAutoGenerator.create("jdbc:mysql://192.168.88.68:3306/mall_pms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8",
-                        "root", "root")
-                //鍏ㄥ眬閰嶇疆(GlobalConfig)
-                .globalConfig(builder -> {
-                    builder.author("ojq") // 璁剧疆浣滆�咃紝鍙互鍐欒嚜宸卞悕瀛�
-                            //.enableSwagger() // 寮�鍚� swagger 妯″紡锛岃繖涓槸鎺ュ彛鏂囨。鐢熸垚鍣紝濡傛灉寮�鍚殑璇濓紝灏辫繕闇�瑕佸鍏wagger渚濊禆
-                            .fileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠�
-                            .dateType(DateType.TIME_PACK) //鏃堕棿绛栫暐
-                            .commentDate("yyyy-MM-dd") //娉ㄩ噴鏃ユ湡
-                            .outputDir("F:\\JavaProject\\mail-service\\mall-generator\\src\\main\\java"); // 鎸囧畾杈撳嚭鐩綍锛屼竴鑸寚瀹氬埌java鐩綍
-                })
-                //鍖呴厤缃�(PackageConfig)
-                .packageConfig(builder -> {
-                    builder.parent("com.ojq") // 璁剧疆鐖跺寘鍚�
-                            .moduleName("") // 璁剧疆鐖跺寘妯″潡鍚嶏紝杩欓噷涓�鑸笉璁剧疆
-                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "F:\\JavaProject\\mail-service\\mall-generator\\src\\main\\resources\\com\\ojq\\mapper")); // 璁剧疆mapperXml鐢熸垚璺緞锛岃繖閲屾槸Mapper閰嶇疆鏂囦欢鐨勮矾寰勶紝寤鸿浣跨敤缁濆璺緞
-                })
-                //绛栫暐閰嶇疆(StrategyConfig)
-                .strategyConfig(builder -> {
-//                    builder.addInclude("zf_clean") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-//                            .addInclude("zf_collection") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                    builder.addInclude("pms_attr") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_attr_attrgroup_relation") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_attr_group") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_brand") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_category") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_category_brand") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_comment_replay") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_product_attr_value") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_sku_images") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_sku_info") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_sku_sale_attr_value") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_spu_comment") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_spu_images") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_spu_info") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-                            .addInclude("pms_spu_info_desc"); // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
-
-                    builder.serviceBuilder()
-                            .formatServiceFileName("%sService") //璁剧疆service鐨勫懡鍚嶇瓥鐣�,娌℃湁杩欎釜閰嶇疆鐨勮瘽锛岀敓鎴愮殑service鍜宻erviceImpl绫诲墠闈細鏈変竴涓狪锛屾瘮濡侷UserService鍜孖UserServiceImpl
-                            .formatServiceImplFileName("%sServiceImpl"); //璁剧疆serviceImpl鐨勫懡鍚嶇瓥鐣�
-                    builder.controllerBuilder()
-                            .enableRestStyle(); // 寮�鍚敓鎴怈RestController 鎺у埗鍣紝涓嶉厤缃繖涓粯璁ゆ槸Controller娉ㄨВ锛孯estController鏄繑鍥濲son瀛楃涓茬殑锛屽鐢ㄤ簬鍓嶅悗绔垎绂婚」鐩��
-                    builder.mapperBuilder()
-                            .enableMapperAnnotation() ;//寮�鍚� @Mapper 娉ㄨВ锛屼篃灏辨槸鍦╠ao鎺ュ彛涓婃坊鍔犱竴涓狜Mapper娉ㄨВ锛岃繖涓敞瑙g殑浣滅敤鏄紑鍚敞瑙fā寮忥紝灏卞彲浠ュ湪鎺ュ彛鐨勬娊璞℃柟娉曚笂闈㈢洿鎺ヤ娇鐢ˊSelect鍜孈Insert鍜孈Update鍜孈Delete娉ㄨВ銆�
-                })
-//                .templateEngine(new FreemarkerTemplateEngine()) // 浣跨敤Freemarker寮曟搸妯℃澘锛岄粯璁ょ殑鏄疺elocity寮曟搸妯℃澘
-                .templateEngine(new VelocityTemplateEngine())
-                .execute(); //鎵ц浠ヤ笂閰嶇疆
+//        //鍒涘缓涓�涓唬鐮佺敓鎴愬櫒
+//        FastAutoGenerator.create("jdbc:mysql://192.168.88.68:3306/mall_pms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8",
+//                        "root", "root")
+//                //鍏ㄥ眬閰嶇疆(GlobalConfig)
+//                .globalConfig(builder -> {
+//                    builder.author("ojq") // 璁剧疆浣滆�咃紝鍙互鍐欒嚜宸卞悕瀛�
+//                            //.enableSwagger() // 寮�鍚� swagger 妯″紡锛岃繖涓槸鎺ュ彛鏂囨。鐢熸垚鍣紝濡傛灉寮�鍚殑璇濓紝灏辫繕闇�瑕佸鍏wagger渚濊禆
+//                            .fileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠�
+//                            .dateType(DateType.TIME_PACK) //鏃堕棿绛栫暐
+//                            .commentDate("yyyy-MM-dd") //娉ㄩ噴鏃ユ湡
+//                            .outputDir("F:\\JavaProject\\mail-service\\mall-generator\\src\\main\\java"); // 鎸囧畾杈撳嚭鐩綍锛屼竴鑸寚瀹氬埌java鐩綍
+//                })
+//                //鍖呴厤缃�(PackageConfig)
+//                .packageConfig(builder -> {
+//                    builder.parent("com.ojq") // 璁剧疆鐖跺寘鍚�
+//                            .moduleName("") // 璁剧疆鐖跺寘妯″潡鍚嶏紝杩欓噷涓�鑸笉璁剧疆
+//                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "F:\\JavaProject\\mail-service\\mall-generator\\src\\main\\resources\\com\\ojq\\mapper")); // 璁剧疆mapperXml鐢熸垚璺緞锛岃繖閲屾槸Mapper閰嶇疆鏂囦欢鐨勮矾寰勶紝寤鸿浣跨敤缁濆璺緞
+//                })
+//                //绛栫暐閰嶇疆(StrategyConfig)
+//                .strategyConfig(builder -> {
+////                    builder.addInclude("zf_clean") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+////                            .addInclude("zf_collection") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                    builder.addInclude("pms_attr") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_attr_attrgroup_relation") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_attr_group") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_brand") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_category") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_category_brand") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_comment_replay") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_product_attr_value") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_sku_images") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_sku_info") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_sku_sale_attr_value") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_spu_comment") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_spu_images") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_spu_info") // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//                            .addInclude("pms_spu_info_desc"); // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+//
+//                    builder.serviceBuilder()
+//                            .formatServiceFileName("%sService") //璁剧疆service鐨勫懡鍚嶇瓥鐣�,娌℃湁杩欎釜閰嶇疆鐨勮瘽锛岀敓鎴愮殑service鍜宻erviceImpl绫诲墠闈細鏈変竴涓狪锛屾瘮濡侷UserService鍜孖UserServiceImpl
+//                            .formatServiceImplFileName("%sServiceImpl"); //璁剧疆serviceImpl鐨勫懡鍚嶇瓥鐣�
+//                    builder.controllerBuilder()
+//                            .enableRestStyle(); // 寮�鍚敓鎴怈RestController 鎺у埗鍣紝涓嶉厤缃繖涓粯璁ゆ槸Controller娉ㄨВ锛孯estController鏄繑鍥濲son瀛楃涓茬殑锛屽鐢ㄤ簬鍓嶅悗绔垎绂婚」鐩��
+//                    builder.mapperBuilder()
+//                            .enableMapperAnnotation() ;//寮�鍚� @Mapper 娉ㄨВ锛屼篃灏辨槸鍦╠ao鎺ュ彛涓婃坊鍔犱竴涓狜Mapper娉ㄨВ锛岃繖涓敞瑙g殑浣滅敤鏄紑鍚敞瑙fā寮忥紝灏卞彲浠ュ湪鎺ュ彛鐨勬娊璞℃柟娉曚笂闈㈢洿鎺ヤ娇鐢ˊSelect鍜孈Insert鍜孈Update鍜孈Delete娉ㄨВ銆�
+//                })
+////                .templateEngine(new FreemarkerTemplateEngine()) // 浣跨敤Freemarker寮曟搸妯℃澘锛岄粯璁ょ殑鏄疺elocity寮曟搸妯℃澘
+//                .templateEngine(new VelocityTemplateEngine())
+//                .execute(); //鎵ц浠ヤ笂閰嶇疆
 
     }
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
index f2c93da..5a93b8c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/EsModel.java
@@ -2,11 +2,13 @@
 
 
 import lombok.Data;
+import org.joda.time.DateTime;
 import org.springframework.data.elasticsearch.annotations.Document;
 import org.springframework.data.elasticsearch.annotations.Field;
 import org.springframework.data.elasticsearch.annotations.FieldType;
 
 
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -74,11 +76,46 @@
     @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by6;
 
-    /** 澶囩敤6 */
+    /** 澶囩敤7 */
     @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
     private String by7;
 
 
+    /** 澶囩敤8*/
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by8;
+
+    /** 澶囩敤9 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by9;
+
+    /** 澶囩敤10 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by10;
+
+    /** 澶囩敤11 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by11;
+
+    /** 澶囩敤12 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by12;
+
+    /** 澶囩敤13 */
+    @Field(index = true,type = FieldType.Text,analyzer = "ik_max_word")
+    private int by13;
+
+    /** 澶囩敤14 */
+    @Field(index = true,type = FieldType.Date,analyzer = "ik_max_wor")
+    private Date by14;
+
+    /** 澶囩敤15 */
+    @Field(index = true,type = FieldType.Date,analyzer = "ik_max_wor")
+    private Date by15;
+
+    /** 澶囩敤16 */
+    @Field(index = true,type = FieldType.Date,analyzer = "ik_max_wor ")
+    private Timestamp by16;
 
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/sysUserInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/sysUserInfo.java
new file mode 100644
index 0000000..6376a54
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/sysUserInfo.java
@@ -0,0 +1,356 @@
+package com.ruoyi.common.core.domain.entity;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.annotation.Excels;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.xss.Xss;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
+import java.util.List;
+
+public class sysUserInfo extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 鐢ㄦ埛ID */
+    @Excel(name = "鐢ㄦ埛搴忓彿", cellType = Excel.ColumnType.NUMERIC, prompt = "鐢ㄦ埛缂栧彿")
+    private Long userId;
+
+    /** 閮ㄩ棬ID */
+    @Excel(name = "閮ㄩ棬缂栧彿", type = Excel.Type.IMPORT)
+    private Long deptId;
+
+    /** 鐢ㄦ埛璐﹀彿 */
+    @Excel(name = "鐧诲綍鍚嶇О")
+    private String userName;
+
+    /** 鐢ㄦ埛鏄电О */
+    @Excel(name = "鐢ㄦ埛鍚嶇О")
+    private String nickName;
+
+    /** 鐢ㄦ埛閭 */
+    @Excel(name = "鐢ㄦ埛閭")
+    private String email;
+
+    /** 鎵嬫満鍙风爜 */
+    @Excel(name = "鎵嬫満鍙风爜")
+    private String phonenumber;
+
+    /** 鐢ㄦ埛鎬у埆 */
+    @Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢�,1=濂�,2=鏈煡")
+    private String sex;
+
+    /** 鐢ㄦ埛澶村儚 */
+    private String avatar;
+
+    /** 瀵嗙爜 */
+    private String password;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public long getFamilyId() {
+        return familyId;
+    }
+
+    public void setFamilyId(long familyId) {
+        this.familyId = familyId;
+    }
+
+    public long getSpouseId() {
+        return spouseId;
+    }
+
+    public void setSpouseId(long spouseId) {
+        this.spouseId = spouseId;
+    }
+
+    public int getIsMyFamily() {
+        return isMyFamily;
+    }
+
+    public void setIsMyFamily(int isMyFamily) {
+        this.isMyFamily = isMyFamily;
+    }
+
+    public long getFatherId() {
+        return fatherId;
+    }
+
+    public void setFatherId(long fatherId) {
+        this.fatherId = fatherId;
+    }
+
+    public long getMomId() {
+        return momId;
+    }
+
+    public void setMomId(long momId) {
+        this.momId = momId;
+    }
+
+    private long familyId;
+
+    private long spouseId;
+
+    private int isMyFamily;
+
+    public long getFid() {
+        return fid;
+    }
+
+    public void setFid(long fid) {
+        this.fid = fid;
+    }
+
+    private long fatherId;
+
+    private long momId;
+
+    private long fid;
+    /** 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛� */
+    @Excel(name = "甯愬彿鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
+    private String status;
+
+    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
+    private String delFlag;
+
+    /** 鏈�鍚庣櫥褰旾P */
+    @Excel(name = "鏈�鍚庣櫥褰旾P", type = Excel.Type.EXPORT)
+    private String loginIp;
+
+    /** 鏈�鍚庣櫥褰曟椂闂� */
+    @Excel(name = "鏈�鍚庣櫥褰曟椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
+    private Date loginDate;
+
+    /** 閮ㄩ棬瀵硅薄 */
+    @Excels({
+            @Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Excel.Type.EXPORT),
+            @Excel(name = "閮ㄩ棬璐熻矗浜�", targetAttr = "leader", type = Excel.Type.EXPORT)
+    })
+    private SysDept dept;
+
+    /** 瑙掕壊瀵硅薄 */
+    private List<SysRole> roles;
+
+    /** 瑙掕壊缁� */
+    private Long[] roleIds;
+
+    /** 宀椾綅缁� */
+    private Long[] postIds;
+
+    /** 瑙掕壊ID */
+    private Long roleId;
+
+    public sysUserInfo()
+    {
+
+    }
+
+    public sysUserInfo(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.userId);
+    }
+
+    public static boolean isAdmin(Long userId)
+    {
+        //1鍙风敤鎴峰氨鏄鐞嗗憳
+        return userId != null && 1L == userId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    @Xss(message = "鐢ㄦ埛鏄电О涓嶈兘鍖呭惈鑴氭湰瀛楃")
+    @Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+    public String getNickName()
+    {
+        return nickName;
+    }
+
+    public void setNickName(String nickName)
+    {
+        this.nickName = nickName;
+    }
+
+    @Xss(message = "鐢ㄦ埛璐﹀彿涓嶈兘鍖呭惈鑴氭湰瀛楃")
+    @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖")
+    @Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    @Email(message = "閭鏍煎紡涓嶆纭�")
+    @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    @Size(min = 0, max = 11, message = "鎵嬫満鍙风爜闀垮害涓嶈兘瓒呰繃11涓瓧绗�")
+    public String getPhonenumber()
+    {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber)
+    {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getSex()
+    {
+        return sex;
+    }
+
+    public void setSex(String sex)
+    {
+        this.sex = sex;
+    }
+
+    public String getAvatar()
+    {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar)
+    {
+        this.avatar = avatar;
+    }
+
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getLoginIp()
+    {
+        return loginIp;
+    }
+
+    public void setLoginIp(String loginIp)
+    {
+        this.loginIp = loginIp;
+    }
+
+    public Date getLoginDate()
+    {
+        return loginDate;
+    }
+
+    public void setLoginDate(Date loginDate)
+    {
+        this.loginDate = loginDate;
+    }
+
+    public SysDept getDept()
+    {
+        return dept;
+    }
+
+    public void setDept(SysDept dept)
+    {
+        this.dept = dept;
+    }
+
+    public List<SysRole> getRoles()
+    {
+        return roles;
+    }
+
+    public void setRoles(List<SysRole> roles)
+    {
+        this.roles = roles;
+    }
+
+    public Long[] getRoleIds()
+    {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds)
+    {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPostIds()
+    {
+        return postIds;
+    }
+
+    public void setPostIds(Long[] postIds)
+    {
+        this.postIds = postIds;
+    }
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
index 3eb2495..1687a94 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
@@ -34,6 +34,7 @@
         LoginUser loginUser = tokenService.getLoginUser(request);
         if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
         {
+            System.out.println("123");
             tokenService.verifyToken(loginUser);
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
             authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
index c2f97a1..b1dd52e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
@@ -161,6 +161,8 @@
      * @param permission 鏉冮檺瀛楃涓�
      * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
      */
+
+
     private boolean hasPermissions(Set<String> permissions, String permission)
     {
         return permissions.contains(ALL_PERMISSION) || permissions.contains(StringUtils.trim(permission));
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
index 402f25b..9a1f935 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
@@ -57,7 +57,9 @@
         // 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄�
         if (user.isAdmin())
         {
-            perms.add("*:*:*");
+          //  perms.add("system:*:*");
+            perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId()));
+
         }
         else
         {
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index ef656a0..11f84cc 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -22,6 +22,17 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>zhang-content</artifactId>
+            <version>1.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+            <version>3.5.2</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 76e1c79..e41665f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.mapper;
 
+import java.util.ArrayList;
 import java.util.List;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -11,6 +12,7 @@
  */
 public interface SysUserMapper
 {
+    public List<SysUser> findUserNames(Long[] ids);
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃
      * 
@@ -85,6 +87,10 @@
      */
     public int resetUserPwd(@Param("userName") String userName, @Param("password") String password);
 
+    public int deleteUserByUserName(String userName);
+    public int deleteUserByName(String userName);
+
+    public int deleteById(Long[] userId);
     /**
      * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛
      * 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 10bc2ab..b4bb6e3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -1,6 +1,9 @@
 package com.ruoyi.system.service;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 /**
@@ -8,8 +11,11 @@
  * 
  * @author ruoyi
  */
-public interface ISysUserService
+public interface ISysUserService extends IService<SysUser>
 {
+
+
+    public List<String> findUserNames(Long [] ids);
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃
      * 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 6f30772..e97cc14 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,9 +1,17 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import javax.validation.Validator;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.service.ZInfoUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,8 +44,7 @@
  * @author ruoyi
  */
 @Service
-public class SysUserServiceImpl implements ISysUserService
-{
+public class SysUserServiceImpl implements ISysUserService {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
     @Autowired
@@ -60,6 +67,19 @@
 
     @Autowired
     protected Validator validator;
+
+    @Resource
+    private ZInfoUserService zInfoUserService;
+
+    @Override
+    public List<String> findUserNames(Long[] ids) {
+        List<String> usNames = userMapper.findUserNames(ids).stream().map(SysUser::getUserName).collect(Collectors.toList());
+                //.stream().map(SysUser::getUserName).collect(Collectors.toList());;
+        System.out.println("99999999999900000000000");
+        System.out.println(usNames);
+                //.stream().map(SysUser::getUserName).collect(Collectors.toList());
+        return usNames;
+    }
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃
@@ -262,6 +282,8 @@
         insertUserPost(user);
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         insertUserRole(user);
+
+
         return rows;
     }
 
@@ -296,6 +318,9 @@
         userPostMapper.deleteUserPostByUserId(userId);
         // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞�
         insertUserPost(user);
+
+        //鏇存柊鐢ㄦ埛淇℃伅琛�
+
         return userMapper.updateUser(user);
     }
 
@@ -382,6 +407,7 @@
      */
     public void insertUserRole(SysUser user)
     {
+
         this.insertUserRole(user.getUserId(), user.getRoleIds());
     }
 
@@ -467,7 +493,29 @@
         userRoleMapper.deleteUserRole(userIds);
         // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱�
         userPostMapper.deleteUserPost(userIds);
-        return userMapper.deleteUserByIds(userIds);
+        //鎵惧埌鐢ㄦ埛鍚�
+        List<String> unames = findUserNames(userIds);
+        for(String name :unames) {
+          //  System.out.println(name.equals(""));
+         //   System.out.println(name==null);
+
+         //   if(name!="" || name != null) {
+                ZInfoUser fs = new ZInfoUser();
+                fs.setNickName(name);
+                List<ZInfoUser> lis = zInfoUserService.selectByCondition(fs);
+                System.out.println("902");
+
+                System.out.println(lis.size());
+                if (!name.equals("") && lis.size() > 0)
+                    userMapper.deleteUserByUserName(name);
+                else
+                    userMapper.deleteUserByName(name);
+          //  }
+        }
+
+        return 1;
+//        zInfoUserService.removeByUserName( findUserNames(userIds));
+
     }
 
     /**
@@ -540,4 +588,49 @@
         }
         return successMsg.toString();
     }
+
+    @Override
+    public boolean saveBatch(Collection<SysUser> entityList, int batchSize) {
+        return false;
+    }
+
+    @Override
+    public boolean saveOrUpdateBatch(Collection<SysUser> entityList, int batchSize) {
+        return false;
+    }
+
+    @Override
+    public boolean updateBatchById(Collection<SysUser> entityList, int batchSize) {
+        return false;
+    }
+
+    @Override
+    public boolean saveOrUpdate(SysUser entity) {
+        return false;
+    }
+
+    @Override
+    public SysUser getOne(Wrapper<SysUser> queryWrapper, boolean throwEx) {
+        return null;
+    }
+
+    @Override
+    public Map<String, Object> getMap(Wrapper<SysUser> queryWrapper) {
+        return null;
+    }
+
+    @Override
+    public <V> V getObj(Wrapper<SysUser> queryWrapper, Function<? super Object, V> mapper) {
+        return null;
+    }
+
+    @Override
+    public BaseMapper<SysUser> getBaseMapper() {
+        return null;
+    }
+
+    @Override
+    public Class<SysUser> getEntityClass() {
+        return null;
+    }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 6762007..e295da0 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -50,7 +50,7 @@
 	
 	<select id="selectMenuTreeAll" resultMap="SysMenuResult">
 		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
-		from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0
+		from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0 and m.menu_id in (1, 100, 118)
 		order by m.parent_id, m.order_num
 	</select>
 	
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index d86c444..0750bab 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -26,7 +26,7 @@
         <association property="dept"    column="dept_id" javaType="SysDept" resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"           resultMap="RoleResult" />
     </resultMap>
-	
+
     <resultMap id="deptResult" type="SysDept">
         <id     property="deptId"    column="dept_id"     />
         <result property="parentId"  column="parent_id"   />
@@ -45,9 +45,9 @@
         <result property="dataScope"     column="data_scope"    />
         <result property="status"       column="role_status"    />
     </resultMap>
-	
+
 	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
+        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
         from sys_user u
@@ -55,11 +55,19 @@
 		    left join sys_user_role ur on u.user_id = ur.user_id
 		    left join sys_role r on r.role_id = ur.role_id
     </sql>
-    
+	<select id="findUserNames" parameterType="Long" resultMap="SysUserResult">
+	SELECT
+	user_name
+	from sys_user
+	WHERE user_id IN
+	<foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
+		#{id}
+	</foreach>
+	</select>
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
 		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
-		where u.del_flag = '0'
+		where u.del_flag = '0' or u.del_flag = '2'
 		<if test="userId != null and userId != 0">
 			AND u.user_id = #{userId}
 		</if>
@@ -141,7 +149,7 @@
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
 	</select>
-	
+
 	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
@@ -207,12 +215,28 @@
  		update sys_user set password = #{password} where user_name = #{userName}
 	</update>
 	
-	<delete id="deleteUserById" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id = #{userId}
+	<delete id="deleteUserByUserName" parameterType="String">
+ 		update sys_user set status = '1' where user_name= #{userName}
  	</delete>
- 	
- 	<delete id="deleteUserByIds" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id in
+	<delete id="deleteUserByName" parameterType="String">
+		delete from sys_user where user_name= #{userName}
+	</delete>
+
+	<delete id="deleteUserById" parameterType="Long">
+		update sys_user set status = '1' where user_id = #{userId}
+	</delete>
+
+
+
+	<delete id="deleteById" parameterType="Long">
+		delete from sys_user where user_id in
+		<foreach collection="array" item="userId" open="(" separator="," close=")">
+			#{userId}
+		</foreach>
+	</delete>
+
+	<delete id="deleteUserByIds" parameterType="Long">
+ 		update sys_user set status = '1' where user_id in
  		<foreach collection="array" item="userId" open="(" separator="," close=")">
  			#{userId}
         </foreach> 
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java b/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java
new file mode 100644
index 0000000..d0b55d9
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java
@@ -0,0 +1,63 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+@TableName("live_streaming")
+public class LiveStreaming {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 寮�濮嬪紑浼氭椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 缁撴潫寮�浼氭椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+    /**
+     * 鏍囬
+     */
+    private String title;
+    /**
+     * 鐢宠浜�
+     */
+    private String applyPerson;
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contactPerson;
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    private String contactPhone;
+    /**
+     * 鐢熸垚鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP)
+    private Timestamp happenStartTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP)
+    private Timestamp happenEndTime;
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/Meeting.java b/zhang-content/src/main/java/com/ruoyi/domain/Meeting.java
new file mode 100644
index 0000000..ed6e0f3
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/Meeting.java
@@ -0,0 +1,103 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.joda.time.DateTime;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+@TableName("meeting")
+public class Meeting {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鏍囬
+     */
+    @Excel(name = "鏍囬")
+    private String title;
+    /**
+     * 鍦扮偣
+     */
+    @Excel(name = "鍦扮偣")
+    private String place;
+    /**
+     * 鍙绾充汉鏁�
+     */
+    @Excel(name = "鍙绾充汉鏁�")
+    private int conPeople;
+    /**
+     * 鍙備笌浜烘暟
+     */
+    @Excel(name = "鍙備笌浜烘暟")
+    private int partPeople;
+    /**
+     * 鐢宠浜�
+     */
+    @Excel(name = "鐢宠浜�")
+    private String applyPerson;
+    /**
+     * 鐢宠閮ㄩ棬鎴栧搴�
+     */
+    @Excel(name = "鐢宠閮ㄩ棬鎴栧搴�")
+    private String applyApart;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @Excel(name = "寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @Excel(name = "缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
+
+    /**
+     * 寮�濮嬪紑浼氭椂闂�
+     */
+    @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP)
+    private Timestamp happenStartTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP)
+    private Timestamp happenEndTime;
+    /**
+     * 鏄惁鎽嗘斁姘寸墝
+     */
+    @Excel(name = "鏄惁鎽嗘斁姘寸墝")
+    private int isPlacebrand;
+    /**
+     * 鑱旂郴浜�
+     */
+    @Excel(name = "鑱旂郴浜�")
+    private String connPerson;
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    @Excel(name = "鑱旂郴鐢佃瘽")
+    private String connPhone;
+    /**
+     * 鐘舵��
+     */
+    @Excel(name = "鐘舵��")
+    private int statu;
+    /**
+     * 鐢熸垚鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/MeetingRatify.java b/zhang-content/src/main/java/com/ruoyi/domain/MeetingRatify.java
new file mode 100644
index 0000000..d51e2c1
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/MeetingRatify.java
@@ -0,0 +1,28 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("meeting_ratify")
+public class MeetingRatify {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private int familyId;
+
+    private String useTime;
+
+    private String conferenceRoom;
+
+    private String title;
+
+    private int applyPerson;
+
+    private int ratifyPerson;
+
+    private String status;
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/MeetingStatistic.java b/zhang-content/src/main/java/com/ruoyi/domain/MeetingStatistic.java
new file mode 100644
index 0000000..a94a2c8
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/MeetingStatistic.java
@@ -0,0 +1,63 @@
+package com.ruoyi.domain;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("meeting_statistic")
+public class MeetingStatistic {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 瀹跺涵鍙�
+     */
+    private Long familyId;
+    /**
+     * 浣跨敤鏃堕棿
+     */
+    private String useTime;
+    /**
+     * 浼氳瀹ゅ悕绉�
+     */
+    private String conferenceRoom;
+    /**
+     * 鏍囬
+     */
+    private String title;
+    /**
+     * 鐢宠浜�
+     */
+    private String applyPerson;
+    /**
+     * 瀹℃壒浜�
+     */
+    private int ratifyPerson;
+    /**
+     * 鐘舵��
+     */
+    private int status;
+    /**
+     * 寮�濮嬪紑浼氭椂闂�
+     */
+    @JsonFormat(timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    private Date happenStartTime;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @JsonFormat(timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    private Date happenEndTime;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/MemoBook.java b/zhang-content/src/main/java/com/ruoyi/domain/MemoBook.java
index 0b65b89..df48b13 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/MemoBook.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/MemoBook.java
@@ -34,5 +34,7 @@
     private Date createTime;
 
     private String content;
+    
+    private String url;
 
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ShareMore.java b/zhang-content/src/main/java/com/ruoyi/domain/ShareMore.java
new file mode 100644
index 0000000..6869fef
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ShareMore.java
@@ -0,0 +1,27 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ShareMore implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐢ㄦ埛id
+     */
+    private Long userId;
+
+    /**
+     * 鍒嗕韩鐨勭敤鎴穒d
+     */
+    private Long[] shareIds;
+
+    /**
+     * 鍒嗕韩鐨勫唴瀹�
+     */
+    private Long[] shareContents;
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java b/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
index 706d8c7..c0b04c6 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
@@ -91,6 +91,9 @@
 
     /**
      * 鍏辫鍥㈣垂
+     *
+     *
+     *
      */
     private Double groupTotal;
 
@@ -99,6 +102,8 @@
      */
     private Double totalPrice;
 
+    private String spee;
+
     /**
      * 鍒涘缓鏃堕棿
      */
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java b/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
index bafe54e..e2c01fc 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
@@ -106,5 +106,7 @@
      */
     private String document;
 
+    private Double otherCost;
 
+    private String backInfo;
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPrice.java b/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPrice.java
index 6975b4b..8d9e0bd 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPrice.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPrice.java
@@ -101,6 +101,8 @@
      */
     private Long myId;
 
+
+
     /**
      * 璧峰鏃堕棿鎼滅储浼犲叆
      */
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPriceDetail.java b/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPriceDetail.java
index ae10573..09d7d08 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPriceDetail.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZTravelPriceDetail.java
@@ -68,6 +68,8 @@
     private Double totalCost;
 
 
+
+
     /**
      * 娑堣垂鏃ユ湡
      */
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
index 5abaf28..91b6fab 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
@@ -94,4 +94,5 @@
     @TableField(exist = false)
     private Integer ownData;
 
+    private Long shareId;
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctorShare.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctorShare.java
new file mode 100644
index 0000000..5c492b5
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctorShare.java
@@ -0,0 +1,35 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("zf_doctor_share")
+public class ZfDoctorShare implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐢ㄦ埛id
+     */
+    private Long userId;
+
+    /**
+     * 鍒嗕韩鐨勭敤鎴穒d
+     */
+    private Long shareId;
+
+    /**
+     * 鍒嗕韩鐨勫唴瀹�
+     */
+    private Long shareContent;
+
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfFamily.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfFamily.java
index 7c4175d..0f0cdc2 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfFamily.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfFamily.java
@@ -27,5 +27,18 @@
     /**
      * 瀹跺涵鍚嶇О
      */
+    @Excel(name="瀹跺涵鍙�")
+
     private String name;
+
+
+    /**
+     * 瀹跺涵鍚嶇О
+     */
+    @Excel(name="鐖朵翰id")
+
+    private Long fid;
+
+
+
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/dto/EmpowerDto.java b/zhang-content/src/main/java/com/ruoyi/domain/dto/EmpowerDto.java
index 735d325..7d19989 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/dto/EmpowerDto.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/dto/EmpowerDto.java
@@ -15,5 +15,19 @@
 public class EmpowerDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 鐢ㄦ埛id
+     */
+    private Long [] uids;
+
+    /**
+     * 瀹跺涵id
+     */
+    private Long fid;
+
+    /**
+     * 鏉冮檺鐮�
+     */
+    private Long[] authoritys;
 
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java
new file mode 100644
index 0000000..b87c077
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.LiveStreaming;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface LiveStreamingBackMapper extends BaseMapper<LiveStreaming> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java
new file mode 100644
index 0000000..90be548
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.LiveStreaming;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface LiveStreamingMapper extends BaseMapper<LiveStreaming> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/MeetingMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingMapper.java
new file mode 100644
index 0000000..cddde69
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.domain.Meeting;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface MeetingMapper extends BaseMapper<Meeting> {
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/MeetingRatifyMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingRatifyMapper.java
new file mode 100644
index 0000000..e0ee573
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingRatifyMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.Meeting;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MeetingRatifyMapper extends BaseMapper<Meeting> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/MeetingStatisticMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingStatisticMapper.java
new file mode 100644
index 0000000..8c774e6
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/MeetingStatisticMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.MeetingStatistic;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MeetingStatisticMapper extends BaseMapper<MeetingStatistic> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/ZfDoctorShareMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/ZfDoctorShareMapper.java
new file mode 100644
index 0000000..57f5a07
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/ZfDoctorShareMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.ZfDoctorShare;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ZfDoctorShareMapper extends BaseMapper<ZfDoctorShare> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/IZfPropertyService.java b/zhang-content/src/main/java/com/ruoyi/service/IZfPropertyService.java
index 9106639..e5a6790 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/IZfPropertyService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/IZfPropertyService.java
@@ -22,6 +22,8 @@
     AjaxResult selectDataList(ZfProperty zfProperty,Integer pageNum,Integer pageSize);
     List<ZfProperty> selectByIds(Long[] ids);
 
+    AjaxResult selectType();
+
     List<ZfProperty> selectByFamilyIds(Long[] familyIds);
     AjaxResult addData(ZfProperty zfProperty);
 
diff --git a/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java
new file mode 100644
index 0000000..afab862
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.LiveStreaming;
+
+import java.util.List;
+
+public interface LiveStreamingBackService extends IService<LiveStreaming> {
+    AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize);
+
+    List<LiveStreaming> selectByIds(Long[] ids);
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java
new file mode 100644
index 0000000..59354ff
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.LiveStreaming;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+public interface LiveStreamingService extends IService<LiveStreaming> {
+    AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize);
+
+    List<LiveStreaming> selectByIds(Long[] ids);
+
+    AjaxResult addData(LiveStreaming liveStreaming);
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/MeetingRatifyService.java b/zhang-content/src/main/java/com/ruoyi/service/MeetingRatifyService.java
new file mode 100644
index 0000000..494cf06
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/MeetingRatifyService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.Meeting;
+
+public interface MeetingRatifyService extends IService<Meeting> {
+
+    AjaxResult selectDataList(Meeting meeting, Integer pageNum, Integer pageSize);
+
+    AjaxResult updateData(Meeting meeting);
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/MeetingService.java b/zhang-content/src/main/java/com/ruoyi/service/MeetingService.java
new file mode 100644
index 0000000..8e96d13
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/MeetingService.java
@@ -0,0 +1,31 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.Meeting;
+import com.ruoyi.domain.ZfClean;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+public interface MeetingService  extends IService<Meeting> {
+
+    AjaxResult selectDataList(Meeting meeting, Integer pageNum, Integer pageSize);
+
+    List<Meeting> selectByCondition(Meeting meeting);
+
+    List<Meeting> selectByIds(Long[] ids);
+//    AjaxResult addData(ZfClean zfClean);
+
+//    AjaxResult addData2(ZfClean zfClean);
+
+    AjaxResult importExcel(MultipartFile file);
+
+    AjaxResult updateData(Meeting meeting);
+
+    AjaxResult deleteData(Long[] ids);
+
+    AjaxResult addData(Meeting meeting);
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/MeetingStatisticService.java b/zhang-content/src/main/java/com/ruoyi/service/MeetingStatisticService.java
new file mode 100644
index 0000000..6b81a0c
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/MeetingStatisticService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.MeetingStatistic;
+
+import java.util.List;
+
+public interface MeetingStatisticService extends IService<MeetingStatistic> {
+
+    AjaxResult updateData(MeetingStatistic meetingStatistic);
+
+    AjaxResult deleteData(Long[] ids);
+
+    AjaxResult DataList(MeetingStatistic meetingStatistic);
+
+    AjaxResult addData(MeetingStatistic meetingStatistic);
+
+    List<MeetingStatistic> selectByIds(Long[] ids);
+
+    AjaxResult selectDataList(MeetingStatistic meetingStatistic, Integer pageNum, Integer pageSize);
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZAuthorityService.java b/zhang-content/src/main/java/com/ruoyi/service/ZAuthorityService.java
index 183a8df..af33434 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/ZAuthorityService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZAuthorityService.java
@@ -5,6 +5,7 @@
 import com.ruoyi.domain.ZAuthority;
 import com.ruoyi.domain.dto.AuthorityDto;
 import com.ruoyi.domain.dto.AuthorityDto2;
+import com.ruoyi.domain.dto.EmpowerDto;
 
 import java.util.List;
 
@@ -24,4 +25,9 @@
     AjaxResult managerAuthority(AuthorityDto2 authorityDto);
 
     AjaxResult getOtherAuthority(AuthorityDto authorityDto);
+
+    AjaxResult saveZa(EmpowerDto zAuthority);
+
+    AjaxResult deleteZa(EmpowerDto empowerDto);
+    AjaxResult listByFidAid(ZAuthority zAuthority);
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java b/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java
index 67ef1bc..e561557 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java
@@ -22,8 +22,11 @@
 
     AjaxResult selectInfoList(ZInfoUser zInfoUser, Integer pageNum, Integer pageSize);
 
+    AjaxResult getInfoByfid(Long fid);
     List<ZInfoUser> selectByCondition(ZInfoUser zInfoUser);
 
+    AjaxResult removeByUserName(List<String> userName);
+    List<ZInfoUser> selectByFamId(long fid);
     AjaxResult searchMyRelation();
 
     AjaxResult addRelation(ZfRelation zfRelation);
@@ -39,7 +42,7 @@
     AjaxResult addParent(Long fatherId, Long motherId);
 
     AjaxResult listAllExceptAdmin();
-
+    AjaxResult listAllFamilyPeople();
     AjaxResult listMySelfAndSpouse(Long id);
 
     AjaxResult listGenealogy(Genealogy genealogy,Integer pageNum,Integer pageSize);
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZfDoctorShareService.java b/zhang-content/src/main/java/com/ruoyi/service/ZfDoctorShareService.java
new file mode 100644
index 0000000..5b125ae
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZfDoctorShareService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.ShareMore;
+import com.ruoyi.domain.ZfDoctor;
+import com.ruoyi.domain.ZfDoctorShare;
+
+import java.util.List;
+
+public interface ZfDoctorShareService extends IService<ZfDoctorShare> {
+
+    List<ZfDoctorShare> getAuthority();
+
+    AjaxResult saveZa(ShareMore zfDoctor);
+
+    AjaxResult listByFidAid(ShareMore zfDoctor);
+
+    AjaxResult deleteZa(ShareMore zfDoctor);
+
+    AjaxResult listByUserId();
+
+    List<ZfDoctor> listUserId(Long shareId);
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZfFamilyService.java b/zhang-content/src/main/java/com/ruoyi/service/ZfFamilyService.java
index d74a482..967eadb 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/ZfFamilyService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZfFamilyService.java
@@ -18,12 +18,13 @@
 @Service
 public interface ZfFamilyService extends IService<ZfFamily> {
 
+    ZfFamily getByNameAndUser(ZfFamily zfFamily);
     /**
      * 鏍规嵁瀹跺涵鍚嶅瓧鏌ヨ瀹跺涵
      */
     ZfFamily getByName(String familyName);
-
-
+    ZfFamily getByFid(Long fid);
+    ZfFamily getByFamId(Long fid);
     List<UserInfoDto> getByFamilyId(Long fid);
 
     List<UserInfoDto> getNowMember();
@@ -31,4 +32,11 @@
     AjaxResult addMember(UserInfoDto userInfoDto);
 
     AjaxResult removeMember(UserInfoDto userInfoDto);
+
+
+    AjaxResult addFamily(ZfFamily zfFamily);
+
+    AjaxResult updateFam(ZfFamily zfFamily);
+
+    AjaxResult deleteFam(Long []ids);
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
index 9a06fa0..dcb41ca 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/IZfPropertyServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -258,6 +259,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
@@ -299,6 +305,12 @@
         else
             list = list();
         return list;
+    }
+
+    @Override
+    public AjaxResult selectType() {
+        List<String> lis = list(new QueryWrapper<ZfProperty>().select("distinct (type)").lambda()).stream().map(ZfProperty::getType).collect(Collectors.toList());
+        return AjaxResult.success(lis);
     }
 
     @Override
@@ -416,8 +428,9 @@
     @Override
     public AjaxResult updateData(ZfProperty zfProperty) {
         ZInfoUser myself = zInfoUserService.getMyself();
-        Long familyId = myself.getFamilyId();
 
+        Long familyId = myself.getFamilyId();
+      //  System.out.println("sssssssssssss");
         //鍏堟牴鎹甶d鏌ヨ鍑烘暟鎹殑familyId锛岀湅鐪嬫湁娌℃湁鏉冮檺鎿嶄綔
         Long dataFamilyId = getById(zfProperty.getId()).getFamilyId();
 
@@ -439,9 +452,11 @@
         if(updateById(zfProperty)){
             //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
             ZfProperty dataById = getById(zfProperty.getId());
-
             //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
             EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵璧勪骇");
+            if (esResult == null){
+                return AjaxResult.success();
+            }
 
             //鎿嶄綔es淇敼鏁版嵁
             EsModel newModel = new EsModel();
@@ -491,7 +506,6 @@
                     "by6",newModel.getBy6(),
                     "remark",newModel.getRemark()
             );
-
             try {
                 restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
             } catch (IOException e) {
@@ -529,12 +543,14 @@
             //鍒犻櫎es涓殑鏁版嵁
             zfPropertys.stream().forEach(zfProperty -> {
                 EsModel esModel = esService.findByCtId(zfProperty.getId().intValue(), "瀹跺涵璧勪骇");
+                if(esModel!=null)
+                {
                 DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
                 try {
                     restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
                 } catch (IOException e) {
                     throw new RuntimeException(e);
-                }
+                }}
             });
             return AjaxResult.success();
         }else {
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java
new file mode 100644
index 0000000..78b43fe
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java
@@ -0,0 +1,77 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.LiveStreaming;
+import com.ruoyi.mapper.LiveStreamingBackMapper;
+import com.ruoyi.service.LiveStreamingBackService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class LiveStreamingBackServiceImpl extends ServiceImpl<LiveStreamingBackMapper, LiveStreaming> implements LiveStreamingBackService {
+
+    private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) {
+        LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>();
+//        lqw.in(LiveStreaming::getFamilyId,familyIdList);
+        lqw.orderByDesc(LiveStreaming::getCreateTime);
+        lqw.like(StringUtils.isNotEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle())
+                .like(StringUtils.isNotEmpty(liveStreaming.getApplyPerson()),LiveStreaming::getApplyPerson,liveStreaming.getApplyPerson())
+                .like(StringUtils.isNotEmpty(liveStreaming.getContactPerson()),LiveStreaming::getContactPerson,liveStreaming.getContactPerson());
+        lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime());
+
+        return lqw;
+    }
+
+    @Override
+    public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        if(myself==null)
+//        {
+//            //   System.out.println("ssssss");
+//            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+//        }
+//        Long familyId = myself.getFamilyId();
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+//        String familyIds = listFamilyIds();
+//        String secondFamilyAuthority = listSecondFamilyIds();
+        LambdaQueryWrapper<LiveStreaming> lqw = buildCondition(liveStreaming);
+
+
+        Page<LiveStreaming> liveStreamingPage = new Page<>(pageNum, pageSize);
+        Page<LiveStreaming> pageResult = page(liveStreamingPage, lqw);
+
+        List<LiveStreaming> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+
+//        List<LiveStreaming> dtoResult = markOwnData(familyId, beanRecords);
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);
+
+    }
+
+
+    @Override
+    public List<LiveStreaming> selectByIds(Long[] ids) {
+        List<LiveStreaming> list = new ArrayList<>();
+        if (ids.length != 0)
+            list = listByIds(Arrays.asList(ids));
+        else
+            list = list();
+        return list;
+    }
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java
new file mode 100644
index 0000000..f153e93
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java
@@ -0,0 +1,132 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.*;
+import com.ruoyi.mapper.LiveStreamingMapper;
+import com.ruoyi.service.EsService;
+import com.ruoyi.service.LiveStreamingService;
+import com.ruoyi.service.ZAuthorityService;
+import com.ruoyi.service.ZInfoUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.ruoyi.constant.MenuAuthority.DOCTOR_LIST;
+@Slf4j
+@Service
+public class LiveStreamingServiceImpl extends ServiceImpl<LiveStreamingMapper, LiveStreaming> implements LiveStreamingService {
+
+    @Resource
+    ZInfoUserService zInfoUserService;
+
+    @Resource
+    ZAuthorityService zAuthorityService;
+
+    @Resource
+    private EsService esSer;
+
+    private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) {
+        LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>();
+//        lqw.in(LiveStreaming::getFamilyId,familyIdList);
+        lqw.orderByDesc(LiveStreaming::getCreateTime);
+        lqw.like(StringUtils.isNotEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle())
+                .like(StringUtils.isNotEmpty(liveStreaming.getApplyPerson()),LiveStreaming::getApplyPerson,liveStreaming.getApplyPerson())
+                .like(StringUtils.isNotEmpty(liveStreaming.getContactPerson()),LiveStreaming::getContactPerson,liveStreaming.getContactPerson());
+        lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime());
+
+        return lqw;
+    }
+
+    private LambdaQueryWrapper<LiveStreaming> uniqueCondition(LiveStreaming liveStreaming){
+        LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(!StringUtils.isEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle());
+        lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPhone()), LiveStreaming::getContactPhone, liveStreaming.getContactPhone());
+        lqw.eq(!StringUtils.isEmpty(liveStreaming.getApplyPerson()), LiveStreaming::getApplyPerson, liveStreaming.getApplyPerson());
+        lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPerson()), LiveStreaming::getContactPerson, liveStreaming.getContactPerson());
+        return lqw;
+    }
+
+    @Override
+    public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        if(myself==null)
+//        {
+//            //   System.out.println("ssssss");
+//            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+//        }
+//        Long familyId = myself.getFamilyId();
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+//        String familyIds = listFamilyIds();
+//        String secondFamilyAuthority = listSecondFamilyIds();
+        LambdaQueryWrapper<LiveStreaming> lqw = buildCondition(liveStreaming);
+
+
+        Page<LiveStreaming> liveStreamingPage = new Page<>(pageNum, pageSize);
+        Page<LiveStreaming> pageResult = page(liveStreamingPage, lqw);
+
+        List<LiveStreaming> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+
+//        List<LiveStreaming> dtoResult = markOwnData(familyId, beanRecords);
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);
+
+    }
+
+
+    @Override
+    public List<LiveStreaming> selectByIds(Long[] ids) {
+        List<LiveStreaming> list = new ArrayList<>();
+        if (ids.length != 0)
+            list = listByIds(Arrays.asList(ids));
+        else
+            list = list();
+        return list;
+    }
+
+    @Override
+    public AjaxResult addData(LiveStreaming liveStreaming) {
+        LambdaQueryWrapper<LiveStreaming> lqw = uniqueCondition(liveStreaming);
+        List<LiveStreaming> list = list(lqw);
+
+        if(list.size()>0){
+            throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
+        }
+
+        if (save(liveStreaming)) {
+            EsModel esModel = new EsModel();
+            Long inte =liveStreaming.getId();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("鐩存挱");
+            esModel.setBy1(liveStreaming.getTitle());
+            esModel.setBy2(liveStreaming.getApplyPerson());
+
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esModel.setBy5("/zLIveStreaming");
+//            esModel.setFid(familyId);
+            esSer.insertTable(esModel);
+//            System.out.println(esModel);
+
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+
+        }
+    }
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingRatifyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingRatifyServiceImpl.java
new file mode 100644
index 0000000..f2895d6
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingRatifyServiceImpl.java
@@ -0,0 +1,130 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.Meeting;
+import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.domain.ZfLog;
+import com.ruoyi.mapper.MeetingRatifyMapper;
+import com.ruoyi.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+
+@Slf4j
+@Service
+public class MeetingRatifyServiceImpl extends ServiceImpl<MeetingRatifyMapper, Meeting> implements MeetingRatifyService {
+
+    @Resource
+    ZInfoUserService zInfoUserService;
+
+    @Resource
+    ZfLogService zfLogService;
+
+    @Resource
+    private EsService esSer;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
+
+    private LambdaQueryWrapper<Meeting> buildCondition(Meeting meeting) {
+        LambdaQueryWrapper<Meeting> lqw = new LambdaQueryWrapper<>();
+        //    lqw.in(ZfDoctor::getFamilyId,familyIdList);
+        lqw.orderByDesc(Meeting::getCreateTime);
+        lqw.like(StringUtils.isNotEmpty(meeting.getPlace()), Meeting::getPlace, meeting.getPlace())
+                .like(StringUtils.isNotEmpty(meeting.getApplyApart()), Meeting::getApplyApart, meeting.getApplyApart());
+//                .like(Integer.valueOf(meeting.getApplyPerson())!=null, Meeting::getApplyPerson, meeting.getApplyPerson());
+        lqw.between(meeting.getHappenStartTime() != null && meeting.getHappenEndTime() != null, Meeting::getStartTime, meeting.getHappenStartTime(), meeting.getHappenEndTime());
+
+        return lqw;
+    }
+
+
+    @Override
+    public AjaxResult selectDataList(Meeting meeting, Integer pageNum, Integer pageSize) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+        ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
+        Long familyId = myself.getFamilyId();
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+//        String familyIds = listFamilyIds();
+//        String secondFamilyAuthority = listSecondFamilyIds();
+        LambdaQueryWrapper<Meeting> lqw = buildCondition(meeting);
+
+
+        Page<Meeting> meetingPage = new Page<>(pageNum, pageSize);
+        Page<Meeting> pageResult = page(meetingPage, lqw);
+
+        List<Meeting> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+//        System.out.println(beanRecords);
+
+
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);    }
+
+
+    @Override
+    public AjaxResult updateData(Meeting meeting) {
+
+        ZfLog zfLog = new ZfLog();
+        zfLog.setUpdateTime(LocalDateTime.now());
+        zfLog.setModule("浼氳瀹℃壒");
+        zfLog.setUpdater(zInfoUserService.getMyself().getNickName());
+        zfLogService.save(zfLog);
+
+        if (updateById(meeting)) {
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            Meeting dataById = getById(meeting.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esSer.findByCtId(dataById.getId().intValue(), "浼氳瀹℃壒");
+//            System.out.println("====================================" + meeting);
+            if (esResult == null) {
+                return AjaxResult.success();
+            }
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+            if (meeting.getStatu() != 0) {
+                newModel.setBy13(meeting.getStatu());
+            } else {
+                newModel.setBy13(dataById.getStatu());
+            }
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by12", newModel.getBy13()
+            );
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+        }
+    }}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingServiceImpl.java
new file mode 100644
index 0000000..e298673
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingServiceImpl.java
@@ -0,0 +1,425 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.domain.*;
+import com.ruoyi.mapper.MeetingMapper;
+import com.ruoyi.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.ruoyi.constant.MenuAuthority.*;
+
+@Slf4j
+@Service
+public class MeetingServiceImpl  extends ServiceImpl<MeetingMapper, Meeting> implements MeetingService {
+
+    @Resource
+    ZInfoUserService zInfoUserService;
+
+    @Resource
+    ZAuthorityService zAuthorityService;
+
+    @Resource
+    private EsService esSer;
+
+    @Resource
+    ZfLogService zfLogService;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
+
+    @Resource
+    private MeetingService meetingService;
+
+    private LambdaQueryWrapper<Meeting> buildCondition(Meeting meeting) {
+        LambdaQueryWrapper<Meeting> lqw = new LambdaQueryWrapper<>();
+    //    lqw.in(ZfDoctor::getFamilyId,familyIdList);
+        lqw.orderByDesc(Meeting::getCreateTime);
+        lqw.like(StringUtils.isNotEmpty(meeting.getPlace()), Meeting::getPlace, meeting.getPlace())
+                .like(StringUtils.isNotEmpty(meeting.getApplyApart()), Meeting::getApplyApart, meeting.getApplyApart());
+//                .like(Integer.valueOf(meeting.getApplyPerson())!=null, Meeting::getApplyPerson, meeting.getApplyPerson());
+
+        lqw.between(meeting.getHappenStartTime() != null && meeting.getHappenEndTime() != null, Meeting::getStartTime, meeting.getHappenStartTime(), meeting.getHappenEndTime());
+
+        return lqw;
+    }
+    private LambdaQueryWrapper<Meeting> uniqueCondition(Meeting meeting){
+        LambdaQueryWrapper<Meeting> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(!StringUtils.isEmpty(meeting.getPlace()), Meeting::getPlace, meeting.getPlace());
+        lqw.eq(!StringUtils.isEmpty(meeting.getApplyApart()), Meeting::getApplyApart, meeting.getApplyApart());
+        lqw.eq(!StringUtils.isEmpty(meeting.getTitle()), Meeting::getTitle, meeting.getTitle());
+        lqw.eq(!StringUtils.isEmpty(meeting.getConnPhone()), Meeting::getConnPhone, meeting.getConnPhone());
+//        lqw.eq(meeting.getFamilyId()!=null,Meeting::getFamilyId,meeting.getFamilyId());
+        lqw.eq(!StringUtils.isEmpty(String.valueOf(meeting.getApplyPerson())), Meeting::getApplyPerson, meeting.getApplyPerson());
+        lqw.eq(!StringUtils.isEmpty(String.valueOf(meeting.getPartPeople())), Meeting::getPartPeople, meeting.getPartPeople());
+        lqw.eq(!StringUtils.isEmpty(meeting.getConnPerson()), Meeting::getConnPerson, meeting.getConnPerson());
+        return lqw;
+    }
+
+
+
+    @Override
+    public AjaxResult selectDataList(Meeting meeting, Integer pageNum, Integer pageSize) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+        ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
+        Long familyId = myself.getFamilyId();
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+//        String familyIds = listFamilyIds();
+//        String secondFamilyAuthority = listSecondFamilyIds();
+        LambdaQueryWrapper<Meeting> lqw = buildCondition(meeting);
+
+
+        Page<Meeting> meetingPage = new Page<>(pageNum, pageSize);
+        Page<Meeting> pageResult = page(meetingPage, lqw);
+
+        List<Meeting> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+//        System.out.println(beanRecords);
+
+
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);    }
+
+
+
+    @Override
+    public List<Meeting> selectByCondition(Meeting meeting) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+        ZInfoUser myself = zInfoUserService.getMyself();
+//        System.out.println("================");
+
+//        Long familyId = myself.getFamilyId();
+//
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+
+        LambdaQueryWrapper<Meeting> lambdaQueryWrapper = buildCondition(meeting);
+        List<Meeting> beanRecords = list(lambdaQueryWrapper);
+        log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords);
+        return  beanRecords;
+    }
+
+    @Override
+    public List<Meeting> selectByIds(Long[] ids) {
+        List<Meeting> list = new ArrayList<>();
+        if (ids.length != 0)
+            list = listByIds(Arrays.asList(ids));
+        else
+            list = list();
+        return list;
+
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult importExcel(MultipartFile file) {
+        ExcelUtil<Meeting> util = new ExcelUtil<>(Meeting.class);
+        List<Meeting> dataList = null;
+        try {
+            dataList = util.importExcel(file.getInputStream());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        log.info("鏁版嵁鍒楄〃涓猴細{}", dataList);
+
+
+        for (Meeting meeting : dataList) {
+            meetingService.addData(meeting);
+        }
+
+        return AjaxResult.success("瀵煎叆鏁版嵁鎴愬姛");
+
+    }
+
+    @Override
+    public AjaxResult updateData(Meeting meeting) {
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        Long familyId = myself.getFamilyId();
+//
+//        //鍏堟牴鎹甶d鏌ヨ鍑烘暟鎹殑familyId锛岀湅鐪嬫湁娌℃湁鏉冮檺鎿嶄綔
+//        Long dataFamilyId = getById(zfDoctor.getId()).getFamilyId();
+//
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST_UPDATE)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        familyIdList.add(familyId);
+
+//        if (dataFamilyId!=null && !familyIdList.contains(dataFamilyId)) {
+//            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+//        }
+
+        //鎿嶄綔鍚庡姞鍏ユ棩蹇�
+        ZfLog zfLog = new ZfLog();
+        zfLog.setUpdateTime(LocalDateTime.now());
+        zfLog.setModule("浼氳");
+        zfLog.setUpdater(zInfoUserService.getMyself().getNickName());
+        zfLogService.save(zfLog);
+//        System.out.println("===================================="+meeting);
+        if(updateById(meeting)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            Meeting dataById = getById(meeting.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esSer.findByCtId(dataById.getId().intValue(), "浼氳");
+//            System.out.println("===================================="+meeting);
+            if (esResult == null){
+                return AjaxResult.success();
+            }
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+//            System.out.println(meeting);
+//            System.out.println("=============="+meeting.getConnPhone());
+            if(meeting.getTitle()!=null){
+                newModel.setBy1(meeting.getTitle());
+            }else {
+                newModel.setBy1(dataById.getTitle());
+            }
+
+            if(meeting.getPlace()!=null){
+                newModel.setBy2(meeting.getPlace());
+            }else {
+                newModel.setBy2(dataById.getPlace());
+            }
+//
+//            if(StringUtils.isNotEmpty(String.valueOf(meeting.getConPeople()))){
+//                newModel.setBy8(meeting.getConPeople());
+//            }else {
+//                newModel.setBy8(dataById.getConPeople());
+//            }
+//
+//            if(meeting.getPartPeople() == 0){
+//                newModel.setBy9(meeting.getPartPeople());
+//            }else {
+//                newModel.setBy9(dataById.getPartPeople());
+//            }
+
+
+//            if(meeting.getApplyPerson() != 0){
+//                newModel.setBy10(meeting.getApplyPerson());
+//            }else {
+//                newModel.setBy10(dataById.getApplyPerson());
+//            }
+//
+//            if(meeting.getApplyApart()!=null){
+//                newModel.setBy3(meeting.getApplyApart());
+//            }else {
+//                newModel.setBy3(dataById.getApplyApart());
+//            }
+//
+//            if(String.valueOf(meeting.getStartTime()) != null){
+//                newModel.setBy14(meeting.getStartTime());
+//            }else {
+//                newModel.setBy14(dataById.getStartTime());
+//            }
+//
+//            if(String.valueOf(meeting.getEndTime()) != null){
+//                newModel.setBy15(meeting.getEndTime());
+//            }else {
+//                newModel.setBy15(dataById.getEndTime());
+//            }
+
+//
+//            if(meeting.getIsPlacebrand() != 0 ){
+//                newModel.setBy11(meeting.getIsPlacebrand());
+//            }else {
+//                newModel.setBy11(dataById.getIsPlacebrand());
+//            }
+//
+//            if(meeting.getConnPhone()!=null){
+//                newModel.setBy12(meeting.getConnPerson());
+//            }else {
+//                newModel.setBy12(dataById.getConnPerson());
+//            }
+
+//            if(meeting.getConnPhone()!=null){
+//                newModel.setBy4(meeting.getConnPhone());
+//            }else {
+//                newModel.setBy4(dataById.getConnPhone());
+//            }
+//
+//            if(meeting.getStatu() != 0){
+//                newModel.setBy13(meeting.getStatu());
+//            }else {
+//                newModel.setBy13(dataById.getStatu());
+//            }
+
+//            if(String.valueOf(meeting.getCreateTime()) !=null){
+//                newModel.setBy16(meeting.getCreateTime());
+//            }else {
+//                newModel.setBy16(dataById.getCreateTime());
+//            }
+
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2(),
+                    //"by3",newModel.getBy8(),
+                  //  "by4",newModel.getBy9(),
+                    "by5",newModel.getBy10()
+                  //  "by6",newModel.getBy11(),
+                 //   "by7",newModel.getBy3(),
+                  //  "by8",newModel.getBy14(),
+                 //   "by9",newModel.getBy15(),
+                 //   "by10",newModel.getBy12(),
+                 //   "by11",newModel.getBy4(),
+                 //   "by12",newModel.getBy13(),
+                 //   "by13",newModel.getBy15()
+
+            );
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+            return AjaxResult.success();
+        }else {
+            return AjaxResult.error();
+        }
+    }
+
+    @Override
+    public AjaxResult deleteData(Long[] ids) {
+
+//        List<Meeting> dataList = meetingService.listByIds(Arrays.asList(ids));
+//
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        Long familyId = myself.getFamilyId();
+//
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_REMOVE)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        familyIdList.add(familyId);
+//
+//        for (Meeting data : dataList) {
+//            if (!familyIdList.contains(data.getFamilyId())){
+//                throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+//            }
+//        }
+
+        List<Meeting> meetings = listByIds(Arrays.asList(ids));
+
+        if (meetingService.removeByIds(Arrays.asList(ids))) {
+
+            //鍒犻櫎es涓殑鏁版嵁
+            meetings.stream().forEach(meeting -> {
+                EsModel esModel = esSer.findByCtId((meeting.getId().intValue()), "浼氳");
+                if (esModel != null){
+                    DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                    try {
+                        restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                    } catch (IOException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            });
+
+            return AjaxResult.success();
+        }else {
+            return AjaxResult.error();
+        }
+
+    }
+
+
+
+    @Override
+    public AjaxResult addData(Meeting meeting) {
+
+//        System.out.println("-----------------000000000000");
+//
+//        System.out.println(meeting.getStartTime());
+//        ZInfoUser myself = zInfoUserService.getMyself();
+//        Long familyId = myself.getFamilyId();
+//
+//        if(familyId == null){
+//            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
+//        }
+//
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        familyIdList.add(familyId);
+
+//        if (meeting.getFamilyId()!=null && !familyIdList.contains(zfEvent.getFamilyId())) {
+//            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+//        }
+//
+////
+//        if(meeting.getFamilyId() == null){
+//            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
+//            zfEvent.setFamilyId(familyId);
+//        }
+//
+//        鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹�
+        LambdaQueryWrapper<Meeting> lqw = uniqueCondition(meeting);
+        List<Meeting> list = list(lqw);
+
+        if(list.size()>0){
+            throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
+        }
+
+        if (save(meeting)) {
+            EsModel esModel = new EsModel();
+            Long inte =meeting.getId();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(Long.valueOf(inte));
+            esModel.setCtTableName("浼氳璁板綍");
+            esModel.setBy1(meeting.getTitle());
+            esModel.setBy2(meeting.getPlace());
+          //  esModel.setBy8(meeting.getConPeople());
+         //   esModel.setBy9(meeting.getPartPeople());
+        //    esModel.setBy10(meeting.getApplyPerson());
+         //   esModel.setBy3(meeting.getApplyApart());
+         //   esModel.setBy14(meeting.getStartTime());
+         //   esModel.setBy15(meeting.getEndTime());
+        //    esModel.setBy11(meeting.getIsPlacebrand());
+        //    esModel.setBy12(meeting.getConnPerson());
+         //   esModel.setBy4(meeting.getConnPhone());
+         //   esModel.setBy13(meeting.getStatu());
+       //     esModel.setBy16( meeting.getCreateTime());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esModel.setBy5("/zMeeting");
+//            esModel.setFid(familyId);
+            esSer.insertTable(esModel);
+//            System.out.println(esModel);
+
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+
+        }
+    }
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingStatisticServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingStatisticServiceImpl.java
new file mode 100644
index 0000000..fc33ed5
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/MeetingStatisticServiceImpl.java
@@ -0,0 +1,301 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.*;
+import com.ruoyi.mapper.MeetingStatisticMapper;
+import com.ruoyi.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.*;
+
+
+@Slf4j
+@Service
+public class MeetingStatisticServiceImpl extends ServiceImpl<MeetingStatisticMapper, MeetingStatistic> implements MeetingStatisticService {
+
+    @Resource
+    ZInfoUserService zInfoUserService;
+
+    @Resource
+    ZfLogService zfLogService;
+
+    @Resource
+    private RestHighLevelClient restHighLevelClient;
+
+    @Resource
+    private EsService esSer;
+
+    @Resource
+    ZAuthorityService zAuthorityService;
+
+    @Resource
+    private MeetingStatisticService meetingStatisticService;
+
+    private LambdaQueryWrapper<MeetingStatistic> uniqueCondition(MeetingStatistic meetingStatistic){
+        LambdaQueryWrapper<MeetingStatistic> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(!StringUtils.isEmpty(meetingStatistic.getUseTime()), MeetingStatistic::getUseTime, meetingStatistic.getUseTime());
+        lqw.eq(!StringUtils.isEmpty(meetingStatistic.getConferenceRoom()), MeetingStatistic::getConferenceRoom, meetingStatistic.getConferenceRoom());
+        lqw.eq(!StringUtils.isEmpty(meetingStatistic.getTitle()), MeetingStatistic::getTitle, meetingStatistic.getTitle());
+//        lqw.eq(meetingStatistic.getFamilyId()!=null,MeetingStatistic::getFamilyId,meeting.getFamilyId());
+        lqw.eq(!StringUtils.isEmpty(meetingStatistic.getApplyPerson()), MeetingStatistic::getApplyPerson, meetingStatistic.getApplyPerson());
+        lqw.eq(!StringUtils.isEmpty(String.valueOf(meetingStatistic.getRatifyPerson())), MeetingStatistic::getRatifyPerson, meetingStatistic.getRatifyPerson());
+        lqw.eq(!StringUtils.isEmpty(String.valueOf(meetingStatistic.getStatus())), MeetingStatistic::getStatus, meetingStatistic.getStatus());
+        lqw.eq(!StringUtils.isEmpty(String.valueOf(meetingStatistic.getFamilyId())), MeetingStatistic::getFamilyId, meetingStatistic.getFamilyId());
+        return lqw;
+    }
+    public static void getDatePoor(Date endDate, Date nowDate, MeetingStatistic meetingStatistic) {
+
+        long nd = 1000 * 24 * 60 * 60;
+        long nh = 1000 * 60 * 60;
+        long nm = 1000 * 60;
+         long ns = 1000;
+        // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
+        long diff = endDate.getTime() - nowDate.getTime();
+        // 璁$畻宸灏戝ぉ
+//        long day = diff / nd;
+        // 璁$畻宸灏戝皬鏃�
+        long hour = diff % nd / nh;
+        // 璁$畻宸灏戝垎閽�
+        long min = diff % nd % nh / nm;
+        // 璁$畻宸灏戠//杈撳嚭缁撴灉
+         long sec = diff % nd % nh % nm / ns;
+        System.out.println(hour + "灏忔椂" + min + "鍒嗛挓"+ sec + "绉�");
+        meetingStatistic.setUseTime(hour + "灏忔椂" + min + "鍒嗛挓" + sec + "绉�");
+    }
+    private LambdaQueryWrapper<MeetingStatistic> buildCondition(MeetingStatistic meetingStatistic) {
+        LambdaQueryWrapper<MeetingStatistic> lqw = new LambdaQueryWrapper<>();
+        lqw.select(MeetingStatistic::getFamilyId,MeetingStatistic::getCreateTime);
+        return lqw;
+    }
+    @Override
+    public AjaxResult selectDataList(MeetingStatistic meetingStatistic, Integer pageNum, Integer pageSize) {
+        //瑕佹煡鑷繁瀹跺涵鐨�
+        ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
+        Long familyId = myself.getFamilyId();
+//        //涔熻鏌ュ埆浜烘巿鏉冪殑
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        //鍔犱笂鑷繁瀹跺涵鐨刬d
+//        idList.add(familyId);
+//        String familyIds = listFamilyIds();
+//        String secondFamilyAuthority = listSecondFamilyIds();
+        LambdaQueryWrapper<MeetingStatistic> lqw = new LambdaQueryWrapper<>();
+//        LambdaQueryWrapper<MeetingStatistic> lqw = buildCondition(meetingStatistic);
+
+
+        Page<MeetingStatistic> meetingStatisticPage = new Page<>(pageNum, pageSize);
+        Page<MeetingStatistic> pageResult = page(meetingStatisticPage, lqw);
+
+        List<MeetingStatistic> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+        System.out.println("-----------鏁版嵁搴�-----------"+beanRecords);
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);
+    }
+    @Override
+    public AjaxResult DataList(MeetingStatistic meetingStatistic) {
+        LambdaQueryWrapper<MeetingStatistic> lambdaQueryWrapper = buildCondition(meetingStatistic);
+        List<MeetingStatistic> beanRecords = list(lambdaQueryWrapper);
+        log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords);
+        return  AjaxResult.success(beanRecords);
+    }
+
+    @Override
+    public AjaxResult updateData(MeetingStatistic meetingStatistic) {
+        ZfLog zfLog = new ZfLog();
+        zfLog.setUpdateTime(LocalDateTime.now());
+        zfLog.setModule("浼氳缁熻");
+        zfLog.setUpdater(zInfoUserService.getMyself().getNickName());
+        zfLogService.save(zfLog);
+        System.out.println("===================================="+meetingStatistic);
+        if(updateById(meetingStatistic)){
+            //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
+            MeetingStatistic dataById = getById(meetingStatistic.getId());
+
+            //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
+            EsModel esResult = esSer.findByCtId(dataById.getId().intValue(), "浼氳缁熻");
+            System.out.println("===================================="+meetingStatistic);
+            if (esResult == null){
+                return AjaxResult.success();
+            }
+
+            //鎿嶄綔es淇敼鏁版嵁
+            EsModel newModel = new EsModel();
+//            System.out.println(meeting);
+//            System.out.println("=============="+meetingStatistic.getConnPhone());
+
+//           if (meetingStatistic.getUseTime()==null){
+//                if(meetingStatistic.getHappenEndTime()!=null && meetingStatistic.getHappenStartTime() !=null){
+//                  getDatePoor(meetingStatistic.getHappenEndTime(),meetingStatistic.getHappenStartTime(),meetingStatistic);
+//                    System.out.println("===============浣跨敤鏃堕棿====================="+meetingStatistic.getUseTime());
+//                    newModel.setBy2(meetingStatistic.getUseTime());
+//                }else {
+//                    newModel.setBy2(dataById.getUseTime());
+//                }
+//            }
+            if (meetingStatistic.getUseTime()==null){
+                if(meetingStatistic.getHappenEndTime()!=null && meetingStatistic.getHappenStartTime() !=null){
+                    getDatePoor(meetingStatistic.getHappenEndTime(),meetingStatistic.getHappenStartTime(),meetingStatistic);
+                    newModel.setBy1(meetingStatistic.getUseTime());
+                }
+                else {
+                    newModel.setBy1(dataById.getUseTime());
+                }
+            }else {
+                newModel.setBy1(dataById.getUseTime());
+            }
+//            if(meetingStatistic.getConferenceRoom()!=null){
+//                newModel.setBy3(meetingStatistic.getConferenceRoom());
+//            }else {
+//                newModel.setBy3(dataById.getConferenceRoom());
+//            }
+            if(meetingStatistic.getTitle()!=null){
+                newModel.setBy2(meetingStatistic.getTitle());
+            }else {
+                newModel.setBy2(dataById.getTitle());
+            }
+//            if(meetingStatistic.getApplyPerson()!=null){
+//                newModel.setBy5(meetingStatistic.getApplyPerson());
+//            }else {
+//                newModel.setBy5(dataById.getApplyPerson());
+//            }
+//            if(meetingStatistic.getRatifyPerson() == 0){
+//                newModel.setBy10(meetingStatistic.getRatifyPerson());
+//            }else {
+//                newModel.setBy10(dataById.getRatifyPerson());
+//            }
+//            if(meetingStatistic.getStatus() == 0){
+//                newModel.setBy11(meetingStatistic.getStatus());
+//            }else {
+//                newModel.setBy11(dataById.getStatus());
+//            }
+            UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
+            updateRequest.doc(
+                    "by1",newModel.getBy1(),
+                    "by2",newModel.getBy2()
+
+            );
+
+            LambdaQueryWrapper<MeetingStatistic> lqw = new LambdaQueryWrapper<>();
+            List<MeetingStatistic> beanRecords = list(lqw);
+            log.info("sss浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords);
+
+            try {
+                restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+
+            return AjaxResult.success();
+        }else {
+            return AjaxResult.error();
+        }
+    }
+
+    @Override
+    public AjaxResult deleteData(Long[] ids) {
+        List<MeetingStatistic> meetings = listByIds(Arrays.asList(ids));
+        if (meetingStatisticService.removeByIds(Arrays.asList(ids))) {
+            //鍒犻櫎es涓殑鏁版嵁
+            meetings.stream().forEach(meeting -> {
+                EsModel esModel = esSer.findByCtId((meeting.getId().intValue()), "浼氳缁熻");
+                if (esModel != null){
+                    DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+                    try {
+                        restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                    } catch (IOException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            });
+
+            return AjaxResult.success();
+        }else {
+            return AjaxResult.error();
+        }
+
+    }
+
+    @Override
+    public List<MeetingStatistic> selectByIds(Long[] ids) {
+        List<MeetingStatistic> list = new ArrayList<>();
+        if (ids.length != 0)
+            list = listByIds(Arrays.asList(ids));
+        else
+            list = list();
+        return list;
+
+    }
+    @Override
+    public AjaxResult addData(MeetingStatistic meetingStatistic) {
+
+        ZInfoUser myself = zInfoUserService.getMyself();
+        Long familyId = myself.getFamilyId();
+
+//        if(familyId == null){
+//            throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
+//        }
+//
+//        List<ZAuthority> authority = zAuthorityService.getAuthority();
+//        List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
+//        familyIdList.add(familyId);
+//
+//        if (meetingStatistic.getFamilyId()!=null && !familyIdList.contains(meetingStatistic.getFamilyId())) {
+//            throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
+//        }
+//
+//
+//        if(meetingStatistic.getFamilyId() == null){
+//            //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
+//            meetingStatistic.setFamilyId(familyId);
+//        }
+
+        //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹�
+        LambdaQueryWrapper<MeetingStatistic> lqw = uniqueCondition(meetingStatistic);
+        List<MeetingStatistic> list = list(lqw);
+
+        if(list.size()>0){
+            throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
+        }
+
+        if (save(meetingStatistic)) {
+            EsModel esModel = new EsModel();
+            Long inte = meetingStatistic.getId();
+            String uuid = UUID.randomUUID().toString().replace("-","");
+            esModel.setId(uuid);
+            esModel.setCtId(inte);
+            esModel.setCtTableName("浼氳缁熻");
+            getDatePoor(meetingStatistic.getHappenEndTime(),meetingStatistic.getHappenStartTime(),meetingStatistic);
+            System.out.println("===============浣跨敤鏃堕棿2====================="+meetingStatistic.getUseTime());
+            esModel.setBy1(meetingStatistic.getUseTime());
+            esModel.setBy2(meetingStatistic.getTitle());
+//            esModel.setBy5(meetingStatistic.getApplyPerson());
+            //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+            esModel.setBy5("/zMeetingStatistic");
+            esModel.setFid(familyId);
+            esSer.insertTable(esModel);
+
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+        }
+    }
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/MemoBookServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/MemoBookServiceImpl.java
index 91ebfee..fbc86f6 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/MemoBookServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/MemoBookServiceImpl.java
@@ -35,6 +35,9 @@
     @Override
     public AjaxResult mySave(MemoBook memoBook) {
         if(unionCondition(memoBook)){
+           // System.out.println("--------------------=+++++++++++++");
+
+          //  System.out.println(memoBook);
             save(memoBook);
             return AjaxResult.success();
         }else {
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
index fa3cbc6..d728150 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.domain.TravelCount;
 import com.ruoyi.domain.TravelDetail;
+import com.ruoyi.domain.ZfProperty;
 import com.ruoyi.mapper.TravelCountMapper;
 import com.ruoyi.service.TravelCountService;
 import com.ruoyi.service.TravelDetailService;
@@ -58,6 +59,7 @@
         if(happenEndTime!=null){
             lqw.lt(TravelCount::getEndTime,happenEndTime);
         }
+        lqw.orderByDesc(TravelCount::getCreateTime);
 
         Page<TravelCount> resultPage = page(new Page<>(pageNum, pageSize), lqw);
         resultPage.getRecords().forEach(this::inputTotalData);
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
index bb31f3b..91bd22b 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAuthorityServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ruoyi.domain.dto.AuthorityDto;
 import com.ruoyi.domain.dto.AuthorityDto2;
 import com.ruoyi.domain.dto.AuthorityDtoWithName;
+import com.ruoyi.domain.dto.EmpowerDto;
 import com.ruoyi.mapper.ZAuthorityMapper;
 import com.ruoyi.service.ZAuthorityService;
 import com.ruoyi.service.ZInfoUserService;
@@ -275,4 +276,73 @@
 
     }
 
+    public void addData(ZAuthority za)
+    {
+        //鍒ゆ柇鏄惁閲嶅鎺堟潈
+
+        //
+        zAuthorityService.save(za);
+
+    }
+    public AjaxResult saveZa(EmpowerDto zAuthority)
+    {
+      //  boolean bl = zAuthorityService.saveOrUpdate(zAuthority);
+        Long [] uids = zAuthority.getUids();
+        Long [] authoritys =  zAuthority.getAuthoritys();
+        for(Long uid : uids)
+            for(Long auri: authoritys)
+            {
+                ZAuthority za = new ZAuthority();
+                za.setAuthority(auri);
+                za.setFid(zAuthority.getFid());
+                za.setUid(uid);
+                addData(za);
+            }
+      //  Long []
+     //  if(bl)
+         return AjaxResult.success("鏉冮檺鏂板鎴愬姛!");
+       // else
+        //    return  AjaxResult.error("鏉冮檺鏂板澶辫触锛�");
+
+    }
+
+    @Override
+    public AjaxResult deleteZa(EmpowerDto empowerDto) {
+        Long [] uids = empowerDto.getUids();
+        Long [] authoritys =  empowerDto.getAuthoritys();
+        for(Long uid : uids)
+            for(Long auri: authoritys)
+            {
+
+                LambdaQueryWrapper<ZAuthority> lqw = new LambdaQueryWrapper<>();
+                lqw.eq(ZAuthority::getFid,empowerDto.getFid())
+                        .eq(ZAuthority::getAuthority, auri)
+                        .eq(ZAuthority::getUid, uid);
+
+                zAuthorityService.remove(lqw);
+             //   addData(za);
+            }
+     return AjaxResult.success("鏉冮檺鏀跺洖鎴愬姛!");
+
+    }
+
+    @Override
+    public AjaxResult listByFidAid(ZAuthority zAuthority) {
+        //鎵惧埌瀵瑰簲瀹跺涵浠ュ強鏉冮檺妯″潡瀵瑰簲鐨勭敤鎴�
+        LambdaQueryWrapper<ZAuthority> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZAuthority::getFid,zAuthority.getFid())
+                .eq(ZAuthority::getAuthority, zAuthority.getAuthority());
+
+        List<ZAuthority> authorityList = list(lqw);
+
+        List<Long> allUserListId = authorityList.stream().map(ZAuthority::getUid).collect(Collectors.toList());//鎺堟潈鐢ㄦ埛鏁扮粍鏁扮粍
+
+
+        LambdaQueryWrapper<ZInfoUser> lq = new LambdaQueryWrapper<>();
+        lq.in(ZInfoUser::getUserId, allUserListId);
+
+        List<ZInfoUser> userInfo = zInfoUserService.list(lq);
+      //  Map<Long, String> usi = userInfo.stream().collect(Collectors.toMap(ZInfoUser::getUserId,ZInfoUser::getNickName));
+        return AjaxResult.success(userInfo);
+    }
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
index 8da6d16..7f70e46 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -12,9 +12,7 @@
 import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.domain.ZInfoUser;
-import com.ruoyi.domain.ZfEvent;
-import com.ruoyi.domain.ZfRelation;
+import com.ruoyi.domain.*;
 import com.ruoyi.domain.dto.*;
 import com.ruoyi.mapper.ZInfoUserMapper;
 import com.ruoyi.service.ZInfoUserService;
@@ -69,6 +67,17 @@
 
     }
 
+    @Override
+    public AjaxResult getInfoByfid(Long fid) {
+        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZInfoUser::getFamilyId, fid);
+        lqw.eq(ZInfoUser::getIsMyFamily, 1L);
+        lqw.isNull(ZInfoUser::getSpouseId);
+        List<ZInfoUser> list = list(lqw);
+
+        return AjaxResult.success(list);
+    }
+
     private LambdaQueryWrapper<ZInfoUser> buildCondition(ZInfoUser zInfoUser) {
 
         LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
@@ -100,6 +109,30 @@
         log.info("杩斿洖鐨勬暟鎹负:{}", list);
         return list;
 
+    }
+
+    @Override
+    public AjaxResult removeByUserName(List<String> userName) {
+        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+        lqw.in(ZInfoUser::getNickName,String.valueOf(userName.get(0)));
+        System.out.println(userName.get(0));
+        List<ZInfoUser> beanRecords = list(lqw);
+        System.out.println("555555555555555555"+beanRecords);
+        List<Long> ids = list(lqw).stream().map(ZInfoUser::getUserId).collect(Collectors.toList());;
+        removeByIds(ids);
+        return AjaxResult.success("鍒犻櫎鎴愬姛");
+    }
+
+    @Override
+    public List<ZInfoUser> selectByFamId(long fid) {
+        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfFamily::getId, fid);
+        ZfFamily zfFamily = zfFamilyService.list(lqw).get(0);
+        LambdaQueryWrapper<ZInfoUser> lqws = new LambdaQueryWrapper<>();
+        lqws.eq(ZInfoUser::getFatherId, zfFamily.getFid());
+      //  lqws.eq(ZInfoUser::getMomId, zfFamily.getMid());
+        List<ZInfoUser> list = list(lqws);
+        return list;
     }
 
     @Override
@@ -299,22 +332,29 @@
 
         List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(people -> people.getUserId() != 1 && people.getIsMyFamily() == 1).collect(Collectors.toList());
 
-
-        result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && (people.getFatherId() == 0 || people.getMomId() == 0) && people.getIsMyFamily() == 1)
+result = allPeopleList.stream().filter(people -> people!=null && people.getUserId() != 1 && ((people.getFatherId()!=null &&people.getFatherId() == 0 )|| (people.getMomId()!=null&&people.getMomId() == 0)) && people.getIsMyFamily() == 1)
                 .map(people -> {
+//                    System.out.println("=======================================");
+//                    System.out.println(people);
                     if (depth > 1) {
-                        people.setIdentity(1);
-                        //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
-                        Long spouseId = people.getSpouseId();
-                        ZInfoUser spouse = zInfoUserService.getById(spouseId);
-                        spouse.setIdentity(1);
-                        people.setSpouse(spouse);
-                        people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
+                        if(people!=null) {
+                            people.setIdentity(1);
+                            //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+                            Long spouseId = people.getSpouseId();
+                            if (spouseId != null) {
+                                ZInfoUser spouse = zInfoUserService.getById(spouseId);
+                                spouse.setIdentity(1);
+                                people.setSpouse(spouse);
+                            }
+                            people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
+                        }
                     }
+//                    System.out.println("+++++++++++++++++++++++++++++");
+//                    System.out.println(people);
                     return people;
                 }).collect(Collectors.toList());
 
-
+//System.out.println("--------------++++++++++++++++--------------");
         return AjaxResult.success(result);
 
     }
@@ -337,7 +377,7 @@
 //        List<ZInfoUser> allPeopleList = list();
         List<ZInfoUser> result = null;
         try {
-            result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && (people.getFatherId() == 0 || people.getMomId() == 0))
+            result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && ((people.getFatherId()!=null&&people.getFatherId() == 0) || (people.getMomId()!=null&&people.getMomId() == 0)))
                     .map(people -> {
                         if (depth > 1) {
                             people.setIdentity(1);
@@ -576,11 +616,24 @@
     @Override
     public ZInfoUser getInfoById(Long userId) {
         ZInfoUser user = getById(userId);
-        Long familyId = user.getFamilyId();
-        String familyName = zfFamilyService.getById(familyId).getName();
-        String roleName = zfRoleService.getById(user.getRoleId()).getName();
-        user.setFamilyName(familyName);
-        user.setRoleName(roleName);
+
+
+        if(user!=null)
+        {
+            Long familyId = user.getFamilyId();
+          //  System.out.println("dddddddddddddddddddd");
+
+            String roleName = zfRoleService.getById(user.getRoleId()).getName();
+
+            user.setRoleName(roleName);
+            System.out.println("dddddddddddddddddddd");
+            System.out.println(familyId);
+            if(familyId!=-1)
+            {
+                String familyName = zfFamilyService.getById(familyId).getName();
+                user.setFamilyName(familyName);
+            }
+        }
         return user;
     }
 
@@ -671,6 +724,17 @@
     }
 
     @Override
+    public AjaxResult listAllFamilyPeople() {
+//        List<ZInfoUser> lis = list();
+//        for(ZInfoUser tm: lis)
+//        {
+//            System.out.println(tm.getRoleId());
+//        }
+        List<ZInfoUser> collect = list().stream().filter(zInfoUser -> zInfoUser!=null&&zInfoUser.getRoleId()!=null&&zInfoUser.getRoleId()== 3).collect(Collectors.toList());
+        return AjaxResult.success(collect);
+    }
+
+    @Override
     public AjaxResult listMySelfAndSpouse(Long id) {
         LambdaQueryWrapper<ZInfoUser> lqw1 = new LambdaQueryWrapper<>();
         lqw1.eq(ZInfoUser::getUserId, id);
@@ -709,7 +773,7 @@
 //        ).collect(Collectors.toList());
 
         List<ZInfoUser> collect = allPeopleList.stream().filter(
-                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
+                one -> ((one.getFamilyId()!=null && one.getFatherId() == people.getUserId()) || (one.getMomId()!=null&&one.getMomId() == people.getUserId())) && (people.getIsMyFamily() == 1)
         ).map(
                 one -> {
                     if (depth == 1) {
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
index 9257e9c..e0dd76d 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCleanServiceImpl.java
@@ -299,6 +299,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
index 6275788..98968fd 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfCollectionServiceImpl.java
@@ -302,6 +302,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
index aff7172..8150d13 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfContactServiceImpl.java
@@ -282,6 +282,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
index f6ec5a0..6512ca9 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
@@ -6,7 +6,9 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.domain.*;
@@ -60,6 +62,10 @@
     @Resource
     private RestHighLevelClient restHighLevelClient;
 
+    @Resource
+    ZfDoctorShareService zfDoctorShareService;
+
+
     @Override
     public AjaxResult selectDoctorList(ZfDoctor zfDoctor, Integer pageNum, Integer pageSize) {
 //        LambdaQueryWrapper<ZfDoctor> lqw = buildCondition(zfDoctor);
@@ -72,6 +78,10 @@
 //        return AjaxResult.success(data);
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if (myself == null) {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
@@ -80,8 +90,11 @@
         idList.add(familyId);
 //        String familyIds = listFamilyIds();
 //        String secondFamilyAuthority = listSecondFamilyIds();
-        LambdaQueryWrapper<ZfDoctor> lqw = buildCondition(zfDoctor, idList);
 
+        //鏌ョ湅鍒汉鍒嗕韩
+        List<ZfDoctor> bs = zfDoctorShareService.listUserId(myself.getUserId());
+
+        LambdaQueryWrapper<ZfDoctor> lqw = buildCondition(zfDoctor, idList);
 
         Page<ZfDoctor> zfDoctorPage = new Page<>(pageNum, pageSize);
         Page<ZfDoctor> pageResult = page(zfDoctorPage, lqw);
@@ -89,7 +102,7 @@
         List<ZfDoctor> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
 
         List<ZfDoctor> dtoResult = markOwnData(familyId, beanRecords);
-
+        dtoResult.addAll(bs);
         HashMap<String, Object> data = MapUtils.getResult(pageResult, dtoResult);
         return AjaxResult.success(data);
     }
@@ -111,13 +124,17 @@
         //鍔犱笂鑷繁瀹跺涵鐨刬d
         idList.add(familyId);
 
+        //鏌ョ湅鍒汉鍒嗕韩
+        List<ZfDoctor> bs = zfDoctorShareService.listUserId(myself.getUserId());
+
         LambdaQueryWrapper<ZfDoctor> lambdaQueryWrapper = buildCondition(zfDoctor, idList);
         List<ZfDoctor> beanRecords = list(lambdaQueryWrapper);
+        beanRecords.addAll(bs);
         log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords);
         return markOwnData(familyId, beanRecords);
     }
 
-    public List<ZfDoctor> markOwnData(Long familyId,List<ZfDoctor> beanRecords){
+    public List<ZfDoctor> markOwnData(Long familyId, List<ZfDoctor> beanRecords) {
         return beanRecords.stream().peek(
                 bean -> {
                     if (bean.getFamilyId() == familyId) {
@@ -126,7 +143,7 @@
                         bean.setOwnData(0);
                     }
                 }
-        ).sorted((a,b)-> b.getOwnData()-a.getOwnData()).collect(Collectors.toList());
+        ).sorted((a, b) -> b.getOwnData() - a.getOwnData()).collect(Collectors.toList());
     }
 
     @Override
@@ -150,10 +167,14 @@
         }
         log.info("鏁版嵁鍒楄〃涓猴細{}", dataList);
 
-        for (ZfDoctor zfDoctor : dataList) {
-            zfDoctorService.addData(zfDoctor);
-        }
 
+        for (ZfDoctor zfDoctor : dataList) {
+            if (zfDoctor.getSymptom().length() == 0 || zfDoctor.getSymptom() == null) {
+                throw new RuntimeException("鐥囩姸涓虹┖锛屽鍏ユ暟鎹け璐�");
+            } else {
+                zfDoctorService.addData(zfDoctor);
+            }
+        }
         return AjaxResult.success("瀵煎叆鏁版嵁鎴愬姛");
 
     }
@@ -163,7 +184,7 @@
         ZInfoUser myself = zInfoUserService.getMyself();
         Long familyId = myself.getFamilyId();
 
-        if(familyId == null){
+        if (familyId == null) {
             throw new RuntimeException("鎮ㄨ繕鏈姞鍏ヤ换浣曞搴�");
         }
 
@@ -171,12 +192,16 @@
         List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST_ADD)).map(ZAuthority::getFid).collect(Collectors.toList());
         familyIdList.add(familyId);
 
-        if (zfDoctor.getFamilyId()!=null && !familyIdList.contains(zfDoctor.getFamilyId())) {
+//        List<ZfDoctorShare> authority1 = zfDoctorShareService.getAuthority();
+//        List<Long> idList1 = authority1.stream().filter(auth -> auth.getShareContent().toString().equals(DOCTOR_LIST)).map(ZfDoctorShare::getShareId).collect(Collectors.toList());
+        zfDoctorService.addData(zfDoctor);
+
+        if (zfDoctor.getFamilyId() != null && !familyIdList.contains(zfDoctor.getFamilyId())) {
             throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
         }
 
 
-        if(zfDoctor.getFamilyId() == null){
+        if (zfDoctor.getFamilyId() == null) {
             //榛樿娣诲姞鑷繁瀹跺涵鐨勬暟鎹�
             zfDoctor.setFamilyId(familyId);
         }
@@ -185,14 +210,14 @@
         LambdaQueryWrapper<ZfDoctor> lqw = uniqueCondition(zfDoctor);
         List<ZfDoctor> list = list(lqw);
 
-        if(list.size()>0){
+        if (list.size() > 0) {
             throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
         }
 
         if (save(zfDoctor)) {
             EsModel esModel = new EsModel();
             Integer inte = zfDoctor.getId().intValue();
-            String uuid = UUID.randomUUID().toString().replace("-","");
+            String uuid = UUID.randomUUID().toString().replace("-", "");
             esModel.setId(uuid);
             esModel.setCtId(Long.valueOf(inte));
             esModel.setCtTableName("瀹跺涵灏忓尰鐢�");
@@ -203,8 +228,11 @@
             esModel.setBy5("/family/zfDoctor");
             esModel.setBy6(zfDoctor.getCmedical());
             esModel.setBy7(zfDoctor.getWmedical());
+//            esModel.setBy7();
             esModel.setRemark(zfDoctor.getRemark());
             esModel.setFid(familyId);
+
+
             //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
             esService.insertTable(esModel);
             return AjaxResult.success();
@@ -212,6 +240,7 @@
             return AjaxResult.error();
         }
     }
+
 
     @Resource
     ZfLogService zfLogService;
@@ -228,7 +257,7 @@
         List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST_UPDATE)).map(ZAuthority::getFid).collect(Collectors.toList());
         familyIdList.add(familyId);
 
-        if (dataFamilyId!=null && !familyIdList.contains(dataFamilyId)) {
+        if (dataFamilyId != null && !familyIdList.contains(dataFamilyId)) {
             throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
         }
 
@@ -239,71 +268,71 @@
         zfLog.setUpdater(zInfoUserService.getMyself().getNickName());
         zfLogService.save(zfLog);
 
-        if(updateById(zfDoctor)){
+        if (updateById(zfDoctor)) {
             //鍒版暟鎹簱涓煡璇㈠搴旂殑鏁版嵁
             ZfDoctor dataById = getById(zfDoctor.getId());
 
             //鍏堝埌es涓煡璇㈠埌瀵瑰簲閭f潯鏁版嵁鍦╡s鐨刬d
             EsModel esResult = esService.findByCtId(dataById.getId().intValue(), "瀹跺涵灏忓尰鐢�");
 
-            if (esResult == null){
+            if (esResult == null) {
                 return AjaxResult.success();
             }
 
             //鎿嶄綔es淇敼鏁版嵁
             EsModel newModel = new EsModel();
-            if(zfDoctor.getType()!=null){
+            if (zfDoctor.getType() != null) {
                 newModel.setBy1(zfDoctor.getType());
-            }else {
+            } else {
                 newModel.setBy1(dataById.getType());
             }
 
-            if(zfDoctor.getSymptom()!=null){
+            if (zfDoctor.getSymptom() != null) {
                 newModel.setBy2(zfDoctor.getSymptom());
-            }else {
+            } else {
                 newModel.setBy2(dataById.getSymptom());
             }
 
-            if(zfDoctor.getEffect()!=null){
+            if (zfDoctor.getEffect() != null) {
                 newModel.setBy3(zfDoctor.getEffect());
-            }else {
+            } else {
                 newModel.setBy3(dataById.getEffect());
             }
 
-            if(zfDoctor.getSuitable()!=null){
+            if (zfDoctor.getSuitable() != null) {
                 newModel.setBy4(zfDoctor.getSuitable());
-            }else {
+            } else {
                 newModel.setBy4(dataById.getSuitable());
             }
 
-            if(zfDoctor.getCmedical()!=null){
+            if (zfDoctor.getCmedical() != null) {
                 newModel.setBy6(zfDoctor.getCmedical());
-            }else {
+            } else {
                 newModel.setBy6(dataById.getCmedical());
             }
 
-            if(zfDoctor.getWmedical()!=null){
+            if (zfDoctor.getWmedical() != null) {
                 newModel.setBy7(zfDoctor.getWmedical());
-            }else {
+            } else {
                 newModel.setBy7(dataById.getWmedical());
             }
 
-            if(zfDoctor.getRemark()!=null){
+            if (zfDoctor.getRemark() != null) {
                 newModel.setRemark(zfDoctor.getRemark());
-            }else {
+            } else {
                 newModel.setRemark(dataById.getRemark());
             }
 
 
             UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId());
             updateRequest.doc(
-                    "by1",newModel.getBy1(),
-                    "by2",newModel.getBy2(),
-                    "by3",newModel.getBy3(),
-                    "by4",newModel.getBy4(),
-                    "by6",newModel.getBy6(),
-                    "by7",newModel.getBy7(),
-                    "remark",newModel.getRemark()
+                    "by1", newModel.getBy1(),
+                    "by2", newModel.getBy2(),
+                    "by3", newModel.getBy3(),
+                    "by4", newModel.getBy4(),
+                    "by6", newModel.getBy6(),
+                    "by7", newModel.getBy7(),
+                    "remark", newModel.getRemark()
             );
 
             try {
@@ -311,9 +340,9 @@
             } catch (IOException e) {
                 throw new RuntimeException(e);
             }
-            
+
             return AjaxResult.success();
-        }else {
+        } else {
             return AjaxResult.error();
         }
     }
@@ -330,7 +359,7 @@
         familyIdList.add(familyId);
 
         for (ZfDoctor data : dataList) {
-            if (!familyIdList.contains(data.getFamilyId())){
+            if (!familyIdList.contains(data.getFamilyId())) {
                 throw new RuntimeException("浣犳病鏈夋潈闄愭搷浣滄瀹跺涵鐨勬暟鎹�");
             }
         }
@@ -342,10 +371,10 @@
             zfDoctors.stream().forEach(zfDoctor -> {
                 EsModel esModel = esService.findByCtId(zfDoctor.getId().intValue(), "瀹跺涵灏忓尰鐢�");
 
-                if (esModel != null){
+                if (esModel != null) {
                     DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
                     try {
-                        restHighLevelClient.delete(deleteRequest,RequestOptions.DEFAULT);
+                        restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
                     } catch (IOException e) {
                         throw new RuntimeException(e);
                     }
@@ -353,7 +382,7 @@
                 }
             });
             return AjaxResult.success();
-        }else {
+        } else {
             return AjaxResult.error();
         }
     }
@@ -392,29 +421,46 @@
         lqw.eq(StringUtils.isNotEmpty(zfDoctor.getEffect()), ZfDoctor::getEffect, zfDoctor.getEffect());
         lqw.eq(StringUtils.isNotEmpty(zfDoctor.getSuitable()), ZfDoctor::getSuitable, zfDoctor.getSuitable());
         lqw.eq(StringUtils.isNotEmpty(zfDoctor.getRemark()), ZfDoctor::getRemark, zfDoctor.getRemark());
-        lqw.eq(zfDoctor.getFamilyId()!=null,ZfDoctor::getFamilyId,zfDoctor.getFamilyId());
+        lqw.eq(zfDoctor.getFamilyId() != null, ZfDoctor::getFamilyId, zfDoctor.getFamilyId());
         return lqw;
     }
 
-    private LambdaQueryWrapper<ZfDoctor> buildCondition(ZfDoctor zfDoctor,List<Long> familyIdList) {
+    private LambdaQueryWrapper<ZfDoctor> buildCondition(ZfDoctor zfDoctor, List<Long> familyIdList) {
         LambdaQueryWrapper<ZfDoctor> lqw = new LambdaQueryWrapper<>();
-        lqw.in(ZfDoctor::getFamilyId,familyIdList);
+        lqw.in(ZfDoctor::getFamilyId, familyIdList);
         lqw.orderByDesc(ZfDoctor::getCreateTime);
         lqw.like(StringUtils.isNotEmpty(zfDoctor.getType()), ZfDoctor::getType, zfDoctor.getType())
                 .like(StringUtils.isNotEmpty(zfDoctor.getSymptom()), ZfDoctor::getSymptom, zfDoctor.getSymptom())
                 .like(StringUtils.isNotEmpty(zfDoctor.getDuration()), ZfDoctor::getDuration, zfDoctor.getDuration())
                 .like(StringUtils.isNotEmpty(zfDoctor.getEffect()), ZfDoctor::getEffect, zfDoctor.getEffect())
                 .like(StringUtils.isNotEmpty(zfDoctor.getSuitable()), ZfDoctor::getSuitable, zfDoctor.getSuitable())
-                .like(StringUtils.isNotEmpty(zfDoctor.getWmedical()),ZfDoctor::getWmedical,zfDoctor.getWmedical())
-                .like(StringUtils.isNotEmpty(zfDoctor.getCmedical()),ZfDoctor::getCmedical,zfDoctor.getCmedical())
+                .like(StringUtils.isNotEmpty(zfDoctor.getWmedical()), ZfDoctor::getWmedical, zfDoctor.getWmedical())
+                .like(StringUtils.isNotEmpty(zfDoctor.getCmedical()), ZfDoctor::getCmedical, zfDoctor.getCmedical())
                 .like(StringUtils.isNotEmpty(zfDoctor.getRemark()), ZfDoctor::getRemark, zfDoctor.getRemark());
-        if (StringUtils.isNotEmpty(zfDoctor.getPrescription())){
+        if (StringUtils.isNotEmpty(zfDoctor.getPrescription())) {
             lqw.and(wrapper -> {
-                wrapper.like(StringUtils.isNotEmpty(zfDoctor.getPrescription()),ZfDoctor::getWmedical,zfDoctor.getPrescription())
+                wrapper.like(StringUtils.isNotEmpty(zfDoctor.getPrescription()), ZfDoctor::getWmedical, zfDoctor.getPrescription())
                         .or()
-                        .like(StringUtils.isNotEmpty(zfDoctor.getPrescription()),ZfDoctor::getCmedical,zfDoctor.getPrescription());
+                        .like(StringUtils.isNotEmpty(zfDoctor.getPrescription()), ZfDoctor::getCmedical, zfDoctor.getPrescription());
             });
         }
         return lqw;
     }
-}
+
+//        private List<Long> buildCondition1(){
+//        List<ZfDoctorShare> authority1 = zfDoctorShareService.getAuthority();
+//        List<Long> idList1 = authority1.stream().filter(auth -> auth.getShareContent().toString().equals(DOCTOR_LIST)).map(ZfDoctorShare::getShareId).collect(Collectors.toList());
+//        return idList1;
+//    }
+//    private LambdaQueryWrapper<ZfDoctor> buildCondition2(ZfDoctor zfDoctor, List<Long> IdList) {
+//        LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+//        lqw.in(ZfDoctorShare::getShareId, IdList);
+//        List<ZfDoctorShare> beanRecords = list(lqw);
+//        for (ZfDoctorShare shareContent : beanRecords){
+//            zfDoctorService.getById(shareContent);
+//        }
+//
+//    }
+
+
+}
\ No newline at end of file
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorShareServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorShareServiceImpl.java
new file mode 100644
index 0000000..cef2d83
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorShareServiceImpl.java
@@ -0,0 +1,176 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.ShareMore;
+import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.domain.ZfDoctor;
+import com.ruoyi.domain.ZfDoctorShare;
+import com.ruoyi.mapper.ZfDoctorShareMapper;
+import com.ruoyi.service.ZInfoUserService;
+import com.ruoyi.service.ZfDoctorService;
+import com.ruoyi.service.ZfDoctorShareService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+@Slf4j
+@Service
+public class ZfDoctorShareServiceImpl extends ServiceImpl<ZfDoctorShareMapper, ZfDoctorShare> implements ZfDoctorShareService {
+    @Resource
+    private ZfDoctorService zfDoctorService;
+
+    @Resource
+    private ZInfoUserService zInfoUserService;
+
+    private LambdaQueryWrapper<ZfDoctorShare> uniqueCondition(ZfDoctorShare zfDoctorShare) {
+        LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(StringUtils.isNotEmpty(String.valueOf(zfDoctorShare.getShareId())), ZfDoctorShare::getShareId, zfDoctorShare.getShareId());
+        lqw.eq(StringUtils.isNotEmpty(String.valueOf(zfDoctorShare.getShareContent())), ZfDoctorShare::getShareContent, zfDoctorShare.getShareContent());
+        return lqw;
+    }
+    @Override
+    public List<ZfDoctorShare> getAuthority() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+
+        LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfDoctorShare::getShareId,userId);
+
+        return list(lqw);
+    }
+
+    @Resource
+    ZfDoctorShareService zfDoctorShareService;
+
+    public void addData(ZfDoctorShare za)
+    {
+        LambdaQueryWrapper<ZfDoctorShare> lqw = uniqueCondition(za);
+        List<ZfDoctorShare> list = list(lqw);
+
+        if(list.size()>0){
+            throw new RuntimeException("璇峰嬁鍒嗕韩閲嶅鏁版嵁");
+        }
+        else {
+            zfDoctorShareService.save(za);
+        }
+
+    }
+
+
+    @Override
+    public AjaxResult saveZa(ShareMore zfDoctor) {
+        //  boolean bl = zAuthorityService.saveOrUpdate(zAuthority);
+        Long [] shareIds = zfDoctor.getShareIds();
+        Long [] shareContents =  zfDoctor.getShareContents();
+        for (Long shareId : shareIds) {
+            for (Long shareContent : shareContents) {
+                ZfDoctorShare za = new ZfDoctorShare();
+                za.setUserId(getUserId());
+                za.setShareContent(shareContent);
+                za.setShareId(shareId);
+                addData(za);
+            }
+        }
+        //  Long []
+        //  if(bl)
+        return AjaxResult.success("鍒嗕韩鎴愬姛!");
+        // else
+        //    return  AjaxResult.error("鏉冮檺鏂板澶辫触锛�");
+
+
+    }
+    /**
+     * 鏍规嵁UserId鍜屽垎浜汉shareId鏌ョ湅宸茬粡鎺堟潈缁欓偅浜涗汉閭d簺鏁版嵁
+     */
+    @Override
+    public AjaxResult listByFidAid(ShareMore zfDoctor) {
+        //鎵惧埌瀵瑰簲鐨勮祴浜堟暟鎹殑鐢ㄦ埛浠ュ強鏁版嵁鍐呭
+        Long [] shareIds = zfDoctor.getShareIds();
+        List<ZfDoctor> beanRecord3 = new ArrayList<>();
+        for (Long shareId : shareIds) {
+            {
+                LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+                lqw.eq(ZfDoctorShare::getShareId,shareId)
+                        .eq(ZfDoctorShare::getUserId, getUserId());
+                List<ZfDoctorShare> beanRecords = list(lqw);
+                for (ZfDoctorShare beanRecord : beanRecords ) {
+                    beanRecord3.add(zfDoctorService.getById(beanRecord.getShareContent()));
+                }
+            }
+        }
+        log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecord3);
+
+        return AjaxResult.success(beanRecord3);
+    }
+
+    @Override
+    public AjaxResult deleteZa(ShareMore zfDoctor) {
+        Long [] shareIds = zfDoctor.getShareIds();
+        Long [] shareContents =  zfDoctor.getShareContents();
+        for(Long shareId : shareIds)
+            for(Long shareContent: shareContents)
+            {
+                LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+                lqw.eq(ZfDoctorShare::getShareId,shareId)
+                        .eq(ZfDoctorShare::getShareContent, shareContent)
+                        .eq(ZfDoctorShare::getUserId, getUserId());
+
+                zfDoctorShareService.remove(lqw);
+                //   addData(za);
+            }
+        return AjaxResult.success("鏁版嵁鏀跺洖鎴愬姛!");
+
+    }
+
+    /**
+     * 鐢ㄦ埛鑷繁鏌ョ湅鍒汉鍒嗕韩鐨勬暟鎹拰鍒嗕韩浜�
+     */
+    @Override
+    public AjaxResult listByUserId() {
+        //鎵惧埌瀵瑰簲鐨勮祴浜堟暟鎹殑鐢ㄦ埛浠ュ強鏁版嵁鍐呭
+        HashMap<Long,ZfDoctor>  bs = new HashMap<>();
+        LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfDoctorShare::getShareId,getUserId());
+        List<ZfDoctorShare> beanRecords = list(lqw);
+        for (ZfDoctorShare beanRecord : beanRecords ) {
+            bs.put(beanRecord.getUserId(),zfDoctorService.getById(beanRecord.getShareContent()));
+        }
+        log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", bs);
+        return AjaxResult.success(bs);
+
+    }
+    /**
+     * 鐢ㄦ埛鑷繁鏌ョ湅鍒汉鍒嗕韩鐨勬暟鎹�
+     */
+    @Override
+    public List<ZfDoctor> listUserId(Long shareId) {
+        //鎵惧埌瀵瑰簲鐨勮祴浜堟暟鎹殑鐢ㄦ埛浠ュ強鏁版嵁鍐呭
+        List<ZfDoctor>  bs = new ArrayList<>();
+        LambdaQueryWrapper<ZfDoctorShare> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfDoctorShare::getShareId,shareId);
+        List<ZfDoctorShare> beanRecords = list(lqw);
+        for (ZfDoctorShare beanRecord : beanRecords ) {
+            ZfDoctor bs2 = zfDoctorService.getById(beanRecord.getShareContent());
+            bs2.setShareId(beanRecord.getUserId());
+            bs.add(bs2);
+        }
+        log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", bs);
+        return bs;
+
+    }
+    public Long getUserId(){
+        ZInfoUser myself = zInfoUserService.getMyself();
+        return myself.getUserId();
+
+    }
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
index 6aa66ba..d12d14b 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
@@ -225,6 +225,7 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
@@ -284,6 +285,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
index 415b1e5..549dd62 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEquipmentServiceImpl.java
@@ -289,6 +289,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
index c3144ae..70e09c1 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEventServiceImpl.java
@@ -214,7 +214,10 @@
 //        String secondFamilyIds = listSecondFamilyIds();
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        System.out.println("================");
+
         Long familyId = myself.getFamilyId();
+
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
         List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
@@ -271,12 +274,20 @@
     public AjaxResult selectDataList(ZfEvent zfEvent, Integer pageNum, Integer pageSize) {
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+         //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
+        System.out.println("++++++++++++++++");
+        System.out.println(familyId);
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
         List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST)).map(ZAuthority::getFid).collect(Collectors.toList());
         //鍔犱笂鑷繁瀹跺涵鐨刬d
         idList.add(familyId);
+        System.out.println(idList.size());
 //        String familyIds = listFamilyIds();
 //        String secondFamilyAuthority = listSecondFamilyIds();
         LambdaQueryWrapper<ZfEvent> lqw = buildCondition(zfEvent, idList);
@@ -287,6 +298,8 @@
 
         List<ZfEvent> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
 
+        System.out.println(beanRecords);
+        System.out.println(beanRecords.size());
         List<ZfEvent> dtoResult = markOwnData(familyId, beanRecords);
 
         HashMap<String, Object> data = MapUtils.getResult(pageResult, dtoResult);
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfFamilyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfFamilyServiceImpl.java
index d76aa4f..0ef749d 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfFamilyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfFamilyServiceImpl.java
@@ -18,7 +18,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -33,11 +35,35 @@
     @Autowired
     ZInfoUserService zInfoUserService;
 
+    @Resource
+    ZfFamilyMapper zfFamilyMapper;
+    @Resource
+    ZfFamilyService zfFamilyService;
+
+    @Override
+    public ZfFamily getByNameAndUser(ZfFamily zfFamily) {
+        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfFamily::getName,zfFamily.getName()).or().eq(ZfFamily::getFid, zfFamily.getFid());
+        return getOne(lqw);
+    }
 
     @Override
     public ZfFamily getByName(String familyName) {
         LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
         lqw.eq(ZfFamily::getName,familyName);
+        return getOne(lqw);
+    }
+
+    @Override
+    public ZfFamily getByFid(Long fid) {
+        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfFamily::getFid,fid);
+        return getOne(lqw);    }
+
+    @Override
+    public ZfFamily getByFamId(Long fid) {
+        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(ZfFamily::getId,fid);
         return getOne(lqw);
     }
 
@@ -114,4 +140,31 @@
         return AjaxResult.success();
 
     }
+
+    @Override
+    public AjaxResult addFamily(ZfFamily zfFamily) {
+        int res = zfFamilyMapper.insert(zfFamily);
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult updateFam(ZfFamily zfFamily) {
+        int res = zfFamilyMapper.updateById(zfFamily);
+
+        if(res!=0) {
+            return AjaxResult.success();
+        }else
+            return  AjaxResult.error("淇敼澶辫触,瀹跺涵鍙蜂笉鑳介噸澶�");
+    }
+
+    @Override
+    public AjaxResult deleteFam(Long[] ids) {
+        if (zfFamilyService.removeByIds(Arrays.asList(ids))) {
+            return AjaxResult.success();
+        }
+        else
+            return AjaxResult.error();
+
+
+    }
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java
index d8ed24f..afa01d1 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java
@@ -65,6 +65,11 @@
 
         //瑕佹煡鑷繁瀹跺涵鐨�
         ZInfoUser myself = zInfoUserService.getMyself();
+        if(myself==null)
+        {
+            //   System.out.println("ssssss");
+            return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+        }
         Long familyId = myself.getFamilyId();
         //涔熻鏌ュ埆浜烘巿鏉冪殑
         List<ZAuthority> authority = zAuthorityService.getAuthority();
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfRegisterServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfRegisterServiceImpl.java
index 188f0f4..6a81422 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfRegisterServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfRegisterServiceImpl.java
@@ -28,6 +28,8 @@
     public SysUserRole1 selectUserRole(Long userId) {
         LambdaQueryWrapper<SysUserRole1> lqw = new LambdaQueryWrapper<>();
         lqw.eq(SysUserRole1::getUserId,userId);
-        return getOne(lqw);
+        SysUserRole1 sys = getOne(lqw);
+        System.out.println(sys);
+        return  sys;
     }
 }

--
Gitblit v1.9.1