|
|
@ -2,7 +2,11 @@ package com.zdxt.knowledge.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
|
import cn.hutool.core.io.IoUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
|
import cn.hutool.http.HttpUtil; |
|
|
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
import com.zdxt.auth.dto.DictDataBean; |
|
|
import com.zdxt.auth.dto.DictDataBean; |
|
|
import com.zdxt.auth.dto.UserBean; |
|
|
import com.zdxt.auth.dto.UserBean; |
|
|
import com.zdxt.auth.dto.ZdxtFileBean; |
|
|
import com.zdxt.auth.dto.ZdxtFileBean; |
|
|
@ -14,6 +18,7 @@ import com.zdxt.common.ZDResponse; |
|
|
import com.zdxt.common.util.Convert; |
|
|
import com.zdxt.common.util.Convert; |
|
|
import com.zdxt.common.util.DateUtils; |
|
|
import com.zdxt.common.util.DateUtils; |
|
|
import com.zdxt.common.util.StringUtils; |
|
|
import com.zdxt.common.util.StringUtils; |
|
|
|
|
|
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; |
|
|
@ -23,13 +28,20 @@ import com.zdxt.knowledge.mapper.SceneManageMapper; |
|
|
import com.zdxt.knowledge.service.ISceneManageService; |
|
|
import com.zdxt.knowledge.service.ISceneManageService; |
|
|
import com.zdxt.knowledge.utils.ExcelUtil; |
|
|
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.disk.DiskFileItemFactory; |
|
|
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; |
|
|
import org.springframework.http.ResponseEntity; |
|
|
import org.springframework.http.ResponseEntity; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
import org.springframework.util.FileCopyUtils; |
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
import org.springframework.web.multipart.commons.CommonsMultipartFile; |
|
|
|
|
|
|
|
|
|
|
|
import javax.activation.MimetypesFileTypeMap; |
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
import java.io.*; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
@ -60,6 +72,10 @@ public class SceneManageServiceImpl implements ISceneManageService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
private ZdxtFileCommonApi zdxtFileCommonApi; |
|
|
private ZdxtFileCommonApi zdxtFileCommonApi; |
|
|
|
|
|
|
|
|
|
|
|
private static final String APPID = "wx93ec514a5c456507"; |
|
|
|
|
|
|
|
|
|
|
|
private static final String SECRET = "f5a3f295dbee3cc1c2f73b9a324c2eb2"; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 查询【请填写功能名称】 |
|
|
* 查询【请填写功能名称】 |
|
|
* |
|
|
* |
|
|
@ -71,6 +87,18 @@ public class SceneManageServiceImpl implements ISceneManageService { |
|
|
return sceneManageMapper.selectSceneManageById(guid); |
|
|
return sceneManageMapper.selectSceneManageById(guid); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 查询列表 |
|
|
|
|
|
* |
|
|
|
|
|
* @param sceneManage 【请填写功能名称】 |
|
|
|
|
|
* @return 【请填写功能名称】 |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public List<SceneManage> selectSceneManageListAll(SceneManage sceneManage) { |
|
|
|
|
|
return sceneManageMapper.selectSceneManageListAll(sceneManage); |
|
|
|
|
|
} |
|
|
/** |
|
|
/** |
|
|
* 查询【请填写功能名称】列表 |
|
|
* 查询【请填写功能名称】列表 |
|
|
* |
|
|
* |
|
|
@ -85,6 +113,65 @@ public class SceneManageServiceImpl implements ISceneManageService { |
|
|
return sceneManageMapper.selectSceneManageList(sceneManage); |
|
|
return sceneManageMapper.selectSceneManageList(sceneManage); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void generateQRCode(SceneManage sceneManage, HttpServletResponse response) 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 url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; |
|
|
|
|
|
|
|
|
|
|
|
// 发送请求参数
|
|
|
|
|
|
JSONObject paramJson = new JSONObject(); |
|
|
|
|
|
paramJson.set("page", "subpkg/role/role"); |
|
|
|
|
|
paramJson.set("check_path", false); |
|
|
|
|
|
paramJson.set("width", 280); |
|
|
|
|
|
//scene数据不能中文
|
|
|
|
|
|
paramJson.set("scene", "4f5d2f4dd813443e83f399e743adec50"); |
|
|
|
|
|
//设置小程序码版本
|
|
|
|
|
|
//paramJson.set("env_version","release"); 默认正式
|
|
|
|
|
|
//paramJson.set("env_version", "trial"); //体验版
|
|
|
|
|
|
paramJson.set("env_version", "develop"); //开发版
|
|
|
|
|
|
|
|
|
|
|
|
InputStream inputStream = HttpUtils.postInputStream(url, paramJson); |
|
|
|
|
|
//将流写出到response
|
|
|
|
|
|
IoUtil.copy(inputStream, response.getOutputStream()); |
|
|
|
|
|
//存入本地数据库
|
|
|
|
|
|
File file = File.createTempFile("temp", ".png"); |
|
|
|
|
|
FileOutputStream outputStream = new FileOutputStream(file); |
|
|
|
|
|
IoUtil.copy(inputStream, outputStream); |
|
|
|
|
|
MultipartFile multipartFile = toMultipartFile(file.getName(),file); |
|
|
|
|
|
zdxtFileCommonApi.insertZdxtFile(multipartFile, sceneManage.getGuid() + "", fileUploadApi.upload(multipartFile)); |
|
|
|
|
|
file.deleteOnExit(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String getAccessToken() { |
|
|
|
|
|
String appid = APPID; |
|
|
|
|
|
String secret = SECRET; |
|
|
|
|
|
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; |
|
|
|
|
|
String result = HttpUtil.get(url); |
|
|
|
|
|
JSONObject jsonObject = JSONUtil.parseObj(result); |
|
|
|
|
|
return jsonObject.get("access_token").toString(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception { |
|
|
|
|
|
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); |
|
|
|
|
|
String contentType = new MimetypesFileTypeMap().getContentType(file); |
|
|
|
|
|
FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName()); |
|
|
|
|
|
try ( |
|
|
|
|
|
InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file)); |
|
|
|
|
|
OutputStream outputStream = fileItem.getOutputStream() |
|
|
|
|
|
) { |
|
|
|
|
|
FileCopyUtils.copy(inputStream, outputStream); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
throw e; |
|
|
|
|
|
} |
|
|
|
|
|
MultipartFile multipartFile = new CommonsMultipartFile(fileItem); |
|
|
|
|
|
return multipartFile; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 新增【请填写功能名称】 |
|
|
* 新增【请填写功能名称】 |
|
|
* |
|
|
* |
|
|
|