From 5c591b50928433fcffcd0f3c10cb52ddb91bc190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 16 Aug 2024 11:57:39 +0800 Subject: [PATCH] 'commit' --- .../target/classes/bootstrap-dev.yml | 6 +- .../java/com/charge/task/TaskApplication.java | 2 - .../charge/task/client/FinanceServiceApi.java | 2 - .../com/charge/task/config/FeignConfig.java | 59 +++++++++++++++++++ .../task/controller/YltControllerForWx.java | 24 ++++++-- .../com/charge/task/controller/YltModel.java | 2 + .../task/service/FinanceServiceApi.java | 19 ++++++ 7 files changed, 103 insertions(+), 11 deletions(-) create mode 100644 Ylt/ms-task/src/main/java/com/charge/task/config/FeignConfig.java create mode 100644 Ylt/ms-task/src/main/java/com/charge/task/service/FinanceServiceApi.java diff --git a/Ylt/gw-charge/target/classes/bootstrap-dev.yml b/Ylt/gw-charge/target/classes/bootstrap-dev.yml index a76e49a..715a42f 100644 --- a/Ylt/gw-charge/target/classes/bootstrap-dev.yml +++ b/Ylt/gw-charge/target/classes/bootstrap-dev.yml @@ -110,9 +110,9 @@ zuul: # 基于配置的服务器列表:需要在项目配置文件中通过<服务名称>.ribbon.listOfServers进行设置。 # 如user-service.ribbon.listOfServers=http://127.0.0.1:8082,http://127.0.0.1:8083 -#ZhuQue: -# ribbon: -# listOfServers: http://10.10.21.20:8888 +ZhuQue: + ribbon: + listOfServers: http://ms-task:7021 # 用户模块 # D:\dsWork\YltProject\Ylt\ms-user\src\main\java\com\charge\rpc\web\UserRpcApiController.java diff --git a/Ylt/ms-task/src/main/java/com/charge/task/TaskApplication.java b/Ylt/ms-task/src/main/java/com/charge/task/TaskApplication.java index b0634d9..7406c60 100644 --- a/Ylt/ms-task/src/main/java/com/charge/task/TaskApplication.java +++ b/Ylt/ms-task/src/main/java/com/charge/task/TaskApplication.java @@ -18,8 +18,6 @@ public class TaskApplication { public static void main(String[] args) { SpringApplication.run(TaskApplication.class, args); } - - @RequestMapping("/") public String index() { return "Hello,task micro service!!!"; diff --git a/Ylt/ms-task/src/main/java/com/charge/task/client/FinanceServiceApi.java b/Ylt/ms-task/src/main/java/com/charge/task/client/FinanceServiceApi.java index af9c289..872dcc5 100644 --- a/Ylt/ms-task/src/main/java/com/charge/task/client/FinanceServiceApi.java +++ b/Ylt/ms-task/src/main/java/com/charge/task/client/FinanceServiceApi.java @@ -14,8 +14,6 @@ import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name="financeapi" ,url="${financeapi.ribbon.listOfServers}",fallback = FinanceServiceApiFallBack.class) public interface FinanceServiceApi { - - /**计费*/ @RequestMapping(value = "/finance/settleSecond") JSONObject chargeOrderSettle(@RequestParam(value = "totalDegree") String totalDegree, diff --git a/Ylt/ms-task/src/main/java/com/charge/task/config/FeignConfig.java b/Ylt/ms-task/src/main/java/com/charge/task/config/FeignConfig.java new file mode 100644 index 0000000..6ee2494 --- /dev/null +++ b/Ylt/ms-task/src/main/java/com/charge/task/config/FeignConfig.java @@ -0,0 +1,59 @@ +package com.charge.task.config; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; + +/** + * 【黄海增加于2024-08-16】 + * openfeign调用 HttpServletRequest作为参数 报错.. + * 方法:使用feign的拦截器,将请求拦截下 + * https://blog.csdn.net/qq_44783283/article/details/113530910 + * 这样feign接口中,就不用写HttpServletRequest 请求了,请求会通过feign发送到提供者。 + */ +@Configuration +public class FeignConfig implements RequestInterceptor { + /** + * 复写feign请求对象 + * + * @param requestTemplate hhh + */ + @Override + public void apply(RequestTemplate requestTemplate) { + //获取请求头 + Map headers = getHeaders(Objects.requireNonNull(getHttpServletRequest())); + for (String headerName : headers.keySet()) { + requestTemplate.header(headerName, getHeaders(getHttpServletRequest()).get(headerName)); + } + } + + //获取请求对象 + private HttpServletRequest getHttpServletRequest() { + try { + return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + //拿到请求头信息 + private Map getHeaders(HttpServletRequest request) { + Map map = new LinkedHashMap<>(); + Enumeration enumeration = request.getHeaderNames(); + while (enumeration.hasMoreElements()) { + String key = enumeration.nextElement(); + String value = request.getHeader(key); + map.put(key, value); + } + return map; + } +} diff --git a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java index 46f751b..8583007 100644 --- a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java +++ b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.charge.task.dao.EquipmentChargeOrderDOMapper; import com.charge.task.model.EquipmentChargeOrderDO; import com.charge.task.service.AsyncTaskService; +import com.charge.task.service.FinanceServiceApi; import com.charge.task.service.HandleOrderTarckService; import com.charge.util.CommonUtil; import com.charge.util.ResultVO; @@ -19,8 +20,14 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; +import javax.xml.soap.MimeHeaders; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.List; +import java.util.Map; import java.util.UUID; @RestController @@ -35,6 +42,10 @@ public class YltControllerForWx { @Autowired HandleOrderTarckService handleOrderTarckService; + //注入财务服务【其它模块】 + @Autowired + FinanceServiceApi financeServiceApi; + YltModel ym = new YltModel(); /** @@ -186,19 +197,24 @@ public class YltControllerForWx { * 功能:找出所有符合条件的退款单号列表 * 1、没有参加充值活动 * 2、用户余额小于50元(后台可以设置) + * http://10.10.21.20:7021/ZhuQue/UserRefund/getRefundIds * * @return */ @PostMapping("/UserRefund/getRefundIds") - public ResultVO getRefundIds(HttpServletRequest request) { + public ResultVO getRefundIds(HttpServletRequest request) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException { //获取当前登录人员信息 String userId = request.getHeader("userId"); if (StringUtils.isBlank(userId)) { - return ResultVO.custom("用户信息为空,获取可退款订单失败",-1); + return ResultVO.custom("用户信息为空,获取可退款订单失败", -1); } + System.out.println(userId); + ResultVO res = financeServiceApi.recDataListNew(); + //有哪些可以退款的订单 - List list = ym.getRefundIds(userId); - return ResultVO.success(list); + //List list = ym.getRefundIds(userId); + //return ResultVO.success(list); + return res; } } diff --git a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltModel.java b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltModel.java index 10c6441..c93971c 100644 --- a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltModel.java +++ b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltModel.java @@ -121,4 +121,6 @@ public class YltModel { String sql = "select * from t_account_recharge where user_id=? and refund_state=0 order by id desc"; return Db.find(sql, userId); } + + } diff --git a/Ylt/ms-task/src/main/java/com/charge/task/service/FinanceServiceApi.java b/Ylt/ms-task/src/main/java/com/charge/task/service/FinanceServiceApi.java new file mode 100644 index 0000000..368a336 --- /dev/null +++ b/Ylt/ms-task/src/main/java/com/charge/task/service/FinanceServiceApi.java @@ -0,0 +1,19 @@ +package com.charge.task.service; + + +import com.charge.util.ResultVO; +import org.springframework.cloud.netflix.feign.FeignClient; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.Map; + +@FeignClient(name = "financeapi", url = "${financeapi.ribbon.listOfServers}") +public interface FinanceServiceApi { + + @RequestMapping(value = "/userRefund/recDataListNew") + ResultVO recDataListNew(); + + @RequestMapping(value = "/userRefund/apply") + Map apply(@RequestBody net.sf.json.JSONObject param); +}