Browse Source

APP:家族树添加成员

Alex 4 years ago
parent
commit
4a68737fd4

+ 30 - 7
ruoyi-app/src/main/java/com/ruoyi/app/controller/FamilyMemberController.java

@@ -15,6 +15,7 @@ import com.ruoyi.app.service.ITbFamilyService;
 import com.ruoyi.app.service.ITbMemberMiddleService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.bean.BeanUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -22,9 +23,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.aspectj.weaver.bcel.AtAjAttributes;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -92,10 +91,34 @@ public class FamilyMemberController extends AppBaseController {
         return AjaxResult.success(memberService.getFamilyTree(familyId));
     }
 
-    //TODO 添加成员到家族树
-    public AjaxResult addToTree(@LoginAppUser TbAppUser user, Long familyId){
-        return null;
+    @ApiOperation("添加成员-家族树")
+    @PostMapping("/addToTree")
+    public AjaxResult addToTree(@LoginAppUser TbAppUser user, @RequestBody TbMemberMiddle member){
+        if (member == null) {
+            return AjaxResult.error("数据为空");
+        }
+        if (member.getFamilyId()==null) {
+            return AjaxResult.error("家族id不能为空");
+        }
+        if (member.getParentId()==null) {
+            return AjaxResult.error("父辈不能为空");
+        }
+        if (member.getMemberId()==null) {
+            return AjaxResult.error("姓名不能为空");
+        }
+        TbMemberMiddle middle = middleService.getOne(new LambdaQueryWrapper<TbMemberMiddle>()
+                .eq(TbMemberMiddle::getFamilyId,member.getFamilyId())
+                .eq(TbMemberMiddle::getMemberId,member.getMemberId())
+                .last("limit 1")
+        );
+        middle.setParentId(member.getParentId());
+        if(!middleService.updateById(middle)){
+            return AjaxResult.error("添加失败");
+        }
+
+        return AjaxResult.success("添加成功");
     }
 
-    //TODO 逻辑删除家族树的成员,是删除成员,还是从家族树撤下来;或者是已删除,但parentId还在
+    //TODO 逻辑删除家族树的成员(去掉parentId);如果这一代只有他一个,则不允许删除,否则家族树会断开
+
 }

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/app/domain/TbFamilyMember.java

@@ -45,9 +45,9 @@ public class TbFamilyMember implements Serializable {
     private Long appUserId;
 
     /** 配偶 */
-    @ApiModelProperty(value="配偶")
+    @ApiModelProperty(value="配偶 会员id")
     @Excel(name = "配偶")
-    private String spouse;
+    private String spouseUserId;
 
     /** 姓名 */
     @ApiModelProperty(value="姓名")

+ 9 - 1
ruoyi-system/src/main/java/com/ruoyi/app/domain/TbMemberMiddle.java

@@ -59,7 +59,7 @@ public class TbMemberMiddle implements Serializable {
     private String admin;
 
     /** 父成员id */
-    @ApiModelProperty(value="父成员id")
+    @ApiModelProperty(value="父成员id(第一辈为0)")
     @Excel(name = "父成员id")
     private Long parentId;
 
@@ -78,10 +78,18 @@ public class TbMemberMiddle implements Serializable {
     @Excel(name = "是否族长 Y是  N否")
     private String patriarch;
 
+    @ApiModelProperty(value="姓名")
+    @TableField(exist = false)
+    private String name;
+
     @ApiModelProperty(value="昵称")
     @TableField(exist = false)
     private String nickName;
 
+    @ApiModelProperty(value="配偶")
+    @TableField(exist = false)
+    private String spouse;
+
     @TableField(exist = false)
     private List<TbMemberMiddle> child;
 }

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/app/domain/vo/AppMemberVo.java

@@ -94,9 +94,9 @@ public class AppMemberVo extends BaseEntity {
 
 
     /** 配偶 */
-    @ApiModelProperty(value="配偶")
+    @ApiModelProperty(value="配偶 会员id")
     @Excel(name = "配偶")
-    private String spouse;
+    private String spouseUserId;
 
     /** 姓名 */
     @ApiModelProperty(value="姓名")

+ 0 - 4
ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbFamilyMemberServiceImpl.java

@@ -109,16 +109,12 @@ public class TbFamilyMemberServiceImpl extends ServiceImpl<TbFamilyMemberMapper,
      */
     private TbMemberMiddle getChildNode(TbMemberMiddle middle,List<TbMemberMiddle> list) {
         List<TbMemberMiddle> childList = new ArrayList<>();
-        TbMemberMiddle child = new TbMemberMiddle();
         list.forEach(item -> {
             if(middle.getId().equals(item.getParentId())){
                 childList.add(item);
             }
         });
         middle.setChild(childList);
-        childList.forEach(item -> {
-            getChildNode(item,list);
-        });
         for (TbMemberMiddle item : childList) {
             getChildNode(item,list);
         }

+ 1 - 1
ruoyi-system/src/main/resources/mapper/app/TbAppUserMapper.xml

@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         a.py_code user_py_code,a.py_first user_,py_first
         a.create_by user_create_by,a.create_time user_create_time, a.update_by user_update_by, a.update_time user_update_time, a.remark user_remark
         ,
-        b.id member_id,b.spouse,b.name,b.birthday,b.gender,b.education,b.state,b.py_code member_py_code,b.py_first member_py_first,
+        b.id member_id,b.spouse_user_id,b.name,b.birthday,b.gender,b.education,b.state,b.py_code member_py_code,b.py_first member_py_first,
         b.create_by member_create_by,b.create_time member_create_time,b.update_by member_update_by,b.update_time member_update_time,b.remark member_remark
         from tb_app_user a
         <if test="type == 'user' ">

+ 3 - 3
ruoyi-system/src/main/resources/mapper/app/TbFamilyMemberMapper.xml

@@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="TbFamilyMember" id="TbFamilyMemberResult">
         <result property="id"    column="id"    />
         <result property="appUserId"    column="app_user_id"    />
-        <result property="spouse"    column="spouse"    />
+        <result property="spouseUserId"    column="spouse_user_id"    />
         <result property="name"    column="name"    />
         <result property="birthday"    column="birthday"    />
         <result property="gender"    column="gender"    />
@@ -24,8 +24,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectFamilyMember" resultType="com.ruoyi.app.domain.vo.AppMemberVo">
         select u.mobile,u.qrcode,u.nick_name, m.name,m.gender,m.birthday,m.spouse,mi.status,
-        mi.parent_id,(select me.name from tb_family_member me where mi.parent_id = me.app_user_id) parent_name,
-        (select me.spouse from tb_family_member me where mi.parent_id = me.app_user_id) mother_name
+        mi.parent_id,(select me.name from tb_family_member me where mi.parent_id = me.id) parent_name,
+        (select mm.name from tb_family_member mm where mm.app_user_id = (select me.spouse_user_id from tb_family_member me where mi.parent_id = me.id)) mother_name
         from tb_app_user u
         left join tb_family_member m on u.id = m.app_user_id
         left join tb_member_middle mi on m.id = mi.member_id

+ 1 - 1
ruoyi-system/src/main/resources/mapper/app/TbMemberMiddleMapper.xml

@@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="selectApplyMember" resultType="com.ruoyi.app.domain.TbMemberMiddle">
-        select mi.*,u.nick_name
+        select mi.*,u.nick_name,m.name,(select me.name from tb_family_member me where me.app_user_id = m.spouse_user_id) spouse
         from tb_member_middle mi
         left join tb_family_member m on mi.member_id = m.id
         left join tb_app_user u on u.id = m.app_user_id