Browse Source

生成小程序二维码

master
yanyan 3 years ago
parent
commit
241e0161e9
  1. 14
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/scene/manage.html
  2. 4
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/SceneManageController.java
  3. 65
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/domain/LocalFileMultipartFile.java
  4. 2
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/ISceneManageService.java
  5. 58
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneManageServiceImpl.java

14
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/scene/manage.html

@ -41,7 +41,7 @@
shiro:hasPermission="project:scene:remove"> shiro:hasPermission="project:scene:remove">
<i class="fa fa-remove"></i> 全部删除 <i class="fa fa-remove"></i> 全部删除
</a> </a>
<a class="btn btn-action" shiro:hasPermission="project:scene:remove"> <a class="btn btn-action" shiro:hasPermission="project:scene:remove" onclick="generateQRCode()">
<i class="fa fa-save"></i> 生成二维码 <i class="fa fa-save"></i> 生成二维码
</a> </a>
<a class="btn btn-warning" shiro:hasPermission="project:scene:remove"> <a class="btn btn-warning" shiro:hasPermission="project:scene:remove">
@ -206,6 +206,18 @@
}); });
} }
function generateQRCode() {
table.set();
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
if (rows.length == 0) {
$.modal.alertWarning("请选择一条记录");
return;
}
$.post(ctx + "small/scene/manage/generateQRCode/", {"guid": rows.join()}, function (req,status ) {
})
}
</script> </script>
</body> </body>
<script id="importTpl" type="text/template"> <script id="importTpl" type="text/template">

4
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/controller/SceneManageController.java

