二维码标准箱
This commit is contained in:
parent
7d8f83e400
commit
ca941eb028
|
|
@ -1,5 +1,6 @@
|
||||||
package com.bonus.common.biz.config;
|
package com.bonus.common.biz.config;
|
||||||
|
|
||||||
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
import com.google.zxing.EncodeHintType;
|
import com.google.zxing.EncodeHintType;
|
||||||
import com.google.zxing.MultiFormatWriter;
|
import com.google.zxing.MultiFormatWriter;
|
||||||
|
|
@ -44,6 +45,9 @@ public class QrCodeUtils {
|
||||||
/** 二维码容错率 */
|
/** 二维码容错率 */
|
||||||
private static ErrorCorrectionLevel level = ErrorCorrectionLevel.L;
|
private static ErrorCorrectionLevel level = ErrorCorrectionLevel.L;
|
||||||
|
|
||||||
|
// 加文字二维码高
|
||||||
|
private static final int WORDHEIGHT = 300;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成带logo的二维码图片
|
* 生成带logo的二维码图片
|
||||||
*
|
*
|
||||||
|
|
@ -176,5 +180,97 @@ public class QrCodeUtils {
|
||||||
}
|
}
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加Logo
|
||||||
|
* @param codeFile
|
||||||
|
* @param qrUrl
|
||||||
|
* @param words
|
||||||
|
*/
|
||||||
|
public static void drawLogoQRCode(File codeFile, String qrUrl, String words) {
|
||||||
|
try {
|
||||||
|
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
|
||||||
|
// 参数顺序分别为:编码内容,编码类型,生成图片宽度,生成图片高度,设置参数
|
||||||
|
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
|
||||||
|
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
|
||||||
|
// 设置编码方式
|
||||||
|
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
|
||||||
|
hints.put(EncodeHintType.MARGIN, 0);
|
||||||
|
BitMatrix bm = multiFormatWriter.encode(qrUrl, BarcodeFormat.QR_CODE, width, height, hints);
|
||||||
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
||||||
|
|
||||||
|
// 开始利用二维码数据创建Bitmap图片,分别设为黑(0xFFFFFFFF)白(0xFF000000)两色
|
||||||
|
for (int x = 0; x < width; x++) {
|
||||||
|
for (int y = 0; y < height; y++) {
|
||||||
|
image.setRGB(x, y, bm.get(x, y) ? onColor : offColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新的图片,把带logo的二维码下面加上文字
|
||||||
|
image = insertWords(image,words);
|
||||||
|
|
||||||
|
image.flush();
|
||||||
|
if (!ImageIO.write(image, "jpg", codeFile)) {
|
||||||
|
throw new IOException("Could not write an image of format jpg to " + codeFile);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入文字到图片中间
|
||||||
|
* @param image
|
||||||
|
* @param words
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static BufferedImage insertWords(BufferedImage image,String words){
|
||||||
|
// 新的图片,把带logo的二维码下面加上文字
|
||||||
|
if (StringUtils.isNotEmpty(words)) {
|
||||||
|
|
||||||
|
//创建一个带透明色的BufferedImage对象
|
||||||
|
BufferedImage outImage = new BufferedImage(width, WORDHEIGHT, BufferedImage.TYPE_INT_RGB);
|
||||||
|
for (int x = 0; x < width; x++) {
|
||||||
|
for (int y = 0; y < WORDHEIGHT; y++) {
|
||||||
|
outImage.setRGB(x, y, offColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.err.println("---------1---------");
|
||||||
|
Graphics2D outg = outImage.createGraphics();
|
||||||
|
setGraphics2D(outg);
|
||||||
|
System.err.println("---------2---------");
|
||||||
|
// 画二维码到新的面板
|
||||||
|
outg.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
|
||||||
|
// 画文字到新的面板
|
||||||
|
outg.setColor(Color.BLACK);
|
||||||
|
// 字体、字型、字号
|
||||||
|
outg.setFont(new Font("微软雅黑", Font.PLAIN, 18));
|
||||||
|
//文字长度
|
||||||
|
int strWidth = outg.getFontMetrics().stringWidth(words);
|
||||||
|
//总长度减去文字长度的一半 (居中显示)
|
||||||
|
int wordStartX=(width - strWidth) / 2;
|
||||||
|
//height + (outImage.getHeight() - height) / 2 + 12
|
||||||
|
int wordStartY=height + 10;
|
||||||
|
// 画文字
|
||||||
|
System.err.println("---------3---------");
|
||||||
|
outg.drawString(words, wordStartX, wordStartY);
|
||||||
|
outg.dispose();
|
||||||
|
outImage.flush();
|
||||||
|
System.err.println("---------4---------");
|
||||||
|
return outImage;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置 Graphics2D 属性 (抗锯齿)
|
||||||
|
* @param graphics2D
|
||||||
|
*/
|
||||||
|
private static void setGraphics2D(Graphics2D graphics2D){
|
||||||
|
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||||
|
graphics2D.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
|
||||||
|
Stroke s = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER);
|
||||||
|
graphics2D.setStroke(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
package com.bonus.material.basic.controller;
|
||||||
|
|
||||||
|
import com.bonus.common.core.web.controller.BaseController;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
import com.bonus.common.log.annotation.SysLog;
|
||||||
|
import com.bonus.common.log.enums.OperaType;
|
||||||
|
import com.bonus.common.security.annotation.RequiresPermissions;
|
||||||
|
import com.bonus.material.basic.domain.BmQrBoxInfo;
|
||||||
|
import com.bonus.material.basic.service.BmQrBoxService;
|
||||||
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ma_sh
|
||||||
|
* @create 2024/12/11 17:25
|
||||||
|
*/
|
||||||
|
@Api(tags = "二维码标准箱管理接口")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/bm_qrcode_box")
|
||||||
|
public class BmQrBoxController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BmQrBoxService qrBoxService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询二维码管理列表
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询二维码标准箱管理列表")
|
||||||
|
@RequiresPermissions("basic:qrBox:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(BmQrBoxInfo bmQrBoxInfo)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<BmQrBoxInfo> list = qrBoxService.selectBmQrBoxInfoList(bmQrBoxInfo);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "新增二维码标准箱管理")
|
||||||
|
//@PreventRepeatSubmit
|
||||||
|
//@RequiresPermissions("basic:qrBox:add")
|
||||||
|
@SysLog(title = "二维码标准箱管理", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增二维码标准箱管理")
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody BmQrBoxInfo bmQrBoxInfo)
|
||||||
|
{
|
||||||
|
return qrBoxService.insertBmQrcodeInfo(bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "二维码标准箱管理")
|
||||||
|
@PreventRepeatSubmit
|
||||||
|
//@RequiresPermissions("basic:qrBox:edit")
|
||||||
|
@SysLog(title = "二维码标准箱管理", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改二维码标准箱")
|
||||||
|
@PostMapping("/edit")
|
||||||
|
public AjaxResult edit(@RequestBody BmQrBoxInfo bmQrBoxInfo)
|
||||||
|
{
|
||||||
|
return qrBoxService.updateBmQrcodeInfo(bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除二维码标准箱
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "删除二维码标准箱")
|
||||||
|
//@PreventRepeatSubmit
|
||||||
|
//@RequiresPermissions("basic:info:remove")
|
||||||
|
@SysLog(title = "二维码标准箱管理", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除二维码标准箱")
|
||||||
|
@PostMapping("/deleteById")
|
||||||
|
public AjaxResult deleteById(@RequestBody BmQrBoxInfo bmQrBoxInfo)
|
||||||
|
{
|
||||||
|
return qrBoxService.deleteById(bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载二维码标准箱
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "下载二维码标准箱")
|
||||||
|
//@PreventRepeatSubmit
|
||||||
|
//@RequiresPermissions("basic:qrBox:download")
|
||||||
|
@PostMapping("/download")
|
||||||
|
public void download(@RequestBody BmQrBoxInfo bmQrBoxInfo, HttpServletResponse response)
|
||||||
|
{
|
||||||
|
qrBoxService.download(bmQrBoxInfo, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package com.bonus.material.basic.domain;
|
||||||
|
|
||||||
|
import com.bonus.common.core.annotation.Excel;
|
||||||
|
import com.bonus.common.core.web.domain.BaseEntity;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二维码管理对象 bm_qrcode_info
|
||||||
|
*
|
||||||
|
* @author xsheng
|
||||||
|
* @date 2024-09-26
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ToString
|
||||||
|
public class BmQrBoxInfo extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 二维码ID */
|
||||||
|
private Long qrId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "二维码标准箱名称")
|
||||||
|
private String qrName;
|
||||||
|
|
||||||
|
/** 二维码 */
|
||||||
|
@ApiModelProperty(value = "二维码")
|
||||||
|
private String qrCode;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "二维码路径")
|
||||||
|
private String qrUrl;
|
||||||
|
|
||||||
|
/** 类型ID */
|
||||||
|
@ApiModelProperty(value = "类型ID")
|
||||||
|
private Long typeId;
|
||||||
|
|
||||||
|
/** 二维码类型 */
|
||||||
|
@ApiModelProperty(value = "二维码类型")
|
||||||
|
private String qrType;
|
||||||
|
|
||||||
|
/** 任务ID */
|
||||||
|
@Excel(name = "任务ID")
|
||||||
|
@ApiModelProperty(value = "任务ID")
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
/** 数据所属组织 */
|
||||||
|
@ApiModelProperty(value = "标准箱绑定机具数量")
|
||||||
|
private Integer typeNum;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.bonus.material.basic.mapper;
|
||||||
|
|
||||||
|
import com.bonus.material.basic.domain.BmQrBoxInfo;
|
||||||
|
import com.bonus.material.basic.domain.BmQrcodeInfo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ma_sh
|
||||||
|
* @create 2024/12/10 17:27
|
||||||
|
*/
|
||||||
|
public interface BmQrBoxMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BmQrBoxInfo> find(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int insertBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int updateBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int deleteById(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.bonus.material.basic.service;
|
||||||
|
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.material.basic.domain.BmQrBoxInfo;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ma_sh
|
||||||
|
* @create 2024/12/10 17:26
|
||||||
|
*/
|
||||||
|
public interface BmQrBoxService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询二维码标准箱管理列表
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BmQrBoxInfo> selectBmQrBoxInfoList(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult insertBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载二维码标准箱
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void download(BmQrBoxInfo bmQrBoxInfo, HttpServletResponse response);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult updateBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AjaxResult deleteById(BmQrBoxInfo bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
package com.bonus.material.basic.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.common.biz.config.BackstageApplication;
|
||||||
|
import com.bonus.common.biz.config.DateTimeHelper;
|
||||||
|
import com.bonus.common.biz.config.QrCodeUtils;
|
||||||
|
import com.bonus.common.biz.enums.HttpCodeEnum;
|
||||||
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.basic.domain.BmQrBoxInfo;
|
||||||
|
import com.bonus.material.basic.mapper.BmQrBoxMapper;
|
||||||
|
import com.bonus.material.basic.service.BmQrBoxService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.ServletOutputStream;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ma_sh
|
||||||
|
* @create 2024/12/10 17:26
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class BmQrBoxServiceImpl implements BmQrBoxService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BmQrBoxMapper bmQrBoxMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询二维码标准箱管理列表
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<BmQrBoxInfo> selectBmQrBoxInfoList(BmQrBoxInfo bmQrBoxInfo) {
|
||||||
|
return bmQrBoxMapper.find(bmQrBoxInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult insertBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo) {
|
||||||
|
//生成二维码
|
||||||
|
String code = "BOX-" + DateTimeHelper.getNowTimeFomart();
|
||||||
|
bmQrBoxInfo.setQrCode(code);
|
||||||
|
bmQrBoxInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
|
||||||
|
bmQrBoxInfo.setCreateTime(DateUtils.getNowDate());
|
||||||
|
int result = bmQrBoxMapper.insertBmQrcodeInfo(bmQrBoxInfo);
|
||||||
|
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载二维码标准箱
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void download(BmQrBoxInfo bmQrBoxInfo, HttpServletResponse response) {
|
||||||
|
try {
|
||||||
|
List<BmQrBoxInfo> list = bmQrBoxMapper.find(bmQrBoxInfo);
|
||||||
|
String code = "无编码";
|
||||||
|
if (list.size() > 0) {
|
||||||
|
code = list.get(0).getQrCode();
|
||||||
|
}
|
||||||
|
// 新购管理-二维码打印-新增
|
||||||
|
String url = BackstageApplication.getUrl() + "backstage/machine/qrCodePage?qrcode=" + code;
|
||||||
|
// 二维码的图片格式
|
||||||
|
String format = "jpg";
|
||||||
|
//设置路径
|
||||||
|
String mkdirsName = "images";
|
||||||
|
// linux 系统路径
|
||||||
|
String saveDirectory = "/data/imw/" + mkdirsName + "/";
|
||||||
|
String os = System.getProperty("os.name");
|
||||||
|
if (os.toLowerCase().startsWith("win")) {
|
||||||
|
//本地路径
|
||||||
|
saveDirectory = "D://files/" + mkdirsName + "/";
|
||||||
|
}
|
||||||
|
// 生成二维码
|
||||||
|
File files = new File(saveDirectory);
|
||||||
|
if (!files.exists()) {
|
||||||
|
files.mkdirs();
|
||||||
|
}
|
||||||
|
QrCodeUtils.generateQRImage(url, saveDirectory, code + ".jpg", format);
|
||||||
|
String qrUrl = saveDirectory + code + ".jpg";
|
||||||
|
String path = qrUrl.replace("filePath", "/data/imw");
|
||||||
|
// 判断照片是否存在
|
||||||
|
File imageFile = new File(path);
|
||||||
|
if (!imageFile.exists()) {
|
||||||
|
log.warn("图片不存在");
|
||||||
|
}
|
||||||
|
//设置MIME类型
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.addHeader("Content-disposition", "attachment;filename=" + new String(path.getBytes(), "ISO-8859-1"));
|
||||||
|
InputStream inputStream = new FileInputStream(imageFile);
|
||||||
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
|
byte[] bs = new byte[1024];
|
||||||
|
while ((inputStream.read(bs) > 0)) {
|
||||||
|
outputStream.write(bs);
|
||||||
|
}
|
||||||
|
outputStream.close();
|
||||||
|
inputStream.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult updateBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo) {
|
||||||
|
bmQrBoxInfo.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
|
||||||
|
bmQrBoxInfo.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
int result = bmQrBoxMapper.updateBmQrcodeInfo(bmQrBoxInfo);
|
||||||
|
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除二维码标准箱管理
|
||||||
|
* @param bmQrBoxInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AjaxResult deleteById(BmQrBoxInfo bmQrBoxInfo) {
|
||||||
|
int result = bmQrBoxMapper.deleteById(bmQrBoxInfo);
|
||||||
|
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bonus.material.basic.mapper.BmQrBoxMapper">
|
||||||
|
|
||||||
|
<select id="find" resultType="com.bonus.material.basic.domain.BmQrBoxInfo">
|
||||||
|
select
|
||||||
|
qr_id as qrId,
|
||||||
|
qr_name as qrName,
|
||||||
|
qr_code as qrCode,
|
||||||
|
qr_type as qrType,
|
||||||
|
create_by as createBy,
|
||||||
|
create_time as createTime,
|
||||||
|
update_by as updateBy,
|
||||||
|
update_time as updateTime
|
||||||
|
from bm_qrcode_box
|
||||||
|
<where>
|
||||||
|
<if test="qrId != null">and qr_id = #{qrId}</if>
|
||||||
|
<if test="qrName != null and qrName != ''">and qr_name like concat('%',#{qrName},'%')</if>
|
||||||
|
<if test="qrCode != null and qrCode != ''">and qr_code like concat('%',#{qrCode},'%')</if>
|
||||||
|
<if test="qrType != null">and qr_type = #{qrType}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertBmQrcodeInfo" parameterType="com.bonus.material.basic.domain.BmQrBoxInfo" useGeneratedKeys="true" keyProperty="qrId">
|
||||||
|
insert into bm_qrcode_box
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="qrCode != null">qr_code,</if>
|
||||||
|
<if test="qrName != null and qrName != ''">qr_name,</if>
|
||||||
|
<if test="qrType != null">qr_type,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="qrCode != null">#{qrCode},</if>
|
||||||
|
<if test="qrName != null and qrName != ''">#{qrName},</if>
|
||||||
|
<if test="qrType != null">#{qrType},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateBmQrcodeInfo" parameterType="com.bonus.material.basic.domain.BmQrBoxInfo">
|
||||||
|
update bm_qrcode_box
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="qrCode != null">qr_code = #{qrCode},</if>
|
||||||
|
<if test="qrType != null">qr_type = #{qrType},</if>
|
||||||
|
<if test="qrName != null and qrName != ''">qr_name = #{qrName},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
|
||||||
|
</trim>
|
||||||
|
where qr_id = #{qrId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteById">
|
||||||
|
delete
|
||||||
|
from bm_qrcode_box
|
||||||
|
where qr_id = #{qrId}
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue