Browse Source

APP:添加家族成员

Alex 4 năm trước cách đây
mục cha
commit
fd5d3ac601

+ 2 - 2
pom.xml

@@ -17,12 +17,12 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>
         <mybatis.boot.version>1.3.2</mybatis.boot.version>
-        <druid.version>1.1.22</druid.version>
+        <druid.version>1.2.1</druid.version>
         <bitwalker.version>1.19</bitwalker.version>
         <swagger.version>2.9.2</swagger.version>
 		<kaptcha.version>2.3.2</kaptcha.version>
         <pagehelper.boot.version>1.2.5</pagehelper.boot.version>
-        <fastjson.version>1.2.73</fastjson.version>
+        <fastjson.version>1.2.74</fastjson.version>
         <oshi.version>5.2.5</oshi.version>
         <jna.version>5.5.0</jna.version>
         <commons.io.version>2.5</commons.io.version>

+ 64 - 11
ruoyi-app/src/main/java/com/ruoyi/app/controller/FamilyController.java

@@ -4,19 +4,28 @@ 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.controller.base.AppBaseController;
+import com.ruoyi.app.domain.TbAppUser;
 import com.ruoyi.app.domain.TbFamily;
+import com.ruoyi.app.domain.TbFamilyMember;
 import com.ruoyi.app.domain.TbMemberMiddle;
+import com.ruoyi.app.domain.vo.AppMemberVo;
+import com.ruoyi.app.service.ITbAppUserService;
 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.enums.BusinessType;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 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.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.Date;
 
 /**
  * 家族管理
@@ -31,14 +40,18 @@ import org.springframework.web.bind.annotation.RestController;
 public class FamilyController extends AppBaseController {
 
     private final ITbFamilyService familyService;
+    private final ITbAppUserService appUserService;
+    private final ITbMemberMiddleService middleService;
 
     /**
      * 查询我的默认家族
      */
     @ApiOperation("我的默认家族")
-    @ApiImplicitParam(name = "memberId", value = "家族成员ID",paramType="Long")
     @GetMapping("/myFamily")
-    public AjaxResult myFamily(Long memberId){
+    public AjaxResult myFamily(){
+        TbAppUser user = getLoginUser().getUser();
+        AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
+        Long memberId = memberVo.getMemberId();
         if (memberId == null) {
             return AjaxResult.error("成员id不能为空");
         }
@@ -47,19 +60,59 @@ public class FamilyController extends AppBaseController {
     }
 
     @ApiOperation("我的家族列表")
-    @ApiImplicitParam(name = "memberId", value = "家族成员ID",paramType="Long")
     @GetMapping("/myList")
-    public AjaxResult myList(Long memberId){
+    public AjaxResult myList(){
+        TbAppUser user = getLoginUser().getUser();
+        AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
+        Long memberId = memberVo.getMemberId();
         if (memberId == null) {
             return AjaxResult.error("成员id不能为空");
         }
         return AjaxResult.success(familyService.selectByMemberId(memberId));
     }
 
-    //切换家族
-
+    /**
+     * 创建家族
+     */
+    @ApiOperation("创建家族")
+    @PostMapping("/create")
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult add(@RequestBody TbFamily tbFamily) {
+        Date date = new Date();
+        tbFamily.setCreateTime(date);
+        tbFamily.setUpdateTime(date);
+        if(!familyService.saveFamily(tbFamily)) {
+            return AjaxResult.error("创建失败");
+        }
+        // 设置添加人为管理员
+        TbAppUser user = getLoginUser().getUser();
+        AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
+        appUserService.saveOrUpdate(memberVo);
+        TbMemberMiddle middle = new TbMemberMiddle();
+        middle.setMemberId(memberVo.getMemberId());
+        middle.setFamilyId(tbFamily.getId());
+        middle.setAcquiesce("Y");
+        middle.setAdmin("Y");
+        middle.setStatus("2");
+        if(!middleService.save(middle)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("创建失败");
+        }
+        return AjaxResult.success("创建成功");
+    }
 
-    //家族树
+    @ApiOperation("切换家族")
+    @ApiImplicitParam(name = "familyId", value = "切换的家族ID",paramType="Long")
+    @GetMapping("/change")
+    public AjaxResult change(Long familyId) {
+        TbAppUser user = getLoginUser().getUser();
+        AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
+        Long memberId = memberVo.getMemberId();
+        if(familyService.change(memberId,familyId)){
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("切换失败");
+    }
 
-    //家族成员
+    // 加入家族
 }

+ 87 - 0
ruoyi-app/src/main/java/com/ruoyi/app/controller/FamilyMemberController.java

@@ -0,0 +1,87 @@
+package com.ruoyi.app.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.ruoyi.app.controller.base.AppBaseController;
+import com.ruoyi.app.domain.TbAppUser;
+import com.ruoyi.app.domain.TbFamily;
+import com.ruoyi.app.domain.TbFamilyMember;
+import com.ruoyi.app.domain.TbMemberMiddle;
+import com.ruoyi.app.domain.vo.AppMemberVo;
+import com.ruoyi.app.service.ITbAppUserService;
+import com.ruoyi.app.service.ITbFamilyMemberService;
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+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 java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 家族成员管理
+ *
+ * @author Alex
+ * @date 2020-09-24
+ */
+@Api(value = "家族成员管理",tags = "家族成员管理")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/member" )
+public class FamilyMemberController extends AppBaseController {
+
+    private final ITbFamilyMemberService memberService;
+    private final ITbAppUserService appUserService;
+    private final ITbFamilyService familyService;
+    private final ITbMemberMiddleService middleService;
+
+    @ApiOperation("我的家族成员列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页",paramType="int"),
+            @ApiImplicitParam(name = "pageSize", value = "每页行数",paramType="int")
+    })
+    @GetMapping("/list")
+    public TableDataInfo list(Integer pageNum, Integer pageSize) {
+        // 登录用户
+        TbAppUser user = getLoginUser().getUser();
+        // 获取成员信息
+        AppMemberVo memberVo = appUserService.getAppMember(user.getId().toString(),"");
+        if (memberVo == null) {
+            return new TableDataInfo();
+        }
+        // 获取默认家族信息
+        TbFamily family = familyService.myFamily(memberVo.getMemberId());
+        // 获取家族关联成员的信息
+        List<TbMemberMiddle> middles = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
+            .eq(TbMemberMiddle::getFamilyId, family.getId())
+        );
+        if (middles.size() <= 0) {
+            return new TableDataInfo();
+        }
+        List<Long> ids = new ArrayList<>();
+        middles.forEach(item -> {
+            ids.add(item.getMemberId());
+        });
+        // 根据家族获取成员信息
+        pageNum = pageNum == null ? 1 : pageNum;
+        pageSize = pageSize == null ? 10 : pageSize;
+        PageHelper.startPage(pageNum, pageSize, "py_first asc");
+        List<TbFamilyMember> list = memberService.list(new LambdaQueryWrapper<TbFamilyMember>()
+            .in(TbFamilyMember::getId, ids)
+        );
+        return getDataTable(list);
+    }
+
+
+    //家族树
+
+}