package com.ruoyi.web.controller.zhang;
|
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
import cn.hutool.extra.qrcode.QrConfig;
|
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.ServletUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.sign.Base64;
|
import com.ruoyi.common.utils.uuid.Seq;
|
import com.ruoyi.domain.qrcode;
|
import com.ruoyi.framework.config.ServerConfig;
|
import com.ruoyi.service.qrCodeService;
|
import org.apache.commons.io.FilenameUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.mock.web.MockMultipartFile;
|
import org.springframework.util.FastByteArrayOutputStream;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.imageio.ImageIO;
|
import javax.servlet.http.HttpServletResponse;
|
import java.awt.image.BufferedImage;
|
import java.io.ByteArrayInputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
|
import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
|
import static com.ruoyi.common.utils.file.FileUploadUtils.getExtension;
|
|
@RestController
|
@RequestMapping("/qrCode")
|
public class qrCodeController {
|
@Autowired
|
private ServerConfig serverConfig;
|
|
@Autowired
|
private qrCodeService coSService;
|
@GetMapping("/all")
|
public AjaxResult listAll(qrcode cos){
|
// startPage();
|
|
Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
|
Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
|
|
return coSService.selectDataList(cos, pageNum,pageSize);
|
}
|
|
@GetMapping(value = "/getInf")
|
public AjaxResult getInf(@RequestParam(name = "id") Long id) {
|
return AjaxResult.success(coSService.getById(id));
|
}
|
|
@Log(title = "生成二维码记录", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody qrcode cos) throws ParseException {
|
cos.setCreateTime(new Date());
|
try {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date d = null;
|
|
d = sdf.parse("2024-01-01");
|
|
}catch (Exception e) {
|
e.printStackTrace();
|
}
|
return coSService.addData(cos);
|
}
|
@Log(title = "生成二维码记录", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody qrcode cos)
|
{
|
// cos.setApproveStatus(1);
|
return coSService.updateData(cos);
|
}
|
//
|
/**
|
* 批量删除保洁收纳记录
|
*/
|
// @PreAuthorize("@ss.hasPermi('system:property:remove')")
|
@Log(title = "生成二维码记录", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return coSService.deleteData(ids);
|
}
|
public static final String extractFilename(MultipartFile file)
|
{
|
return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
|
FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
|
}
|
@Log(title = "二维码生成记录", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, qrcode cos)
|
{
|
|
List<qrcode> list = coSService.selectByCondition(cos);
|
// log.info("导出记录为:{}",list);
|
ExcelUtil<qrcode> util = new ExcelUtil<>(qrcode.class);
|
util.exportExcel(response, list, "二维码生成记录数据");
|
}
|
|
@GetMapping("/generateCode")
|
public AjaxResult generateCode(@RequestParam Integer id, @RequestParam String uri) {
|
AjaxResult ajax = AjaxResult.success();
|
|
BufferedImage image = null;
|
|
QrConfig config = new QrConfig(300, 300);
|
config.setMargin(3);
|
// config.setErrorCorrection(ErrorCorrectionLevel.H);
|
config.setErrorCorrection(ErrorCorrectionLevel.H);
|
|
// 设置前景色,既二维码颜色(青色)
|
// config.setForeColor(new Color(0,60,130).getRGB());
|
|
// config.setBackColor(new Color(242,242,242).getRGB());
|
image = QrCodeUtil.generate(uri, //二维码内容
|
config
|
);
|
String url = "";
|
System.out.println(76768999);
|
|
// 转换流信息写出
|
FastByteArrayOutputStream os = new FastByteArrayOutputStream();
|
try
|
{
|
ImageIO.write(image, "jpg", os);
|
// ImageIO.write(image, "jpg", new File("D:/1.jpg"));
|
String filePath = RuoYiConfig.getUploadPath();
|
InputStream input = new ByteArrayInputStream(os.toByteArray());
|
//InputStream转成MultipartFile
|
MultipartFile multipartFile =new MockMultipartFile("file", "file.jpg", "text/plain", input);
|
System.out.println(76768999);
|
System.out.println(filePath);
|
// FileUploadUtils.upload(filePath, multipartFile,fname);
|
String fname = extractFilename(multipartFile);
|
System.out.println(fname);
|
String fileName = FileUploadUtils.upload(multipartFile,fname);
|
url = serverConfig.getUrl() + fname;
|
System.out.println(url);
|
System.out.println(fileName);
|
System.out.println(FileUtils.getName(fileName));
|
qrcode cos = new qrcode();
|
cos.setId(id);
|
cos.setCodeS(fname);
|
coSService.updateData(cos);;
|
// urls.add(url);
|
//
|
// fileNames.add(fileName);
|
// newFileNames.add(FileUtils.getName(fileName));
|
// originalFilenames.add(file.getOriginalFilename());
|
}
|
catch (IOException e)
|
{
|
System.out.println(e.getMessage());
|
return AjaxResult.error(e.getMessage());
|
}
|
|
ajax.put("uuid", "222222222222222222222");
|
ajax.put("img", Base64.encode(os.toByteArray()));
|
return ajax;
|
}
|
|
|
}
|