whywhyo
2023-09-25 9a5bfe21d247dbd45baedccc28f687a943c647ce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.ruoyi.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.domain.ZInfoUser;
import com.ruoyi.domain.ZfEvent;
import com.ruoyi.domain.ZfFamily;
import com.ruoyi.domain.dto.UserInfoDto;
import com.ruoyi.mapper.ZfEventMapper;
import com.ruoyi.mapper.ZfFamilyMapper;
import com.ruoyi.service.ZInfoUserService;
import com.ruoyi.service.ZfEventService;
import com.ruoyi.service.ZfFamilyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * @Author Jinquan_Ou
 * @Description
 * @Date 2023-07-14 14:32
 * @Version 1.0.0
 **/
@Service
public class ZfFamilyServiceImpl extends ServiceImpl<ZfFamilyMapper, ZfFamily> implements ZfFamilyService {
    @Autowired
    ZInfoUserService zInfoUserService;
 
 
    @Override
    public ZfFamily getByName(String familyName) {
        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZfFamily::getName,familyName);
        return getOne(lqw);
    }
 
    @Override
    public List<UserInfoDto> getByFamilyId(Long fid) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZInfoUser::getFamilyId,fid);
        List<ZInfoUser> list = zInfoUserService.list(lqw);
        return list.stream().map(
                zInfoUser -> {
                    UserInfoDto userInfoDto = new UserInfoDto();
                    userInfoDto.setId(zInfoUser.getUserId());
                    userInfoDto.setFamilyId(zInfoUser.getFamilyId());
                    userInfoDto.setName(zInfoUser.getNickName());
                    userInfoDto.setFamilyName(getById(zInfoUser.getFamilyId()).getName());
                    return userInfoDto;
                }
        ).collect(Collectors.toList());
 
    }
 
    @Override
    public List<UserInfoDto> getNowMember() {
 
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        ZInfoUser myself = zInfoUserService.getById(userId);
        return getByFamilyId(myself.getFamilyId());
    }
 
    @Override
    public AjaxResult addMember(UserInfoDto userInfoDto) {
 
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        ZInfoUser myself = zInfoUserService.getById(userId);
 
        //查看当前用户是不是管理员
        if(myself.getRoleId()!=1 && myself.getRoleId()!=2){
            throw new RuntimeException("你不是家庭管理员,没有权限操作");
        }
 
        Long uid = userInfoDto.getId();
//        Long targetFamilyId = zInfoUserService.getById(uid).getFamilyId();
        UpdateWrapper<ZInfoUser> luw = new UpdateWrapper<>();
        luw.eq("user_id",uid);
        //update from z_info_user set family_id = #{targetFamilyId where user_id = #{uid}
        luw.setSql("family_id = "+myself.getFamilyId());
 
        zInfoUserService.update(luw);
        return AjaxResult.success();
 
    }
 
    @Override
    public AjaxResult removeMember(UserInfoDto userInfoDto) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        ZInfoUser myself = zInfoUserService.getById(userId);
 
        //查看当前用户是不是管理员
        if(myself.getRoleId()!=1 && myself.getRoleId()!=2){
            throw new RuntimeException("你不是家庭管理员,没有权限操作");
        }
 
        Long uid = userInfoDto.getId();
//        Long targetFamilyId = zInfoUserService.getById(uid).getFamilyId();
        UpdateWrapper<ZInfoUser> luw = new UpdateWrapper<>();
        luw.eq("user_id",uid);
        //update from z_info_user set family_id = #{targetFamilyId where user_id = #{uid}
        luw.setSql("family_id = "+null);
 
        zInfoUserService.update(luw);
        return AjaxResult.success();
 
    }
}