From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 20 五月 2025 23:48:08 +0800 Subject: [PATCH] 修改文件上传类型限制 --- springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java | 214 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 125 insertions(+), 89 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java index 3fa78ad..26ac215 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java @@ -1,8 +1,23 @@ package com.panzhihua.serviceapi.biz.impl; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Service; + import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; @@ -14,7 +29,6 @@ import com.panzhihua.common.model.dtos.api.EventInfo; import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO; import com.panzhihua.common.model.vos.BcDictionaryItemVO; -import com.panzhihua.common.model.vos.BcDictionaryVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngPopulationVO; import com.panzhihua.common.model.vos.grid.EventDetailsVO; @@ -24,35 +38,26 @@ import com.panzhihua.common.service.grid.GridService; import com.panzhihua.common.utlis.CopyUtil; import com.panzhihua.common.utlis.DateUtils; +import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.serviceapi.biz.LcApiService; import com.panzhihua.serviceapi.model.dto.*; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.data.redis.core.ValueOperations; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import lombok.extern.slf4j.Slf4j; /** - * program 攀枝花智慧社区项目 - * description 第三方浪潮市平台对接接口管理API + * program 攀枝花智慧社区项目 description 第三方浪潮市平台对接接口管理API * - * @author manailin - * Date 2021-01-22 15:30 + * @author manailin Date 2021-01-22 15:30 **/ @Slf4j @Service public class LcApiServiceImpl implements LcApiService { + + @Value("${langchao.url}") + private String host; @Resource private GridService gridService; @@ -62,6 +67,27 @@ @Resource private CommunityService communityService; + + /** + * 工具方法 inputStream 转 File + */ + private static File inputStreamToFile(InputStream ins, String name) throws Exception { + File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name); + log.info(System.getProperty("java.io.tmpdir") + File.separator + name); + if (file.exists()) { + return file; + } + OutputStream os = new FileOutputStream(file); + int bytesRead; + int len = 8192; + byte[] buffer = new byte[len]; + while ((bytesRead = ins.read(buffer, 0, len)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.close(); + ins.close(); + return file; + } /** * 从redis获取token @@ -80,22 +106,25 @@ public String saveTokenFromRemoteRequest(String name, String password) { Boolean authToken = redisTemplate.hasKey(LcApiConstants.LANG_CHAO_TOKEN); if (authToken != null) { - //如果redis存在token,直接返回redis存储的token + // 如果redis存在token,直接返回redis存储的token ValueOperations<String, String> valueOperations = redisTemplate.opsForValue(); return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN); } else { - //如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用 - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password)); + // 如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用 + HttpRequest request = HttpUtil.createPost( + host + + LcApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password)); HttpResponse result = request.execute(); ValueOperations<String, String> valueOperations = redisTemplate.opsForValue(); - valueOperations.set(LcApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME, TimeUnit.MINUTES); + valueOperations.set(LcApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME, + TimeUnit.MINUTES); return result.toString(); } } @Override public String getAllEventTypeList() { - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_CATEGORY_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_CATEGORY_URL); request.auth(getAuthToken()); HttpResponse result = request.execute(); return result.body(); @@ -103,11 +132,11 @@ @Override public String submitEventRegister(EventInfo eventInfo) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_REGIST_EVENT_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_REGIST_EVENT_URL); request.auth(getAuthToken()); ObjectMapper mapper = new ObjectMapper(); try { - //对象转map + // 对象转map Map m = mapper.readValue(mapper.writeValueAsString(eventInfo), Map.class); request.form(m); } catch (JsonProcessingException e) { @@ -120,10 +149,10 @@ @Override public R submitEventOrVisitRecordRelationFile(EventFile eventFile) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL); request.auth(getAuthToken()); try { - HttpURLConnection httpUrl = (HttpURLConnection) new URL(eventFile.getFiles()).openConnection(); + HttpURLConnection httpUrl = (HttpURLConnection)new URL(eventFile.getFiles()).openConnection(); httpUrl.connect(); File file = inputStreamToFile(httpUrl.getInputStream(), eventFile.getFileName()); request.form("files", file); @@ -142,7 +171,7 @@ @Override public String getEventInfoById(String eventId) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL); request.auth(getAuthToken()); request.form("eventId", eventId); HttpResponse result = request.execute(); @@ -150,8 +179,20 @@ } @Override - public List<LcGridData> getGridListByAreaId(String areaId) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL); + public List<LcGridData> getGridTreeByAreaId(String areaId) { + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL); + request.auth(getAuthToken()); + request.form("areaId", areaId); + request.form("level", 4); + HttpResponse result = request.execute(); + return JSONArray.parseArray(result.body(), LcGridData.class); + } + + @Override + public List<LcGridData> getGridDataListByAreaId(String areaId) { + log.info("浪潮请求url"); + log.info(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL); request.auth(getAuthToken()); request.form("areaId", areaId); HttpResponse result = request.execute(); @@ -159,11 +200,14 @@ } @Override - public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param) { - HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL); + public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum, + Long pageSize) { + HttpRequest request = HttpUtil.createGet(host + LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL); request.auth(getAuthToken()); request.form("areaId", areaId); - if(param !=null){ + request.form("limit", pageSize); + request.form("page", pageNum); + if (StringUtils.isNotEmpty(param)) { request.form("param", param); } HttpResponse result = request.execute(); @@ -181,7 +225,7 @@ String lcGridUserId = gridService.getLcUserIdByLocalUserId(eventInfoVo.getGridMemberId().toString()); eventInfo.setGridId(lcGrid); R grid = gridService.eventGridDataDetails(eventInfoVo.getGridId()); - EventGridDataDetailsVO gridData = (EventGridDataDetailsVO) grid.getData(); + EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData(); eventInfo.setGridName(gridData.getGridName()); eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType())); String caseTypeName = LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType()); @@ -200,7 +244,7 @@ eventInfo.setHandleType("REPORT"); eventInfo.setHandleDescription(eventInfoVo.getProcessDesc()); eventInfo.setDataId(eventInfoVo.getId().toString()); - //获取系统网格员映射的浪潮网格员对于的用户ID + // 获取系统网格员映射的浪潮网格员对于的用户ID eventInfo.setUserId(lcGridUserId); eventInfo.setHandleTime(DateUtils.getCurrentDateTimeStamp().toString()); eventInfo.setCaseName(gridData.getGridName().concat(caseTypeName)); @@ -225,7 +269,7 @@ @Override public String getFlowPersonVisitRecordDetailById(String recordId) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL); request.auth(getAuthToken()); request.form("id", recordId); HttpResponse result = request.execute(); @@ -233,18 +277,21 @@ } @Override - public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) { - HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId"); + public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, + Long loginUserId) { + HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, + host + + LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId"); return result.body(); } @Override public String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL); request.auth(getAuthToken()); ObjectMapper mapper = new ObjectMapper(); try { - //对象转map + // 对象转map Map m = mapper.readValue(mapper.writeValueAsString(lcFlowPersonVisitRecordDTO), Map.class); request.form(m); } catch (JsonProcessingException e) { @@ -257,11 +304,11 @@ @Override public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL); request.auth(getAuthToken()); ObjectMapper mapper = new ObjectMapper(); try { - //对象转map + // 对象转map Map m = mapper.readValue(mapper.writeValueAsString(lcKeyPersonVisitRecordDTO), Map.class); request.form(m); } catch (JsonProcessingException e) { @@ -274,7 +321,7 @@ @Override public String getKeyPersonVisitRecordDetailById(String recordId) { - HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL); + HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL); request.auth(getAuthToken()); request.form("id", recordId); HttpResponse result = request.execute(); @@ -282,8 +329,11 @@ } @Override - public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) { - HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId"); + public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, + Long loginUserId) { + HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, + host + + LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId"); return result.body(); } @@ -292,27 +342,32 @@ List<LcEventVisitingTasksListDTO> unUploadTaskList = gridService.getUnUploadVisitingTask(); unUploadTaskList.forEach(lcEventVisitingTasksListDTO -> { String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId()); - String lcGridUserId = gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString()); - R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId()); - ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO) populationDetail.getData(); - BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL, comMngPopulationVO.getCultureLevel().toString()); - ComMngPopulationDTO comMngPopulationDTO = CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class); + String lcGridUserId = + gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString()); + R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId(), null); + ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO)populationDetail.getData(); + BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL, + comMngPopulationVO.getCultureLevel().toString()); + ComMngPopulationDTO comMngPopulationDTO = + CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class); if (diction != null) { comMngPopulationDTO.setCultureLevel(diction.getDictItemName()); } R grid = gridService.eventGridDataDetails(lcEventVisitingTasksListDTO.getGridId()); - EventGridDataDetailsVO gridData = (EventGridDataDetailsVO) grid.getData(); + EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData(); String[] data = lcEventVisitingTasksListDTO.getHappentLatLng().split(","); if (lcEventVisitingTasksListDTO.getVisiterType() != null) { log.info("上传数据导重点人口走访记录表"); - LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); + LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, + lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) { uploadVisitRecord(lcEventVisitingTasksListDTO); gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId()); } } else { log.info("上传数据导流动人口走访记录表"); - LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); + LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, + lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) { uploadVisitRecord(lcEventVisitingTasksListDTO); gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId()); @@ -332,7 +387,8 @@ log.info("结束上传走访任务附件文件"); } - private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, List<EventResourceVO> picsList, String type) { + private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, + List<EventResourceVO> picsList, String type) { picsList.forEach(eventResourceVO -> { EventFile eventFile = new EventFile(); eventFile.setDataId(lcEventVisitingTasksListDTO.getId().toString()); @@ -344,16 +400,16 @@ }); } - @Override - public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { - //如果是流动人口走访 + public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, + String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { + // 如果是流动人口走访 LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO = new LcFlowPersonVisitRecordDTO(); lcFlowPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString()); lcFlowPersonVisitRecordDTO.setUserId(lcGridUserId); lcFlowPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName()); lcFlowPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele()); - JSONObject population = (JSONObject) JSONObject.toJSON(populationDetail); + JSONObject population = (JSONObject)JSONObject.toJSON(populationDetail); lcFlowPersonVisitRecordDTO.setComMngPopulation(population.toJSONString()); lcFlowPersonVisitRecordDTO.setGridId(lcGrid); lcFlowPersonVisitRecordDTO.setGridName(gridName); @@ -385,7 +441,8 @@ } @Override - public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { + public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, + String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { LcKeyPersonVisitRecordDTO keyPersonVisitRecordDTO = new LcKeyPersonVisitRecordDTO(); keyPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString()); keyPersonVisitRecordDTO.setUserId(lcGridUserId); @@ -404,7 +461,8 @@ keyPersonVisitRecordDTO.setAbnormalSituation(null); keyPersonVisitRecordDTO.setAbnormalDes(lcEventVisitingTasksListDTO.getTableContentJson()); keyPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes()); - keyPersonVisitRecordDTO.setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType())); + keyPersonVisitRecordDTO + .setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType())); log.info("requestLcKeyPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO)); String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO); LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class); @@ -412,8 +470,8 @@ return lcReturnObject; } - - private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId, String requestUrl, String flowPeopleId) { + private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId, + String requestUrl, String flowPeopleId) { HttpRequest request = HttpUtil.createPost(requestUrl); request.auth(getAuthToken()); request.form("userId", loginUserId); @@ -434,27 +492,5 @@ eventFile.setFileName(eventResourceVO.getResourceName()); submitEventOrVisitRecordRelationFile(eventFile); }); - } - - /** - * 工具方法 - * inputStream 转 File - */ - private static File inputStreamToFile(InputStream ins, String name) throws Exception { - File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name); - log.info(System.getProperty("java.io.tmpdir") + File.separator + name); - if (file.exists()) { - return file; - } - OutputStream os = new FileOutputStream(file); - int bytesRead; - int len = 8192; - byte[] buffer = new byte[len]; - while ((bytesRead = ins.read(buffer, 0, len)) != -1) { - os.write(buffer, 0, bytesRead); - } - os.close(); - ins.close(); - return file; } } -- Gitblit v1.7.1