DeviceSysinfoServiceImpl.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.xy.service;
  2. import cn.hutool.json.JSONUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.xy.dto.DeviceSysinfoDto;
  6. import com.xy.entity.DeviceSim;
  7. import com.xy.entity.DeviceSysinfo;
  8. import com.xy.mapper.DeviceSysinfoMapper;
  9. import com.xy.utils.Emptys;
  10. import com.xy.utils.MybatisPlusQuery;
  11. import com.xy.utils.R;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.AllArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import java.time.LocalDateTime;
  20. import java.util.List;
  21. import static com.xy.utils.Beans.copy;
  22. /**
  23. * <p>
  24. * 设备-系统信息 服务实现类
  25. * </p>
  26. *
  27. * @author lijin
  28. * @since 2022-12-23
  29. */
  30. @Slf4j
  31. @Service
  32. @Api(tags = "设备-系统信息")
  33. @AllArgsConstructor
  34. public class DeviceSysinfoServiceImpl extends ServiceImpl<DeviceSysinfoMapper, DeviceSysinfo> implements DeviceSysinfoService {
  35. private DeviceSimServiceImpl deviceSimService;
  36. @PostMapping("obj")
  37. @ApiOperation("对象查询")
  38. public R<DeviceSysinfoDto.Vo> get(@RequestBody DeviceSysinfoDto.Vo vo) {
  39. LambdaQueryWrapper<DeviceSysinfo> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(vo, DeviceSysinfo.class).build();
  40. List<DeviceSysinfo> list = list(lambdaQueryWrapper);
  41. if (!Emptys.check(list)) {
  42. return R.ok(new DeviceSysinfoDto.Vo());
  43. }
  44. return R.ok(copy(DeviceSysinfoDto.Vo.class, list.get(0)));
  45. }
  46. @PostMapping("get")
  47. @ApiOperation("集合查询")
  48. public R<List<DeviceSysinfoDto.Vo>> list(@RequestBody DeviceSysinfoDto.SelectList selectList) {
  49. LambdaQueryWrapper<DeviceSysinfo> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, DeviceSysinfo.class)
  50. .in(DeviceSysinfo::getDeviceId, selectList.getDeviceIds())
  51. .in(DeviceSysinfo::getDeviceSn, selectList.getDeviceSns())
  52. .build();
  53. List<DeviceSysinfo> list = list(lambdaQueryWrapper);
  54. return R.ok(copy(DeviceSysinfoDto.Vo.class, list));
  55. }
  56. @PostMapping("up")
  57. @ApiOperation("上报信息")
  58. public R up(@RequestBody DeviceSysinfoDto.Up up) {
  59. //上报信息
  60. log.info("设备系统信息上报:{}", JSONUtil.toJsonStr(up));
  61. updateById(copy(DeviceSysinfo.class, up));
  62. //同步流量卡
  63. DeviceSysinfo deviceSysinfo = getById(up.getDeviceId());
  64. String simIccid = deviceSysinfo.getSimIccid();
  65. if (Emptys.check(simIccid)) {
  66. LocalDateTime now = LocalDateTime.now();
  67. DeviceSim deviceSim = deviceSimService.getById(simIccid);
  68. if (deviceSim == null) {
  69. deviceSim = new DeviceSim()
  70. .setId(simIccid)
  71. .setType(deviceSysinfo.getSimIsp())
  72. .setCreateTime(now)
  73. .setUpdateTime(now);
  74. deviceSimService.save(deviceSim);
  75. }
  76. }
  77. return R.ok();
  78. }
  79. }