From 238f958a84ff6b9853986397290a6e05a431fc20 Mon Sep 17 00:00:00 2001 From: "925116093-qq.com" <925116093@qq.com> Date: Wed, 20 Aug 2025 18:06:21 +0800 Subject: [PATCH] 2025008071805 --- .../system/controllerUtil/OrderUtil.java | 7 ++++- .../system/controllerUtil/WXsendMsgUtil.java | 28 +++++++++++++++++++ .../controllerUtil/WorkerCommissionUtil.java | 14 ++++++---- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/OrderUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/OrderUtil.java index 636b9f5..befa823 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/OrderUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/OrderUtil.java @@ -634,6 +634,7 @@ public class OrderUtil { * @return 新建的订单对象(仅拼团),或处理结果Map */ public static Object prepayCallback(UsersPayBefor payBefor, Users user) throws Exception { + payBefor= usersPayBeforService.selectUsersPayBeforById(payBefor.getId()); System.out.println("=== prepayCallback 方法开始 ==="); System.out.println("输入参数 - payBefor: " + (payBefor != null ? payBefor.toString() : "null")); System.out.println("输入参数 - user: " + (user != null ? user.toString() : "null")); @@ -2092,7 +2093,7 @@ public class OrderUtil { */ public static String TheCallWorder() throws Exception { //第一步先去查询已经派单,但是师傅还没接单的订单 - System.out.println("开始执行定时查询任务---------------------------"+new Date()); + System.out.println("0开始执行定时查询派单任务---------------------------"+new Date()); IOrderService orderService = SpringUtils.getBean(IOrderService.class); Order order = new Order(); order.setIsAccept(0); @@ -2103,9 +2104,13 @@ public class OrderUtil { OrderCall orderCall = new OrderCall(); orderCall.setOid(order1.getId()); List orderCallList = orderCallService.selectOrderCallList(orderCall); + System.out.println("1开始执行定时查询派单任务---------------------------"+orderCallList.size()); + if (orderCallList != null && !orderCallList.isEmpty()){ + if (orderCallList.size()<3){ if (orderCallList.getFirst().getCallerstate()!= 0L){ + System.out.println("2开始执行order1.getWorkerId()定时查询派单任务---------------------------"+order1.getWorkerId()); Users user = usersService.selectUsersById(order1.getWorkerId()); if (user != null){ String phone = user.getPhone(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WXsendMsgUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WXsendMsgUtil.java index 0052712..fab99ba 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WXsendMsgUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WXsendMsgUtil.java @@ -151,6 +151,34 @@ public class WXsendMsgUtil { } + + //催单 + public static String sendMsgForWorkerCuiDanInfo(String openid, Order order, String title,String reamk) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + //拼接推送的模版 + WxMssVo wxMssVo = new WxMssVo(); + wxMssVo.setTouser(openid);//用户的openid(要发送给那个用户,通常这里应该动态传进来的) + wxMssVo.setTemplate_id(ORDER_STATUS);//订阅消息模板id + wxMssVo.setPage("/pages/tab/serve/index"); + String mark = order.getMark(); + if (StringUtils.isEmpty( mark)){ + mark="暂无备注"; + } + Map m = new HashMap<>(3); + m.put("thing15", new TemplateData(title)); + m.put("character_string5", new TemplateData(order.getOrderId())); + m.put("date3", new TemplateData(AppletControllerUtil.timeStamp2Date(order))); + m.put("thing1", new TemplateData(order.getAddress())); + m.put("thing9", new TemplateData(reamk)); + + System.out.println("0002订单号:" + m.toString()); + wxMssVo.setData(m); + return PublicPush(wxMssVo); + } + + + + //微信推送第er步,给师傅通知派单情况 public static String sendMsgForWorkerInfo(String openid, Order order, ServiceGoods serviceGoods) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WorkerCommissionUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WorkerCommissionUtil.java index b01f0d6..346fa39 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WorkerCommissionUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WorkerCommissionUtil.java @@ -655,7 +655,7 @@ public class WorkerCommissionUtil { // 6. 计算师傅材料初次分佣 // 公式:材料费用*材料分佣基数 BigDecimal materialCommissionAmount = calculateMaterialCommissionNew(orderId); - + logger.info("===材料分佣 分佣基数信息 ====================================================="+materialCommissionAmount); // 7. 计算师傅质保金 // 公式:(师傅材料初次分佣+师傅服务初次分佣)*质保金扣除比例 BigDecimal totalInitialCommission = serviceCommissionAmount.add(materialCommissionAmount); @@ -1026,7 +1026,7 @@ public class WorkerCommissionUtil { * @return 材料初次分佣金额 */ private static BigDecimal calculateMaterialCommissionNew(Long orderId) { - logger.info("=== 计算师傅材料初次分佣(新逻辑) ==="); + logger.info("=== 0计算师傅材料初次分佣(新逻辑) ====================================================================="); logger.info("订单ID: {}", orderId); BigDecimal totalMaterialCommission = BigDecimal.ZERO; @@ -1059,27 +1059,29 @@ public class WorkerCommissionUtil { // 4. 解析content获取material JSONObject contentJson = JSONObject.parseObject(content); JSONArray materialArray = contentJson.getJSONArray("material"); - + logger.info("1=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+materialArray.toJSONString()); if (materialArray == null || materialArray.isEmpty()) { logger.info("订单日志 {} 中没有material数据", orderLog.getId()); continue; } - // 5. 遍历材料明细 for (int i = 0; i < materialArray.size(); i++) { JSONObject materialItem = materialArray.getJSONObject(i); Long materialId = materialItem.getLong("id"); - BigDecimal quantity = materialItem.getBigDecimal("quantity"); + BigDecimal quantity = materialItem.getBigDecimal("count"); + logger.info("2=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+materialId); if (materialId == null || quantity == null || quantity.compareTo(BigDecimal.ZERO) <= 0) { continue; } logger.info("处理材料 - ID: {}, 数量: {}", materialId, quantity); + logger.info("3=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+materialId); // 6. 查询报价材料信息 BigDecimal materialCommission = calculateSingleMaterialCommission( materialId, quantity, systemMaterialCommissionBase); + logger.info("4=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+materialCommission); totalMaterialCommission = totalMaterialCommission.add(materialCommission); } @@ -1088,6 +1090,7 @@ public class WorkerCommissionUtil { logger.error("解析订单日志 {} 的material数据失败", orderLog.getId(), e); } } + logger.info("5=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+totalMaterialCommission); logger.info("材料分佣计算完成: {}元", totalMaterialCommission); return totalMaterialCommission; @@ -1108,6 +1111,7 @@ public class WorkerCommissionUtil { */ private static BigDecimal calculateSingleMaterialCommission(Long materialId, BigDecimal quantity, BigDecimal systemMaterialCommissionBase) { + logger.info("4=== 计算师傅材料初次分佣(新逻辑) ====================================================================="+materialId); try { // 1. 查询报价材料信息 QuoteMaterial quoteMaterial = quoteMaterialService.selectQuoteMaterialById(materialId);