diff --git a/ShopOrderBaseServiceImpl.java b/ShopOrderBaseServiceImpl.java deleted file mode 100644 index 7de57f26..00000000 --- a/ShopOrderBaseServiceImpl.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * 确认收货处理 - * @param order_ids 订单ID列表 - * @param order_rows 订单数据列表 - * @return 是否处理成功 - */ -public boolean receive(List order_ids, List order_rows) { - // 检测数据是否合法,过滤允许修改的数据 - if (CollUtil.isEmpty(order_ids)) { - throw new ApiException(I18nUtil._("请选择需要确认收货的订单!")); - } - - if (CollUtil.isEmpty(order_rows)) { - order_rows = gets(order_ids); - } - - List receive_id_row = new ArrayList<>(); - - for (ShopOrderBase order_row : order_rows) { - // 判断订单是否可以确认收货 - if (ifReceive(order_row.getOrder_state_id())) { - receive_id_row.add(order_row.getOrder_id()); - - // 增加积分和经验 - // todo 目前付款支付积分,此处为收货后发放 - Integer user_id = order_row.getBuyer_user_id(); - String order_id = order_row.getOrder_id(); - Integer store_id = order_row.getStore_id(); - - ShopOrderData order_data_row = shopOrderDataService.get(order_id); - BigDecimal order_points_add = order_data_row.getOrder_points_add(); - - BigDecimal order_points_add_all = order_points_add.add(order_data_row.getOrder_double_points_add()); - - // 发放购物积分 - if (CheckUtil.isNotEmpty(order_points_add_all)) { - String desc = String.format(I18nUtil._("购物获取积分 %s,订单号 %s"), order_points_add_all, order_id); - if (!payService.points(user_id, order_points_add_all, PointsType.POINTS_TYPE_CONSUME, desc, store_id, null, order_id)) { - throw new ApiException(I18nUtil._("积分操作失败!")); - } - } - - // todo 根据送花郎插件是否开启显示是否需要分钱给不同商户 - /* - boolean hall_enable = accountBaseConfigService.getConfig("hall_enable", false); - if (hall_enable) { - BigDecimal order_commission_fee = order_data_row.getOrder_commission_fee(); - sendMoneyForTransfer(order_row, order_commission_fee); - } - */ - - // 分销功能处理 - String fx_settle_type = accountBaseConfigService.getConfig("fx_settle_type", "receive"); - if (StrUtil.equals(fx_settle_type, "receive")) { - // todo settleDistributionUserOrder - shopDistributionUserOrderService.settleDistributionUserOrder(order_id); - } - - // 重要:拉卡拉给平台和代理商分账 - Pair retOrderSeparateRet = lakalaApiService.innerDoOrderSeparate(order_row.getOrder_id(), Convert.toStr(order_row.getStore_id())); - if (!retOrderSeparateRet.getFirst()) { - throw new ApiException(I18nUtil._("平台或代理商分账失败: " + retOrderSeparateRet.getSecond())); - } - - // 统计总营业额 - ShopStoreAnalytics analytics_row = shopStoreAnalyticsService.get(store_id); - BigDecimal order_payment_amount = order_row.getOrder_payment_amount(); - analytics_row.setStore_trade_amount(NumberUtil.add(analytics_row.getStore_trade_amount(), order_payment_amount)); - if (!shopStoreAnalyticsService.edit(analytics_row)) { - throw new ApiException(ResultCode.FAILED); - } - } - } - - // 检查是否有符合条件的订单 - if (CollUtil.isEmpty(receive_id_row)) { - throw new ApiException(I18nUtil._("无符合确认收货条件的订单!")); - } - - // 修改订单状态, 随机去一个订单获取店铺编号 - ShopOrderBase shopOrderBase = order_rows.get(0); - Integer store_id = shopOrderBase.getStore_id(); - editNextState(receive_id_row, store_id, StateCode.ORDER_STATE_SHIPPED, order_rows, 0); - - // 如果是商家,且启用供应商,则商家看到供应商店铺商品 store_type = 2 - boolean ifSupplierMarket = accountBaseConfigService.ifSupplierMarket(); - UserDto user = getCurrentUser(); - store_id = user != null ? Convert.toInt(user.getStore_id(), 0) : 0; - - // 处理供应商市场的库存增加逻辑 - if (ifSupplierMarket && CheckUtil.isNotEmpty(store_id)) { - // 供应商商品,增加商家库存 - QueryWrapper itemQueryWrapper = new QueryWrapper<>(); - itemQueryWrapper.in("order_id", receive_id_row); - List order_item_rows = shopOrderItemService.find(itemQueryWrapper); - - List item_src_ids = order_item_rows.stream().map(ShopOrderItem::getItem_id).distinct().collect(Collectors.toList()); - if (CollUtil.isNotEmpty(item_src_ids)) { - QueryWrapper productItemQueryWrapper = new QueryWrapper<>(); - productItemQueryWrapper.in("item_src_id", item_src_ids).eq("store_id", store_id); - List product_item_rows = shopProductItemService.find(productItemQueryWrapper); - - // 更新供应商商品库存 - for (ShopProductItem product_item_row : product_item_rows) { - String item_src_id = product_item_row.getItem_src_id(); - Optional orderItemOpl = order_item_rows.stream().filter(s -> ObjectUtil.equal(s.getItem_id(), item_src_id)).findFirst(); - if (orderItemOpl.isPresent()) { - ShopOrderItem shopOrderItem = orderItemOpl.get(); - Integer order_item_quantity = shopOrderItem.getOrder_item_quantity(); - product_item_row.setItem_quantity(product_item_row.getItem_quantity() + order_item_quantity); - if (!shopProductItemService.edit(product_item_row)) { - throw new ApiException(ResultCode.FAILED); - } - } - } - } - } - return true; -} \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseDistrictServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseDistrictServiceImpl.java index 7730dc48..1ace1af5 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseDistrictServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseDistrictServiceImpl.java @@ -352,39 +352,37 @@ public class ShopBaseDistrictServiceImpl extends BaseServiceImpl names = new ArrayList<>(idStrs.length); - List districts = new ArrayList<>(idStrs.length); - // 先获取所有地区对象 + // 先获取所有地区对象的名称 for (String idStr : idStrs) { Integer districtId = Convert.toInt(idStr); if (districtId == null) { log.warn("[地区转换] ID格式不正确: {}", idStr); - return ""; + names.add(""); // 添加空字符串而不是直接返回 + continue; // 继续处理下一个 } ShopBaseDistrict district = get(districtId); if (district == null) { log.warn("[地区转换] 未找到对应地区信息, districtId: {}", districtId); - return ""; + names.add(""); // 添加空字符串而不是直接返回 + continue; // 继续处理下一个 } - districts.add(district); - } - - // 按照层级关系重新排序 - List sortedDistricts = sortDistrictsByHierarchy(districts); - - // 提取名称 - for (ShopBaseDistrict district : sortedDistricts) { names.add(district.getDistrict_name()); } return String.join("/", names); } + /** * 根据省市区名称路径获取对应的ID路径 * 例如:广西壮族自治区/贵港市/桂平市 -> 450000/450800/450881 @@ -447,13 +439,14 @@ public class ShopBaseDistrictServiceImpl extends BaseServiceImpl districts = new ArrayList<>(names.length); + List ids = new ArrayList<>(names.length); - // 先根据名称获取所有地区对象(不考虑顺序) + // 先根据名称获取所有地区对象的ID for (String name : names) { if (StrUtil.isBlank(name)) { log.warn("[地区转换] 名称不能为空"); - return ""; + ids.add(""); // 添加空字符串而不是直接返回 + continue; // 继续处理下一个 } QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -462,82 +455,15 @@ public class ShopBaseDistrictServiceImpl extends BaseServiceImpl sortedDistricts = sortDistrictsByHierarchy(districts); - - // 提取ID - List ids = new ArrayList<>(sortedDistricts.size()); - for (ShopBaseDistrict district : sortedDistricts) { ids.add(district.getDistrict_id().toString()); } return String.join("/", ids); } - /** - * 根据层级关系对地区进行排序 - * - * @param districts 地区列表 - * @return 按层级排序后的地区列表 - */ - private List sortDistrictsByHierarchy(List districts) { - if (districts.size() <= 1) { - return districts; - } - - // 构建ID到地区的映射 - Map districtMap = new HashMap<>(); - for (ShopBaseDistrict district : districts) { - districtMap.put(district.getDistrict_id(), district); - } - - // 构建层级关系 - List result = new ArrayList<>(districts.size()); - Set processedIds = new HashSet<>(); - - // 找到最顶级的地区(parent_id为0或者parent不在列表中的) - for (ShopBaseDistrict district : districts) { - if (district.getDistrict_parent_id() == 0 || !districtMap.containsKey(district.getDistrict_parent_id())) { - result.add(district); - processedIds.add(district.getDistrict_id()); - break; - } - } - - // 逐级查找子地区 - while (result.size() < districts.size()) { - ShopBaseDistrict lastDistrict = result.get(result.size() - 1); - boolean found = false; - - for (ShopBaseDistrict district : districts) { - if (!processedIds.contains(district.getDistrict_id()) && - district.getDistrict_parent_id().equals(lastDistrict.getDistrict_id())) { - result.add(district); - processedIds.add(district.getDistrict_id()); - found = true; - break; - } - } - - // 如果找不到下一级,则添加剩余未处理的地区 - if (!found) { - for (ShopBaseDistrict district : districts) { - if (!processedIds.contains(district.getDistrict_id())) { - result.add(district); - processedIds.add(district.getDistrict_id()); - } - } - break; - } - } - return result; - } - } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/components/quartz/service/impl/QuartzServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/components/quartz/service/impl/QuartzServiceImpl.java index f46dc356..29feab17 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/components/quartz/service/impl/QuartzServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/components/quartz/service/impl/QuartzServiceImpl.java @@ -29,32 +29,31 @@ public class QuartzServiceImpl implements QuartzService { */ @Override public void addJob(String jName, String jGroup, String tName, String tGroup, String cron, String cName) { - logger.info("[Quartz] 开始添加定时任务: 任务名称={}, 任务组={}, 触发器名称={}, 触发器组={}, cron表达式={}, 类名={}", - jName, jGroup, tName, tGroup, cron, cName); + logger.info("[Quartz] 添加定时任务: 任务名称={}, cron表达式={}", jName, cron); // 1. 参数校验 if (jName == null || jName.trim().isEmpty()) { - logger.warn("[Quartz] 任务名称不能为空: {}", jName); + logger.warn("[Quartz] 任务名称不能为空"); throw new ApiException(I18nUtil._("任务名称不能为空!")); } if (jGroup == null || jGroup.trim().isEmpty()) { - logger.warn("[Quartz] 任务组不能为空: {}", jGroup); + logger.warn("[Quartz] 任务组不能为空"); throw new ApiException(I18nUtil._("任务组不能为空!")); } if (tName == null || tName.trim().isEmpty()) { - logger.warn("[Quartz] 触发器名称不能为空: {}", tName); + logger.warn("[Quartz] 触发器名称不能为空"); throw new ApiException(I18nUtil._("触发器名称不能为空!")); } if (tGroup == null || tGroup.trim().isEmpty()) { - logger.warn("[Quartz] 触发器组不能为空: {}", tGroup); + logger.warn("[Quartz] 触发器组不能为空"); throw new ApiException(I18nUtil._("触发器组不能为空!")); } if (cron == null || cron.trim().isEmpty()) { - logger.warn("[Quartz] cron表达式不能为空: {}", cron); + logger.warn("[Quartz] cron表达式不能为空"); throw new ApiException(I18nUtil._("cron表达式不能为空!")); } if (cName == null || cName.trim().isEmpty()) { - logger.warn("[Quartz] 任务实现类名称不能为空: {}", cName); + logger.warn("[Quartz] 任务实现类名称不能为空"); throw new ApiException(I18nUtil._("任务实现类名称不能为空!")); } @@ -63,9 +62,7 @@ public class QuartzServiceImpl implements QuartzService { Class clazz; String fullClassName = PATH_PREFIX + cName; - logger.debug("[Quartz] 尝试加载任务类: {}", fullClassName); clazz = (Class) Class.forName(fullClassName); - logger.debug("[Quartz] 成功加载任务类: {}", fullClassName); // 3. 构建任务详情和触发器 JobKey jobKey = new JobKey(jName, jGroup); @@ -77,52 +74,38 @@ public class QuartzServiceImpl implements QuartzService { CronTrigger trigger = TriggerBuilder.newTrigger() .withIdentity(triggerKey) .startNow() - .withSchedule(CronScheduleBuilder.cronSchedule(cron)) + .withSchedule(CronScheduleBuilder.cronSchedule(cron).withMisfireHandlingInstructionDoNothing()) .build(); - logger.debug("[Quartz] 构建任务详情和触发器完成: jobKey={}, triggerKey={}", jobKey, triggerKey); - - // 打印最终执行的 cron 表达式 - logger.info("[Quartz] 定时任务最终执行表达式: {}", trigger.getCronExpression()); - // 4. 检查任务是否已存在 if (scheduler.checkExists(jobKey)) { - logger.info("[Quartz] 任务已存在,先删除旧任务: jobKey={}", jobKey); + logger.info("[Quartz] 任务已存在,先删除旧任务: {}", jName); scheduler.deleteJob(jobKey); } // 5. 调度任务 - logger.info("[Quartz] 开始调度任务: jobKey={}, triggerKey={}", jobKey, triggerKey); scheduler.scheduleJob(jobDetail, trigger); - logger.info("[Quartz] 任务调度成功: jobKey={}, triggerKey={}", jobKey, triggerKey); + logger.info("[Quartz] 任务调度成功: {}", jName); // 6. 启动调度器(如果尚未启动) if (!scheduler.isStarted()) { - logger.info("[Quartz] 调度器尚未启动,正在启动..."); scheduler.start(); logger.info("[Quartz] 调度器启动成功"); } - + + // 只在异常状态时记录详细信息 if (scheduler.getTriggerState(triggerKey) != Trigger.TriggerState.NORMAL) { - logger.error("Trigger注册异常,当前状态: {}", scheduler.getTriggerState(triggerKey)); + logger.error("[Quartz] Trigger注册异常,当前状态: {}", scheduler.getTriggerState(triggerKey)); } - logger.info("Trigger当前状态: {}", scheduler.getTriggerState(triggerKey)); - - // 在调度器启动检查前添加 - logger.debug("[Quartz] 调度器当前状态 - isStarted: {}, SchedulerName: {}", - scheduler.isStarted(), scheduler.getSchedulerName()); - } catch (SchedulerException e) { - logger.error("[Quartz] 添加定时任务失败!任务名称={}, 任务组={}, 触发器名称={}, 触发器组={}", - jName, jGroup, tName, tGroup, e); + logger.error("[Quartz] 添加定时任务失败!任务名称={}", jName, e); throw new ApiException(I18nUtil._("添加定时任务失败!"), e); } catch (ClassNotFoundException e) { logger.error("[Quartz] 定时任务脚本不存在!类名: {}{}", PATH_PREFIX, cName, e); throw new ApiException(I18nUtil._("定时任务脚本不存在!类名: " + PATH_PREFIX + cName), e); } catch (Exception e) { - logger.error("[Quartz] 添加定时任务时发生未知异常!任务名称={}, 任务组={}, 触发器名称={}, 触发器组={}", - jName, jGroup, tName, tGroup, e); + logger.error("[Quartz] 添加定时任务时发生未知异常!任务名称={}", jName, e); throw new ApiException(I18nUtil._("添加定时任务失败!"), e); } } @@ -140,23 +123,22 @@ public class QuartzServiceImpl implements QuartzService { */ public boolean addOrUpdateJobFromDatabase(String jobName, String jobGroup, String triggerName, String triggerGroup, String dbCron, String dbJobClass) { - logger.info("[Quartz] 尝试从数据库信息添加或更新任务: 任务名称={}, 任务组={}", jobName, jobGroup); + + logger.info("[Quartz] 添加或更新任务: {}", jobName); try { JobKey jobKey = new JobKey(jobName, jobGroup); // 检查任务是否已存在 if (scheduler.checkExists(jobKey)) { - logger.debug("[Quartz] 任务已存在于调度器中: jobKey={}", jobKey); return true; // 任务已存在,无需添加 } // 任务不存在,从数据库信息创建新任务 - logger.info("[Quartz] 调度器中不存在任务,从数据库信息创建: jobKey={}", jobKey); addJob(jobName, jobGroup, triggerName, triggerGroup, dbCron, dbJobClass); return true; } catch (Exception e) { - logger.error("[Quartz] 从数据库信息添加或更新任务失败: 任务名称={}, 任务组={}", jobName, jobGroup, e); + logger.error("[Quartz] 添加或更新任务失败: {}", jobName, e); return false; } } @@ -170,24 +152,22 @@ public class QuartzServiceImpl implements QuartzService { */ @Override public void pauseJob(String jName, String jGroup) { - logger.info("[Quartz] 开始暂停定时任务: 任务名称={}, 任务组={}", jName, jGroup); + + logger.info("[Quartz] 暂停定时任务: {}", jName); try { JobKey jobKey = JobKey.jobKey(jName, jGroup); // 检查任务是否存在,不存在则记录日志并返回,不抛出异常 if (!scheduler.checkExists(jobKey)) { - logger.info("[Quartz] 任务不存在,无需暂停: jobKey={},可能任务已手动删除或尚未创建", jobKey); return; } scheduler.pauseJob(jobKey); - logger.info("[Quartz] 定时任务暂停成功: jobKey={}", jobKey); + logger.info("[Quartz] 定时任务暂停成功: {}", jName); } catch (SchedulerException e) { - logger.error("[Quartz] 暂停定时任务时发生调度异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使暂停失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 暂停定时任务时发生调度异常!任务名称={}", jName, e); } catch (Exception e) { - logger.error("[Quartz] 暂停定时任务时发生未知异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使暂停失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 暂停定时任务时发生未知异常!任务名称={}", jName, e); } } @@ -199,24 +179,22 @@ public class QuartzServiceImpl implements QuartzService { */ @Override public void resumeJob(String jName, String jGroup) { - logger.info("[Quartz] 开始继续定时任务: 任务名称={}, 任务组={}", jName, jGroup); + + logger.info("[Quartz] 继续定时任务: {}", jName); try { JobKey jobKey = JobKey.jobKey(jName, jGroup); // 检查任务是否存在,不存在则记录日志并返回,不抛出异常 if (!scheduler.checkExists(jobKey)) { - logger.info("[Quartz] 任务不存在,无需继续: jobKey={},可能任务已手动删除或尚未创建", jobKey); return; } scheduler.resumeJob(jobKey); - logger.info("[Quartz] 定时任务继续成功: jobKey={}", jobKey); + logger.info("[Quartz] 定时任务继续成功: {}", jName); } catch (SchedulerException e) { - logger.error("[Quartz] 继续定时任务时发生调度异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使继续失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 继续定时任务时发生调度异常!任务名称={}", jName, e); } catch (Exception e) { - logger.error("[Quartz] 继续定时任务时发生未知异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使继续失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 继续定时任务时发生未知异常!任务名称={}", jName, e); } } @@ -228,30 +206,25 @@ public class QuartzServiceImpl implements QuartzService { */ @Override public void deleteJob(String jName, String jGroup) { - logger.info("[Quartz] 开始删除定时任务: 任务名称={}, 任务组={}", jName, jGroup); + logger.info("[Quartz] 删除定时任务: {}", jName); try { JobKey jobKey = JobKey.jobKey(jName, jGroup); // 检查任务是否存在,不存在则记录日志并返回,不抛出异常 if (!scheduler.checkExists(jobKey)) { - logger.info("[Quartz] 任务不存在,无需删除: jobKey={},可能任务已手动删除或尚未创建", jobKey); return; } boolean deleted = scheduler.deleteJob(jobKey); if (deleted) { - logger.info("[Quartz] 定时任务删除成功: jobKey={}", jobKey); + logger.info("[Quartz] 定时任务删除成功: {}", jName); } else { - logger.warn("[Quartz] 定时任务删除失败: jobKey={}", jobKey); + logger.warn("[Quartz] 定时任务删除失败: {}", jName); } } catch (SchedulerException e) { - logger.error("[Quartz] 删除定时任务时发生调度异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使删除失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 删除定时任务时发生调度异常!任务名称={}", jName, e); } catch (Exception e) { - logger.error("[Quartz] 删除定时任务时发生未知异常!任务名称={}, 任务组={}", jName, jGroup, e); - // 即使删除失败也继续执行,避免阻塞业务流程 + logger.error("[Quartz] 删除定时任务时发生未知异常!任务名称={}", jName, e); } } - - } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index f4403d5c..fbe88173 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -12,6 +12,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.service.impl.BaseControllerImpl; +import com.suisung.mall.shop.base.service.ShopBaseDistrictService; import com.suisung.mall.shop.lakala.service.LakalaApiService; import com.suisung.mall.shop.lakala.service.LklLedgerEcService; import com.suisung.mall.shop.library.service.LibraryProductService; @@ -23,6 +24,7 @@ import com.suisung.mall.shop.sfexpress.service.SFExpressApiService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,6 +38,7 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.List; +@Slf4j @Api(tags = "拉卡拉相关接口 - 前端控制器") @RestController @RequestMapping("/mobile/shop/lakala") @@ -80,6 +83,9 @@ public class LakalaController extends BaseControllerImpl { @Resource private LklLedgerEcService lklLedgerEcService; + @Resource + private ShopBaseDistrictService shopBaseDistrictService; + @ApiOperation(value = "测试案例", notes = "测试案例") @RequestMapping(value = "/testcase", method = RequestMethod.POST) public Object testcase(@RequestBody JSONObject paramsJSON) { @@ -118,7 +124,10 @@ public class LakalaController extends BaseControllerImpl { // return lakalaApiService.sacsQuery("8226330541100GU", "20250918770188017227140800").toString(); - return lakalaApiService.queryLedgerMer("8226330541100HA"); + String[] result = shopBaseDistrictService.convertDistrictPath(paramsJSON.getStr("id"), paramsJSON.getStr("name")); + log.info("result: " + result[0] + " " + result[1]); + + return ""; //lakalaApiService.queryLedgerMer("8226330541100HA"); } @ApiOperation(value = "批量发送推送消息 - 测试案例", notes = "批量发送推送消息 - 测试案例") 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 7ceeabc9..f1859fa4 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 @@ -357,4 +357,14 @@ public interface ShopMchEntryService { * @return 分账比例 */ BigDecimal getMchEntryRatioOrDefault(Integer mch1stBizCategory, Integer mch2ndBizCategory, BigDecimal srcRatio, BigDecimal defaultRatio); + + /** + * 处理店铺省市区信息 + * + * @param storeDistrict 店铺省市区ID路径 + * @param storeArea 店铺省市区名称路径 + * @param refStoreAddress 参考店铺地址(用于解析省市区信息) + * @return 包含ID路径和名称路径的字符串数组,格式为 [ID路径, 名称路径] + */ + String[] handleStoreDistrictInfo(String storeDistrict, String storeArea, String refStoreAddress); } \ No newline at end of file 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 b2d7568e..cc73839d 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 @@ -29,10 +29,12 @@ import com.suisung.mall.common.modules.account.AccountUserBase; import com.suisung.mall.common.modules.lakala.LklLedgerEc; import com.suisung.mall.common.modules.store.ShopMchEntry; import com.suisung.mall.common.modules.store.ShopStoreEmployee; +import com.suisung.mall.common.pojo.to.AddressParseResultTO; import com.suisung.mall.common.utils.*; import com.suisung.mall.common.utils.phone.PhoneNumberUtils; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.base.service.AccountBaseConfigService; +import com.suisung.mall.shop.base.service.ShopBaseDistrictService; import com.suisung.mall.shop.base.service.ShopBaseStoreCategoryService; import com.suisung.mall.shop.esign.service.EsignPlatformInfoService; import com.suisung.mall.shop.lakala.service.LklLedgerEcService; @@ -91,6 +93,9 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl resultPair = lakalaApiService.applyLedgerMerEc(mchId); if (!resultPair.getFirst()) { - log.warn("拉卡拉电子合同签署申请失败: {}", resultPair.getSecond()); + log.warn("拉卡拉入网电子合同提交失败: {}", resultPair.getSecond()); return CommonResult.failed(resultPair.getSecond()); } // 执行更新操作 if (!updateMerchEntryApprovalByMchId(shopMchEntry.getId(), null, "入网申请已提交!")) { - log.error("系统处理审批出错,请联系管理员!当前记录ID: {}", mchId); + log.error("系统处理审批出错,请联系管理员!当前入驻编号: {}", mchId); return CommonResult.failed("系统处理审批出错,请联系管理员!"); } log.info("商家入驻平台初步审批处理完成,mchId={}", mchId); -// E签宝暂时停止使用 -// if (approvalStatus.equals(CommonConstant.Enable)) { -// // 多线程执行电子合同生成和填充 -// taskService.executeTask(() -> { -// log.debug("###开始异步执行生成电子合同模版和填充模版数据,并生该商家和平台方签署的未盖章合同文件###"); -// // 生成电子合同模版和填充模版数据,并生该商家和平台方签署的未盖章合同文件 -// Boolean genSuccess = esignContractFillingFileService.fillDocTemplate(record.getLogin_mobile(), ""); -// if (!genSuccess) { -// log.error("###商家入驻电子合同生成失败###"); -// } -// -// // 发短信通知商家,入驻申请已通过审核 -// }); -// } - + return CommonResult.success(); } catch (Exception e) { log.error("调用拉卡拉电子合同接口异常", e); return CommonResult.failed("调用拉卡拉服务失败,请稍后重试"); } - - return CommonResult.success(); } @@ -2470,6 +2465,57 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl