#适配前端的二维码新增接口

This commit is contained in:
2026-05-15 10:58:51 +08:00
parent 45a5ce1e8e
commit 0ba48cdae5
5 changed files with 146 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package com.maibu.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.maibu.core.business.dto.QrCodeGenerateRequest;
import com.maibu.core.business.sys_robot_qrcode.SysQrCode;
import java.util.List;
@@ -22,4 +23,7 @@ public interface ISysQrCodeService extends IService<SysQrCode> {
boolean bindDevice(Long qrCodeId, Long deviceId);
boolean unbindDevice(Long qrCodeId);
SysQrCode generateQrCodeFromFrontend(QrCodeGenerateRequest request);
}

View File

@@ -8,6 +8,7 @@ import com.google.zxing.EncodeHintType;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.maibu.core.business.dto.QrCodeGenerateRequest;
import com.maibu.core.business.sys_robot_qrcode.*;
import com.maibu.mapper.*;
import com.maibu.service.ISysQrCodeService;
@@ -199,4 +200,69 @@ public class SysQrCodeServiceImpl extends ServiceImpl<SysQrCodeMapper, SysQrCode
qrCode.setBindTime(null);
return this.updateById(qrCode);
}
@Override
@Transactional(rollbackFor = Exception.class)
public SysQrCode generateQrCodeFromFrontend(QrCodeGenerateRequest request) {
SysRobotModel model = findModelByStoreValue(request.getModel());
SysRobotConfig config = findConfigByStoreValue(request.getConfig());
SysRobotType type = findTypeByStoreValue(request.getType());
SysRobotCountry country = findCountryByStoreValue(request.getCountryCode());
SysRobotProvince province = findProvinceByStoreValue(request.getProvinceCode());
if (model == null || config == null || type == null || country == null || province == null) {
throw new RuntimeException("基础数据不存在");
}
LambdaQueryWrapper<SysQrCode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysQrCode::getSerialNumber, request.getSerialNumber());
if (this.count(wrapper) > 0) {
throw new RuntimeException("序列号已存在");
}
SysQrCode qrCode = new SysQrCode();
qrCode.setSerialNumber(request.getSerialNumber());
qrCode.setModelId(model.getId());
qrCode.setConfigId(config.getId());
qrCode.setTypeId(type.getId());
qrCode.setCountryId(country.getId());
qrCode.setProvinceId(province.getId());
qrCode.setQrCodeBase64(request.getQrcode());
qrCode.setQrCodeContent(request.getSerialNumber());
qrCode.setStatus(0);
this.save(qrCode);
return qrCode;
}
private SysRobotModel findModelByStoreValue(String storeValue) {
LambdaQueryWrapper<SysRobotModel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRobotModel::getStoreValue, storeValue);
return robotModelMapper.selectOne(wrapper);
}
private SysRobotConfig findConfigByStoreValue(String storeValue) {
LambdaQueryWrapper<SysRobotConfig> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRobotConfig::getStoreValue, storeValue);
return robotConfigMapper.selectOne(wrapper);
}
private SysRobotType findTypeByStoreValue(String storeValue) {
LambdaQueryWrapper<SysRobotType> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRobotType::getStoreValue, storeValue);
return robotTypeMapper.selectOne(wrapper);
}
private SysRobotCountry findCountryByStoreValue(String storeValue) {
LambdaQueryWrapper<SysRobotCountry> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRobotCountry::getStoreValue, storeValue);
return robotCountryMapper.selectOne(wrapper);
}
private SysRobotProvince findProvinceByStoreValue(String storeValue) {
LambdaQueryWrapper<SysRobotProvince> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRobotProvince::getStoreValue, storeValue);
return robotProvinceMapper.selectOne(wrapper);
}
}