123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- 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(String search) {
- // 登录用户
- AppMemberVo memberVo = getLoginUser().getUser();
- // 获取默认家族信息
- TbFamily family = familyService.myFamily(memberVo.getMemberId());
- // pageNum = pageNum == null ? 1 : pageNum;
- // pageSize = pageSize == null ? 10 : pageSize;
- // PageHelper.startPage(pageNum, pageSize, "py_first asc");
- List<AppMemberVo> list = memberService.myMemberList(new LambdaQueryWrapper<AppMemberVo>()
- .eq(AppMemberVo::getFamilyId,family.getId())
- .eq(AppMemberVo::getStatus,"2")
- .and(
- i -> i.like(AppMemberVo::getQrcode,search).or()
- .like(AppMemberVo::getMobile,search).or()
- .like(AppMemberVo::getMemberPyCode,search)
- .like(AppMemberVo::getName,search)
- )
- );
- 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) {
- AppMemberVo memberVo = new AppMemberVo();
- memberVo.setFamilyId(familyId);
- List<AppMemberVo> list = memberService.selectFamilyTree(memberVo);
- return AjaxResult.success(list);
- }
- @ApiOperation("添加/修改成员-家族树")
- @PostMapping("/saveToTree")
- 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 (member.getMemberId().equals(member.getParentId())) {
- return AjaxResult.error("不能设置自己为父辈");
- }
- if (member.getParentId().equals(member.getSpouseUserId())) {
- return AjaxResult.error("父辈与配偶不能为同一人");
- }
- if(!memberService.saveFamilyTree(member)){
- return AjaxResult.error("添加失败");
- }
- return AjaxResult.success("添加成功");
- }
- @ApiOperation(value = "逻辑删除家族树的成员", notes = "逻辑删除家族树的成员(去掉parentId),相当于这一支人将从家族树中删除")
- @DeleteMapping("/delToTree/{familyId}/{memberId}")
- public AjaxResult delToTree(@PathVariable Long memberId, @PathVariable Long familyId) {
- if (memberId == null || familyId ==null) {
- return AjaxResult.error("参数不能为空");
- }
- return memberService.delToTree(memberId,familyId);
- }
- /**
- * 新增家族成员
- */
- @ApiOperation("新增家族成员")
- @PostMapping("/add")
- public AjaxResult add(@RequestBody AppMemberVo memberVo) {
- if (org.apache.commons.lang3.StringUtils.isBlank(memberVo.getMobile())){
- return AjaxResult.error("手机号不能为空");
- }
- // 后台添加,状态直接为通过 2
- memberVo.setStatus("2");
- return toAjax(memberService.saveOrUpdate(memberVo) ? 1 : 0);
- }
- @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 familyId,Long memberId) {
- if (familyId == null) {
- return AjaxResult.error("家族id不能为空");
- }
- if (memberId == null) {
- return AjaxResult.error("成员id不能为空");
- }
- return AjaxResult.success(memberService.getMemberDetail(familyId,memberId));
- }
- /**
- * 删除家族成员
- */
- @ApiOperation("删除家族成员")
- @DeleteMapping("/{familyId}/{ids}" )
- public AjaxResult remove(@PathVariable String familyId, @PathVariable Long[] ids) {
- if (StringUtils.isBlank(familyId)) {
- return AjaxResult.error("家族id不能为空");
- }
- if (ids.length <= 0) {
- return AjaxResult.error("未选择要删的成员");
- }
- return memberService.delMember(familyId,ids);
- }
- @ApiOperation("家族管理员列表")
- @GetMapping("/adminList")
- public AjaxResult adminList(Long familyId){
- if (familyId == null) {
- return AjaxResult.error("家族id不能为空");
- }
- List<AppMemberVo> memberVos = memberService.myMemberList(new LambdaQueryWrapper<AppMemberVo>()
- .eq(AppMemberVo::getFamilyId,familyId)
- .eq(AppMemberVo::getStatus,"2")
- .eq(AppMemberVo::getAdmin,"Y")
- );
- return AjaxResult.success(memberVos);
- }
- @ApiOperation("添加家族管理员")
- @GetMapping("/addAdmin")
- public AjaxResult addAdmin(Long familyId, Long memberId) {
- TbMemberMiddle middle = middleService.getOne(new LambdaQueryWrapper<TbMemberMiddle>()
- .eq(TbMemberMiddle::getFamilyId,familyId)
- .eq(TbMemberMiddle::getMemberId,memberId)
- .last("limit 1")
- );
- if (middle == null) {
- return AjaxResult.error("该成员不存在");
- }
- middle.setAdmin("Y");
- if (!middleService.updateById(middle)){
- return AjaxResult.error("添加失败");
- }
- return AjaxResult.success("添加成功");
- }
- @ApiOperation("移除家族管理员")
- @GetMapping("/delAdmin")
- public AjaxResult delAdmin(Long familyId, Long memberId) {
- if (familyId == null || memberId == null) {
- return AjaxResult.error("参数为空");
- }
- AppMemberVo vo = getLoginUser().getUser();
- if (memberId.equals(vo.getMemberId())) {
- 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("该成员不存在");
- }
- middle.setAdmin("N");
- if (!middleService.updateById(middle)){
- return AjaxResult.error("移除失败");
- }
- return AjaxResult.success("移除成功");
- }
- }
|