准备
- 需要用到的hutool依赖包
代码
- 业务目标:获取可以扫一扫则打开对应教育局的域名网址的二维码
- 该业务逻辑是: 1.获取当前用户注册时的域名标识orgCode,2.通过orgCode找到对应教育局的域名,3.判断该域名最前面是否有加
http://
若没有则使用URLUtil.normalize(域名)
用加上去,4.将域名和项目logo代码生成一个二维码
public R<String> getQrcode(HttpServletResponse response) {
String orgCode = UserHolder.getOrgCode();
if (StringUtils.isEmpty(orgCode)){
return R.failed("获取二维码失败");
}
BaseEducationNameReq req = new BaseEducationNameReq();
req.setOrgCode(orgCode);
R<String> domainNameByOrgCode = educationClient.getEduDomainNameByOrgCode(req);
String domainName = "";
if (StringUtils.isNotBlank(domainNameByOrgCode.getEntity())){
domainName = domainNameByOrgCode.getEntity();
}
domainName = URLUtil.normalize(domainName);
try {
BufferedImage image = QrCodeUtil.generate(domainName, QrConfig.create().setImg("static/logo.png"));
ServletOutputStream os = response.getOutputStream();
ImageIO.write(image, "jpg", os);
return R.ok();
} catch (Exception e) {
e.printStackTrace();
}
return R.failed("获取二维码失败");
}
try {
BufferedImage image = QrCodeUtil.generate("域名地址", QrConfig.create().setImg("二维码logo地址"));
ServletOutputStream os = response.getOutputStream();
ImageIO.write(image, "jpg", os);
return R.ok();
} catch (Exception e) {
e.printStackTrace();
}
- 二维码logo存放位置
效果演示
- 中间则是设置的logo图片