TenantCommonAttributeServiceImpl.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.inspur.customer.service.tenant;
  2. import com.alibaba.cola.dto.Response;
  3. import com.alibaba.cola.dto.SingleResponse;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.inspur.customer.client.tenant.TenantCommonAttributeService;
  7. import com.inspur.customer.constant.Constant;
  8. import com.inspur.customer.infrastructure.mapper.tenant.TenantCommonAttributeMapper;
  9. import com.inspur.customer.infrastructure.object.tenant.TenantCommonAttributeDO;
  10. import com.inspur.customer.object.tenant.TenantAttributeCO;
  11. import com.inspur.device.client.core.manage.SmsbDeviceService;
  12. import com.inspur.device.object.core.manage.SmsbDeviceDto;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.apache.dubbo.config.annotation.DubboReference;
  15. import org.apache.dubbo.config.annotation.DubboService;
  16. import org.springframework.beans.BeanUtils;
  17. import java.time.LocalTime;
  18. import java.time.format.DateTimeFormatter;
  19. import java.util.Objects;
  20. /**
  21. * @Author wangbo13
  22. * @Date 2023/2/14 11:15
  23. * @Version 1.0
  24. */
  25. @Slf4j
  26. @DubboService(interfaceClass = TenantCommonAttributeService.class)
  27. public class TenantCommonAttributeServiceImpl extends ServiceImpl<TenantCommonAttributeMapper, TenantCommonAttributeDO> implements TenantCommonAttributeService {
  28. @DubboReference
  29. private SmsbDeviceService deviceService;
  30. @DubboReference
  31. private SmsbDeviceService smsbDeviceService;
  32. @Override
  33. public Response saveOrUpdate(TenantAttributeCO attributeCO) {
  34. TenantCommonAttributeDO tenantAttribute = queryOne(attributeCO.getTenant() ,attributeCO.getAttributeKey());
  35. if(Objects.nonNull(tenantAttribute)){
  36. tenantAttribute.setAttributeValue(attributeCO.getAttributeValue());
  37. super.updateById(tenantAttribute);
  38. }else {
  39. tenantAttribute = new TenantCommonAttributeDO();
  40. BeanUtils.copyProperties(attributeCO ,tenantAttribute);
  41. super.save(tenantAttribute);
  42. }
  43. // send massage
  44. smsbDeviceService.publishDeviceAttribute(attributeCO.getTenant());
  45. return Response.buildSuccess();
  46. }
  47. private TenantCommonAttributeDO queryOne(String tenant,String key){
  48. return super.getOne(new LambdaQueryWrapper<>(TenantCommonAttributeDO.class)
  49. .eq(TenantCommonAttributeDO::getTenant, tenant)
  50. .eq(TenantCommonAttributeDO::getAttributeKey, key)
  51. .last("limit 1"));
  52. }
  53. @Override
  54. public Response queryTenantAttribute(TenantAttributeCO attributeCO) {
  55. TenantCommonAttributeDO tenantAttribute = queryOne(attributeCO.getTenant() ,attributeCO.getAttributeKey());
  56. return SingleResponse.of(tenantAttribute);
  57. }
  58. @Override
  59. public String queryAutorestartValue(String tenant) {
  60. TenantCommonAttributeDO tenantAttribute = queryOne(tenant ,Constant.TenantAttribute.DEVICE_RESTART.key());
  61. return Objects.nonNull(tenantAttribute) ? tenantAttribute.getAttributeValue() : null;
  62. }
  63. }