From aa989ba0e4f3839dd7bbb47f422f8e7d6785af7e Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期五, 19 五月 2023 21:01:15 +0800
Subject: [PATCH] 完成家谱

---
 zhang-content/src/main/java/com/ruoyi/domain/dto/Genealogy.java                   |   49 ++++++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZAutobiographyServiceImpl.java |    5 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java      |    3 
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfPetServiceImpl.java          |   47 +++++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java      |  148 +++++++++++++++++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZInfoUserController.java |   22 +++
 zhang-content/src/main/java/com/ruoyi/domain/ZfPet.java                           |    2 
 zhang-content/src/main/java/com/ruoyi/domain/ZfMaster.java                        |   24 ---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfMasterServiceImpl.java       |   15 +-
 zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java                       |    6 +
 zhang-content/src/main/java/com/ruoyi/domain/dto/GenealogyExportDto.java          |   15 ++
 zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java               |    8 +
 12 files changed, 299 insertions(+), 45 deletions(-)

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 341001e..2f8e4c9 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
@@ -13,6 +13,8 @@
 import com.ruoyi.domain.ZInfoUser;
 import com.ruoyi.domain.ZfRelation;
 import com.ruoyi.domain.dto.EmpowerDto;
+import com.ruoyi.domain.dto.Genealogy;
+import com.ruoyi.domain.dto.GenealogyExportDto;
 import com.ruoyi.service.ZInfoUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
@@ -216,5 +218,25 @@
         return zInfoUserService.listMySelfAndSpouse(id);
     }
 
+    /**
+     * 瀹惰氨
+     */
+    @GetMapping("/list/genealogy")
+    public AjaxResult listGenealogy(Genealogy genealogy){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return zInfoUserService.listGenealogy(genealogy,pageNum,pageSize);
+    }
+
+    /**
+     * 瀵煎嚭瀹惰氨
+     */
+    @PostMapping("/export/genealogy")
+    public void exportGenealogy(@RequestBody List<GenealogyExportDto> params, HttpServletResponse response){
+        List<Genealogy> list= zInfoUserService.selectDatas(params);
+        ExcelUtil<Genealogy> util = new ExcelUtil<>(Genealogy.class);
+        util.exportExcel(response,list,"瀹惰氨璁板綍鏁版嵁");
+    }
+
 }
 
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java b/zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java
index 927f2fd..c8f998f 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZInfoUser.java
@@ -182,6 +182,12 @@
     private String secondFamilyId;
 
     /**
+     * 浠f暟
+     */
+    @TableField(exist = false)
+    private Integer identity;
+
+    /**
      * 瀛愬垪琛�
      */
     @TableField(exist = false)
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfMaster.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfMaster.java
index 90840e8..106b420 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfMaster.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfMaster.java
@@ -28,7 +28,7 @@
     /**
      * 瀹犵墿id
      */
-    private Long petId;
+    private String petId;
 
     /**
      * 鍏荤姮浜哄鍚�
@@ -48,11 +48,6 @@
     @Excel(name = "璇佷欢鍙风爜")
     private String certificateNo;
 
-    /**
-     * 鍥哄畾鐢佃瘽
-     */
-    @Excel(name = "鍥哄畾鐢佃瘽")
-    private String fixedNo;
 
     /**
      * 绉诲姩鐢佃瘽
@@ -60,29 +55,12 @@
     @Excel(name = "绉诲姩鐢佃瘽")
     private String phoneNo;
 
-    /**
-     * 鎷ユ湁瀹犵墿鏁伴噺
-     */
-    @Excel(name = "鎷ユ湁瀹犵墿鏁伴噺")
-    private Integer many;
 
     /**
      * 浣忔墍璇︾粏鍦板潃
      */
     @Excel(name = "浣忔墍璇︾粏鍦板潃")
     private String address;
