#适配前端的二维码新增接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user