郑永安
2023-09-19 69185134fcfaf913ea45f1255677225a2cc311a4
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
package com.gk.hotwork.Service.ServiceImpl;
 
import com.gk.hotwork.Domain.DeviceLocation;
import com.gk.hotwork.Domain.Exception.BusinessException;
import com.gk.hotwork.Domain.UserInfo;
import com.gk.hotwork.Domain.Utils.StringUtils;
import com.gk.hotwork.Mapper.DeviceLocationMapper;
import com.gk.hotwork.Service.DeviceLocationService;
import com.gk.hotwork.Service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Date;
import java.util.List;
 
@Service("deviceLocationService")
public class DeviceLocationServiceImpl implements DeviceLocationService {
 
    @Autowired
    private DeviceLocationMapper deviceLocationMapper;
    @Autowired
    private UserService userService;
 
 
    @Override
    public void insertRecord(DeviceLocation location) {
        //根据locaiton的uid(设备Id)进行用户的对应
        UserInfo user = userService.getByDeviceNo(location.getUid());
        if (user == null)
            throw new BusinessException("用户设备号不存在:"+location.getUid());
        String slice = user.getSlice();
        if (StringUtils.isBlank(slice))
            throw new BusinessException("系统用户分表标识不存在");
        deviceLocationMapper.insertOne(slice,location);
    }
 
    @Override
    public DeviceLocation selectByUser(UserInfo user) {
        if (user.getId() == null)
            throw new BusinessException("用户信息不能为空");
        if (StringUtils.isBlank(user.getSlice()))
            throw new BusinessException("系统错误,用户分表标识为空");
        return deviceLocationMapper.selectLatestUserLocation(user.getSlice(),user.getDeviceNo());
    }
 
    @Override
    public List<DeviceLocation> selectUserLocations(String username, Date starttime, Date endtime) {
        if (StringUtils.isBlank(username))
            throw new BusinessException("用户名为空");
        UserInfo userInfo = userService.selectByUser(username);
        if (userInfo == null)
            throw new BusinessException("用户信息不存在");
        if (StringUtils.isBlank(userInfo.getSlice()))
            throw new BusinessException("系统用户分表标识不存在");
 
        return deviceLocationMapper.selectUserLocations(userInfo.getSlice(),userInfo.getDeviceNo(),starttime,endtime);
    }
 
    @Override
    public void cleanUp(Integer sliceSize,Integer days) {
        for (int i = 1; i <= sliceSize; i++) {
            deviceLocationMapper.deleteRecordBeforeDays(i + "", days);
        }
    }
}