-
-    /**
-     * 浣忔墍鎬ц川
-     */
-    @Excel(name = "浣忔墍鎬ц川")
-    private String property;
-
-    /**
-     * 鐢靛瓙閭欢
-     */
-    @Excel(name = "閭")
-    private String email;
 
 
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfPet.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfPet.java
index 6b93ad1..fa80a5b 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfPet.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfPet.java
@@ -28,7 +28,7 @@
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
+    private String id;
 
     /**
      * 瀹犵墿鍙风爜
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/dto/Genealogy.java b/zhang-content/src/main/java/com/ruoyi/domain/dto/Genealogy.java
new file mode 100644
index 0000000..1840d26
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/dto/Genealogy.java
@@ -0,0 +1,49 @@
+package com.ruoyi.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author Jinquan_Ou
+ * @Description 瀹惰氨
+ * @Date 2023-05-19 17:55
+ * @Version 1.0.0
+ **/
+@Data
+public class Genealogy implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long userId;
+
+    @Excel(name = "绗嚑浠�")
+    private Integer identity;
+
+    @Excel(name="濮撳悕")
+    private String nickName;
+
+    @Excel(name="鎬у埆",readConverterExp = "0=濂�,1=鐢�")
+    private Integer sex;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鍑虹敓鏃堕棿", dateFormat = "yyyy-MM-dd")
+    private Date birth;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鍏ㄧ敓鍛藉懆鏈�", dateFormat = "yyyy-MM-dd")
+    private Date deadDay;
+
+    @Excel(name="鐢佃瘽鍙风爜")
+    private String phoneNumber;
+
+    @Excel(name="鎵�鍦ㄥ崟浣�/瀛︽牎")
+    private String unit;
+
+    @Excel(name = "閰嶅伓")
+    private String spouseName;
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/dto/GenealogyExportDto.java b/zhang-content/src/main/java/com/ruoyi/domain/dto/GenealogyExportDto.java
new file mode 100644
index 0000000..b6aec92
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/dto/GenealogyExportDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @Author Jinquan_Ou
+ * @Description
+ * @Date 2023-05-19 20:20
+ * @Version 1.0.0
+ **/
+@Data
+public class GenealogyExportDto {
+    private Long id;
+    private Integer identity;
+}
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 66fb383..9803c8e 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZInfoUserService.java
@@ -4,6 +4,8 @@
 import com.ruoyi.domain.ZInfoUser;
 import com.ruoyi.domain.ZfRelation;
 import com.ruoyi.domain.dto.EmpowerDto;
+import com.ruoyi.domain.dto.Genealogy;
+import com.ruoyi.domain.dto.GenealogyExportDto;
 
 import java.util.List;
 
@@ -38,4 +40,10 @@
     AjaxResult listAllExceptAdmin();
 
     AjaxResult listMySelfAndSpouse(Long id);
+
+    AjaxResult listGenealogy(Genealogy genealogy,Integer pageNum,Integer pageSize);
+
+    List<Genealogy> selectByIds(Long[] ids);
+
+    List<Genealogy> selectDatas(List<GenealogyExportDto> params);
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAutobiographyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAutobiographyServiceImpl.java
index b06d071..c5005d2 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZAutobiographyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZAutobiographyServiceImpl.java
@@ -8,7 +8,9 @@
 import com.ruoyi.service.ZAutobiographyService;
 import org.springframework.stereotype.Service;
 
+import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -25,7 +27,8 @@
     public List<ZAutobiography> selectAutobiographyList(Long userId) {
         LambdaQueryWrapper<ZAutobiography> lqw = new LambdaQueryWrapper<>();
         lqw.eq(ZAutobiography::getUserId,userId);
-        return list(lqw);
+        List<ZAutobiography> result = list(lqw);
+        return result.stream().sorted(Comparator.comparingInt(z -> Integer.parseInt(z.getAgeBegin()))).collect(Collectors.toList());
     }
 
     @Override
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 21fcf92..5db6910 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
@@ -16,6 +16,8 @@
 import com.ruoyi.domain.ZfEvent;
 import com.ruoyi.domain.ZfRelation;
 import com.ruoyi.domain.dto.EmpowerDto;
+import com.ruoyi.domain.dto.Genealogy;
+import com.ruoyi.domain.dto.GenealogyExportDto;
 import com.ruoyi.domain.dto.UserRelationDto;
 import com.ruoyi.mapper.ZInfoUserMapper;
 import com.ruoyi.service.ZInfoUserService;
