|
@@ -3,6 +3,7 @@ package com.ruoyi.app.controller;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
+import com.ruoyi.app.annotation.LoginAppUser;
|
|
|
import com.ruoyi.app.controller.base.AppBaseController;
|
|
|
import com.ruoyi.app.domain.TbAppUser;
|
|
|
import com.ruoyi.app.domain.TbFamily;
|
|
@@ -14,18 +15,26 @@ import com.ruoyi.app.service.ITbFamilyService;
|
|
|
import com.ruoyi.app.service.ITbMemberMiddleService;
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
|
+import com.ruoyi.common.utils.bean.BeanUtils;
|
|
|
+import com.ruoyi.common.utils.spring.SpringUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
|
+import org.aspectj.weaver.loadtime.Aj;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 家族管理
|
|
@@ -87,7 +96,10 @@ public class FamilyController extends AppBaseController {
|
|
|
// 设置添加人为管理员
|
|
|
TbAppUser user = getLoginUser().getUser();
|
|
|
AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
|
|
|
- appUserService.saveOrUpdate(memberVo);
|
|
|
+ if(!appUserService.saveOrUpdate(memberVo)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("创建失败");
|
|
|
+ }
|
|
|
TbMemberMiddle middle = new TbMemberMiddle();
|
|
|
middle.setMemberId(memberVo.getMemberId());
|
|
|
middle.setFamilyId(tbFamily.getId());
|
|
@@ -114,5 +126,114 @@ public class FamilyController extends AppBaseController {
|
|
|
return AjaxResult.error("切换失败");
|
|
|
}
|
|
|
|
|
|
- // 加入家族
|
|
|
+ /**
|
|
|
+ * 申请加入家族
|
|
|
+ * @param familyId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @ApiOperation("申请加入家族")
|
|
|
+ @ApiImplicitParam(name = "familyId", value = "申请的家族ID",paramType="Long")
|
|
|
+ @GetMapping("/join")
|
|
|
+ public AjaxResult join(@LoginAppUser TbAppUser user, Long familyId) {
|
|
|
+
|
|
|
+ AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
|
|
|
+
|
|
|
+ List<TbMemberMiddle> middles = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
|
|
|
+ .eq(TbMemberMiddle::getFamilyId,familyId)
|
|
|
+ .eq(TbMemberMiddle::getMemberId,memberVo.getMemberId())
|
|
|
+ .eq(TbMemberMiddle::getStatus,"2")
|
|
|
+ );
|
|
|
+ if (middles.size() > 0) {
|
|
|
+ return AjaxResult.error("已在该家族,不允许重复加入");
|
|
|
+ }
|
|
|
+
|
|
|
+ memberVo.setUserId(user.getId());
|
|
|
+ memberVo.setName(user.getNickName());
|
|
|
+ memberVo.setJoins("Y");
|
|
|
+ // 保存成员
|
|
|
+ if(appUserService.saveOrUpdate(memberVo)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("申请失败");
|
|
|
+ }
|
|
|
+ // 是否已加入过家族
|
|
|
+ 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(familyId);
|
|
|
+ middle.setMemberId(memberVo.getMemberId());
|
|
|
+ middle.setStatus("1"); // 申请
|
|
|
+ if(!middleService.save(middle)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("申请失败");
|
|
|
+ }
|
|
|
+ return AjaxResult.success("申请成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 申请列表
|
|
|
+ @GetMapping("/selectApply")
|
|
|
+ public TableDataInfo selectApply(@LoginAppUser TbAppUser user, Long familyId){
|
|
|
+ if (familyId == null){
|
|
|
+ return new TableDataInfo();
|
|
|
+ }
|
|
|
+ // 获取申请列表 1申请 3拒绝 4退出
|
|
|
+ List<TbMemberMiddle> middleList = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
|
|
|
+ .eq(TbMemberMiddle::getFamilyId,familyId)
|
|
|
+ .in(TbMemberMiddle::getStatus, Arrays.asList("1","3","4"))
|
|
|
+ );
|
|
|
+ if (middleList.size() <= 0){
|
|
|
+ return new TableDataInfo();
|
|
|
+ }
|
|
|
+ // 查询申请的会员
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ middleList.forEach(item -> {
|
|
|
+ ids.add(item.getMemberId());
|
|
|
+ });
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 通过申请
|
|
|
+// public AjaxResult pass(){
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 退出家族
|
|
|
+ * @param familyId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation("退出家族")
|
|
|
+ @ApiImplicitParam(name = "familyId", value = "申请的家族ID",paramType="Long")
|
|
|
+ @GetMapping("/quit")
|
|
|
+ public AjaxResult quit(@LoginAppUser TbAppUser user, Long familyId) {
|
|
|
+ if (familyId == null) {
|
|
|
+ return AjaxResult.error("家族id为空");
|
|
|
+ }
|
|
|
+ AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
|
|
|
+ TbMemberMiddle middle = middleService.getOne(new LambdaQueryWrapper<TbMemberMiddle>()
|
|
|
+ .eq(TbMemberMiddle::getMemberId,memberVo.getMemberId())
|
|
|
+ .eq(TbMemberMiddle::getFamilyId,familyId)
|
|
|
+ );
|
|
|
+ if (middle == null){
|
|
|
+ return AjaxResult.error("未加入家族");
|
|
|
+ }
|
|
|
+ if ("Y".equals(middle.getPatriarch())) {
|
|
|
+ return AjaxResult.error("族长不能退出家族");
|
|
|
+ }
|
|
|
+ if ("4".equals(middle.getStatus())) {
|
|
|
+ return AjaxResult.error("已退出");
|
|
|
+ }
|
|
|
+ middle.setStatus("4"); //退出
|
|
|
+ middle.setAcquiesce("N");
|
|
|
+ if(!middleService.updateById(middle)){
|
|
|
+ return AjaxResult.error("退出失败");
|
|
|
+ }
|
|
|
+ return AjaxResult.success("退出成功");
|
|
|
+ }
|
|
|
+
|
|
|
}
|