From 9c153abaf563ea5590ffcf6e96c5a82c659fc469 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Wed, 20 Aug 2025 17:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A5=E9=A9=BB=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/common/utils/DateTimeUtils.java | 55 ++++++++++---- .../service/impl/LakalaApiServiceImpl.java | 12 +-- .../lakala/service/impl/LklTkServiceImpl.java | 6 +- .../mall/shop/lakala/utils/LakalaUtil.java | 4 +- .../admin/ShopMchEntryAdminController.java | 2 +- .../store/service/ShopMchEntryService.java | 6 +- .../service/impl/ShopMchEntryServiceImpl.java | 73 +++++++++---------- 7 files changed, 90 insertions(+), 68 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java b/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java index 336dcf89..b28e1549 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java +++ b/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java @@ -18,6 +18,29 @@ import java.util.Date; @Slf4j public class DateTimeUtils { + /** + * 获取当前日期字符串,格式为 yyyy-MM-dd + * + * @return 当前日期字符串 + */ + public static String getCurrentDate() { + return LocalDate.now().toString(); + } + + /** + * 根据指定格式格式化 LocalDate 日期 + * + * @param date 日期 + * @param pattern 格式字符串 + * @return 格式化后的日期字符串 + */ + public static String formatLocalDate(LocalDate date, String pattern) { + if (date == null || pattern == null) { + return null; + } + return date.format(DateTimeFormatter.ofPattern(pattern)); + } + public static String formatDateTime(LocalDateTime localDateTime, String pattern) { return localDateTime.format(DateTimeFormatter.ofPattern(pattern)); } @@ -206,19 +229,21 @@ public class DateTimeUtils { public static void main(String[] args) { - System.out.println(convertLklDate("2021-02-19")); // 2025-01-02 - System.out.println(convertLklDate("2021-2-3")); // 2025-01-02 - System.out.println(convertLklDate("2025/1/2")); // 2025-01-02 - System.out.println(convertLklDate("2025/01/02")); // 2025-01-02 - System.out.println(convertLklDate("2025.1.2")); // 2025-01-02 - System.out.println(convertLklDate("2025.01.02")); // 2025-01-02 - System.out.println(convertLklDate("2025年1月2日")); // 2025-01-02 - System.out.println(convertLklDate("2025年01月02日")); // 2025-01-02 - System.out.println(convertLklDate("25.1.2")); // 2025-01-02 - System.out.println(convertLklDate("25.01.02")); // 2025-01-02 - System.out.println(convertLklDate("长期")); // 9999-12-31 - System.out.println(convertLklDate("永久")); // 9999-12-31 - System.out.println(convertLklDate(null)); // 9999-12-31 - System.out.println(convertLklDate("2025.2.30")); // 9999-12-31(无效日期) +// System.out.println(convertLklDate("2021-02-19")); // 2025-01-02 +// System.out.println(convertLklDate("2021-2-3")); // 2025-01-02 +// System.out.println(convertLklDate("2025/1/2")); // 2025-01-02 +// System.out.println(convertLklDate("2025/01/02")); // 2025-01-02 +// System.out.println(convertLklDate("2025.1.2")); // 2025-01-02 +// System.out.println(convertLklDate("2025.01.02")); // 2025-01-02 +// System.out.println(convertLklDate("2025年1月2日")); // 2025-01-02 +// System.out.println(convertLklDate("2025年01月02日")); // 2025-01-02 +// System.out.println(convertLklDate("25.1.2")); // 2025-01-02 +// System.out.println(convertLklDate("25.01.02")); // 2025-01-02 +// System.out.println(convertLklDate("长期")); // 9999-12-31 +// System.out.println(convertLklDate("永久")); // 9999-12-31 +// System.out.println(convertLklDate(null)); // 9999-12-31 +// System.out.println(convertLklDate("2025.2.30")); // 9999-12-31(无效日期) + + System.out.println(formatLocalDate(LocalDate.now(), "yyyy-MM-dd")); } -} +} \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index 81ee7e60..784df72b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -384,8 +384,8 @@ public class LakalaApiServiceImpl implements LakalaApiService { LklLedgerEc lklLedgerEc = lklLedgerEcService.getByMchId(shopMchEntry.getId(), "", CommonConstant.Enable); if (lklLedgerEc != null && "COMPLETED".equals(lklLedgerEc.getEc_status())) { - // TODO 这种情况,需要怎么处理? - // 更新拉卡拉的电子合同信息到商家入驻表中 + // TODO 电子合同已签署完成(但有一些错误的信息),这种情况,需要怎么处理? + // 办法:重新再签署合同,更新拉卡拉的电子合同信息到商家入驻表中 // return Pair.of(true, I18nUtil._("已提交进件申请,请等待机构审核!")); log.info("商户:{} 电子合同已签署过,重新提交将被覆盖!", mchId); @@ -427,9 +427,10 @@ public class LakalaApiServiceImpl implements LakalaApiService { String retUrl = domain + "/mobile/shop/lakala/ec/applyNotify"; reqData.put("ret_url", retUrl); - LocalDate today = LocalDate.now(); // 获取当前日期 - String signDate = today.getYear() + "-" + today.getMonthValue() + "-" + today.getDayOfMonth(); + LocalDate today = LocalDate.now(); + String signDate = DateTimeUtils.formatLocalDate(today, "yyyy-MM-dd"); + String platformName = "桂平发发网络有限公司"; JSONObject ecParams = new JSONObject(); ecParams.put("A1", isQy ? shopMchEntry.getBiz_license_company() : shopMchEntry.getAccount_holder_name()); @@ -684,11 +685,10 @@ public class LakalaApiServiceImpl implements LakalaApiService { * @param request * @return */ - @Transactional +// @Transactional @Override public JSONObject applyLedgerMerEcNotify(HttpServletRequest request) { log.debug("商户入网电子合同申请回调通知开始"); - // 验签 Pair checkResult = LakalaUtil.chkLklApiNotifySign(request, lklNotifyCerPath, false); if (!checkResult.getFirst()) { diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java index 4b08c280..14439ad7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklTkServiceImpl.java @@ -399,7 +399,7 @@ public class LklTkServiceImpl { reqJsonBody.put("accountType", isQy ? "57" : "58"); //结算账户类型: 57 对公 58 对私 reqJsonBody.put("accountNo", shopMchEntry.getAccount_number()); //结算人银行卡号 reqJsonBody.put("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称 - reqJsonBody.put("accountIdCard", shopMchEntry.getLegal_person_id_number());//结算⼈证件号码(身份证) + reqJsonBody.put("accountIdCard", larIdCard);//结算⼈(法人或小微个人)证件号码(身份证) Integer SettlementMethod = shopMchEntry.getSettlement_method(); if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) { @@ -527,11 +527,11 @@ public class LklTkServiceImpl { if (ObjectUtil.isEmpty(response) || response.get("retCode") == null || !"000000".equals(response.getStr("retCode"))) { + String errMsg = response.getStr("retMsg") == null ? "拉卡拉发生未知错误" : response.getStr("retMsg"); - shopMchEntryService.updateMerchEntryApprovalByMchId(shopMchEntry.getId(), CommonConstant.MCH_APPR_STA_LKL_NOPASS, "进件失败:" + errMsg); - return Pair.of(false, "提交进件失败:" + errMsg); + } // {"merchantNo": "100132349","status": "WAIT_AUDI","state": "1"} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/utils/LakalaUtil.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/utils/LakalaUtil.java index 72adda7f..439ad777 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/utils/LakalaUtil.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/utils/LakalaUtil.java @@ -417,14 +417,14 @@ public class LakalaUtil { if (passVerifySign) { // 如果不需要验签,直接返回请求体内容 String requestBody = getBody(request); - log.debug("{} 回调通知 requestbody 参数:{}", request.getRequestURL(), requestBody); + log.debug("###{} 异步回调通知请求过来的参数:{}###", request.getRequestURL(), requestBody); return Pair.of(true, requestBody); } // 验签 String authorization = request.getHeader("Authorization"); String requestBody = getBody(request); - log.debug("{} 回调通知 requestbody 参数:{}\n authorization参数:{}\n", request.getRequestURL(), requestBody, authorization); + log.info("###{} 异步回调通知请求过来的参数:{}\n authorization参数:{}###", request.getRequestURL(), requestBody, authorization); boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath); if (!checkSuccess) { diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopMchEntryAdminController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopMchEntryAdminController.java index 10980d7e..36839cac 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopMchEntryAdminController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopMchEntryAdminController.java @@ -50,7 +50,7 @@ public class ShopMchEntryAdminController extends BaseControllerImpl { @ApiOperation(value = "商家入驻审批", notes = "商家入驻审批") @RequestMapping(value = "/approval", method = RequestMethod.POST) public CommonResult shopMerchEntryApproval(@RequestBody JSONObject jsonParam) { - // approvalStatus 入驻商家的审批状态:1-已通过;2-未通过;3-待审核; + // approvalStatus 入驻审批状态:1-已通过;2-未通过;3-待审核;4-未申请过;5-已提交拉卡拉审核;21-拉卡拉审核未通过 return shopMchEntryService.shopMerchEntryApproval(jsonParam.getLong("id"), jsonParam.getInt("approvalStatus"), jsonParam.getStr("approvalRemark"), jsonParam.getStr("approvalInvalidCol")); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java index 89cd8f69..bf428110 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopMchEntryService.java @@ -63,13 +63,13 @@ public interface ShopMchEntryService { /** * 商家入驻审批 * - * @param id - * @param approvalStatus 入驻商家的审批状态:1-已通过;2-未通过;3-待审核;4-未申请; + * @param mchId + * @param approvalStatus 入驻审批状态:1-已通过;2-未通过;3-待审核;4-未申请过;5-已提交拉卡拉审核;21-拉卡拉审核未通过; * @param approvalRemark 审批备注 * @param approvalInvalidCol 审批无效字段 * @return */ - CommonResult shopMerchEntryApproval(Long id, Integer approvalStatus, String approvalRemark, String approvalInvalidCol); + CommonResult shopMerchEntryApproval(Long mchId, Integer approvalStatus, String approvalRemark, String approvalInvalidCol); /** diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index ee33e9eb..0cb6bb35 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -453,6 +453,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("id", mchId); +// ShopMchEntry record = findOne(queryWrapper); + ShopMchEntry record = get(mchId); if (record == null) { return CommonResult.failed("商家入驻记录不存在!"); } - // 初始化更新包装器 - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", id); +// log.debug("###提交拉卡拉前,更新的记录 {}###", JSONUtil.toJsonStr(record)); - // 设置默认审批备注 - if (StrUtil.isBlank(approvalRemark)) { - approvalRemark = "审核未通过,请继续完善入驻资料信息。"; + // 自动计算商家分成比例 + BigDecimal splitRatio = shopBaseStoreCategoryService.getStoreCategoryRatio(record.getBiz_category()); + if (splitRatio == null || splitRatio.compareTo(BigDecimal.ZERO) <= 0) { + splitRatio = new BigDecimal("100"); } - if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_LKL_PADDING)) { + // 如果是驳回状态,直接返回成功消息 + if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_NOPASS)) { + // 2-未通过;驳回或重新申请入驻时,重置入驻申请的合同信息 + record = resetAuditColumns(record); + // 设置默认审批备注 + if (StrUtil.isBlank(approvalRemark)) { + approvalRemark = "审核未通过,请继续完善入驻资料信息。"; + } + } else if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_LKL_PADDING)) { + //5-已提交拉卡拉审核 approvalRemark = "初审通过,等待进一步审核。"; approvalInvalidCol = "[]"; } @@ -719,36 +731,21 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl resultPair = lakalaApiService.applyLedgerMerEc(id); + Pair resultPair = lakalaApiService.applyLedgerMerEc(mchId); if (!resultPair.getFirst()) { log.warn("拉卡拉电子合同签署申请失败: {}", resultPair.getSecond()); return CommonResult.failed(resultPair.getSecond()); } // 执行更新操作 - if (!updateMerchEntryApprovalByMchId(record.getId(), null, "入网申请已成功提交!")) { - log.error("系统处理审批出错,请联系管理员!当前记录ID: {}", id); + if (!updateMerchEntryApprovalByMchId(record.getId(), null, "入网申请已提交!")) { + log.error("系统处理审批出错,请联系管理员!当前记录ID: {}", mchId); return CommonResult.failed("系统处理审批出错,请联系管理员!"); }