Commit af39cd79 by 徐高华

下载

parent 47b4d838
package com.gic.haoban.manage.web.controller.chat;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.web.RequestThreadLocal;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.security.DownloadReportDTO;
import com.gic.enterprise.api.service.DownloadReportService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
......@@ -21,6 +42,11 @@ import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatHmApiService;
import com.gic.haoban.manage.web.vo.chat.HmLinkChatListVO;
import com.gic.qcloud.BucketNameEnum;
import com.gic.qcloud.FileUploadUtil;
import com.gic.web.common.utils.DataPermissionExport;
import com.gic.web.common.utils.ExecutorPoolSingleton;
import com.gic.web.common.utils.SessionContextUtils;
/**
*
......@@ -38,6 +64,8 @@ public class GroupChatHmController {
private GroupChatHmApiService groupChatHmApiService;
@Autowired
private GroupChatApiService groupChatApiService;
@Autowired
private DownloadReportService downloadReportService;
@RequestMapping("add")
public RestResponse<Object> save(@RequestBody GroupChatHmDTO dto) {
......@@ -84,7 +112,7 @@ public class GroupChatHmController {
GroupChatHmDTO hm = linkResp.getResult();
return RestResponse.successResult(hm);
}
@RequestMapping("discard")
public RestResponse<Object> discard(Long chatHmId) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
......@@ -147,4 +175,97 @@ public class GroupChatHmController {
return RestResponse.successResult(page.getResult());
}
@RequestMapping("download")
public RestResponse<Object> download(List<Long> chatHmIdList) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String qrCodeName = "群活码";
final String fileName = qrCodeName + "_" + sdf.format(new Date()) + ".zip";
final AuthorizedUser au = SessionContextUtils.getLoginUser();
String path = RequestThreadLocal.get().getSession().getServletContext().getRealPath("/chat/qrcode/");
String uuId = ToolUtil.randomUUID();
path = path + uuId;
final String tempPath = path + File.separator + fileName;
File file = new File(tempPath);
if (!file.exists()) {
file.getParentFile().mkdirs();
try {
file.createNewFile();
} catch (IOException e) {
}
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId();
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1000);
ChatHmSearchQDTO qdto = new ChatHmSearchQDTO();
qdto.setEnterpriseId(enterpriseId);
qdto.setWxEnterpriseId(wxEnterpriseId);
ServiceResponse<Page<GroupChatHmDTO>> resp = this.groupChatHmApiService.listPage(qdto, basePageInfo);
List<GroupChatHmDTO> dtoList = resp.getResult().getResult();
int size = dtoList.size();
JSONResponse jsonResponse = DataPermissionExport.generatedExcel(1, au, "", "", size, fileName, qrCodeName,
downloadReportService);
final String reportId;
if (jsonResponse.isSuccess()) {
reportId = (String) jsonResponse.getResult();
} else {
return RestResponse.failure("1", jsonResponse.getMessage());
}
ExecutorPoolSingleton.getInstance().executeTask(new Runnable() {
@Override
public void run() {
try {
File tempFile = new File(tempPath);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(tempFile));
for (GroupChatHmDTO dto : dtoList) {
String qrCodeUrl = dto.getWxQrCode();
if (StringUtils.isNotBlank(qrCodeUrl)) {
try {
ZipEntry e = new ZipEntry(dto.getChatHmCode() + "_" + dto.getName() + ".png");
out.putNextEntry(e);
out.write(getStoreQrCode(qrCodeUrl));
out.flush();
} catch (IOException e) {
}
}
}
try {
out.flush();
out.closeEntry();
out.close();
} catch (IOException e) {
}
String url = FileUploadUtil.simpleUploadFileFromLocal(tempFile, fileName,
BucketNameEnum.COMPRESS_60000.getName());
DownloadReportDTO downloadReportDTO = new DownloadReportDTO();
downloadReportDTO.setDownloadUrl("https://" + url);
downloadReportService.updateDownloadReport(reportId, downloadReportDTO);
tempFile.deleteOnExit();
} catch (Exception e) {
}
}
});
return RestResponse.successResult(reportId);
}
private byte[] getStoreQrCode(String qrCodeUrl) {
HttpURLConnection conn = null;
try {
URL url = new URL(qrCodeUrl);
try {
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
InputStream in = conn.getInputStream();
return IOUtils.toByteArray(in);
} catch (IOException e) {
return null;
}
} catch (MalformedURLException e) {
return null;
}
}
}
package com.gic.haoban.manage.web.controller.chat;
import java.time.LocalDateTime;
import java.util.Date;
import org.apache.logging.log4j.LogManager;
......@@ -9,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
......@@ -21,7 +19,6 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService;
import com.gic.haoban.manage.web.controller.hm.HmLinkController;
/**
*
......@@ -35,7 +32,7 @@ import com.gic.haoban.manage.web.controller.hm.HmLinkController;
@RequestMapping("/chat/plan")
public class GroupChatPlanController {
private static org.apache.logging.log4j.Logger logger = LogManager.getLogger(HmLinkController.class);
private static org.apache.logging.log4j.Logger logger = LogManager.getLogger(GroupChatPlanController.class);
@Autowired
private GroupChatPlanApiService groupChatPlanApiService;
......@@ -84,9 +81,7 @@ public class GroupChatPlanController {
}
@RequestMapping("page")
public RestResponse<Object> page(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo , LocalDateTime startDate) {
logger.info("qdto={} , {} , {},{}",JSON.toJSONString(qdto) , startDate , qdto.getStartDate());
public RestResponse<Object> page(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment