QRC
This commit is contained in:
parent
9161f7357e
commit
8f8bbf22ac
@ -22,44 +22,80 @@ public class QRCServiceImpl implements QRCService{
|
|||||||
private CollectIconListDao collectIconListDao;
|
private CollectIconListDao collectIconListDao;
|
||||||
|
|
||||||
public String QR(CollectIconList collect) throws Exception {
|
public String QR(CollectIconList collect) throws Exception {
|
||||||
String logoPath ="src/main/resources/static/logo/NAV.png";
|
String logoPath = "src/main/resources/static/logo/NAV.png";
|
||||||
String destPath = "src/main/resources/static/qr";
|
String destPath = "src/main/resources/static/qr";
|
||||||
// 通过传入collect的url_id查找相同网址图片列表
|
|
||||||
// List<CollectIconList> collectIconList = collectIconListDao.selectByUrlid(collect.getUrl_id());
|
|
||||||
|
|
||||||
// 通过collect的url_id查找网址id对应网址
|
// 通过collect的url_id查找网址id对应网址
|
||||||
UrlList urlList = urlListDao.selectByPrimaryKey(Long.valueOf(collect.getUrl_id()));
|
UrlList urlList = urlListDao.selectByPrimaryKey(Long.valueOf(collect.getUrl_id()));
|
||||||
|
|
||||||
List<CollectIconList> list = collectIconListDao.selectByUrlid(collect.getUrl_id());
|
List<CollectIconList> list = collectIconListDao.selectByUrlid(collect.getUrl_id());
|
||||||
if(list.size()==0){
|
// 如果表中没有可以插入
|
||||||
if(urlList != null && collect.getIcon_url()!=null){
|
if (list.size() == 0) {
|
||||||
// 将icon下载到本地并存储本地路径
|
// 如果icon是url
|
||||||
|
if(QRCodeUtil.isBase64(collect.getIcon_url())){
|
||||||
String icon_url = QRCodeUtil.downloadPicture(collect.getIcon_url());
|
String icon_url = QRCodeUtil.downloadPicture(collect.getIcon_url());
|
||||||
collect.setIcon_url(icon_url);
|
collect.setIcon_url(icon_url);
|
||||||
// 获取网址url
|
|
||||||
String url = urlList.getUrl();
|
String url = urlList.getUrl();
|
||||||
// 将网址生成二维码并返回本地路径
|
// 将网址生成二维码并返回本地路径
|
||||||
String url_wait = QRCodeUtil.encode(url, logoPath, destPath, true);
|
String url_wait = QRCodeUtil.encode(url, logoPath, destPath, true);
|
||||||
// 为collect设置二维码本地路径
|
|
||||||
collect.setQr_url(url_wait);
|
collect.setQr_url(url_wait);
|
||||||
collectIconListDao.insert(collect);
|
|
||||||
String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
||||||
return JSON.toJSONString(base64);
|
|
||||||
}else if(urlList != null && collect.getIcon_url()==null){
|
|
||||||
// 获取网址url
|
|
||||||
String url = urlList.getUrl();
|
|
||||||
String url_wait = QRCodeUtil.encode(url, logoPath, destPath, true);
|
|
||||||
// 为collect设置二维码本地路径
|
|
||||||
collect.setQr_url(url_wait);
|
|
||||||
collectIconListDao.insert(collect);
|
collectIconListDao.insert(collect);
|
||||||
String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
|
||||||
return JSON.toJSONString(base64);
|
return JSON.toJSONString(base64);
|
||||||
}
|
}
|
||||||
}else{
|
else{
|
||||||
String url_wait = list.get(0).getQr_url();
|
String base64str = QRCodeUtil.delete_profix(collect.getIcon_url());
|
||||||
String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
String icon_url = QRCodeUtil.GenerateImage(base64str,"src/main/resources/static/icon");
|
||||||
return JSON.toJSONString(base64);
|
collect.setIcon_url(icon_url);
|
||||||
|
|
||||||
|
String url = urlList.getUrl();
|
||||||
|
String url_wait = QRCodeUtil.encode(url, logoPath, destPath, true);
|
||||||
|
collect.setQr_url(url_wait);
|
||||||
|
|
||||||
|
String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
||||||
|
collectIconListDao.insert(collect);
|
||||||
|
return JSON.toJSONString(base64);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return JSON.toJSONString("内容已存在");
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//// 通过传入collect的url_id查找相同网址图片列表
|
||||||
|
//// List<CollectIconList> collectIconList = collectIconListDao.selectByUrlid(collect.getUrl_id());
|
||||||
|
//
|
||||||
|
//// 通过collect的url_id查找网址id对应网址
|
||||||
|
// UrlList urlList = urlListDao.selectByPrimaryKey(Long.valueOf(collect.getUrl_id()));
|
||||||
|
//
|
||||||
|
// List<CollectIconList> list = collectIconListDao.selectByUrlid(collect.getUrl_id());
|
||||||
|
// if(list.size()==0){
|
||||||
|
// if(urlList != null && collect.getIcon_url()!=null){
|
||||||
|
//// 将icon下载到本地并存储本地路径
|
||||||
|
// String icon_url = QRCodeUtil.downloadPicture(collect.getIcon_url());
|
||||||
|
// collect.setIcon_url(icon_url);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//// 为collect设置二维码本地路径
|
||||||
|
// collect.setQr_url(url_wait);
|
||||||
|
// collectIconListDao.insert(collect);
|
||||||
|
// String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
||||||
|
// return JSON.toJSONString(base64);
|
||||||
|
// }else if(urlList != null && collect.getIcon_url()==null){
|
||||||
|
//// 获取网址url
|
||||||
|
// String url = urlList.getUrl();
|
||||||
|
// String url_wait = QRCodeUtil.encode(url, logoPath, destPath, true);
|
||||||
|
//// 为collect设置二维码本地路径
|
||||||
|
// collect.setQr_url(url_wait);
|
||||||
|
// collectIconListDao.insert(collect);
|
||||||
|
// String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
||||||
|
// return JSON.toJSONString(base64);
|
||||||
|
// }
|
||||||
|
// }else{
|
||||||
|
// String url_wait = list.get(0).getQr_url();
|
||||||
|
// String base64 = QRCodeUtil.ImageToBase64(url_wait);
|
||||||
|
// return JSON.toJSONString(base64);
|
||||||
|
// }
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import java.net.HttpURLConnection;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Service
|
@Service
|
||||||
@ -431,7 +432,56 @@ public class QRCodeUtil {
|
|||||||
return (serverPath +"/" + fileName);
|
return (serverPath +"/" + fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 对字节数组字符串进行Base64解码并生成图片
|
||||||
|
//imgFilePath 待保存的本地路径
|
||||||
|
public static String GenerateImage(String base64Str, String imgFilePath) {
|
||||||
|
if (base64Str == null) // 图像数据为空
|
||||||
|
return null;
|
||||||
|
Base64.Decoder decoder = Base64.getDecoder();
|
||||||
|
try {
|
||||||
|
// Base64解码
|
||||||
|
byte[] bytes = decoder.decode(base64Str);
|
||||||
|
for (int i = 0; i < bytes.length; ++i) {
|
||||||
|
if (bytes[i] < 0) {// 调整异常数据
|
||||||
|
bytes[i] += 256;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置图片名称,这个随意
|
||||||
|
String date = new Random().nextInt(99999999)+".jpg";
|
||||||
|
String fileName = date ;
|
||||||
|
|
||||||
|
// 生成jpg图片
|
||||||
|
OutputStream out = new FileOutputStream(imgFilePath +"/" + fileName);
|
||||||
|
out.write(bytes);
|
||||||
|
out.flush();
|
||||||
|
out.close();
|
||||||
|
return (imgFilePath +"/" + fileName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isBase64(String url){
|
||||||
|
String reg = "[a-zA-z]+://[^\\s]*";
|
||||||
|
boolean isMatch = Pattern.matches(reg, url);
|
||||||
|
if(isMatch){
|
||||||
|
return isMatch;
|
||||||
|
}
|
||||||
|
return isMatch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String delete_profix(String base64){
|
||||||
|
String delete = "data:image/jpg;base64,";
|
||||||
|
String Base64 = base64;
|
||||||
|
return(base64.replace(delete,""));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
// String text = "https://www.baidu.com"; //这里设置自定义网站url
|
// String text = "https://www.baidu.com"; //这里设置自定义网站url
|
||||||
// String logoPath ="src/main/resources/static/logo/NAV.png";
|
// String logoPath ="src/main/resources/static/logo/NAV.png";
|
||||||
// String destPath = "src/main/resources/static/qr";
|
// String destPath = "src/main/resources/static/qr";
|
||||||
|
Loading…
Reference in New Issue
Block a user