huanglizhi 11 月之前
父节点
当前提交
99b4925a2d

+ 77 - 73
module-erp/src/main/java/com/hys/app/controller/erp/use/PayController.java

@@ -113,68 +113,68 @@ public class PayController extends HttpServlet {
     @PostMapping("/aliReturnCall")
     @Transactional(rollbackFor = Exception.class)
     public String aliReturnCall(HttpServletRequest request) throws Exception {
-//        Map<String, String> params = new HashMap<>();
-//        Map<String, String[]> requestParams = request.getParameterMap();
-//        for (String name : requestParams.keySet()) {
-//            String[] values = requestParams.get(name);
-//            String valueStr = String.join(",", values);
-//            params.put(name, valueStr);
-//        }
-//        if (aliPayService.checkReturnParam(params)) {
-//            String passbackParams = URLDecoder.decode(params.get("passback_params"), "UTF-8");
-//            if ("company".equals(passbackParams)) {
-//                CompanyErp company = companyManager.getById(params.get("out_trade_no"));
-//                //如果结束时间大于当前时间,那么就从现在加起
-//                Date currentDate = company.getEndUseTime();
-//                if (new Date().compareTo(company.getEndUseTime()) > 0) {
-//                    currentDate = new Date();
-//
-//                }
-//                // 使用 加上套餐包的天数
-//                Calendar calendar = Calendar.getInstance();
-//                calendar.setTime(currentDate);
-//                calendar.add(Calendar.DAY_OF_MONTH, company.getThisDay());
-//
-//                company.setEndUseTime(calendar.getTime());
-//                company.setMoney(company.getMoney().add(company.getThisMoney()));
-//                company.setRoleId(company.getThisRoleId());
-//                company.setUserNum(company.getThisUserNum());
-//                company.setCompanyPackageId(company.getThisCompanyPackageId());
-//
-//                company.setThisDay(0);
-//                company.setThisCompanyPackageId(0L);
-//                company.setThisMoney(new BigDecimal(0));
-//                company.setThisRoleId(0L);
-//                company.setThisUserNum(0);
-//
-//                companyManager.updateById(company);
-////                //  不管换没换套餐  把新的套餐权限赋值到公司的admin账号上
-//                AdminUser user = adminUserMapper.selectOne(new LambdaQueryWrapper<AdminUser>()
-//                        .eq(AdminUser::getCompanyId, company.getId())
-//                        .eq(AdminUser::getUsername, "admin").last("limit 1"));
-//                //把这个管理员能看到的所有页面保存起来
-//                RoleDO roleDO = roleMapper.selectById(company.getThisRoleId());
-//                List<Menus> menusList = JsonUtil.jsonToList(roleDO.getAuthIds(), Menus.class);
-//                List<Menus> list = new ArrayList<>();
-//                assert menusList != null;
-//                for (Menus menu : menusList) {
-//                    if (CollUtil.isNotEmpty(menu.getChildren())) {
-//                        list.add(menu);
-//                        getMenus(list, menu);
-//                    } else {
-//                        list.add(menu);
-//                    }
-//                }
-//                //这个角色所有已勾选的菜单
-//                Set<Menus> collect = list.stream().filter(Menus::isChecked).collect(Collectors.toSet());
-//                for (Menus menus1 : collect) {
-//                    menus1.setChildren(collect.stream().filter(item -> item.getParentId().equals(menus1.getId())).collect(Collectors.toList()));
-//                }
-//                List<Menus> collect2 = collect.stream().filter(item -> item.getParentId() == 0).collect(Collectors.toList());
-//                user.setAuthIds(JSON.toJSONString(collect2));
-//                adminUserMapper.updateById(user);
-//            }
-//        }
+        Map<String, String> params = new HashMap<>();
+        Map<String, String[]> requestParams = request.getParameterMap();
+        for (String name : requestParams.keySet()) {
+            String[] values = requestParams.get(name);
+            String valueStr = String.join(",", values);
+            params.put(name, valueStr);
+        }
+        if (aliPayService.checkReturnParam(params)) {
+            String passbackParams = URLDecoder.decode(params.get("passback_params"), "UTF-8");
+            if ("company".equals(passbackParams)) {
+                CompanyErp company = companyManager.getById(params.get("out_trade_no"));
+                //如果结束时间大于当前时间,那么就从现在加起
+                Date currentDate = company.getEndUseTime();
+                if (new Date().compareTo(company.getEndUseTime()) > 0) {
+                    currentDate = new Date();
+
+                }
+                // 使用 加上套餐包的天数
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(currentDate);
+                calendar.add(Calendar.DAY_OF_MONTH, company.getThisDay());
+
+                company.setEndUseTime(calendar.getTime());
+                company.setMoney(company.getMoney().add(company.getThisMoney()));
+                company.setRoleId(company.getThisRoleId());
+                company.setUserNum(company.getThisUserNum());
+                company.setCompanyPackageId(company.getThisCompanyPackageId());
+
+                company.setThisDay(0);
+                company.setThisCompanyPackageId(0L);
+                company.setThisMoney(new BigDecimal(0));
+                company.setThisRoleId(0L);
+                company.setThisUserNum(0);
+
+                companyManager.updateById(company);
+//                //  不管换没换套餐  把新的套餐权限赋值到公司的admin账号上
+                AdminUser user = adminUserMapper.selectOne(new LambdaQueryWrapper<AdminUser>()
+                        .eq(AdminUser::getCompanyId, company.getId())
+                        .eq(AdminUser::getUsername, "admin").last("limit 1"));
+                //把这个管理员能看到的所有页面保存起来
+                RoleDO roleDO = roleMapper.selectById(company.getThisRoleId());
+                List<Menus> menusList = JsonUtil.jsonToList(roleDO.getAuthIds(), Menus.class);
+                List<Menus> list = new ArrayList<>();
+                assert menusList != null;
+                for (Menus menu : menusList) {
+                    if (CollUtil.isNotEmpty(menu.getChildren())) {
+                        list.add(menu);
+                        getMenus(list, menu);
+                    } else {
+                        list.add(menu);
+                    }
+                }
+                //这个角色所有已勾选的菜单
+                Set<Menus> collect = list.stream().filter(Menus::isChecked).collect(Collectors.toSet());
+                for (Menus menus1 : collect) {
+                    menus1.setChildren(collect.stream().filter(item -> item.getParentId().equals(menus1.getId())).collect(Collectors.toList()));
+                }
+                List<Menus> collect2 = collect.stream().filter(item -> item.getParentId() == 0).collect(Collectors.toList());
+                user.setAuthIds(JSON.toJSONString(collect2));
+                adminUserMapper.updateById(user);
+            }
+        }
         return "success";
     }
 
@@ -188,17 +188,21 @@ public class PayController extends HttpServlet {
 
     @PostMapping("/wxpay/notify")
     public String parseOrderNotify(@RequestBody String xmlData) {
-        try {
-            System.out.println("微信支付回调来了啊+11111111111111111111111111111111111111111111111111111111111");
-            WxPayServiceImpl wxPayService = new WxPayServiceImpl();
-            // 解析支付通知结果
-            WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
-            // 处理订单逻辑
-        } catch (WxPayException e) {
-            // 处理解析异常,记录日志
-            e.printStackTrace();
-        }
-        return "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[解析失败]]></return_msg></xml>";
+//        try {
+//            System.out.println("微信支付回调来了啊+11111111111111111111111111111111111111111111111111111111111");
+//            WxPayServiceImpl wxPayService = new WxPayServiceImpl();
+//            // 解析支付通知结果
+//            WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
+//            // 处理订单逻辑
+//        } catch (WxPayException e) {
+//            // 处理解析异常,记录日志
+//            e.printStackTrace();
+//        }
+//        return "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[解析失败]]></return_msg></xml>";
+        return "<xml>" +
+                "<return_code><![CDATA[" + "SUCCESS" + "]]></return_code>" +
+                "<return_msg><![CDATA[" + "OK" + "]]></return_msg>" +
+                "</xml>";
     }
 
     @PostMapping("getOpenIdCode/{userId}")

+ 0 - 57
module-erp/src/main/java/com/hys/app/pay/wx/WxPayServiceMy.java

@@ -55,45 +55,7 @@ public class WxPayServiceMy {
 
 
     public Object pay(PayOrder payOrder) throws UnknownHostException, WxPayException {
-//        WxPayService wxPayService = getPayService();
-//        //H5
-//        WxPayUnifiedOrderRequest build = WxPayUnifiedOrderRequest.newBuilder()
-//                .body(payOrder.getSubject())
-//                .outTradeNo(payOrder.getTraceNo())
-//                .feeType("CNY")
-//                .totalFee((int) Math.round(payOrder.getTotalAmount() * 100))
-//                .spbillCreateIp(InetAddress.getLocalHost().getHostAddress())
-//                .notifyUrl(wxConfig.getNotifyUrl())
-//                .tradeType("MWEB")
-//                .build();
-//        //        // 设置商户子账户id
-//        build.setSubMchId(wxConfig.getSubMchId());
-//        WxPayUnifiedOrderResult wxPayUnifiedOrderResult = wxPayService.unifiedOrder(build);
-//        return wxPayUnifiedOrderResult.getMwebUrl(); // 包含 mweb_url
-
-
-//        WxPayUnifiedOrderRequest orderRequest = WxPayUnifiedOrderRequest.newBuilder()
-//                .body(payOrder.getSubject())
-//                .outTradeNo(payOrder.getTraceNo())
-//                .totalFee((int) Math.round (payOrder.getTotalAmount()*100)) // 单位是分
-//                .spbillCreateIp(InetAddress.getLocalHost().getHostAddress())
-//                .notifyUrl(wxConfig.getNotifyUrl())
-//                .tradeType("NATIVE")
-//                .productId(IdUtil.fastUUID())
-//                .build();
-//        // 设置商户子账户id
-//        orderRequest.setSubMchId(wxConfig.getSubMchId()); //
-//        try {
-//            WxPayUnifiedOrderResult result = wxPayService.unifiedOrder(orderRequest);
-//            return result.getCodeURL(); // 获取生成的二维码URL
-//        } catch (WxPayException e) {
-//            e.printStackTrace();
-//            return null;
-//        }
-
-
         WxPayService wxPayService = getPayService();
-
         WxPayUnifiedOrderRequest orderRequest = WxPayUnifiedOrderRequest.newBuilder()
                 .body(payOrder.getSubject())
                 .openid(payOrder.getOpenId())
@@ -109,25 +71,6 @@ public class WxPayServiceMy {
         orderRequest.setSubMchId(wxConfig.getSubMchId());
         try {
             WxPayUnifiedOrderResult result = wxPayService.unifiedOrder(orderRequest);
-//            Map<String, String> params = new HashMap<>();
-//            params.put("appId", wxConfig.getAppId());
-//            params.put("mchId", wxConfig.getMchId());
-//            params.put("nonceStr", result.getNonceStr());
-//            params.put("body", payOrder.getSubject());
-//            params.put("outTradeNo", payOrder.getTraceNo());
-//            params.put("totalFee", String.valueOf(payOrder.getTotalAmount()));
-//            params.put("spbillCreateIp", payOrder.getIp());
-//            params.put("notifyUrl", wxConfig.getNotifyUrl());
-//            params.put("tradeType", "JSAPI"); // 或 "NATIVE", "APP" 等
-//            params.put("package", "prepay_id=" + result.getPrepayId());
-//            params.put("timeStamp", String.valueOf(System.currentTimeMillis() / 1000));
-//            params.put("signtype", "MD5");
-//            String sign = SignUtils.createSign(params, wxConfig.getMchKey(), null, null);
-//            params.put("paySign", sign);
-//            params.put("appId", wxConfig.getAppId());
-//            params.put("key", wxConfig.getMchKey());
-//            return params;
-
             Map<String, String> payData = new HashMap<>();
             payData.put("appId", wxConfig.getAppId());
             payData.put("timeStamp", String.valueOf(System.currentTimeMillis() / 1000));