package com.xy.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xy.dto.MqttUserDto;
import com.xy.entity.MqttUser;
import com.xy.entity.SysDictRedis;
import com.xy.mapper.MqttUserMapper;
import com.xy.utils.*;
import com.xy.utils.enums.DictsEnum;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import static com.xy.utils.Beans.copy;
import static com.xy.utils.PlusBeans.toIPage;
import static com.xy.utils.PlusBeans.toPageBean;
/**
*
* 服务实现类
*
*
* @author lijin
* @since 2023-02-17
*/
@Slf4j
@Service
@AllArgsConstructor
@Api(tags = "mqtt认证")
public class MqttUserServiceImpl extends ServiceImpl implements MqttUserService {
@PostMapping("obj")
@ApiOperation("对象查询")
public R obj(@RequestBody MqttUserDto.Obj obj) {
log.info("mqtt认证查询,sn:{}", obj.getSn());
MqttUserDto.SelectList selectList = copy(MqttUserDto.SelectList.class, obj);
List list = list(selectList).getData();
if (!Emptys.check(list)) {
return R.ok();
}
MqttUserDto.Vo mqttUser = list.get(0);
Map map = SysDictUtils.get(DictsEnum.ENV_PARAMS.getKey());
SysDictRedis mqttUrl = map.get("mqtt_url");
SysDictRedis serverUrl = map.get("server_url");
mqttUser.setServerTime(System.currentTimeMillis())
.setIpAddress(mqttUrl.getValue())
.setServerUrl(serverUrl.getValue());
return R.ok(mqttUser);
}
@PostMapping("list")
@ApiOperation("集合查询")
public R> list(@RequestBody MqttUserDto.SelectList selectList) {
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MqttUser.class).build();
List list = list(lambdaQueryWrapper);
return R.ok(copy(MqttUserDto.Vo.class, list));
}
@PostMapping("page")
@ApiOperation("分页查询")
public R> page(@RequestBody MqttUserDto.Page page) {
PageBean pageBean = page.getPage();
LambdaQueryWrapper lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MqttUser.class).build();
IPage iPage = page(toIPage(pageBean), lambdaQueryWrapper);
return R.ok(toPageBean(MqttUserDto.Vo.class, iPage));
}
@PostMapping("save")
@ApiOperation("添加")
public R save(@RequestBody @Validated MqttUserDto.Save save) {
MqttUser saveInfo = copy(MqttUser.class, save);
save(saveInfo);
return R.ok();
}
}