whyclxw
2025-01-03 328b8947a789febb5cfe283274db42480e4f71c1
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.KeyInfMapper;
import com.whyc.pojo.db_area.KeyInf;
import com.whyc.pojo.db_area.LockInf;
import com.whyc.pojo.db_user.UserInf;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class KeyInfService {
    @Autowired(required = false)
    private KeyInfMapper mapper;
 
    @Autowired(required = false)
    private AreaInfService areaInfService;
 
    @Autowired(required = false)
    private AreaUserService areaUserService;
 
    //查询所有钥匙信息
    public Response getAllKeyInf(String keyName, String uname, int pageNum, int pageSize) {
        UserInf uinf= ActionUtil.getUser();
        List areaList=areaInfService.getAllAreaUser(uinf.getUid(),uinf.getUrole());
        List<String> unameList=new ArrayList<>();
        QueryWrapper wrapper=new QueryWrapper();
        if(uinf.getUrole()==0){
            unameList.add(uinf.getUname());
            wrapper.in("uname",unameList);
        }else{
            //获取区域对应的用户名
            unameList=areaUserService.getUserNameByAreaIds(areaList);
            wrapper.in("uname",unameList);
        }
        if(keyName!=null){
            wrapper.like("key_name",keyName);
        }
        if(uname!=null){
            wrapper.like("uname",uname);
        }
        wrapper.ne("key_id",0);//排除蓝牙钥匙
        PageHelper.startPage(pageNum,pageSize);
        List<KeyInf> list=mapper.selectList(wrapper);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list!=null,pageInfo,"查询所有钥匙信息");
    }
    //添加钥匙
    public Response addKey(KeyInf kinf) {
        Integer keyType=kinf.getKeyType();
        if(keyType==1){//验证钥匙编码
            //先验证钥匙编码是否存在
            QueryWrapper wrapper=new QueryWrapper();
            wrapper.eq("key_number",kinf.getKeyNumber());
            wrapper.last("limit 1");
            KeyInf k=mapper.selectOne(wrapper);
            if(null==k){
                //获取最大的keyid
                int keyId=getMaxKeyId()+1;
                kinf.setKeyId(keyId);
                kinf.setCreateTime(new Date());
                mapper.insert(kinf);
                return new Response().set(1,true,"钥匙添加成功");
            }else{
                return new Response().set(1,false,"钥匙编码已存在");
            }
        }else{
            //获取最大的keyid
            int keyId=getMaxKeyId()+1;
            kinf.setKeyId(keyId);
            kinf.setCreateTime(new Date());
            mapper.insert(kinf);
            return new Response().set(1,true,"钥匙添加成功");
        }
    }
    //获取最大的keyid
    private int getMaxKeyId() {
        int keyId=mapper.getMaxKeyId();
        return keyId;
    }
 
    //删除钥匙
    public Response delKey(Integer keyId) {
        if(keyId==0){
            return new Response().set(1,false,"该蓝牙钥匙为默认钥匙不可删除");
        }else{
            UpdateWrapper wrapper=new UpdateWrapper();
            wrapper.eq("key_id",keyId);
            mapper.delete(wrapper);
            return new Response().set(1,true);
        }
    }
    //修改钥匙
    public Response updateKey(KeyInf kinf) {
        if(kinf.getKeyId()==0){
            return new Response().set(1,false,"该蓝牙钥匙为默认钥匙不可删除");
        }else {
            UpdateWrapper wrapper = new UpdateWrapper();
            wrapper.eq("key_id", kinf.getKeyId());
            if (kinf.getKeyName() != null) {
                wrapper.set("key_name", kinf.getKeyName());
            }
            if (kinf.getKeyType() != null) {
                wrapper.set("key_type", kinf.getKeyType());
            }
            if (kinf.getKeyNumber() != null) {
                wrapper.set("key_number", kinf.getKeyNumber());
            }
            if (kinf.getKeyAddress() != null) {
                wrapper.set("key_address", kinf.getKeyAddress());
            }
            if (kinf.getUname() != null) {
                wrapper.set("uname", kinf.getUname());
            }
            mapper.update(null, wrapper);
            return new Response().set(1, true);
        }
    }
    //授权时查询所有钥匙信息(不分页,要keyid为0的)
    public Response getKeyInfAuth() {
        List<KeyInf> list=mapper.selectList(null);
        return new Response().setII(1,list!=null,list,"授权时查询所有钥匙信息(不分页)");
    }
    //查询所有钥匙名信息(用于下拉)
    public Response getkinf() {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.ne("ket_id",0);
        List<KeyInf> list=mapper.selectList(wrapper);
        List<String> lnameList = list.stream()
                .map(KeyInf::getKeyName) // 提取名字
                .collect(Collectors.toList()); // 转换为列表*/
        return new Response().setII(1,list!=null,lnameList,"查询所有钥匙名信息(用于下拉)");
    }
 
}