#适配前端的二维码新增接口
This commit is contained in:
@@ -2,6 +2,7 @@ package com.maibu.web.controller.system;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.maibu.core.business.dto.QrCodeGenerateRequest;
|
||||
import com.maibu.core.business.sys_robot_qrcode.SysQrCode;
|
||||
import com.maibu.core.domain.AjaxResult;
|
||||
import com.maibu.service.ISysQrCodeService;
|
||||
@@ -52,6 +53,7 @@ public class SysQrCodeController {
|
||||
return AjaxResult.success(qrCodeService.selectBySerialNumber(serialNumber));
|
||||
}
|
||||
|
||||
/*
|
||||
@PreAuthorize("@ss.hasPermi('system:qrcode:generate')")
|
||||
@ApiOperation("生成二维码并保存记录")
|
||||
@PostMapping("/generate")
|
||||
@@ -64,6 +66,18 @@ public class SysQrCodeController {
|
||||
modelId, configId, typeId, countryId, provinceId);
|
||||
return AjaxResult.success(qrCode);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('system:qrcode:generate')")
|
||||
@ApiOperation("生成二维码并保存记录")
|
||||
@PostMapping("/generate")
|
||||
public AjaxResult generate(@RequestBody QrCodeGenerateRequest request) {
|
||||
SysQrCode qrCode = qrCodeService.generateQrCodeFromFrontend(request);
|
||||
return AjaxResult.success(qrCode);
|
||||
}
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('system:qrcode:bind')")
|
||||
@ApiOperation("绑定设备")
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.maibu.core.business.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("二维码生成请求")
|
||||
public class QrCodeGenerateRequest {
|
||||
|
||||
@ApiModelProperty("型号")
|
||||
private String model;
|
||||
|
||||
@ApiModelProperty("配置")
|
||||
private String config;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty("国家代码")
|
||||
private String countryCode;
|
||||
|
||||
@ApiModelProperty("国家全称")
|
||||
private String countryFullName;
|
||||
|
||||
@ApiModelProperty("省份代码")
|
||||
private String provinceCode;
|
||||
|
||||
@ApiModelProperty("省份全称")
|
||||
private String provinceFullName;
|
||||
|
||||
@ApiModelProperty("序列号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty("二维码Base64数据")
|
||||
private String qrcode;
|
||||
}
|
||||
@@ -1,54 +1,78 @@
|
||||
package com.maibu.core.business.sys_robot_qrcode;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@ApiModel("二维码管理")
|
||||
@TableName("sys_qr_code")
|
||||
public class SysQrCode implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("主键ID")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("序列号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty("型号ID")
|
||||
private Long modelId;
|
||||
|
||||
@ApiModelProperty("配置ID")
|
||||
private Long configId;
|
||||
|
||||
@ApiModelProperty("类型ID")
|
||||
private Long typeId;
|
||||
|
||||
@ApiModelProperty("国家ID")
|
||||
private Long countryId;
|
||||
|
||||
@ApiModelProperty("省份ID")
|
||||
private Long provinceId;
|
||||
|
||||
@ApiModelProperty("二维码图片URL")
|
||||
private String qrCodeUrl;
|
||||
|
||||
@ApiModelProperty("二维码内容")
|
||||
private String qrCodeContent;
|
||||
|
||||
@ApiModelProperty("二维码Base64图片数据")
|
||||
private String qrCodeBase64;
|
||||
|
||||
@ApiModelProperty("状态")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("设备ID")
|
||||
private Long deviceId;
|
||||
|
||||
@ApiModelProperty("绑定时间")
|
||||
private LocalDateTime bindTime;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty("创建者")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty("更新者")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("删除标志")
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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