From 3cfa0bda6574d0c39db120c457e98a168aa193e8 Mon Sep 17 00:00:00 2001
From: Jinquan_Ou <Jinquan@gdut.com>
Date: 星期日, 23 四月 2023 17:15:20 +0800
Subject: [PATCH] 完成婚姻

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZMarryServiceImpl.java |  266 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 265 insertions(+), 1 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZMarryServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZMarryServiceImpl.java
index 829457f..66f70d6 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZMarryServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZMarryServiceImpl.java
@@ -1,15 +1,30 @@
 package com.ruoyi.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.bean.BeanUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.domain.MarryUser;
 import com.ruoyi.domain.ZMarry;
+import com.ruoyi.domain.dto.MarryInfoDto;
 import com.ruoyi.mapper.ZMarryMapper;
+import com.ruoyi.service.MarryUserService;
 import com.ruoyi.service.ZMarryService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author ojq
@@ -18,4 +33,253 @@
 @Service
 public class ZMarryServiceImpl extends ServiceImpl<ZMarryMapper, ZMarry> implements ZMarryService {
 
+    @Resource
+    MarryUserService marryUserService;
+
+    @Autowired
+    ZMarryServiceImpl zMarryService;
+
+    @Override
+    public AjaxResult getNow() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+
+        //鍏堟煡璇釜浜轰俊鎭�
+        LambdaQueryWrapper<MarryUser> marryUserLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+        marryUserLambdaQueryWrapper1.eq(MarryUser::getMyId, userId);
+        MarryUser myself = marryUserService.getOne(marryUserLambdaQueryWrapper1);
+
+        //鍐嶆煡璇腑闂磋〃淇℃伅
+        if (myself == null) {
+            throw new RuntimeException("鎮ㄦ殏鏃惰繕鏈湪濠氬Щ琛ㄤ腑娣诲姞涓汉淇℃伅");
+        }
+        LambdaQueryWrapper<ZMarry> zMarryLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        zMarryLambdaQueryWrapper.eq(ZMarry::getUserId, myself.getMyId())
+                .eq(ZMarry::getDeleteStatus, 0);
+        ZMarry myMarryInfo = getOne(zMarryLambdaQueryWrapper);//鍙兘鏈変竴涓厤鍋�
+
+        //鏍规嵁涓棿琛ㄤ俊鎭煡璇㈤厤鍋朵俊鎭�
+        if (myMarryInfo == null) {
+            throw new RuntimeException("鎮ㄦ殏鏃惰繕鏈湪濠氬Щ琛ㄤ腑娣诲姞濠氬Щ淇℃伅");
+        }
+        String spouseId = myMarryInfo.getSpouseId();
+        LambdaQueryWrapper<MarryUser> marryUserLambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+        marryUserLambdaQueryWrapper2.eq(MarryUser::getId, spouseId);
+        MarryUser spouse = marryUserService.getOne(marryUserLambdaQueryWrapper2);
+        if (spouse == null) {
+            throw new RuntimeException("鎮ㄦ殏鏃惰繕鏈湪濠氬Щ琛ㄤ腑娣诲姞閰嶅伓淇℃伅");
+        }
+
+        //鏍规嵁涓棿琛ㄤ俊鎭煡璇㈠墠浠讳俊鎭�
+        LambdaQueryWrapper<ZMarry> zMarryOldLQW = new LambdaQueryWrapper<>();
+        zMarryOldLQW.eq(ZMarry::getUserId,myself.getMyId())
+                .eq(ZMarry::getDeleteStatus,1);
+        List<ZMarry> oldList = list(zMarryOldLQW);
+
+        //鍓嶄换淇℃伅琛�
+        List<MarryUser> oldSpouseList = new ArrayList<>();
+        for (ZMarry zMarry : oldList) {
+            String spouseId1 = zMarry.getSpouseId();
+            MarryUser oldSpouse = marryUserService.getById(spouseId1);
+            oldSpouseList.add(oldSpouse);
+        }
+
+        //缁熶竴灏佽杩斿洖
+        HashMap<String, Object> resultMap = new HashMap<>();
+        resultMap.put("myInfo",myself);
+        resultMap.put("spouseInfo",spouse);
+        resultMap.put("marryInfo",myMarryInfo);
+        resultMap.put("oldSpouseInfo",oldSpouseList);
+
+        return AjaxResult.success(resultMap);
+    }
+
+    @Transactional
+    public AjaxResult addInfo(MarryInfoDto marryInfoDto){
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+
+        String meId= IdUtils.simpleUUID();
+        String spouseId = IdUtils.simpleUUID();
+
+        //娣诲姞鑷繁鐨勪俊鎭�
+        MarryUser myself = new MarryUser();
+        myself.setId(meId);
+        myself.setName(marryInfoDto.getName());
+        myself.setBirthday(marryInfoDto.getBirthday());
+        myself.setAddress(marryInfoDto.getAddress());
+        myself.setWorkAddress(marryInfoDto.getWorkAddress());
+        myself.setMarryStatus(marryInfoDto.getMarryStatus());
+        myself.setSex(marryInfoDto.getSex());
+        myself.setMyId(userId);
+        myself.setNation(marryInfoDto.getNation());
+        myself.setPhone(marryInfoDto.getPhone());
+        marryUserService.save(myself);
+
+        //娣诲姞閰嶅伓鐨勪俊鎭�
+        MarryUser spouse = new MarryUser();
+        spouse.setId(spouseId);
+        spouse.setName(marryInfoDto.getSpouseName());
+        spouse.setBirthday(marryInfoDto.getSpouseBirthday());
+        spouse.setAddress(marryInfoDto.getSpouseAddress());
+        spouse.setWorkAddress(marryInfoDto.getSpouseWorkAddress());
+        spouse.setMarryStatus(marryInfoDto.getSpouseMarryStatus());
+        spouse.setSex(marryInfoDto.getSpouseSex());
+        spouse.setNation(marryInfoDto.getSpouseNation());
+        spouse.setPhone(marryInfoDto.getSpousePhone());
+        marryUserService.save(spouse);
+
+        //娣诲姞鐢熻偛鎯呭喌(涓棿琛�)淇℃伅
+        ZMarry zMarry = new ZMarry();
+        zMarry.setUserId(userId);
+        zMarry.setSpouseId(spouseId);
+        zMarry.setMarryTime(marryInfoDto.getMarryTime());
+        zMarry.setBearStatus(marryInfoDto.getBearStatus());
+        zMarry.setHandbookStatus(marryInfoDto.getHandbookStatus());
+        zMarry.setHandbookTime(marryInfoDto.getHandbookTime());
+        zMarry.setOneBorn(marryInfoDto.getOneBorn());
+        zMarry.setOneBornTime(marryInfoDto.getOneBornTime());
+        zMarry.setContent(marryInfoDto.getContent());
+        zMarry.setRemark(marryInfoDto.getRemark());
+        zMarry.setDeleteStatus(0);
+        zMarryService.save(zMarry);
+
+
+        List<MarryUser> oldSpouseList = marryInfoDto.getOldSpouseList();
+
+        //娣诲姞鍓嶄换鐨勪俊鎭�
+        if(oldSpouseList!=null&&oldSpouseList.size()!=0){
+            for (MarryUser marryUser : oldSpouseList) {
+                //鍏堟坊鍔犻厤鍋剁敤鎴蜂俊鎭�
+                String spId = IdUtils.simpleUUID();
+                marryUser.setId(spId);
+                marryUserService.save(marryUser);
+
+                //鍐嶆坊鍔犱腑闂磋〃淇℃伅
+                ZMarry oldMarry = new ZMarry();
+                oldMarry.setUserId(userId);
+                oldMarry.setSpouseId(spId);
+                oldMarry.setDeleteStatus(1);
+                zMarryService.save(oldMarry);
+            }
+        }
+
+        return AjaxResult.success();
+    }
+
+    @Transactional
+    public AjaxResult updateInfo(MarryInfoDto marryInfoDto){
+
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        //鏇存柊鑷繁鐨勪俊鎭�
+        MarryUser myself = new MarryUser();
+        myself.setId(marryInfoDto.getId());
+        myself.setName(marryInfoDto.getName());
+        myself.setBirthday(marryInfoDto.getBirthday());
+        myself.setAddress(marryInfoDto.getAddress());
+        myself.setWorkAddress(marryInfoDto.getWorkAddress());
+        myself.setMarryStatus(marryInfoDto.getMarryStatus());
+        myself.setSex(marryInfoDto.getSex());
+        myself.setNation(marryInfoDto.getNation());
+        myself.setPhone(marryInfoDto.getPhone());
+        marryUserService.updateById(myself);
+
+        //鏇存柊閰嶅伓鐨勪俊鎭�
+
+        //鍏堟煡璇㈡槸鏇存柊閰嶅伓淇℃伅杩樻槸鎹㈤厤鍋讹紝鍥犱负閰嶅伓鍙兘鏈変竴涓�
+        //杩欓噷鏆傛椂鐢ㄥ悕瀛楁潵鍒ゆ柇鍚э紝濡傛灉鏈夐噸鍚嶇殑浜哄氨浼氭湁bug
+        //鍏堟煡璇�
+        String spouseName = marryInfoDto.getSpouseName();
+        MarryUser marry = marryUserService.getById(marryInfoDto.getSpouseId());
+        String marryName = marry.getName();
+        if(!spouseName.equals(marryName)){
+
+            //濡傛灉姝e瀛愭崲浜轰簡锛屽氨鏂板鑰屼笉鏄慨鏀癸紝鍚屾椂鍒犻櫎鏃х邯褰�
+            //灏嗙幇鍦ㄤ腑闂磋〃鐨勫瀛愭敼鎴愬墠濡�
+            LambdaQueryWrapper<ZMarry> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(ZMarry::getUserId,userId)
+                            .eq(ZMarry::getSpouseId,marryInfoDto.getSpouseId());
+            ZMarry one = getOne(lqw);
+            one.setDeleteStatus(1);
+            zMarryService.updateById(one);
+
+            //鏂板鐢ㄦ埛淇℃伅琛�
+            String spouseId = IdUtils.simpleUUID();
+            MarryUser spouse = new MarryUser();
+            spouse.setId(spouseId);
+            spouse.setName(marryInfoDto.getSpouseName());
+            spouse.setBirthday(marryInfoDto.getSpouseBirthday());
+            spouse.setAddress(marryInfoDto.getSpouseAddress());
+            spouse.setWorkAddress(marryInfoDto.getSpouseWorkAddress());
+            spouse.setMarryStatus(marryInfoDto.getSpouseMarryStatus());
+            spouse.setSex(marryInfoDto.getSpouseSex());
+            spouse.setNation(marryInfoDto.getSpouseNation());
+            spouse.setPhone(marryInfoDto.getSpousePhone());
+            marryUserService.save(spouse);
+
+            //鏂板涓棿琛�
+            //娣诲姞鐢熻偛鎯呭喌(涓棿琛�)淇℃伅
+            ZMarry zMarry = new ZMarry();
+            zMarry.setUserId(userId);
+            zMarry.setSpouseId(spouseId);
+            zMarry.setMarryTime(marryInfoDto.getMarryTime());
+            zMarry.setBearStatus(marryInfoDto.getBearStatus());
+            zMarry.setHandbookStatus(marryInfoDto.getHandbookStatus());
+            zMarry.setHandbookTime(marryInfoDto.getHandbookTime());
+            zMarry.setOneBorn(marryInfoDto.getOneBorn());
+            zMarry.setOneBornTime(marryInfoDto.getOneBornTime());
+            zMarry.setContent(marryInfoDto.getContent());
+            zMarry.setRemark(marryInfoDto.getRemark());
+            zMarry.setDeleteStatus(0);
+            zMarryService.save(zMarry);
+
+
+
+        }else {
+
+            MarryUser spouse = new MarryUser();
+            spouse.setId(marryInfoDto.getSpouseId());
+            spouse.setName(marryInfoDto.getSpouseName());
+            spouse.setBirthday(marryInfoDto.getSpouseBirthday());
+            spouse.setAddress(marryInfoDto.getSpouseAddress());
+            spouse.setWorkAddress(marryInfoDto.getSpouseWorkAddress());
+            spouse.setMarryStatus(marryInfoDto.getSpouseMarryStatus());
+            spouse.setSex(marryInfoDto.getSpouseSex());
+            spouse.setNation(marryInfoDto.getSpouseNation());
+            spouse.setPhone(marryInfoDto.getSpousePhone());
+            marryUserService.updateById(spouse);
+
+            //鏇存柊鐢熻偛鎯呭喌淇℃伅
+            ZMarry zMarry = new ZMarry();
+            zMarry.setId(marryInfoDto.getMarryId());
+            zMarry.setMarryTime(marryInfoDto.getMarryTime());
+            zMarry.setBearStatus(marryInfoDto.getBearStatus());
+            zMarry.setHandbookStatus(marryInfoDto.getHandbookStatus());
+            zMarry.setHandbookTime(marryInfoDto.getHandbookTime());
+            zMarry.setOneBorn(marryInfoDto.getOneBorn());
+            zMarry.setOneBornTime(marryInfoDto.getOneBornTime());
+            zMarry.setContent(marryInfoDto.getContent());
+            zMarry.setRemark(marryInfoDto.getRemark());
+            zMarry.setDeleteStatus(0);
+            zMarryService.updateById(zMarry);
+        }
+
+        //鏇存柊鍓嶄换淇℃伅
+        List<MarryUser> oldSpouseList = marryInfoDto.getOldSpouseList();
+        if(oldSpouseList!=null&&oldSpouseList.size()!=0){
+            for (MarryUser marryUser : oldSpouseList) {
+                //淇敼鐢ㄦ埛鍓嶄换淇℃伅
+                marryUserService.updateById(marryUser);
+                //涓棿琛ㄤ笉闇�瑕佷慨鏀�
+            }
+        }
+        return AjaxResult.success();
+    }
+
+    public AjaxResult deleteOld(String spouseId){
+        marryUserService.removeById(spouseId);
+        return AjaxResult.success();
+    }
+
 }

--
Gitblit v1.9.1