123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- package com.ruoyi.app.controller;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.github.pagehelper.PageHelper;
- 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;
- 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.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.StringUtils;
- import com.ruoyi.common.utils.bean.BeanUtils;
- 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.aspectj.weaver.bcel.AtAjAttributes;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.*;
- 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("我的家族成员列表")
- @GetMapping("/list")
- public AjaxResult list() {
- // 登录用户
- AppMemberVo memberVo = getLoginUser().getUser();
- // 获取默认家族信息
- TbFamily family = familyService.myFamily(memberVo.getMemberId());
- // 获取家族关联成员的信息
- List<TbMemberMiddle> middles = middleService.list(new LambdaQueryWrapper<TbMemberMiddle>()
- .eq(TbMemberMiddle::getFamilyId, family.getId())
- );
- if (middles.size() <= 0) {
- return AjaxResult.success();
- }
- 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 AjaxResult.success(list);
- }
- @ApiOperation("家族树")
- @GetMapping("/tree")
- public AjaxResult tree(Long familyId){
- if (familyId == null) {
- return AjaxResult.error("家族id不能为空");
- }
- return AjaxResult.success(memberService.getFamilyTree(familyId));
- }
- @ApiOperation("家族树 列表")
- @GetMapping("/treeList")
- public AjaxResult treeList(Long familyId) {
- return null;
- }
- @ApiOperation("添加成员-家族树")
- @PostMapping("/addToTree")
- public AjaxResult addToTree(@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("姓名不能为空");
- }
- if(!memberService.addFamilyTree(member)){
- return AjaxResult.error("添加失败");
- }
- return AjaxResult.success("添加成功");
- }
- @ApiOperation(value = "逻辑删除家族树的成员", notes = "逻辑删除家族树的成员(去掉parentId),相当于这一支人将从家族树中删除")
- @PostMapping("/delToTree")
- public AjaxResult delToTree(Long memberId, Long familyId) {
- if (memberId == null || familyId ==null) {
- return AjaxResult.error("参数不能为空");
- }
- TbMemberMiddle middle = middleService.getOne(new LambdaQueryWrapper<TbMemberMiddle>()
- .eq(TbMemberMiddle::getFamilyId,familyId)
- .eq(TbMemberMiddle::getMemberId,memberId)
- .last("limit 1")
- );
- if (middle == null) {
- return AjaxResult.error("删除失败");
- }
- if (middle.getParentId() == null) {
- return AjaxResult.error("该成员没有在家族树中");
- }
- // 设置parentId为空
- middle.setParentId(null);
- if(!middleService.updateById(middle)){
- return AjaxResult.error("删除失败");
- }
- return AjaxResult.success("删除成功");
- }
- @ApiOperation("编辑成员")
- @PostMapping("/edit")
- public AjaxResult edit(@RequestBody AppMemberVo member) {
- if (member == null) {
- return AjaxResult.error("成员信息不能为空");
- }
- if (StringUtils.isBlank(member.getMobile())){
- return AjaxResult.error("手机号不能为空");
- }
- AppMemberVo memberVo = appUserService.getAppMember(null,member.getMobile());
- if (memberVo == null) {
- return AjaxResult.error("保存失败,成员信息不能为空");
- }
- // TODO copy后,id不知道还有没有
- BeanUtils.copyBeanProp(memberVo,member);
- if(!appUserService.saveOrUpdate(memberVo)){
- return AjaxResult.error("保存失败");
- }
- return AjaxResult.success("保存成功");
- }
- @ApiOperation("获取成员")
- @PostMapping("/get")
- public AjaxResult get(Long memberId) {
- if (memberId == null) {
- return AjaxResult.error("成员id不能为空");
- }
- return AjaxResult.success(memberService.get(memberId));
- }
- /**
- * 删除家族成员
- */
- @ApiOperation("删除家族成员")
- @DeleteMapping("/{familyId}/{ids}" )
- public AjaxResult remove(@PathVariable String familyId, @PathVariable Long[] ids) {
- if (familyId == null) {
- return AjaxResult.error("家族id不能为空");
- }
- if (ids.length <= 0) {
- return AjaxResult.error("未选择要删的成员");
- }
- return memberService.delMember(familyId,ids);
- }
- }
|