@ -72,8 +72,8 @@ public class SceneManageController extends BaseController {
*/ */
@PostMapping("/generateQRCode") @PostMapping("/generateQRCode")
@ResponseBody @ResponseBody
public void generateQRCode(SceneManage sceneManage,HttpServletResponse response) throws Exception{ public ZDResponse generateQRCode(SceneManage sceneManage) throws Exception{
sceneManageService.generateQRCode(sceneManage,response); return sceneManageService.generateQRCode(sceneManage);
} }
/** /**

65
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/domain/LocalFileMultipartFile.java

@ -0,0 +1,65 @@
package com.zdxt.knowledge.domain;
import org.springframework.http.MediaType;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class LocalFileMultipartFile implements MultipartFile {
private final File file;
public LocalFileMultipartFile(File file) {
this.file = file;
}
@Override
public String getName() {
return file.getName();
}
@Override
public String getOriginalFilename() {
return file.getName();
}
@Override
public String getContentType() {
return MediaType.APPLICATION_OCTET_STREAM_VALUE;
}
@Override
public boolean isEmpty() {
return file.exists();
}
@Override
public long getSize() {
try (FileInputStream fileInputStream = new FileInputStream(file)) {
return fileInputStream.available();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public byte[] getBytes() throws IOException {
return FileCopyUtils.copyToByteArray(file);
}
@Override
public InputStream getInputStream() throws IOException {
return new FileInputStream(file);
}
@Override
public void transferTo(File dest) throws IOException, IllegalStateException {
FileCopyUtils.copy(file, dest);
}
}

2
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/ISceneManageService.java

@ -43,7 +43,7 @@ public interface ISceneManageService {
public List<SceneManage> selectSceneManageListAll(SceneManage sceneManage); public List<SceneManage> selectSceneManageListAll(SceneManage sceneManage);
public void generateQRCode(SceneManage sceneManage,HttpServletResponse response) throws Exception; public ZDResponse generateQRCode(SceneManage sceneManage) throws Exception;
/** /**
* 新增请填写功能名称 * 新增请填写功能名称

58
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneManageServiceImpl.java

@ -22,6 +22,7 @@ import com.zdxt.common.util.http.HttpUtils;
import com.zdxt.common.zdxtFile.AttFileRespDTO; import com.zdxt.common.zdxtFile.AttFileRespDTO;
import com.zdxt.common.zdxtFile.FilePreviewUtilBean; import com.zdxt.common.zdxtFile.FilePreviewUtilBean;
import com.zdxt.common.zdxtFile.ZdxtFileCommon; import com.zdxt.common.zdxtFile.ZdxtFileCommon;
import com.zdxt.knowledge.domain.LocalFileMultipartFile;
import com.zdxt.knowledge.domain.SceneImportDataModel; import com.zdxt.knowledge.domain.SceneImportDataModel;
import com.zdxt.knowledge.domain.SceneManage; import com.zdxt.knowledge.domain.SceneManage;
import com.zdxt.knowledge.mapper.SceneManageMapper; import com.zdxt.knowledge.mapper.SceneManageMapper;
@ -30,6 +31,7 @@ import com.zdxt.knowledge.utils.ExcelUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
@ -114,11 +116,7 @@ public class SceneManageServiceImpl implements ISceneManageService {
} }
@Override @Override
public void generateQRCode(SceneManage sceneManage, HttpServletResponse response) throws Exception { public ZDResponse generateQRCode(SceneManage sceneManage) throws Exception {
response.setContentType("image/gif");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
String accessToken = getAccessToken(); String accessToken = getAccessToken();
String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
@ -129,22 +127,28 @@ public class SceneManageServiceImpl implements ISceneManageService {
paramJson.set("check_path", false); paramJson.set("check_path", false);
paramJson.set("width", 280); paramJson.set("width", 280);
//scene数据不能中文 //scene数据不能中文
paramJson.set("scene", "4f5d2f4dd813443e83f399e743adec50"); paramJson.set("scene", sceneManage.getGuid());
//设置小程序码版本 //设置小程序码版本
//paramJson.set("env_version","release"); 默认正式 //paramJson.set("env_version","release"); 默认正式
//paramJson.set("env_version", "trial"); //体验版 //paramJson.set("env_version", "trial"); //体验版
paramJson.set("env_version", "develop"); //开发版 paramJson.set("env_version", "develop"); //开发版
InputStream inputStream = HttpUtils.postInputStream(url, paramJson); InputStream inputStream = HttpUtils.postInputStream(url, paramJson);
//将流写出到response
IoUtil.copy(inputStream, response.getOutputStream());
//存入本地数据库 //存入本地数据库
File file = File.createTempFile("temp", ".png"); File file = File.createTempFile("temp", ".png");
FileOutputStream outputStream = new FileOutputStream(file); FileUtils.copyInputStreamToFile(inputStream,file);
IoUtil.copy(inputStream, outputStream); MultipartFile multipartFile = new LocalFileMultipartFile(file);
MultipartFile multipartFile = toMultipartFile(file.getName(),file); String uploadPath = fileUploadApi.upload(multipartFile);
zdxtFileCommonApi.insertZdxtFile(multipartFile, sceneManage.getGuid() + "", fileUploadApi.upload(multipartFile)); zdxtFileCommonApi.deleteZdxtFileByIds(sceneManage.getGuid() + "0000");
zdxtFileCommonApi.insertZdxtFile(multipartFile, sceneManage.getGuid() + "0000", uploadPath);
sceneManage.setUpdateTime(DateUtils.getNowDate());
sceneManage.setUrl(uploadPath);
int result = sceneManageMapper.updateSceneManage(sceneManage);
file.deleteOnExit(); file.deleteOnExit();
if (result>0) {
return ZDResponse.success("生成二维码成功");
}
return ZDResponse.error("生成二维码失败");
} }
public String getAccessToken() { public String getAccessToken() {
@ -156,21 +160,21 @@ public class SceneManageServiceImpl implements ISceneManageService {
return jsonObject.get("access_token").toString(); return jsonObject.get("access_token").toString();
} }
public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception { // public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception {
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); // DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
String contentType = new MimetypesFileTypeMap().getContentType(file); // String contentType = new MimetypesFileTypeMap().getContentType(file);
FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName()); // FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName());
try ( // try (
InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file)); // InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file));
OutputStream outputStream = fileItem.getOutputStream() // OutputStream outputStream = fileItem.getOutputStream()
) { // ) {
FileCopyUtils.copy(inputStream, outputStream); // FileCopyUtils.copy(inputStream, outputStream);
} catch (Exception e) { // } catch (Exception e) {
throw e; // throw e;
} // }
MultipartFile multipartFile = new CommonsMultipartFile(fileItem); // MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
return multipartFile; // return multipartFile;
} // }
/** /**
* 新增请填写功能名称 * 新增请填写功能名称

Loading…
Cancel
Save