package com.xy.service;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xy.dto.DeviceSysinfoDto;
import com.xy.entity.DeviceSim;
import com.xy.entity.DeviceSysinfo;
import com.xy.mapper.DeviceSysinfoMapper;
import com.xy.utils.Emptys;
import com.xy.utils.MybatisPlusQuery;
import com.xy.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.time.LocalDateTime;
import java.util.List;
import static com.xy.utils.Beans.copy;
/**
*
* 设备-系统信息 服务实现类
*
*
* @author lijin
* @since 2022-12-23
*/
@Slf4j
@Service
@Api(tags = "设备-系统信息")
@AllArgsConstructor
public class DeviceSysinfoServiceImpl extends ServiceImpl implements DeviceSysinfoService {
private DeviceSimServiceImpl deviceSimService;
@PostMapping("obj")
@ApiOperation("对象查询")
public R get(@RequestBody DeviceSysinfoDto.Vo vo) {
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(vo, DeviceSysinfo.class).build();
List list = list(lambdaQueryWrapper);
if (!Emptys.check(list)) {
return R.ok(new DeviceSysinfoDto.Vo());
}
return R.ok(copy(DeviceSysinfoDto.Vo.class, list.get(0)));
}
@PostMapping("get")
@ApiOperation("集合查询")
public R> list(@RequestBody DeviceSysinfoDto.SelectList selectList) {
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, DeviceSysinfo.class)
.in(DeviceSysinfo::getDeviceId, selectList.getDeviceIds())
.in(DeviceSysinfo::getDeviceSn, selectList.getDeviceSns())
.build();
List list = list(lambdaQueryWrapper);
return R.ok(copy(DeviceSysinfoDto.Vo.class, list));
}
@PostMapping("up")
@ApiOperation("上报信息")
public R up(@RequestBody DeviceSysinfoDto.Up up) {
//上报信息
log.info("设备系统信息上报:{}", JSONUtil.toJsonStr(up));
updateById(copy(DeviceSysinfo.class, up));
//同步流量卡
DeviceSysinfo deviceSysinfo = getById(up.getDeviceId());
String simIccid = deviceSysinfo.getSimIccid();
if (Emptys.check(simIccid)) {
LocalDateTime now = LocalDateTime.now();
DeviceSim deviceSim = deviceSimService.getById(simIccid);
if (deviceSim == null) {
deviceSim = new DeviceSim()
.setId(simIccid)
.setType(deviceSysinfo.getSimIsp())
.setCreateTime(now)
.setUpdateTime(now);
deviceSimService.save(deviceSim);
}
}
return R.ok();
}
}