zqy
2024-10-03 5a0f89efcca725abd41381fd74358e47b4ff3909
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.system;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -11,10 +12,15 @@
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.entity.sysUserInfo;
import com.ruoyi.domain.ZInfoUser;
import com.ruoyi.domain.ZfAncestor;
import com.ruoyi.domain.ZfFamily;
import com.ruoyi.domain.sysUserAndUserInfo;
import com.ruoyi.service.ZInfoUserService;
import com.ruoyi.service.ZfAncestorService;
import com.ruoyi.service.ZfFamilyService;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -68,6 +74,12 @@
    private ZInfoUserService zInfoUserService;
    @Resource
    private ZfFamilyService zfFamilyService;
    @Resource
    private ZfAncestorService zfAncestorService;
    @Resource
    private SysUserRoleMapper sysUserRoleMapper;
    /**
     * 获取用户列表
     */
@@ -76,6 +88,8 @@
    public TableDataInfo list(SysUser user)
    {
        startPage();
        System.out.println(user.getClanId());
        System.out.println("----------------++++++++++++==0------------");
        List<SysUser> list = userService.selectUserList(user);
        return getDataTable(list);
    }
@@ -116,7 +130,7 @@
    @GetMapping(value = { "/", "/{userId}" })
    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
    {
        userService.checkUserDataScope(userId);
      //  userService.checkUserDataScope(userId);
        AjaxResult ajax = AjaxResult.success();
        List<SysRole> roles = roleService.selectRoleAll();
        //如果是admin则直接返回所有的角色,否则就返回不是管理员的角色信息
@@ -148,29 +162,104 @@
        us.setRoleId(user.getRoleId());
        us.setSex(user.getSex());
        us.setStatus(user.getStatus());
        us.setRemark(user.getRemark());
        userService.updateUser(us);
  //      System.out.println(user.getFamilyId());
     //   System.out.println("[[[[]]]]]]");
                ZInfoUser infoUser = new ZInfoUser();
        Long userId = user.getSysId();
      //  SysUserRole sysUserRole=sysUserRoleMapper.selectUserById(userId);
        //System.out.println(sysUserRole.getRoleId());
        System.out.println("你好呀");
        System.out.println(user.getRoleId());
        if (user.getRoleId().equals(102L)){
        ZInfoUser infoUser = new ZInfoUser();
        infoUser.setUserId(user.getUserId());
        infoUser.setOldName(user.getUserName());
        infoUser.setNickName(user.getNickName());
        infoUser.setIsMyFamily(user.getIsMyFamily());
        infoUser.setMomId(user.getMid());
        infoUser.setFatherId(user.getFid());
        infoUser.setSex(Integer.valueOf(user.getSex()));
//        infoUser.setFamilyId(user.getFamilyId());
        infoUser.setSysId(user.getSysId());
        if(user.getSpouseId()!=null)
        if(user.getSpouseId()!=null) {
            infoUser.setSpouseId(user.getSpouseId());
        }
//        ZfFamily zfFamily = zfFamilyService.getByFamId(user.getFamilyId());
//        if(zfFamily!=null&&zfFamily.getFid()!=null)
//            infoUser.setFatherId(zfFamily.getFid());
//        if(zfFamily!=null&&zfFamily.getMid()!=null)
//            infoUser.setMomId(zfFamily.getMid());
        zInfoUserService.saveOrUpdate(infoUser);
            if (user.getFid() != null){
            //跟随父亲的家族和家庭信息
          //   if (!zInfoUserService.getById(user.getUserId()).getFatherId().equals(user.getFid())){
                    ZInfoUser father = zInfoUserService.getById(user.getFid());
                        System.out.println("11111111111111111111111111111111/");
                        infoUser.setFamilyId(father.getFamilyId());
                        infoUser.setClanId(father.getClanId());
          //  }
        }
            if(user.getMid()!=null)
            {
                //跟随母亲的家族和家庭信息
                //   if (!zInfoUserService.getById(user.getUserId()).getFatherId().equals(user.getFid())){
                ZInfoUser mother = zInfoUserService.getById(user.getMid());
                System.out.println("11111111111111111111111111111111/");
                infoUser.setFamilyId(mother.getFamilyId());
                infoUser.setClanId(mother.getClanId());
            }
//            else if(user.getMid() != null){
//                ZInfoUser mother = zInfoUserService.getById(user.getMid());
//                if (mother.getIsMyFamily() == 1)
//                    System.out.println("2222222222222222222222222222222222/");
//                infoUser.setFamilyId(mother.getFamilyId());
//            }
        if (user.getSpouseId() != null){
//            if ( !zInfoUserService.getById(user.getUserId()).getSpouseId().equals(user.getSpouseId())){
                //是本家
                if (zInfoUserService.getById(user.getUserId()).getIsMyFamily() == 0) {
                    ZInfoUser spouse = zInfoUserService.getById(user.getSpouseId());
                    System.out.println("33333333333333333333333333333333333333333/");
                    infoUser.setFamilyId(spouse.getFamilyId());
                    infoUser.setClanId(spouse.getClanId());
//                }
            }}
        if(infoUser.getFamilyId()!=null)
            zInfoUserService.saveOrUpdate(infoUser);
        else {
            System.out.println("家庭成员不能修改为普通用户");
            return AjaxResult.success("家庭成员不能修改为普通用户");
        }
        //更新配偶信息
        if(user.getSpouseId()!=null) {
            ZInfoUser zu = new ZInfoUser();
            zu.setUserId(user.getSpouseId());
            zu.setSpouseId(infoUser.getUserId());
            Long spouseMoM = zInfoUserService.getById(user.getSpouseId()).getMomId();
            Long spouseDad = zInfoUserService.getById(user.getSpouseId()).getFatherId();
            zu.setMomId(spouseMoM);
            zu.setFatherId(spouseDad);
            zInfoUserService.updateById(zu);
        }
            return AjaxResult.success();
        }
        else {
            System.out.println("daniuni");
            return AjaxResult.success("家庭成员不能修改为普通用户");
        }
      //  zInfoUserService.update(infoUser);
             //   .saveOrUpdate(infoUser);
        return AjaxResult.success();
    }
    /**
     * 新增用户
@@ -193,11 +282,14 @@
        user.setSex(userAll.getSex());
        user.setRemark(userAll.getRemark());
        user.setUpdateBy(userAll.getUpdateBy());
        user.setClanId(userAll.getClanId());
//        user.setSex(userAll.getSex()=="男"?"1":"0");
    //    user.setPostIds(userAll.getPostIds());
      //  user.set
        if (!userService.checkUserNameUnique(user))
        if (!userService.checkNickNameUnique(user))
        {
            return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
            return error("新增用户'" + user.getNickName() + "'失败,登录账号已存在");
        }
        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
        {
@@ -210,18 +302,32 @@
        user.setCreateBy(getUsername());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        userService.insertUser(user);
        //写到用户与角色对应的表
        SysUserRole sysUserRole = new SysUserRole();
        sysUserRole.setUserId(user.getUserId());
        sysUserRole.setRoleId(user.getRoleId());
        List<SysUserRole> sysUserRoles = new ArrayList<>();
        sysUserRoles.add(sysUserRole);
        sysUserRoleMapper.batchUserRole(sysUserRoles);
        //写入到 新建立的信息表里面
//
//        ZfFamily zfFamily = zfFamilyService.getByFamId(userAll.getFamilyId());
        if (userAll.getRoleId() == 102){
        ZInfoUser infoUser = new ZInfoUser();
        infoUser.setSysId(user.getUserId());
     //   infoUser.setUserId(user.getUserId());
        infoUser.setNickName(userAll.getNickName());
        infoUser.setOldName(userAll.getUserName());
        infoUser.setPhoneNumber(userAll.getPhonenumber());
        infoUser.setSex(userAll.getSex()=="男"?1:0);
        infoUser.setFamilyId(userAll.getFid());
        System.out.println(userAll.getSex());
        System.out.println("性别的原因");
        infoUser.setSex(userAll.getSex().equals("0")?0:1);
        System.out.println(infoUser.getSex());
//        infoUser.setFamilyId(userAll.getFid());
        infoUser.setSpouseId(userAll.getSpouseId());
        infoUser.setFatherId(userAll.getFid());
        infoUser.setMomId(userAll.getMid());
     //   infoUser.setFamilyId(userAll.getFamilyId());
@@ -234,8 +340,8 @@
//            infoUser.setFatherId(zfFamily.getMid());
//            //   infoUser.setMomId(zfFamily.getMid());
//        }
        System.out.println("-----");
        System.out.println(userAll.getIsMyFamily());
//        System.out.println("-----");
//        System.out.println(userAll.getIsMyFamily());
        infoUser.setIsMyFamily(userAll.getIsMyFamily());
//        if(userAll.getSpouseId()==0)
@@ -244,16 +350,49 @@
//            infoUser.setSpouseId(userAll.getSpouseId());
//
//        }
        if (userAll.getFid() != null && userAll.getMid() != null){
            ZInfoUser father = zInfoUserService.getById(userAll.getFid());
            ZInfoUser mother = zInfoUserService.getById(userAll.getMid());
            if (father.getIsMyFamily() == 1){
                infoUser.setFamilyId(father.getFamilyId());
                infoUser.setClanId(father.getClanId());
            }
            else if (mother.getIsMyFamily() == 1){
                infoUser.setFamilyId(mother.getFamilyId());
                infoUser.setClanId(mother.getClanId());
        }
        }
        else {
            ZInfoUser spouse = zInfoUserService.getById(userAll.getSpouseId());
            infoUser.setFamilyId(spouse.getFamilyId());
            infoUser.setClanId(spouse.getClanId());
        }
        //前端保证了角色不为空
     //   if(user.getRoleIds()[0]==102)
        // infoUser.setRoleName(user.g);
      //  if(userAll.getFamilyId()!=-1) {
        if(userAll.getRoleId()==102) {
        if(userAll.getRoleId().equals(102L)) {
            infoUser.setRoleId(3L);
            zInfoUserService.save(infoUser);
            if(userAll.getSpouseId()!=null)
            {
                ZInfoUser zu = new ZInfoUser();
                zu.setUserId(userAll.getSpouseId());
                zu.setSpouseId(infoUser.getUserId());
                Long spouseMoM = zInfoUserService.getById(userAll.getSpouseId()).getMomId();
                Long spouseDad = zInfoUserService.getById(userAll.getSpouseId()).getFatherId();
                zu.setMomId(spouseMoM);
                zu.setFatherId(spouseDad);
                zInfoUserService.updateById(zu);
            }
        }
        }
        //    zInfoUserService.saveOrUpdate(infoUser);
//            LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
//            lqw.eq(ZInfoUser::getSpouseId, userAll.getSpouseId());
@@ -283,9 +422,9 @@
    {
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
        if (!userService.checkUserNameUnique(user))
        if (!userService.checkNickNameUnique(user))
        {
            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
            return error("修改用户'" + user.getNickName() + "'失败,登录账号已存在");
        }
        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
        {
@@ -326,8 +465,8 @@
    @PutMapping("/resetPwd")
    public AjaxResult resetPwd(@RequestBody SysUser user)
    {
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
  //      userService.checkUserAllowed(user);
//        userService.checkUserDataScope(user.getUserId());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setUpdateBy(getUsername());
        return toAjax(userService.resetPwd(user));