From 9138f3151a4f9c29bb7d04e15fcaccf7848b3c93 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 22 May 2023 17:24:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=96=B0=E5=90=91=E5=85=9A=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E6=B5=8B=E8=AF=95end.=E5=8F=91=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/ApiItemController.java | 30 +++++ .../esua/epdc/feign/ItemFeignClient.java | 18 ++- .../fallback/ItemFeignClientFallback.java | 17 +++ .../elink/esua/epdc/service/ItemService.java | 24 ++++ .../epdc/service/impl/ItemServiceImpl.java | 45 +++++++ .../dto/events/form/XxxdEventFormDTO.java | 101 ++++++++++++++ .../form/XxxdFeedBackQuestionFormDTO.java | 32 +++++ .../events/result/XxxdFeedBackResultDTO.java | 28 ++++ .../controller/XxxdEventController.java | 88 +++++------- .../events/service/XxxdEventService.java | 6 +- .../service/impl/XxxdEventServiceImpl.java | 127 +++++++++++++++++- .../resources/mapper/events/XxxdEventDao.xml | 28 +--- 12 files changed, 454 insertions(+), 90 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdEventFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdFeedBackQuestionFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/XxxdFeedBackResultDTO.java diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiItemController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiItemController.java index 5b77c31ad..bce25d11d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiItemController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiItemController.java @@ -7,6 +7,9 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdEventFormDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO; import com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO; @@ -167,4 +170,31 @@ public class ApiItemController { return itemService.getCompany(formDTO); } + /** + * 新新向党,外部调用,推送随手拍数据 + * + * @param fromDTO + * @return + */ + @PostMapping("/xxxd/question/receive") + public Result saveQuestionReceive(@RequestBody XxxdEventFormDTO fromDTO) { + return itemService.saveQuestionReceive(fromDTO); + } + + /** + * 修改 + * + * @param formDto + * @return + */ + @PostMapping("/xxxd/question/feedBack") + public Result update(@RequestBody XxxdFeedBackQuestionFormDTO formDto) { + return itemService.feedBack(formDto); + } + + @PostMapping(value = "/xxxd/question/detail/{id}") + public Result getXxxDQuestion(@PathVariable("id") String id) { + return itemService.getXxxDQuestion(id); + } + } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ItemFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ItemFeignClient.java index 893145551..72de18d6c 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ItemFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ItemFeignClient.java @@ -3,6 +3,8 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO; import com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO; @@ -12,11 +14,13 @@ import com.elink.esua.epdc.dto.share.ShareEnterpriseDTO; import com.elink.esua.epdc.dto.share.form.ShareEnterpriseFormDTO; import com.elink.esua.epdc.dto.share.result.ShareEnterpriseResultDTO; import com.elink.esua.epdc.feign.fallback.ItemFeignClientFallback; +import oracle.jdbc.proxy.annotation.Post; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -25,7 +29,7 @@ import java.util.List; * @Author LC * @Date 2019/9/9 16:39 */ -@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = ItemFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = ItemFeignClientFallback.class,url = "http://127.0.0.1:9066") public interface ItemFeignClient { /** @@ -150,6 +154,18 @@ public interface ItemFeignClient { @PostMapping(value = "events/item/process/notice", consumes = MediaType.APPLICATION_JSON_VALUE) Result processNotice(AcceptProcessNoticeDTO formDTO); + /** + * 新新向党,外部调用,推送随手拍数据 + * @param formDto + * @return + */ + @PostMapping("events/xxxd/question/receive") + Result questionReceive(@RequestBody XxxdEventDTO formDto); + + @PostMapping("events/xxxd/question/feedBack") + Result feedBack(@RequestBody XxxdFeedBackQuestionFormDTO feedBackQuestionFormDTO); + @PostMapping("events/xxxd/question/detail/{id}") + Result getXxxDQuestion(@PathVariable("id") String id); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ItemFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ItemFeignClientFallback.java index d31d7da2a..d765db9f7 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ItemFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ItemFeignClientFallback.java @@ -4,6 +4,8 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO; import com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO; @@ -89,4 +91,19 @@ public class ItemFeignClientFallback implements ItemFeignClient { public Result processNotice(AcceptProcessNoticeDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "processNotice", formDTO); } + + @Override + public Result questionReceive(XxxdEventDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "save", formDto); + } + + @Override + public Result feedBack(XxxdFeedBackQuestionFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "feedBack", formDTO); + } + + @Override + public Result getXxxDQuestion(String id) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "get", id); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ItemService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ItemService.java index e7ef4851b..941296c5b 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ItemService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ItemService.java @@ -3,6 +3,9 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdEventFormDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO; import com.elink.esua.epdc.dto.item.result.ItemDetailResultDTO; @@ -137,4 +140,25 @@ public interface ItemService { * @date 2022/9/15 16:06 */ Result> getCompany(ShareEnterpriseFormDTO formDTO); + + /** + * 新新向党,外部调用,推送随手拍数据 + * @param fromDTO + * @return + */ + Result saveQuestionReceive(XxxdEventFormDTO fromDTO); + + /** + * 修改新新向党推送过来的数据:xxxd_event + * @param formDto + * @return + */ + Result feedBack(XxxdFeedBackQuestionFormDTO formDto); + + /** + * 查看xxxd_event详情 + * @param id + * @return + */ + Result getXxxDQuestion(String id); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ItemServiceImpl.java index d49140f89..c09835af3 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ItemServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ItemServiceImpl.java @@ -1,14 +1,19 @@ package com.elink.esua.epdc.service.impl; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSON; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.enums.BehaviorEnum; import com.elink.esua.epdc.commons.tools.enums.UserTagEnum; import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdEventFormDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; import com.elink.esua.epdc.dto.form.PointLogFormDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.ItemCategoryStatisticsResultDTO; @@ -25,9 +30,11 @@ import com.elink.esua.epdc.feign.UserFeignClient; import com.elink.esua.epdc.service.ItemService; import com.elink.esua.epdc.user.dto.epdc.form.EpdcUserMatchTagFormDTO; import com.elink.esua.epdc.utils.UserTagUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import springfox.documentation.spring.web.json.Json; import java.util.List; import java.util.Optional; @@ -39,6 +46,7 @@ import java.util.stream.Collectors; * @Author LC * @Date 2019/9/9 16:34 */ +@Slf4j @Service public class ItemServiceImpl implements ItemService { @@ -232,4 +240,41 @@ public class ItemServiceImpl implements ItemService { public Result> getCompany(ShareEnterpriseFormDTO formDTO) { return itemFeignClient.getCompany(formDTO); } + + /** + * 新新向党,外部调用,推送随手拍数据 + * + * @param formDto + * @return + */ + @Override + public Result saveQuestionReceive(XxxdEventFormDTO formDto) { + log.info("新新向党_接收随手拍接口(api/events/item/xxxd/question/receive)入参:"+ JSON.toJSONString(formDto)); + XxxdEventDTO xxxdEventDTO= ConvertUtils.sourceToTarget(formDto,XxxdEventDTO.class); + return itemFeignClient.questionReceive(xxxdEventDTO); + } + + /** + * 修改新新向党推送过来的数据:xxxd_event + * + * @param formDto + * @return + */ + @Override + public Result feedBack(XxxdFeedBackQuestionFormDTO formDto) { + log.info("新新向党_修改随手拍接口(api/events/item/xxxd/question/update)入参:"+ JSON.toJSONString(formDto)); + return itemFeignClient.feedBack(formDto); + } + + /** + * 查看xxxd_event详情 + * + * @param id + * @return + */ + @Override + public Result getXxxDQuestion(String id) { + log.info("新新向党_查看随手拍接口(api/events/item/xxxd/question/detail/{id})入参id:"+id); + return itemFeignClient.getXxxDQuestion(id); + } } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdEventFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdEventFormDTO.java new file mode 100644 index 000000000..a1a5fad0f --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdEventFormDTO.java @@ -0,0 +1,101 @@ +package com.elink.esua.epdc.dto.events.form; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/22 15:28 + */ +@Data +public class XxxdEventFormDTO { + private String id; + + /** + * 问题标识,可唯一识别用户问题的id + */ + private String questionId; + + /** + * 问题描述 + */ + private String description; + + /** + * 上报人姓名 + */ + private String name; + + /** + * 上报人联系方式 + */ + private String contact; + + /** + * 问题类别:1生态环境,2矛盾纠纷,3社会治安,4其他 + */ + private String type; + + /** + * 发生位置 + */ + private String location; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 发布时间:yyyy-MM-dd HH:mm:ss + */ + private String pubTime; + + // /** + // * 问题图片列表 + // */ + // private String pics; + // + // /** + // * 问题语音列表 + // */ + // private String audios; + /** + * 问题图片列表 + */ + private String[] pics; + + /** + * 问题语音列表 + */ + private String[] audios; + + + + + /** + * 处理状态:0-未处理;1-已处理;5-不予处理 + */ + private String status; + + /** + * 处理结果 + */ + private String processResult; + + /** + * 处理时间:yyyy-MM-dd HH:mm:ss + */ + private String processTime; + + /** + * 处理人 + */ + private String processUser; +} + diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdFeedBackQuestionFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdFeedBackQuestionFormDTO.java new file mode 100644 index 000000000..a2669be0f --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/XxxdFeedBackQuestionFormDTO.java @@ -0,0 +1,32 @@ +package com.elink.esua.epdc.dto.events.form; + +import lombok.Data; + +/** + * @Description https://xxxd.dtdjzx.gov.cn/xxxd/api/v1/feedback/[path] + * 随手拍处理反馈 + * 路径:question + * @Author yzm + * @Date 2023/5/22 16:32 + */ +@Data +public class XxxdFeedBackQuestionFormDTO { + /** + * 问题标识:可唯一识别问题信息的标识 + */ + private String questionId; + /** + * 处理状态 0-未处理,1-已处理,5-不予处理 + */ + private String status; + /** + * 处理结果 + */ + private String processResult; + /** + * 处理时间 yyyy-MM-dd HH:mm:ss + */ + private String processTime; + +} + diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/XxxdFeedBackResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/XxxdFeedBackResultDTO.java new file mode 100644 index 000000000..4f8680e02 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/result/XxxdFeedBackResultDTO.java @@ -0,0 +1,28 @@ +package com.elink.esua.epdc.dto.events.result; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/22 16:37 + */ +@Data +public class XxxdFeedBackResultDTO { + // 接口统一返回json数据,具体格式为 + // {“success”:true,”message”:””} + // success--是否成功,成功为true,失败为false + // message--返回提示信息 + + private Boolean success; + private String message; + + + public XxxdFeedBackResultDTO error() { + this.success = false; + this.message = "error"; + return this; + } + +} + diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/XxxdEventController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/XxxdEventController.java index 6326a2457..23031b2b9 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/XxxdEventController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/XxxdEventController.java @@ -3,10 +3,16 @@ package com.elink.esua.epdc.modules.events.controller; import cn.hutool.core.codec.Base64Encoder; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.constant.XxxdConstant; import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; +import com.elink.esua.epdc.dto.events.result.XxxdFeedBackResultDTO; import com.elink.esua.epdc.modules.events.service.XxxdEventService; +import com.fasterxml.jackson.core.JsonParser; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -17,7 +23,9 @@ import org.springframework.web.client.RestTemplate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** @@ -42,25 +50,25 @@ public class XxxdEventController { */ @PostMapping("receive") public Result save(@RequestBody XxxdEventDTO dto) { - xxxdEventService.save(dto); - return new Result(); + String id = xxxdEventService.save(dto); + Map resMap = new HashMap(); + resMap.put("id", id); + return new Result().ok(resMap); } /** * 修改 * - * @param dto + * @param formDTO * @return */ - @PostMapping("update") - public Result update(@RequestBody XxxdEventDTO dto) { - xxxdEventService.update(dto); - // 向新新向党反馈数据结果 - submitFeedback(dto.getQuestionId(), dto.getStatus(), dto.getProcessResult()); - return new Result(); + @PostMapping("feedBack") + public Result feedBack(@RequestBody XxxdFeedBackQuestionFormDTO formDTO) { + XxxdFeedBackResultDTO resultDTO=xxxdEventService.feedBack(formDTO); + return new Result().ok(resultDTO); } - @RequestMapping(value = "{id}", method = {RequestMethod.POST}) + @RequestMapping(value = "detail/{id}", method = {RequestMethod.POST}) public Result get(@PathVariable("id") String id) { XxxdEventDTO data = xxxdEventService.get(id); return new Result().ok(data); @@ -75,53 +83,25 @@ public class XxxdEventController { } - private ResponseEntity submitFeedback(String questionId, String status, String processResult) { - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - headers.set("Authorization", genAuthorization()); - - LocalDateTime currentTime = LocalDateTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - String processTime = currentTime.format(formatter); - // 构建请求体数据,这里以示例数据为准 - String requestBody = "{\"questionId\":\"" + questionId + "\", \"status\":\"" + status + "\", \"processResult\":\"" + processResult + "\", \"processTime\":\"" + processTime + "\"}"; + public static void main(String[] args) { + XxxdEventDTO test=new XxxdEventDTO(); + test.setQuestionId("问题id"); + test.setDescription("问题描述"); + test.setName("上报人姓名"); + test.setContact("上报人联系方式"); + // 问题类别:1生态环境,2矛盾纠纷,3社会治安,4其他 + test.setType("1"); + test.setLocation("temp"); + test.setLongitude("经度"); + test.setLatitude("纬度"); + test.setPubTime("2022-01-01 06:01:01"); + String[] temp = {"a","b"}; + test.setPics(temp); + test.setAudios(temp); + System.out.println(JSON.toJSONString(test)); - HttpEntity entity = new HttpEntity<>(requestBody, headers); - RestTemplate restTemplate = new RestTemplate(); - - try { - ResponseEntity response = restTemplate.exchange(XxxdConstant.XXXD_QUESTION_FEED_BACK_URL, HttpMethod.POST, entity, String.class); - log.warn("新新向党反馈处理结果返参:" + response.getBody()); - return response; - } catch (HttpClientErrorException e) { - // 处理异常情况 - HttpStatus statusCode = e.getStatusCode(); - // 进一步处理异常... - } - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } - /** - * 生成认证信息 - * - * @return - */ - public String genAuthorization() { - String key = XxxdConstant.APP_KEY; - String secret = XxxdConstant.APP_SECRET; - - LocalDateTime currentTime = LocalDateTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - String time = currentTime.format(formatter); - String version = "1.0"; - String beforeSignStr = key + time + version;// 拼接要加密的字符串 - - AES aes = SecureUtil.aes(secret.getBytes()); - String signStr = aes.encryptBase64(beforeSignStr);// 执行aes加密并转base64编码 - String authStr = String.format("{\"ak_key\":\"%s\",\"ak_time\":\"%s\",\"ac_version\":\"%s\",\"ac_signature\":\"%s\"}", key, time, version, signStr);// 组装认证信息 - - return Base64Encoder.encode(authStr);// 认证信息执行base64 - } } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/XxxdEventService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/XxxdEventService.java index ec2e83e0b..fe82d8b87 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/XxxdEventService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/XxxdEventService.java @@ -3,6 +3,8 @@ package com.elink.esua.epdc.modules.events.service; import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; +import com.elink.esua.epdc.dto.events.result.XxxdFeedBackResultDTO; import com.elink.esua.epdc.modules.events.entity.XxxdEventEntity; import java.util.List; @@ -24,13 +26,13 @@ public interface XxxdEventService extends BaseService { * @author generator * @date 2023-05-22 */ - void save(XxxdEventDTO dto); + String save(XxxdEventDTO dto); /** * 更新 * @param dto */ - void update(XxxdEventDTO dto); + XxxdFeedBackResultDTO feedBack(XxxdFeedBackQuestionFormDTO dto); /** * 单条查询 * diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/XxxdEventServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/XxxdEventServiceImpl.java index 77d6889e7..6a4f8ec20 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/XxxdEventServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/XxxdEventServiceImpl.java @@ -1,16 +1,37 @@ package com.elink.esua.epdc.modules.events.service.impl; +import cn.hutool.core.codec.Base64Encoder; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.AES; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.StrConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.constant.XxxdConstant; import com.elink.esua.epdc.dto.events.XxxdEventDTO; +import com.elink.esua.epdc.dto.events.form.XxxdFeedBackQuestionFormDTO; +import com.elink.esua.epdc.dto.events.result.XxxdFeedBackResultDTO; import com.elink.esua.epdc.modules.events.dao.XxxdEventDao; import com.elink.esua.epdc.modules.events.entity.XxxdEventEntity; import com.elink.esua.epdc.modules.events.service.XxxdEventService; +import com.google.zxing.oned.UPCAReader; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; import java.util.List; /** @@ -19,6 +40,7 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2023-05-22 */ +@Slf4j @Service public class XxxdEventServiceImpl extends BaseServiceImpl implements XxxdEventService { @@ -29,7 +51,7 @@ public class XxxdEventServiceImpl extends BaseServiceImpl 0) { entity.setAudios(String.join(StrConstant.SEMICOLON, audios)); } - insert(entity); + + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(XxxdEventEntity::getQuestionId,dto.getQuestionId()) + .eq(XxxdEventEntity::getDelFlag, NumConstant.ZERO_STR); + XxxdEventEntity origin=baseDao.selectOne(queryWrapper); + if (null == origin) { + insert(entity); + } else { + entity.setId(origin.getId()); + updateById(entity); + } + return entity.getId(); } /** * 更新 * - * @param dto + * @param formDTO */ @Transactional(rollbackFor = Exception.class) @Override - public void update(XxxdEventDTO dto) { - + public XxxdFeedBackResultDTO feedBack(XxxdFeedBackQuestionFormDTO formDTO) { + // 向新新向党反馈数据结果 + XxxdFeedBackResultDTO resultDTO=submitFeedback(formDTO.getQuestionId(), formDTO.getStatus(), formDTO.getProcessResult(),formDTO.getProcessTime()); + if(!resultDTO.getSuccess()){ + throw new RenException("调用新新向党随手拍处理反馈接口失败:"+resultDTO.getMessage()); + } + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(XxxdEventEntity::getQuestionId,formDTO.getQuestionId()) + .set(XxxdEventEntity::getStatus,formDTO.getStatus()) + .set(XxxdEventEntity::getProcessResult,formDTO.getProcessResult()) + .set(XxxdEventEntity::getProcessTime,formDTO.getProcessTime()) + .set(XxxdEventEntity::getUpdatedTime,new Date()); + baseDao.update(null,updateWrapper); + return resultDTO; } @Override public XxxdEventDTO get(String id) { XxxdEventEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, XxxdEventDTO.class); + XxxdEventDTO xxxdEventDTO=ConvertUtils.sourceToTarget(entity, XxxdEventDTO.class); + if(StringUtils.isNotBlank(entity.getPics())){ + String[] arr1 = entity.getPics().split(StrConstant.SEMICOLON); + xxxdEventDTO.setPics(arr1); + } + if(StringUtils.isNotBlank(entity.getAudios())){ + String[] arr2 = entity.getAudios().split(StrConstant.SEMICOLON); + xxxdEventDTO.setAudios(arr2); + } + return xxxdEventDTO; } @@ -68,4 +122,65 @@ public class XxxdEventServiceImpl extends BaseServiceImpl requestEntity = new HttpEntity<>(formDTO, headers); + RestTemplate restTemplate = new RestTemplate(); + + try { + ResponseEntity response = restTemplate.exchange(XxxdConstant.XXXD_QUESTION_FEED_BACK_URL, HttpMethod.POST, requestEntity, String.class); + log.warn("新新向党_随手拍处理反馈原始返参:" + JSON.toJSONString(response.getBody())); + + JSONObject shopNameArr = JSONObject.parseObject(response.getBody()); + XxxdFeedBackResultDTO resultDTO = JSON.parseObject(shopNameArr.toJSONString(), XxxdFeedBackResultDTO.class); + log.warn("新新向党_随手拍处理反馈返参XxxdFeedBackResultDTO:" + JSON.toJSONString(resultDTO)); + return resultDTO; + } catch (HttpClientErrorException e) { + // 处理异常情况 + HttpStatus statusCode = e.getStatusCode(); + // 进一步处理异常... + } + return new XxxdFeedBackResultDTO().error(); + } + + /** + * 生成认证信息 + * + * @return + */ + public String genAuthorization() { + String key = XxxdConstant.APP_KEY; + String secret = XxxdConstant.APP_SECRET; + + LocalDateTime currentTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + String time = currentTime.format(formatter); + + String version = "1.0"; + String beforeSignStr = key + time + version;// 拼接要加密的字符串 + + AES aes = SecureUtil.aes(secret.getBytes()); + String signStr = aes.encryptBase64(beforeSignStr);// 执行aes加密并转base64编码 + String authStr = String.format("{\"ak_key\":\"%s\",\"ak_time\":\"%s\",\"ac_version\":\"%s\",\"ac_signature\":\"%s\"}", key, time, version, signStr);// 组装认证信息 + + return Base64Encoder.encode(authStr);// 认证信息执行base64 + } + + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/XxxdEventDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/XxxdEventDao.xml index e9d8725c7..89770bbb2 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/XxxdEventDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/XxxdEventDao.xml @@ -1,34 +1,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file