MqttUserServiceImpl.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.xy.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.xy.annotation.LogOperate;
  5. import com.xy.device.EnumEnvParams;
  6. import com.xy.dto.DevicePartDto;
  7. import com.xy.dto.MqttUserDto;
  8. import com.xy.entity.*;
  9. import com.xy.enums.LogEnum;
  10. import com.xy.mapper.MqttUserMapper;
  11. import com.xy.utils.Emptys;
  12. import com.xy.utils.R;
  13. import com.xy.utils.SysDictUtils;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.AllArgsConstructor;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.springframework.context.annotation.Lazy;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.validation.annotation.Validated;
  21. import org.springframework.web.bind.annotation.PostMapping;
  22. import org.springframework.web.bind.annotation.RequestBody;
  23. import java.util.List;
  24. import java.util.Map;
  25. import static com.xy.utils.Beans.copy;
  26. /**
  27. * <p>
  28. * 服务实现类
  29. * </p>
  30. *
  31. * @author lijin
  32. * @since 2023-02-17
  33. */
  34. @Slf4j
  35. @Service
  36. @Api(tags = "mqtt认证")
  37. @AllArgsConstructor(onConstructor_ = @Lazy)
  38. public class MqttUserServiceImpl extends ServiceImpl<MqttUserMapper, MqttUser> implements MqttUserService {
  39. private DeviceInfoServiceImpl deviceInfoService;
  40. private DeviceSysinfoServiceImpl deviceSysinfoService;
  41. private DevicePartServiceImpl devicePartService;
  42. @PostMapping("obj")
  43. @ApiOperation("对象查询")
  44. @LogOperate(logType = LogEnum.LogType.V2, optType = LogEnum.OptType.V3, logContent = "mqtt认证查询")
  45. public R<MqttUserDto.ObjVo> obj(@RequestBody MqttUserDto.Obj obj) {
  46. MqttUser mqttUser = getOne(new LambdaQueryWrapper<MqttUser>().eq(MqttUser::getSn, obj.getSn()));
  47. if (!Emptys.check(mqttUser)) {
  48. return R.ok().setLogMsg("结果=false,sn=" + obj.getSn());
  49. }
  50. DeviceInfo deviceInfo = deviceInfoService.getById(mqttUser.getDeviceId());
  51. DeviceSysinfo deviceSysinfo = deviceSysinfoService.getById(mqttUser.getDeviceId());
  52. List<DevicePart> deviceParts = devicePartService.list(new LambdaQueryWrapper<DevicePart>().eq(DevicePart::getDeviceId, deviceInfo.getDeviceId()));
  53. Map<String, SysDictRedis> map = SysDictUtils.get(EnumEnvParams.Code.CODE.getCode());
  54. SysDictRedis mqttUrl = map.get(EnumEnvParams.MQTT_URL.getCode());
  55. SysDictRedis serverUrl = map.get(EnumEnvParams.SERVER_URL.getCode());
  56. MqttUserDto.ObjVo objVo = copy(MqttUserDto.ObjVo.class, mqttUser)
  57. .setAlgorithmId(deviceInfo.getAlgorithmId())
  58. .setDeviceType(deviceInfo.getDeviceType())
  59. .setScreenType(deviceSysinfo.getScreenType())
  60. .setDeviceModel(deviceSysinfo.getDeviceModel())
  61. .setDeviceParts(copy(DevicePartDto.Vo.class, deviceParts));
  62. objVo.setServerTime(System.currentTimeMillis());
  63. objVo.setIpAddress(mqttUrl.getValue());
  64. objVo.setServerUrl(serverUrl.getValue());
  65. return R.ok(objVo).setLogMsg("结果=true,sn=" + obj.getSn());
  66. }
  67. @PostMapping("save")
  68. @ApiOperation("添加")
  69. public R save(@RequestBody @Validated MqttUserDto.Save save) {
  70. MqttUser saveInfo = copy(MqttUser.class, save);
  71. save(saveInfo);
  72. return R.ok();
  73. }
  74. }