@@ -26,10 +28,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -303,8 +302,10 @@
         try {
             result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
                     .map(people -> {
-                        if(depth>1)
+                        if(depth>1){
+                            people.setIdentity(1);
                             people.setChildList(fillChildren(people, allPeopleList, depth-1));
+                        }
                         return people;
                     }).collect(Collectors.toList());
         } catch (NullPointerException e) {
@@ -312,6 +313,140 @@
         }
         return AjaxResult.success(result);
 
+    }
+
+    /**
+     * 鏉′欢鑾峰彇瀹跺涵鎴愬憳
+     * @return
+     */
+    public AjaxResult listWithTreeByCondition(Integer depth,Genealogy genealogy) {
+
+        ZInfoUser zInfoUser = new ZInfoUser();
+        BeanUtils.copyProperties(genealogy,zInfoUser);
+        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(zInfoUser.getIdentity()!=null,ZInfoUser::getIdentity,zInfoUser.getIdentity());
+        lqw.eq(zInfoUser.getSex()!=null,ZInfoUser::getSex,zInfoUser.getSex());
+        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()),ZInfoUser::getNickName,zInfoUser.getNickName());
+        lqw.eq(zInfoUser.getBirth()!=null,ZInfoUser::getBirth,zInfoUser.getBirth());
+
+        List<ZInfoUser> allPeopleList = list(lqw);
+        List<ZInfoUser> result = null;
+        try {
+            result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
+                    .map(people -> {
+                        if(depth>1){
+                            people.setIdentity(1);
+                            people.setChildList(fillChildren(people, allPeopleList, depth-1));
+                        }
+                        return people;
+                    }).collect(Collectors.toList());
+        } catch (NullPointerException e) {
+            throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
+        }
+        return AjaxResult.success(result);
+
+    }
+
+    private List<ZInfoUser> userList = new ArrayList<>();
+
+    /**
+     * 瀹惰氨淇℃伅
+     * @param genealogy
+     * @return
+     */
+    @Override
+    public AjaxResult listGenealogy(Genealogy genealogy,Integer pageNum,Integer pageSize) {
+        List<ZInfoUser> treeList= (List<ZInfoUser>) listWithTreeByCondition(100,genealogy).get("data");
+        recursionFindUser(treeList);
+
+        List<Genealogy> allData = userList.stream().map(
+                zInfoUser -> {
+                    Genealogy newGenealogy = new Genealogy();
+                    BeanUtils.copyProperties(zInfoUser, newGenealogy);
+
+                    if(zInfoUser.getSpouseId()!=null){
+                        ZInfoUser spouse = getById(zInfoUser.getSpouseId());
+                        newGenealogy.setSpouseName(spouse.getNickName());
+                    }
+                    return newGenealogy;
+                }
+        ).collect(Collectors.toList());
+
+        List<Genealogy> collect = allData.stream().distinct().sorted(Comparator.comparing(Genealogy::getIdentity)).collect(Collectors.toList());
+        List<Genealogy> resultData= new ArrayList<>();
+
+        for (int i = (pageNum-1)*pageSize; i <pageNum*pageSize+pageSize; i++) {
+            if(i>=collect.size()){
+                break;
+            }
+            resultData.add(collect.get(i));
+        }
+
+        HashMap<String, Object> resultMap = new HashMap<>();
+        resultMap.put("data",resultData);
+        resultMap.put("total",collect.size());
+        resultMap.put("pageNum",pageNum);
+        resultMap.put("pageSize",pageSize);
+
+        return AjaxResult.success(resultMap);
+    }
+
+    @Override
+    public List<Genealogy> selectByIds(Long[] ids) {
+        List<ZInfoUser> zInfoUsers = listByIds(Arrays.asList(ids));
+        ArrayList<Genealogy> result = new ArrayList<>();
+        for (ZInfoUser zInfoUser : zInfoUsers) {
+            Genealogy genealogy = new Genealogy();
+            BeanUtils.copyProperties(zInfoUser,genealogy);
+            if(zInfoUser.getSpouseId()!=null){
+                ZInfoUser spouse = getById(zInfoUser.getSpouseId());
+                genealogy.setSpouseName(spouse.getNickName());
+            }
+            result.add(genealogy);
+        }
+
+        System.out.println("瀵煎嚭鐨勬暟鎹负:"+result);
+        return result;
+
+    }
+
+    @Override
+    public List<Genealogy> selectDatas(List<GenealogyExportDto> params) {
+        ArrayList<Long> ids = new ArrayList<>();
+        for (GenealogyExportDto param : params) {
+            ids.add(param.getId());
+        }
+
+        List<ZInfoUser> zInfoUsers = listByIds(ids);
+        ArrayList<Genealogy> result = new ArrayList<>();
+        for (int i = 0; i < zInfoUsers.size(); i++) {
+            Genealogy genealogy = new Genealogy();
+            BeanUtils.copyProperties(zInfoUsers.get(i),genealogy);
+            genealogy.setIdentity(params.get(i).getIdentity());
+            if(zInfoUsers.get(i).getSpouseId()!=null){
+                ZInfoUser spouse = getById(zInfoUsers.get(i).getSpouseId());
+                genealogy.setSpouseName(spouse.getNickName());
+            }
+            result.add(genealogy);
+
+        }
+        System.out.println("瀵煎嚭鐨勬暟鎹负:"+result);
+        return result;
+
+
+    }
+
+
+    private void recursionFindUser(List<ZInfoUser> treeList){
+        if (treeList==null||treeList.isEmpty()){
+            return;
+        }
+        for (ZInfoUser zInfoUser : treeList) {
+            userList.add(zInfoUser);
+            if (!zInfoUser.getChildList().isEmpty()){
+                recursionFindUser(zInfoUser.getChildList());
+            }
+        }
     }
 
     /**
@@ -360,6 +495,8 @@
         return AjaxResult.success(zInfoUsers);
     }
 
+
+
     /**
      * 閫掑綊绠楁硶
      * @param people
@@ -380,6 +517,7 @@
                     if(depth==1)
                         return one;
                     else {
+                        one.setIdentity(people.getIdentity()+1);
                         List<ZInfoUser> zinfo = fillChildren(one, allPeopleList, depth - 1);
                         one.setChildList(zinfo);
                         System.out.println(one);
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 fe58ebf..552d378 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
@@ -277,8 +277,6 @@
     }
 
 
-
-
     @Override
     @Transactional
     public AjaxResult importExcel(MultipartFile file) {
@@ -299,4 +297,5 @@
 
     }
 
+
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfMasterServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfMasterServiceImpl.java
index c458693..cabf184 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfMasterServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfMasterServiceImpl.java
@@ -64,12 +64,12 @@
         lqw.eq(zfMaster.getPetId()!=null,ZfMaster::getPetId,zfMaster.getPetId());
         lqw.eq(StringUtils.isNotEmpty(zfMaster.getName()),ZfMaster::getName,zfMaster.getName());
         lqw.eq(StringUtils.isNotEmpty(zfMaster.getCertificateType()),ZfMaster::getCertificateType,zfMaster.getCertificateType());
-        lqw.eq(StringUtils.isNotEmpty(zfMaster.getFixedNo()),ZfMaster::getFixedNo,zfMaster.getFixedNo());
+
         lqw.eq(StringUtils.isNotEmpty(zfMaster.getPhoneNo()),ZfMaster::getPhoneNo,zfMaster.getPhoneNo());
-        lqw.eq(zfMaster.getMany()!=null,ZfMaster::getMany,zfMaster.getMany());
+
         lqw.eq(StringUtils.isNotEmpty(zfMaster.getAddress()),ZfMaster::getAddress,zfMaster.getAddress());
-        lqw.eq(StringUtils.isNotEmpty(zfMaster.getProperty()),ZfMaster::getProperty,zfMaster.getProperty());
-        lqw.eq(StringUtils.isNotEmpty(zfMaster.getEmail()),ZfMaster::getEmail,zfMaster.getEmail());
+
+
         return lqw;
 
     }
@@ -79,12 +79,11 @@
         lqw.like(zfMaster.getPetId()!=null,ZfMaster::getPetId,zfMaster.getPetId());
         lqw.like(StringUtils.isNotEmpty(zfMaster.getName()),ZfMaster::getName,zfMaster.getName());
         lqw.like(StringUtils.isNotEmpty(zfMaster.getCertificateType()),ZfMaster::getCertificateType,zfMaster.getCertificateType());
-        lqw.like(StringUtils.isNotEmpty(zfMaster.getFixedNo()),ZfMaster::getFixedNo,zfMaster.getFixedNo());
+
         lqw.like(StringUtils.isNotEmpty(zfMaster.getPhoneNo()),ZfMaster::getPhoneNo,zfMaster.getPhoneNo());
-        lqw.eq(zfMaster.getMany()!=null,ZfMaster::getMany,zfMaster.getMany());
+
         lqw.like(StringUtils.isNotEmpty(zfMaster.getAddress()),ZfMaster::getAddress,zfMaster.getAddress());
-        lqw.like(StringUtils.isNotEmpty(zfMaster.getProperty()),ZfMaster::getProperty,zfMaster.getProperty());
-        lqw.like(StringUtils.isNotEmpty(zfMaster.getEmail()),ZfMaster::getEmail,zfMaster.getEmail());
+
         return lqw;
     }
 }
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 f78c260..b6501de 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
@@ -5,15 +5,24 @@
 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.SysUser;
 import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.domain.ZInfoUser;
+import com.ruoyi.domain.ZfMaster;
 import com.ruoyi.domain.ZfPet;
 import com.ruoyi.domain.ZfProperty;
 import com.ruoyi.mapper.ZfPetMapper;
+import com.ruoyi.service.ZInfoUserService;
+import com.ruoyi.service.ZfMasterService;
 import com.ruoyi.service.ZfPetService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.HashMap;
 import java.util.List;
@@ -30,6 +39,14 @@
 @Slf4j
 public class ZfPetServiceImpl extends ServiceImpl<ZfPetMapper, ZfPet> implements ZfPetService {
 
+    @Autowired
+    ZInfoUserService zInfoUserService;
+
+    @Autowired
+    ZfMasterService zfMasterService;
+
+    @Autowired
+    ZfPetService zfPetService;
     @Override
     public AjaxResult selectPetList(ZfPet zfPet, Integer pageNum, Integer pageSize) {
         LambdaQueryWrapper<ZfPet> lqw = buildCondition(zfPet);
@@ -50,7 +67,14 @@
     }
 
     @Override
+    @Transactional
     public AjaxResult mySave(ZfPet zfPet) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+
+        String pid = IdUtils.fastSimpleUUID();
+        zfPet.setId(pid);
+
         //鍒ゆ柇鏄惁鏈夐噸澶嶆暟鎹�
         LambdaQueryWrapper<ZfPet> lqw = uniqueCondition(zfPet);
         List<ZfPet> list = list(lqw);
@@ -58,11 +82,24 @@
             throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
         }
 
-        if(save(zfPet)){
-            return AjaxResult.success();
-        }else {
-            return AjaxResult.error();
-        }
+        //鍏堟煡鎵炬湰浜虹殑鏁版嵁
+        LambdaQueryWrapper<ZInfoUser> zInfoLqw = new LambdaQueryWrapper<>();
+        zInfoLqw.eq(ZInfoUser::getUserId,userId);
+        ZInfoUser master = zInfoUserService.getOne(zInfoLqw);
+
+        ZfMaster zfMaster = new ZfMaster();
+        zfMaster.setPetId(zfPet.getId());
+        zfMaster.setName(master.getNickName());
+        zfMaster.setCertificateType("韬唤璇�");
+        zfMaster.setCertificateNo(master.getIdNo());
+        zfMaster.setPhoneNo(master.getPhoneNumber());
+        zfMaster.setAddress(master.getAlwaysAddress());
+
+        zfMasterService.save(zfMaster);
+
+        zfPetService.save(zfPet);
+
+        return AjaxResult.success();
 
     }
 

--
Gitblit v1.9.1