diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java similarity index 60% rename from epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java rename to epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java index cbe03f784f..935064e933 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CollectUrlEnum.java @@ -1,16 +1,17 @@ package com.epmet.commons.tools.enums; -public enum NeighborHoodUrlEnum { +public enum CollectUrlEnum { - URL_PRE("https://www.baidu.com/", "小区码跳转地址"); + URL_PRE("subpages/points/pages/fangyi/xinxi/create/index", "小程序码跳转地址"), + GET_CODE_URL("https://api.weixin.qq.com/wxa/getwxacode?access_token=", "获取二维码的url"); private String code; private String name; - NeighborHoodUrlEnum(String code, String name) { + CollectUrlEnum(String code, String name) { this.code = code; this.name = name; } diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 401f05c967..2da6b8b8ac 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -147,6 +147,12 @@ 2.0.0 compile + + com.epmet + epmet-third-client + 2.0.0 + compile + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index ae07816fa2..489eb10876 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -33,7 +33,6 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.CustomerAgencyConstant; import com.epmet.constant.OrgInfoConstant; import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; @@ -409,12 +408,8 @@ public class AgencyController { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息不存在"); } name = customerAgencyDTO.getOrganizationName(); - } else if (type.equals(OrgInfoConstant.NEIGHBOR_HOOD)) { - IcNeighborHoodDTO icNeighborHoodDTO = neighborHoodService.get(id); - if (icNeighborHoodDTO == null) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息不存在"); - } - name = icNeighborHoodDTO.getNeighborHoodName(); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息不存在"); } //url组成:数字社区地址?小区id&用户id //String url = "https://demo.tduckapp.com/s/7314b64b3a26455ab793fb8c640856b6?id="+id; @@ -454,6 +449,64 @@ public class AgencyController { log.error("method exception", e); } } +// @PostMapping("create-qrcode") +// public void createQrCode(@LoginUser TokenDto tokenDto, @RequestBody CreateQrCodeFormDTO formDTO, HttpServletResponse response) { +// ValidatorUtils.validateEntity(formDTO, CreateQrCodeFormDTO.CreateQrCodeForm.class); +// String id = formDTO.getId(); +// String type = formDTO.getType(); +// String name = ""; +// try { +// if (type.equals(OrgInfoConstant.COMMUNITY)) { +// CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(id); +// if (customerAgencyDTO == null) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息不存在"); +// } +// name = customerAgencyDTO.getOrganizationName(); +// } else if (type.equals(OrgInfoConstant.NEIGHBOR_HOOD)) { +// IcNeighborHoodDTO icNeighborHoodDTO = neighborHoodService.get(id); +// if (icNeighborHoodDTO == null) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区信息不存在"); +// } +// name = icNeighborHoodDTO.getNeighborHoodName(); +// } +// //url组成:数字社区地址?小区id&用户id +// //String url = "https://demo.tduckapp.com/s/7314b64b3a26455ab793fb8c640856b6?id="+id; +// String url = EnvEnum.getCurrentEnv().getUrl() +// .replace("cloud", "open") +// .replace("api/", StrConstant.EPMETY_STR) +// .concat("epmet-oper-gov/#/caiji/") +// .concat(id).concat("?") +// .concat("name=").concat(URLEncoder.encode(name, StrConstant.UTF_8)).concat(StrConstant.AND_MARK) +// .concat("customerId=").concat(tokenDto.getCustomerId()).concat(StrConstant.AND_MARK) +// .concat("type=").concat(type).concat(StrConstant.AND_MARK) +// .concat("userId=").concat(tokenDto.getUserId()) +// .concat(StrConstant.AND_MARK).concat(String.valueOf(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli())); +// BufferedImage image = BarcodeUtils.drawQRImage(name, url); +// //BufferedImage 转 InputStream +// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); +// ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream); +// ImageIO.write(image, "png", imageOutput); +// InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); +// long length = imageOutput.length(); +// String fileName = name + ".png"; +// response.setContentType("application/octet-stream"); +// response.setContentLength((int) length); +// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8)); +// +// //输出流 +// byte[] bytes = new byte[1024]; +// OutputStream outputStream = response.getOutputStream(); +// long count = 0; +// while (count < length) { +// int len = inputStream.read(bytes, 0, 1024); +// count += len; +// outputStream.write(bytes, 0, len); +// } +// outputStream.flush(); +// } catch (Exception e) { +// log.error("method exception", e); +// } +// } /** * Desc: 查询工作人员所属组织下的所有社区 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java index 139d978737..73dcd6f144 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java @@ -1,19 +1,19 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.enums.NeighborHoodUrlEnum; +import com.epmet.commons.tools.enums.CollectUrlEnum; import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.BarcodeUtils; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.FileUtils; +import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.NeighborhoodConstant; import com.epmet.dao.CustomerGridDao; @@ -39,28 +39,23 @@ import com.epmet.excel.IcNeighborHoodExcel; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OssFeignClient; +import com.epmet.resi.group.dto.QRCodeMultipartFileDTO; import com.epmet.service.IcNeighborHoodPropertyService; import com.epmet.service.IcNeighborHoodService; import com.epmet.service.NeighborHoodService; import com.epmet.util.ExcelPoiUtils; +import com.epmet.utils.ThirdUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; -import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -134,7 +129,7 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl uploadResult = null; - try { - ImageIO.write(image, "png", os); - uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("上传小区二维码:{}", errormsg); - } finally { - try { - os.close(); - } catch (IOException e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("上传小区二维码关闭输出流:{}", errormsg); - } - try { - fileItem.delete(); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("上传小区二维码删除临时文件:{}", errormsg); + //需要发送的Json + JSONObject data = new JSONObject(); + data.put("path", path.toString()); + data.put("width", 400); + //发送 + byte[] buffer = HttpClientManager.getInstance().getMediaByteArray(CollectUrlEnum.GET_CODE_URL.getCode() + accessToken, JSON.toJSONString(data)).getData(); + if (buffer != null && buffer.length < 500) { + String wxResult = ""; + wxResult = new String(buffer, StandardCharsets.UTF_8); + if (-1 != wxResult.indexOf("errcode")) { + log.error("获取二维码接口返回错误:{}", wxResult); + throw new RenException("获取二维码失败"); } } - if (uploadResult == null || !uploadResult.success()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "上传小区二维码失败", "上传小区二维码失败"); - } else { - return uploadResult.getData().getUrl(); + //上传 + QRCodeMultipartFileDTO qrCodeMultipartFile = new QRCodeMultipartFileDTO(); + qrCodeMultipartFile.setBytes(buffer); + String originalFilename = entity.getNeighborHoodName().concat(".jpg"); + qrCodeMultipartFile.setOriginalFilename(originalFilename); + Result uploadResult = ossFeignClient.uploadQrCode(qrCodeMultipartFile); + if (!uploadResult.success()) { + throw new RenException("调用oss服务上传活动居民信息录入码失败"); } + return uploadResult.getData().getUrl(); } /** @@ -356,7 +350,7 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl{ if(org.apache.commons.lang3.StringUtils.isBlank(nei.getQrcodeUrl())){ try { - nei.setQrcodeUrl(createNeiQrcodeUrl(nei.getId(),nei.getNeighborHoodName())); + nei.setQrcodeUrl(createNeiQrcodeUrl(nei)); } catch (Exception e) { e.printStackTrace(); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败:"+nei.getId(),"二维码生成失败:"+nei.getId()); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java index 20767e69d2..cca091439f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java @@ -178,7 +178,7 @@ public class IcResiCollectController { @PostMapping("saveCollectInfo") public Result saveCollectInfo(@RequestBody SaveCollectFormDTO formDTO) { //效验数据 - ValidatorUtils.validateEntity(formDTO, SaveCollectFormDTO.class); + ValidatorUtils.validateEntity(formDTO); formDTO.setOrigin("internal");//固定为内部 return icResiCollectService.saveCollectInfo(formDTO); }