From 0ebfa2795d902425d12643a2bfee4d7a0a787a7b Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 15 May 2024 09:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=87=E6=BB=A4=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/auth/LoginFilter.java | 33 ++++---- .../controller/PayController.java | 18 +++-- .../cashierservice/service/PayService.java | 80 ++++++++++--------- src/main/resources/mapper/SysDictMapper.xml | 2 +- 4 files changed, 72 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/auth/LoginFilter.java b/src/main/java/com/chaozhanggui/system/cashierservice/auth/LoginFilter.java index d8d882e..ad3a5e7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/auth/LoginFilter.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/auth/LoginFilter.java @@ -34,21 +34,22 @@ public class LoginFilter implements Filter { */ private static final List NOT_LOGIN_URL = Arrays.asList( // 忽略静态资源 -// "css/**", -// "js/**", -// "cashierService/phoneValidateCode",//验证码 -// "cashierService/tbPlatformDict",//获取菜单 -// "cashierService/location/**",//高德 获取行政区域 -// "cashierService/home/homePageUp",//首页上半 -// "cashierService/home",//首页 -// -// "cashierService/distirict/**",//首页其它接口 -// "cashierService/login/**",//登录部分接口不校验 -// "cashierService/notify/**",//登录部分接口不校验 -// "cashierService/product/queryShopIdByTableCode", -// "cashierService/product/queryProduct", -// "cashierService/product/productInfo", -// "notify/**"//登录部分接口不校验 + "css/**", + "js/**", + "cashierService/websocket/table/**",//websocket + "cashierService/phoneValidateCode",//验证码 + "cashierService/tbPlatformDict",//获取菜单 + "cashierService/location/**",//高德 获取行政区域 + "cashierService/home/homePageUp",//首页上半 + "cashierService/home",//首页 + + "cashierService/distirict/**",//首页其它接口 + "cashierService/login/**",//登录部分接口不校验 + "cashierService/notify/**",//登录部分接口不校验 + "cashierService/product/queryShopIdByTableCode", + "cashierService/product/queryProduct", + "cashierService/product/productInfo", + "notify/**"//登录部分接口不校验 ); @Autowired @@ -72,7 +73,7 @@ public class LoginFilter implements Filter { String url = request.getRequestURI(); // 不需要授权的接口直接访问的地址 - if (!containsUrl(NOT_LOGIN_URL, url)) { + if (containsUrl(NOT_LOGIN_URL, url)) { chain.doFilter(req, resp); return; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index 6305092..f5b80f3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -37,17 +37,25 @@ public class PayController { * @return */ @RequestMapping("orderPay") - public Result pay(HttpServletRequest request, @RequestHeader String token, @RequestBody Map map) { + public Result pay(HttpServletRequest request, @RequestHeader String environment,@RequestHeader String token, @RequestBody Map map) { if (ObjectUtil.isEmpty(map) || map.size() <= 0 || !map.containsKey("orderId") || ObjectUtil.isEmpty(map.get("orderId"))) { return Result.fail("订单号不允许为空"); } String orderId = map.get("orderId").toString(); - String userId = TokenUtil.parseParamFromToken(token).getString("userId"); + String orderType = map.get("orderType").toString(); + String payType = map.get("payType").toString(); + String userId=""; + if(environment.equals("wx")){ + userId = TokenUtil.parseParamFromToken(token).getString("openId"); + }else { + userId = TokenUtil.parseParamFromToken(token).getString("userId"); + } + log.info("订单支付 orderId:{},orderType:{},payType={},userId:{}",orderId,orderType,payType,userId); try { - if(orderId.startsWith("GP")){ - return payService.groupOrderPay(orderId, map.get("payType"), userId, IpUtil.getIpAddr(request)); + if(StringUtils.isNotBlank(orderType) && orderType.equals("group")){ + return payService.groupOrderPay(orderId, payType, userId, IpUtil.getIpAddr(request)); }else { - return payService.payOrder(userId, orderId, map.get("payType"), IpUtil.getIpAddr(request)); + return payService.payOrder(userId, orderId, payType, IpUtil.getIpAddr(request)); } } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 6e503b7..8814ca1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -216,7 +216,7 @@ public class PayService { public Result groupOrderPay(String orderId, String payType, String userId, String ip) { TbGroupOrderInfo orderInfo = tbGroupOrderInfoMapper.queryById(Integer.valueOf(orderId)); - if (!"unpaid".equals(orderInfo.getStatus()) && !"paying".equals(orderInfo.getStatus())) { + if (!"unpaid".equals(orderInfo.getStatus())) { return Result.fail("订单状态异常,不允许支付"); } @@ -292,12 +292,12 @@ public class PayService { ResponseEntity response = restTemplate.postForEntity(url.concat("trans/pay"), req, String.class); if (response.getStatusCodeValue() == 200 && ObjectUtil.isNotEmpty(response.getBody())) { JSONObject object = JSONObject.parseObject(response.getBody()); + log.info("团购卷支付响应:{}",object); if (object.get("code").equals("0")) { payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString()); payment.setUpdatedAt(System.currentTimeMillis()); tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); orderInfo.setPayType(payType); - orderInfo.setStatus("paying"); orderInfo.setPayOrderNo(payment.getTradeNumber()); tbGroupOrderInfoMapper.update(orderInfo); JSONObject jsonObject1 = new JSONObject(); @@ -625,7 +625,7 @@ public class PayService { return "订单信息不存在"; } - if ("paying".equals(orderInfo.getStatus())) { + if ("unpaid".equals(orderInfo.getStatus())) { for (int i = 0; i < orderInfo.getNumber(); i++) { TbGroupOrderCoupon groupOrderCoupon = new TbGroupOrderCoupon(); groupOrderCoupon.setOrderId(orderInfo.getId()); @@ -639,6 +639,8 @@ public class PayService { orderInfo.setPayAmount(orderInfo.getOrderAmount()); tbGroupOrderInfoMapper.update(orderInfo); return "SUCCESS"; + }else { + log.error("支付回调异常,订单状态为{}",orderInfo); } return null; } @@ -752,47 +754,47 @@ public class PayService { } - public static void main(String[] args) { - - RestTemplate restTemplate1 = new RestTemplate(); - JSONObject param = new JSONObject(); - - String priv = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIqNqTqhN8zE7eFZnwKcyBTENce2wdAtl/gaDHNuNVgg33dS27Jx0fKl9QSHXyzyxbAdG8F94niYbRBstrMymFRjuO72jH+rIH62Ym1k7l8JSLVK2dKHXt8lHDaQGUP10q0EEocnDQ9cL93oBNG1ttsV6vOAu1TPvRK9TGihRAe1AgMBAAECgYBmI8KCl0DkcrSOsRvYuC2DqZWf8el1B3eFjeZp3e/zVOCIPYv6Q5ArWg6DVSxjnWEA0KSagqvGjU+xkQMqnXzPcPMhsIS+1wyR/pP+pwiatO2ioHaQpEqHg9eXhxrgA477/xuKVw9zl5GNqaIgd++2NDXnqLh0Y6OR73f0OB5eDQJBAPihEm+UWLOam/Q/k2+k4Lm2dvxJTBur1fslBiJpgMhgcz/PlwRwpL7aPD0AuPv0NqLouuoTiKpq9icnUv12tgsCQQCOqTANw0IErCHUNdinjXewmG3ui1j9XgM41rSn5ZeTrPL4GhZc2zbS/pZT4PBKUL6NLGkfPHmw4rOmNL/Xc5E/AkBqAwQBX5eSvVHSC2mqKPtJNGv3lqlFAzfyJg8/jQzEY5vAkZsq4Xzdg+A7gptdkvvY6rMIK9wSDhl3CGVyfbORAkA1N+g1OiHmnFACWhP4bU25EyPvWQxZeDi7e1zpRTzGWj5JT3IIMb7B9zcdE0yQbI6pG2gbvvOmiOt7lTH7raEBAkBas2gugvR3f0aGqQcqMpyM627pyRppQ2h58/7KBylP3oR2BReqMUcXeiJ8TuBXzbRXpeVQ0DWOva5CWZJmBMdz"; - - PayReq req = new PayReq(); - - req.setAppId("M8002023120892f1e4"); - req.setTimestamp(System.currentTimeMillis()); - req.setIp("127.0.0.1"); - req.setMercOrderNo(System.currentTimeMillis() + ""); - req.setNotifyUrl("https"); - req.setPayAmt("0.01"); - req.setPayType("03"); - req.setPayWay("WXZF"); - req.setSubject("ddd"); - req.setUserId("or1l864NBOoJZhC5x_yeziZ26j6c"); - - Map map = BeanUtil.transBeanMap(req); - - req.setSign(MD5Util.encrypt(map, priv, true)); - - - ResponseEntity response = restTemplate1.postForEntity("https://gatewaytestapi.sxczgkj.cn/gate-service/trans/pay", req, String.class); - - -// TradeQueryReq req=new TradeQueryReq(); -// req.setAppId("M800202305094c170c"); +// public static void main(String[] args) { +// +// RestTemplate restTemplate1 = new RestTemplate(); +// JSONObject param = new JSONObject(); +// +// String priv = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIqNqTqhN8zE7eFZnwKcyBTENce2wdAtl/gaDHNuNVgg33dS27Jx0fKl9QSHXyzyxbAdG8F94niYbRBstrMymFRjuO72jH+rIH62Ym1k7l8JSLVK2dKHXt8lHDaQGUP10q0EEocnDQ9cL93oBNG1ttsV6vOAu1TPvRK9TGihRAe1AgMBAAECgYBmI8KCl0DkcrSOsRvYuC2DqZWf8el1B3eFjeZp3e/zVOCIPYv6Q5ArWg6DVSxjnWEA0KSagqvGjU+xkQMqnXzPcPMhsIS+1wyR/pP+pwiatO2ioHaQpEqHg9eXhxrgA477/xuKVw9zl5GNqaIgd++2NDXnqLh0Y6OR73f0OB5eDQJBAPihEm+UWLOam/Q/k2+k4Lm2dvxJTBur1fslBiJpgMhgcz/PlwRwpL7aPD0AuPv0NqLouuoTiKpq9icnUv12tgsCQQCOqTANw0IErCHUNdinjXewmG3ui1j9XgM41rSn5ZeTrPL4GhZc2zbS/pZT4PBKUL6NLGkfPHmw4rOmNL/Xc5E/AkBqAwQBX5eSvVHSC2mqKPtJNGv3lqlFAzfyJg8/jQzEY5vAkZsq4Xzdg+A7gptdkvvY6rMIK9wSDhl3CGVyfbORAkA1N+g1OiHmnFACWhP4bU25EyPvWQxZeDi7e1zpRTzGWj5JT3IIMb7B9zcdE0yQbI6pG2gbvvOmiOt7lTH7raEBAkBas2gugvR3f0aGqQcqMpyM627pyRppQ2h58/7KBylP3oR2BReqMUcXeiJ8TuBXzbRXpeVQ0DWOva5CWZJmBMdz"; +// +// PayReq req = new PayReq(); +// +// req.setAppId("M8002023120892f1e4"); // req.setTimestamp(System.currentTimeMillis()); -// req.setOrderNumber("SXF_W_MERC_20240205182102491"); -// Map map= BeanUtil.transBeanMap(req); +// req.setIp("127.0.0.1"); +// req.setMercOrderNo(System.currentTimeMillis() + ""); +// req.setNotifyUrl("https"); +// req.setPayAmt("0.01"); +// req.setPayType("03"); +// req.setPayWay("WXZF"); +// req.setSubject("ddd"); +// req.setUserId("or1l864NBOoJZhC5x_yeziZ26j6c"); // -// req.setSign(MD5Util.encrypt(map,priv,true)); +// Map map = BeanUtil.transBeanMap(req); // -// ResponseEntity response= restTemplate1.postForEntity("https://gateway.api.sxczgkj.cn/gate-service/merchantOrder/tradeQuery",req,String.class); +// req.setSign(MD5Util.encrypt(map, priv, true)); // // - System.out.println(">>>>>>>>>>>>>>>" + response.getBody()); - } +// ResponseEntity response = restTemplate1.postForEntity("https://gatewaytestapi.sxczgkj.cn/gate-service/trans/pay", req, String.class); +// +// +//// TradeQueryReq req=new TradeQueryReq(); +//// req.setAppId("M800202305094c170c"); +//// req.setTimestamp(System.currentTimeMillis()); +//// req.setOrderNumber("SXF_W_MERC_20240205182102491"); +//// Map map= BeanUtil.transBeanMap(req); +//// +//// req.setSign(MD5Util.encrypt(map,priv,true)); +//// +//// ResponseEntity response= restTemplate1.postForEntity("https://gateway.api.sxczgkj.cn/gate-service/merchantOrder/tradeQuery",req,String.class); +//// +//// +// System.out.println(">>>>>>>>>>>>>>>" + response.getBody()); +// } } diff --git a/src/main/resources/mapper/SysDictMapper.xml b/src/main/resources/mapper/SysDictMapper.xml index a83fcee..74d7bd5 100644 --- a/src/main/resources/mapper/SysDictMapper.xml +++ b/src/main/resources/mapper/SysDictMapper.xml @@ -42,7 +42,7 @@ select from sys_dict - where dict_id = #{dictId} and status =1 + where rele_id = #{dictId} and status =1 order by sort \ No newline at end of file