소스 검색

修改退出家族后重新申请的问题

Alex 4 년 전
부모
커밋
66bdb3b996
1개의 변경된 파일12개의 추가작업 그리고 8개의 파일을 삭제
  1. 12 8
      ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbFamilyServiceImpl.java

+ 12 - 8
ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbFamilyServiceImpl.java

@@ -65,13 +65,19 @@ public class TbFamilyServiceImpl extends ServiceImpl<TbFamilyMapper, TbFamily> i
     @Override
     public AjaxResult applyFamily(AppMemberVo memberVo){
 
-        List<TbMemberMiddle> middles = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
+        TbMemberMiddle middle = middleService.getOne(new LambdaQueryWrapper<TbMemberMiddle>()
                 .eq(TbMemberMiddle::getFamilyId,memberVo.getFamilyId())
                 .eq(TbMemberMiddle::getMemberId,memberVo.getMemberId())
-                .eq(TbMemberMiddle::getStatus,"2")
+                .last("limit 1")
         );
-        if (middles.size() > 0) {
-            return AjaxResult.error("已在该家族,不允许重复加入");
+        if (middle == null) {
+            middle = new TbMemberMiddle();
+            middle.setFamilyId(memberVo.getFamilyId());
+            middle.setMemberId(memberVo.getMemberId());
+        } else {
+            if ("2".equals(middle.getStatus())){
+                return AjaxResult.error("已在该家族,不允许重复加入");
+            }
         }
 
         memberVo.setJoins("Y");
@@ -84,15 +90,13 @@ public class TbFamilyServiceImpl extends ServiceImpl<TbFamilyMapper, TbFamily> i
         List<TbMemberMiddle> middleList = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
                 .eq(TbMemberMiddle::getMemberId,memberVo.getMemberId())
         );
-        TbMemberMiddle middle = new TbMemberMiddle();
+
         if (middleList.size() == 0) {
             // 如果从未加入过家族,则设置为默认家族
             middle.setAcquiesce("Y");
         }
-        middle.setFamilyId(memberVo.getFamilyId());
-        middle.setMemberId(memberVo.getMemberId());
         middle.setStatus("1"); // 申请
-        if(!middleService.save(middle)){
+        if(!middleService.saveOrUpdate(middle)){
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("申请失败");
         }