diff --git a/idea-utf8.bat b/idea-utf8.bat deleted file mode 100644 index 85b4909..0000000 --- a/idea-utf8.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -chcp 65001 -set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN -echo 正在以UTF-8编码启动IDEA... -echo 请用这个脚本启动IDEA来解决中文显示问题 -echo. -echo 使用方法: -echo 1. 将此文件复制到IDEA安装目录的bin文件夹中 -echo 2. 双击运行此文件来启动IDEA -echo 3. 或者修改IDEA的桌面快捷方式指向此文件 -echo. -pause \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleOrderController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleOrderController.java index 8c85213..8b71a11 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleOrderController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleOrderController.java @@ -1072,13 +1072,16 @@ public class AppleOrderController extends BaseController { Integer paytype = params.get("paytype") != null ? Integer.parseInt(params.get("paytype").toString()) : 1; Long couponId = params.get("coupon_id") != null ? Long.parseLong(params.get("coupon_id").toString()) : null; String mtcode = params.get("mtcode") != null ? params.get("mtcode").toString() : null; - + System.out.println("-----------------------------------支付完成有一个问题的这里 paytype:"+paytype); // 4. 查询预支付记录 UsersPayBefor payBefor = usersPayBeforService.selectUsersPayBeforByOrderId(id); if (payBefor == null) { return AppletControllerUtil.appletWarning("预支付记录不存在"); } - + //已确认支付的订单就不要做金额上的改动,直接返回现有就可以 + if (payBefor.getStatus() == 2) { + return AppletControllerUtil.appletSuccess(); + } // 5. 验证记录归属权(只能查看自己的记录) if (!payBefor.getUid().equals(user.getId())) { return AppletControllerUtil.appletWarning("无权查看该预支付记录"); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/ApplePayController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/ApplePayController.java index f7e7684..cb41f3e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/ApplePayController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/ApplePayController.java @@ -1166,14 +1166,11 @@ public class ApplePayController extends BaseController { // 5. 处理支付 Map payResult = new HashMap<>(); - + //全额微信支付 if (paytype == 1) { - // 微信支付 + // 微信支付,余额为0的时候直接过,但是还要扣除优惠里面的东西 if (wxMoney.compareTo(BigDecimal.ZERO) <= 0) { // 金额为0,直接走后续逻辑 -// payBefor.setStatus(2L); // 已支付 -// payBefor.setPaytime(new Date()); -// usersPayBeforService.updateUsersPayBefor(payBefor); //扣减消费金服务金 int flg= BenefitPointsUtil.creatServerOrderData(payBefor); if (flg==0){ @@ -1187,9 +1184,6 @@ public class ApplePayController extends BaseController { } } } - //BenefitPointsUtil.deductServiceAndConsumption(payBefor.getOid(), user, payBefor.getServicemoney(), payBefor.getShopmoney()); - //回调方法用来处理订单相关数据 - // OrderUtil.prepayCallback(payBefor, user); payResult.put("istowx", 1); return AppletControllerUtil.appletSuccess("支付成功"); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java index 825554a..789cf8f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java @@ -1309,7 +1309,7 @@ public class AppletController extends BaseController { // 3. 构建查询条件 ServiceGoods queryGoods = new ServiceGoods(); queryGoods.setStatus("1"); // 只查询启用状态的商品 - + queryGoods.setType(2);// 只查询商品类 // 判断是否查询全部商品 boolean queryAll = "00".equals(cateId.trim()) || cateId.trim().isEmpty(); @@ -4090,7 +4090,7 @@ public class AppletController extends BaseController { orderLogService.insertOrderLog(orderLog); //解绑虚拟号码 //需要解绑原订单上原师傅和客户的虚拟号 - VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); if (resultObj.getResult().equals("000000")) { orderService.updateOrderPhone(order.getId()); } @@ -4178,8 +4178,11 @@ public class AppletController extends BaseController { orderLogService.insertOrderLog(orderLog); // OrderUtil orderUtil = new OrderUtil(); // orderUtil.SaveOrderLog(order); - //绑定号码 - Map bindmap = OrderBindWorkerUtil.getOrderBindWorker(order.getId()); + //如果没有绑定虚拟号就要绑定绑定号码 + if (StringUtils.isBlank(order.getMiddlePhone())){ + Map bindmap = OrderBindWorkerUtil.getOrderBindWorker(order.getId()); + } + //发送微信推送通知客户师傅已接单 // 6. 返回成功 return AjaxResult.success("接单成功"); @@ -4458,7 +4461,7 @@ public class AppletController extends BaseController { } // 6. 查询订单日志 OrderLog logQuery = new OrderLog(); - logQuery.setOid(order.getId()); + logQuery.setOrderId(order.getOrderId()); List logList = orderLogService.selectOrderLogList(logQuery); List> logArr = new ArrayList<>(); for (OrderLog log : logList) { @@ -4715,7 +4718,7 @@ public class AppletController extends BaseController { } // 6. 查询订单日志 OrderLog logQuery = new OrderLog(); - logQuery.setOid(order.getId()); + logQuery.setOrderId(order.getOrderId()); List logList = orderLogService.selectOrderLogList(logQuery); List> logArr = new ArrayList<>(); for (OrderLog log : logList) { @@ -5258,11 +5261,12 @@ public class AppletController extends BaseController { newlog.setIsPause(2); orderLogService.insertOrderLog(newlog); //需要解绑原订单上原师傅和客户的虚拟号 - VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); if (resultObj.getResult().equals("000000")) { orderService.updateOrderPhone(order.getId()); // orderService.updateOrder(order); } + //绑定新师傅的虚拟号 //给新师傅进行电话通知 YunXinPhoneUtilAPI.httpsAxbTransfer(newWorker.getPhone(), order.getId()); } @@ -5977,7 +5981,7 @@ public class AppletController extends BaseController { } //解绑订单虚拟号 //需要解绑原订单上原师傅和客户的虚拟号 - VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); System.out.println("----------------------------------"+resultObj.getResult()); System.out.println("----------------------------------"+resultObj.getResult()); if (resultObj.getResult().equals("000000")) { @@ -6028,7 +6032,7 @@ public class AppletController extends BaseController { // 6. 保存 orderLogService.insertOrderLog(orderLog); //解绑号码 - YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); // 小程序推送给用户师傅已经到达 ServiceGoods serviceGoods = serviceGoodsService.selectServiceGoodsById(order.getProductId()); @@ -7094,9 +7098,9 @@ public class AppletController extends BaseController { WXsendMsgUtil.sendMsgForUserDoorMoney(userinfo.getOpenid(), orderInfo, serviceGoods); } - // 3.4 解绑虚拟号 + // 3.4 如果还有虚拟号就解绑虚拟号 if (orderInfo.getMiddlePhone() != null) { - VoiceResponseResult unbind = YunXinPhoneUtilAPI.httpsPrivacyUnbind(orderInfo.getWorkerPhone(), orderInfo.getUserPhone(), orderInfo.getMiddlePhone()); + VoiceResponseResult unbind = YunXinPhoneUtilAPI.httpsPrivacyUnbind(orderInfo.getWorkerPhone(), orderInfo.getUserPhone(), orderInfo.getMiddlePhone(), orderInfo.getId()); if (unbind.getResult().equals("000000")) { orderService.updateOrderPhone(orderInfo.getId()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/OrderController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/OrderController.java index 6d60947..f358d3d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/OrderController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/OrderController.java @@ -134,6 +134,19 @@ public class OrderController extends BaseController { public AjaxResult getInfo(@PathVariable("id") Long id) { Order order = orderService.selectOrderById(id); if (order != null){ + if(StringUtils.isBlank(order.getAdressjson())){ + UserAddress userAddress=userAddressService.selectUserAddressById(order.getAddressId()); + if (userAddress != null) { + try { + order.setAdressjson(JSON.toJSONString(userAddress)); + orderService.updateOrder(order); + } catch (Exception e) { + order.setAdressjson(null); + } + } + // Users users=usersService.selectUsersById(order.getUid()); + // if() + } order.setOrderLog(new OrderLog()); } @@ -977,7 +990,7 @@ public class OrderController extends BaseController { orderLogService.insertOrderLog(orderLog); //解绑订单虚拟号 //需要解绑原订单上原师傅和客户的虚拟号 - VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + VoiceResponseResult resultObj = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); if (resultObj.getResult().equals("000000")) { // order.setWorkerPhone(null); // order.setUserPhone(null); @@ -986,7 +999,7 @@ public class OrderController extends BaseController { orderService.updateOrderPhone(order.getId()); } // 4. 更新订单状 //解绑号码 - YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + // YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); // 小程序推送给用户师傅已经到达 ServiceGoods serviceGoods = serviceGoodsService.selectServiceGoodsById(order.getProductId()); @@ -1098,7 +1111,7 @@ public class OrderController extends BaseController { // 3.4 解绑虚拟号 if (order.getMiddlePhone() != null) { - VoiceResponseResult unbind = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone()); + VoiceResponseResult unbind = YunXinPhoneUtilAPI.httpsPrivacyUnbind(order.getWorkerPhone(), order.getUserPhone(), order.getMiddlePhone(), order.getId()); if (unbind.getResult().equals("000000")) { orderService.updateOrderPhone(order.getId()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java index 129241c..27cdf57 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java @@ -334,6 +334,7 @@ public class PayNotifyController extends BaseController { if (usersPayBefor != null) { users = usersService.selectUsersById(usersPayBefor.getUid()); } + //各种优惠的扣除操作 int flg= BenefitPointsUtil.creatServerOrderData(usersPayBefor); if (flg==0){ UsersPayBefor newpayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(usersPayBefor.getOrderid()); @@ -345,13 +346,8 @@ public class PayNotifyController extends BaseController { usersPayBeforService.updateUsersPayBefor(newpayBefor); } } - //扣减消费金服务金 - // BenefitPointsUtil.deductServiceAndConsumption(usersPayBefor.getOid(), users, usersPayBefor.getServicemoney(), usersPayBefor.getShopmoney()); - //回调方法用来处理订单相关数据 + //订单状态的回调 OrderUtil.prepayCallback(usersPayBefor, users); -// //订单回调处理,拼团创建订单,其他订单修改状态 -// OrderUtil.prepayCallback(usersPayBefor, users); - // //最后无论如何平台流水需要添加,让平台看到流水和账目 PayMoneyLog payMoneyLog = new PayMoneyLog(); if (usersPayBefor != null) { @@ -365,9 +361,25 @@ public class PayNotifyController extends BaseController { payMoneyLog.setPrice(usersPayBefor.getWxmoney()); payMoneyLog.setMark("订单支付"); payMoneyLog.setPayTime(new Date()); - payMoneyLogService.insertPayMoneyLog(payMoneyLog); + int paystatus= payMoneyLogService.insertPayMoneyLog(payMoneyLog); + //如果支付成功还要添加客户的流水,让客户看到自己账户的变动 + if (paystatus>0){ + //第一步记录用户支付记录,购买是负数 + UserMemnerConsumptionLog newuserMemnerConsumptionLog = new UserMemnerConsumptionLog(); + newuserMemnerConsumptionLog.setUid(Math.toIntExact(users.getId())); + newuserMemnerConsumptionLog.setConsumptiontype(3); + newuserMemnerConsumptionLog.setConsumptiontime(new Date()); + newuserMemnerConsumptionLog.setConsumptionmoney(usersPayBefor.getWxmoney()); //支付就是负数 + newuserMemnerConsumptionLog.setReamk("订单微信支付" +usersPayBefor.getWxmoney() + "元"); + newuserMemnerConsumptionLog.setBeformoney(users.getBalance()); + newuserMemnerConsumptionLog.setAftermoney(users.getBalance().add(usersPayBefor.getWxmoney())); + newuserMemnerConsumptionLog.setNowmoney(users.getBalance().add(usersPayBefor.getWxmoney())); + newuserMemnerConsumptionLog.setType(2); //1收入 2支出 + newuserMemnerConsumptionLog.setOrderid(usersPayBefor.getOrderid()); + userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(newuserMemnerConsumptionLog); + } //sendWechatMessage(users,outTradeNo); - logger.info("商品支付回调处理成功,订单号:{}", outTradeNo); + logger.info("订单支付回调处理成功,订单号:{}", outTradeNo); return buildSuccessResponse(); } catch (Exception e) { @@ -486,7 +498,6 @@ public class PayNotifyController extends BaseController { String transactionId = (String) paymentInfo.get("transactionId"); String totalFee = (String) paymentInfo.get("totalFee"); UsersPayBefor usersPayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(outTradeNo); - // 组合支付:微信支付回调后自动扣余额 if (usersPayBefor != null && usersPayBefor.getYemoney() != null && usersPayBefor.getYemoney().compareTo(BigDecimal.ZERO) > 0) { Users user = usersService.selectUsersById(usersPayBefor.getUid()); @@ -496,44 +507,33 @@ public class PayNotifyController extends BaseController { "订单组合支付-余额部分" + usersPayBefor.getYemoney() + "元", usersPayBefor.getOrderid() ); - if (balanceResult == null || !Boolean.TRUE.equals(balanceResult.get("success"))) { + if (balanceResult != null) { + UsersPayBefor newpayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(usersPayBefor.getOrderid()); + if (newpayBefor!=null){ + // 创建订单 + newpayBefor.setStatus(2L); + newpayBefor.setPaytime(new Date()); + newpayBefor.setPaycode(transactionId); + int flgs=usersPayBeforService.updateUsersPayBefor(newpayBefor); + } + System.out.println("------------组合支付:微信支付回调后自动扣余额,微信支付:"+newpayBefor.getWxmoney()+"余额支付:"+newpayBefor.getYemoney()); //扣减消费金服务金 - // BenefitPointsUtil.deductServiceAndConsumption(usersPayBefor.getOid(), user, usersPayBefor.getServicemoney(), usersPayBefor.getShopmoney()); //回调方法用来处理订单相关数据 int flg= BenefitPointsUtil.creatServerOrderData(usersPayBefor); if (flg==0){ - UsersPayBefor newpayBefor = usersPayBeforService.selectUsersPayBeforByOrderId(usersPayBefor.getOrderid()); - if (newpayBefor!=null){ - // 创建订单 - newpayBefor.setStatus(2L); - newpayBefor.setPaytime(new Date()); - newpayBefor.setPaycode(transactionId); - int flgs=usersPayBeforService.updateUsersPayBefor(newpayBefor); - if (flgs>0){ - OrderUtil.prepayCallback(newpayBefor, user); - } - } + OrderUtil.prepayCallback(newpayBefor, user); } - // OrderUtil.prepayCallback(newpayBefor, user); String errorMsg = balanceResult != null ? (String) balanceResult.get("message") : "余额支付失败"; - logger.error("组合支付余额部分扣款失败:{}", errorMsg); - return buildFailResponse("组合支付余额部分扣款失败: " + errorMsg); +// logger.error("组合支付余额部分扣款失败:{}", errorMsg); +// return buildFailResponse("组合支付余额部分扣款失败: " + errorMsg); } } - -// if (usersPayBefor != null) { -// usersPayBefor.setStatus(2L); -// usersPayBefor.setPaytime(new Date()); -// usersPayBefor.setPaycode(transactionId); -// usersPayBeforService.updateUsersPayBefor(usersPayBefor); -// -// } Users users = null; if (usersPayBefor != null) { users = usersService.selectUsersById(usersPayBefor.getUid()); } //订单回调处理,拼团创建订单,其他订单修改状态 - OrderUtil.prepayCallback(usersPayBefor, users); + // OrderUtil.prepayCallback(usersPayBefor, users); // //最后无论如何平台流水需要添加,让平台看到流水和账目 PayMoneyLog payMoneyLog = new PayMoneyLog(); @@ -548,7 +548,22 @@ public class PayNotifyController extends BaseController { payMoneyLog.setPrice(usersPayBefor.getWxmoney()); payMoneyLog.setMark("订单支付"); payMoneyLog.setPayTime(new Date()); - payMoneyLogService.insertPayMoneyLog(payMoneyLog); + int paystatus= payMoneyLogService.insertPayMoneyLog(payMoneyLog); + //用户的支付里面微信支付也要记录在用户的余额变动里面,确保用户对自己的支付情况了解 + if (paystatus>0){ + UserMemnerConsumptionLog newuserMemnerConsumptionLog = new UserMemnerConsumptionLog(); + newuserMemnerConsumptionLog.setUid(Math.toIntExact(users.getId())); + newuserMemnerConsumptionLog.setConsumptiontype(3); + newuserMemnerConsumptionLog.setConsumptiontime(new Date()); + newuserMemnerConsumptionLog.setOrderid(usersPayBefor.getOrderid()); + newuserMemnerConsumptionLog.setConsumptionmoney(usersPayBefor.getWxmoney()); //支付就是负数 + newuserMemnerConsumptionLog.setReamk("订单组合支付-微信部分" +usersPayBefor.getWxmoney() + "元"); + newuserMemnerConsumptionLog.setBeformoney(users.getBalance()); + newuserMemnerConsumptionLog.setAftermoney(users.getBalance()); + newuserMemnerConsumptionLog.setNowmoney(users.getBalance()); + newuserMemnerConsumptionLog.setType(2); + userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(newuserMemnerConsumptionLog); + } //sendWechatMessage(users,outTradeNo); logger.info("商品支付回调处理成功,订单号:{}", outTradeNo); return buildSuccessResponse(); @@ -606,7 +621,7 @@ public class PayNotifyController extends BaseController { newuserMemnerConsumptionLog.setConsumptiontype(3); newuserMemnerConsumptionLog.setConsumptiontime(new Date()); newuserMemnerConsumptionLog.setConsumptionmoney(userMemberRechargeLog.getComemoney()); - newuserMemnerConsumptionLog.setReamk("用户充值" + userMemberRechargeLog.getInmoney() + "实际到账" + userMemberRechargeLog.getComemoney()); + newuserMemnerConsumptionLog.setReamk("用户微信支付充值" + userMemberRechargeLog.getInmoney() + "实际到账" + userMemberRechargeLog.getComemoney()); newuserMemnerConsumptionLog.setBeformoney(users.getBalance()); newuserMemnerConsumptionLog.setAftermoney(users.getBalance().add(userMemberRechargeLog.getComemoney())); newuserMemnerConsumptionLog.setNowmoney(users.getBalance().add(userMemberRechargeLog.getComemoney())); @@ -622,7 +637,7 @@ public class PayNotifyController extends BaseController { userMemnerConsumptionLog.setConsumptiontype(2); userMemnerConsumptionLog.setConsumptiontime(new Date()); userMemnerConsumptionLog.setConsumptionmoney(userMemberRechargeLog.getComemoney()); - userMemnerConsumptionLog.setReamk("会员包年扣减"); + userMemnerConsumptionLog.setReamk("会员包年余额扣减"); userMemnerConsumptionLog.setBeformoney(users.getBalance()); userMemnerConsumptionLog.setAftermoney(users.getBalance().subtract(userMemberRechargeLog.getComemoney())); userMemnerConsumptionLog.setNowmoney(users.getBalance().subtract(userMemberRechargeLog.getComemoney())); @@ -1674,13 +1689,39 @@ public class PayNotifyController extends BaseController { logger.error("未找到次卡使用记录,订单号:{}", outTradeNo); return buildFailResponse("未找到次卡使用记录"); } - // 5. 修改为可用状态(假设status=1为可用) useCard.setStatus(1L); useCard.setUpdatedAt(new Date()); useCard.setTransactionId(transactionId); - userUseSecondaryCardService.updateUserUseSecondaryCard(useCard); - + int flg= userUseSecondaryCardService.updateUserUseSecondaryCard(useCard); + //添加流水,任何记录都需要流水 + if (flg>0) { + Users users = usersService.selectUsersById(useCard.getUid()); + //第一步记录用户支付记录,购买是负数 + UserMemnerConsumptionLog newuserMemnerConsumptionLog = new UserMemnerConsumptionLog(); + newuserMemnerConsumptionLog.setUid(Math.toIntExact(users.getId())); + newuserMemnerConsumptionLog.setConsumptiontype(3); + newuserMemnerConsumptionLog.setConsumptiontime(new Date()); + newuserMemnerConsumptionLog.setConsumptionmoney(useCard.getPaymoney()); //负数 + newuserMemnerConsumptionLog.setReamk("次卡购买微信支付" + useCard.getPaymoney() + "元"); + newuserMemnerConsumptionLog.setBeformoney(users.getBalance()); + newuserMemnerConsumptionLog.setAftermoney(users.getBalance().add(useCard.getPaymoney())); + newuserMemnerConsumptionLog.setNowmoney(users.getBalance().add(useCard.getPaymoney())); + newuserMemnerConsumptionLog.setType(2); // 1收入 2 支出 + int cklig= userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(newuserMemnerConsumptionLog); + if (cklig>0){ + //最后无论如何平台流水需要添加,让平台看到流水和账目 + PayMoneyLog payMoneyLog = new PayMoneyLog(); + payMoneyLog.setOid(useCard.getId()); + payMoneyLog.setOrderId(useCard.getOrderid()); + payMoneyLog.setUid(users.getId()); + payMoneyLog.setUname(users.getName()); + payMoneyLog.setPrice(useCard.getPaymoney()); + payMoneyLog.setMark("购买次卡支付"); + payMoneyLog.setPayTime(new Date()); + payMoneyLogService.insertPayMoneyLog(payMoneyLog); + } + } logger.info("次卡支付回调处理成功,订单号:{}", outTradeNo); return buildSuccessResponse(); } catch (Exception e) { @@ -2276,6 +2317,20 @@ public class PayNotifyController extends BaseController { usersPayBeforData.setReturnmoney(usersPayBeforData.getReturnmoney().add(refund_amount)); usersPayBeforData.setWxmoney(usersPayBeforData.getWxmoney().subtract(refund_amount)); usersPayBeforService.updateUsersPayBefor(usersPayBeforData); + //添加流水,让客户看到自己的资金变动流水 + //第一步记录用户支付记录,购买是负数 + UserMemnerConsumptionLog newuserMemnerConsumptionLog = new UserMemnerConsumptionLog(); + newuserMemnerConsumptionLog.setUid(Math.toIntExact(usersPayBeforData.getUid())); + newuserMemnerConsumptionLog.setConsumptiontype(3); + newuserMemnerConsumptionLog.setConsumptiontime(new Date()); + newuserMemnerConsumptionLog.setConsumptionmoney(refund_amount); + newuserMemnerConsumptionLog.setReamk("订单微信退款" +refund_amount + "元"); + newuserMemnerConsumptionLog.setBeformoney(user.getBalance()); + newuserMemnerConsumptionLog.setAftermoney(user.getBalance()); + newuserMemnerConsumptionLog.setNowmoney(user.getBalance()); + newuserMemnerConsumptionLog.setType(1); //1收入 2支出 + newuserMemnerConsumptionLog.setOrderid(usersPayBeforData.getOrderid()); + userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(newuserMemnerConsumptionLog); } } } @@ -2295,7 +2350,7 @@ public class PayNotifyController extends BaseController { /** - * 微信提现回调接口 + * 次卡退款 */ @PostMapping("/api/worker/cika/notify") public void apiworkercikanotify(HttpServletRequest request, HttpServletResponse response) throws IOException { @@ -2540,7 +2595,22 @@ public class PayNotifyController extends BaseController { payMoneyLog.setPrice(useCard.getPaymoney().negate());//退款就是负数 payMoneyLog.setMark("次卡退款"); payMoneyLog.setPayTime(new Date()); - payMoneyLogService.insertPayMoneyLog(payMoneyLog); + int paystatus= payMoneyLogService.insertPayMoneyLog(payMoneyLog); + if(paystatus>0){ + //第一步记录用户支付记录,购买是负数 + UserMemnerConsumptionLog newuserMemnerConsumptionLog = new UserMemnerConsumptionLog(); + newuserMemnerConsumptionLog.setUid(Math.toIntExact(user.getId())); + newuserMemnerConsumptionLog.setConsumptiontype(3); + newuserMemnerConsumptionLog.setConsumptiontime(new Date()); + newuserMemnerConsumptionLog.setConsumptionmoney(useCard.getPaymoney()); + newuserMemnerConsumptionLog.setReamk("次卡退款" +useCard.getPaymoney() + "元"); + newuserMemnerConsumptionLog.setBeformoney(user.getBalance()); + newuserMemnerConsumptionLog.setAftermoney(user.getBalance()); + newuserMemnerConsumptionLog.setNowmoney(user.getBalance()); + newuserMemnerConsumptionLog.setType(1); //1收入 2支出 + // newuserMemnerConsumptionLog.setOrderid(); + userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(newuserMemnerConsumptionLog); + } } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/UsersPayBeforController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/UsersPayBeforController.java index 6146340..dce620c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/UsersPayBeforController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/UsersPayBeforController.java @@ -445,7 +445,6 @@ public class UsersPayBeforController extends BaseController return error("未找到支付记录"); } List payRecords = usersPayBeforService.selectPayDetailsByOrderId(orderId); - System.out.println("000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"+payRecords.size()); if (payRecords == null || payRecords.isEmpty()) { return error("未找到支付记录"); } @@ -453,12 +452,11 @@ public class UsersPayBeforController extends BaseController // 计算已退款金额 BigDecimal totalRefunded = BigDecimal.ZERO; for (UsersPayBefor record : payRecords) { - System.out.println("111%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"+record.getReturnmoney()); if (record.getReturnmoney() != null) { totalRefunded = totalRefunded.add(record.getReturnmoney()); } } - System.out.println("222%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"+totalRefunded); + // 计算总支付金额(减去会员优惠,因为会员优惠不参与退款) BigDecimal totalPaid = BigDecimal.ZERO; BigDecimal totalMemberDiscount = BigDecimal.ZERO; @@ -524,7 +522,18 @@ public class UsersPayBeforController extends BaseController // 记录退款日志 OrderLog orderLog = new OrderLog(); orderLog.setOrderId(orderId); - orderLog.setOid(999L); + Order order = orderService.selectOrderByOrderId(orderId); + if (order != null){ + orderLog.setOid(order.getId()); + }else{ + GoodsOrder goodsOrder = goodsOrderService.selectGoodsOrderByMainOrderId(orderId); + if (goodsOrder != null){ + orderLog.setOid(goodsOrder.getId()); + }else{ + orderLog.setOid(999L); + } + } + orderLog.setTitle("退款"); orderLog.setOrdertype(paymentInfo.getServicetype()); orderLog.setType(new BigDecimal(11)); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletLoginUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletLoginUtil.java index 54ae475..7930003 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletLoginUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletLoginUtil.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.domain.Users; import com.ruoyi.system.service.IUsersService; +import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; @@ -308,7 +309,7 @@ public class AppletLoginUtil { result.put("message", "token无效或用户不存在"); return result; } - + vaUserToken(user, usersService); // 检查用户状态 if (user.getStatus() == null || user.getStatus() != 1) { result.put("valid", false); @@ -332,6 +333,56 @@ public class AppletLoginUtil { return result; } + + + public static Users vaUserToken(Users users, IUsersService usersService) { + if(users.getBalance()==null){ + users.setBalance(BigDecimal.ZERO); + } + if(users.getIntegral()==null){ + users.setIntegral(0L); + } + if(users.getIsmember()==null){ + users.setIsmember(0); + } + if(users.getTotalComm()==null){ + users.setTotalComm(BigDecimal.ZERO); + } + if(users.getTotalIntegral()==null){ + users.setTotalIntegral(0L); + } + if(users.getLevel()==null){ + users.setLevel(1); + } + if(users.getCommission()==null){ + users.setCommission(BigDecimal.ZERO); + } + if(users.getTotalComm()==null){ + users.setTotalComm(BigDecimal.ZERO); + } + if(users.getMargin()==null){ + users.setMargin(BigDecimal.ZERO); + } + if(users.getPropose()==null){ + users.setPropose(BigDecimal.ZERO); + } + if(users.getConsumption()==null){ + users.setConsumption(BigDecimal.ZERO); + } + if(users.getServicefee()==null){ + users.setServicefee(BigDecimal.ZERO); + } + if(users.getPropose()==null){ + users.setPropose(BigDecimal.ZERO); + } + usersService.updateUsers(users); + return users; + } + + + + + /** * 获取并验证请求头中的token * 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 fab99ba..b435087 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 @@ -66,13 +66,42 @@ public class WXsendMsgUtil { //公共推送 public static String PublicPush(WxMssVo wxMssVo) throws Exception { RestTemplate restTemplate = new RestTemplate(); - // String accessToken = getAccessToken(); - //这里简单起见我们每次都获取最新的access_token - String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(); - ResponseEntity responseEntity = - restTemplate.postForEntity(url, wxMssVo, String.class); - System.out.println("0001responseEntity.getBody():" + responseEntity.getBody()); - return responseEntity.getBody(); + + // 使用WechatApiUtil的缓存机制获取access_token + Map tokenResult = WechatApiUtil.getCachedAccessToken(); + if (!(Boolean) tokenResult.get("success")) { + throw new Exception("获取access_token失败:" + tokenResult.get("errorMsg")); + } + + String accessToken = (String) tokenResult.get("access_token"); + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken; + + try { + ResponseEntity responseEntity = restTemplate.postForEntity(url, wxMssVo, String.class); + System.out.println("0001responseEntity.getBody():" + responseEntity.getBody()); + + // 检查响应中是否有access_token相关错误 + JSONObject response = JSONObject.parseObject(responseEntity.getBody()); + Integer errcode = response.getInteger("errcode"); + if (errcode != null && (errcode == 40001 || errcode == 42001 || errcode == 40014)) { + System.out.println("微信推送消息access_token无效(错误码:" + errcode + "),清除缓存并重试"); + // 清除access_token缓存 + WechatApiUtil.clearAccessTokenCache(); + // 重新获取access_token并重试 + tokenResult = WechatApiUtil.getCachedAccessToken(); + if ((Boolean) tokenResult.get("success")) { + accessToken = (String) tokenResult.get("access_token"); + url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken; + responseEntity = restTemplate.postForEntity(url, wxMssVo, String.class); + System.out.println("重试后responseEntity.getBody():" + responseEntity.getBody()); + } + } + + return responseEntity.getBody(); + } catch (Exception e) { + System.err.println("微信推送消息异常:" + e.getMessage()); + throw e; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatApiUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatApiUtil.java index a7286c8..677dc1d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatApiUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatApiUtil.java @@ -751,6 +751,37 @@ public class WechatApiUtil { return Math.max(0, (expireTime - currentTime) / 1000); } + /** + * 测试access_token缓存机制 + * 用于验证修复是否生效 + */ + public static Map testAccessTokenCache() { + Map result = new HashMap<>(); + try { + // 1. 获取当前缓存状态 + boolean cacheValid = isAccessTokenCacheValid(); + result.put("cacheValid", cacheValid); + + // 2. 获取access_token + Map tokenResult = getCachedAccessToken(); + result.put("tokenResult", tokenResult); + + // 3. 缓存信息 + result.put("cacheInfo", new HashMap() {{ + put("hasCache", !ACCESS_TOKEN_CACHE.isEmpty()); + put("cacheKeys", ACCESS_TOKEN_CACHE.keySet()); + put("remainingTime", getRemainingExpireTime()); + }}); + + result.put("success", true); + result.put("message", "测试完成"); + } catch (Exception e) { + result.put("success", false); + result.put("errorMsg", "测试异常:" + e.getMessage()); + } + return result; + } + /** * 清除access_token缓存 */ @@ -913,7 +944,27 @@ public class WechatApiUtil { return result; } - // 2. 获取access_token + // 2. 获取access_token(最多重试一次) + return getPhoneNumberWithRetry(code, false); + + } catch (Exception e) { + result.put("success", false); + result.put("errorMsg", "通过code获取手机号异常:" + e.getMessage()); + e.printStackTrace(); + } + + return result; + } + + /** + * 获取手机号(带重试机制) + * 当遇到access_token无效时,清除缓存并重试一次 + */ + private static Map getPhoneNumberWithRetry(String code, boolean isRetry) { + Map result = new HashMap<>(); + + try { + // 1. 获取access_token Map tokenResult = getCachedAccessToken(); if (!(Boolean) tokenResult.get("success")) { result.put("success", false); @@ -923,28 +974,28 @@ public class WechatApiUtil { String accessToken = (String) tokenResult.get("access_token"); - // 3. 构建请求参数 + // 2. 构建请求参数 Map requestBody = new HashMap<>(); requestBody.put("code", code.trim()); - // 4. 构建请求URL + // 3. 构建请求URL String url = WECHAT_API_BASE_URL + "/wxa/business/getuserphonenumber?access_token=" + accessToken; - // 5. 设置请求头 + // 4. 设置请求头 HttpHeaders headers = new HttpHeaders(); headers.set("Content-Type", "application/json"); - // 6. 创建请求实体 + // 5. 创建请求实体 HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); System.out.println("请求微信手机号API: " + url); System.out.println("请求参数: " + requestBody); - // 7. 发起POST请求 + // 6. 发起POST请求 ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); System.out.println("微信手机号API响应: " + response.getBody()); - // 8. 处理响应结果 + // 7. 处理响应结果 if (response.getStatusCode().is2xxSuccessful()) { JSONObject jsonResponse = JSONObject.parseObject(response.getBody()); @@ -953,11 +1004,21 @@ public class WechatApiUtil { result.put("success", true); result.put("phone_info", jsonResponse.getJSONObject("phone_info")); } else { - // 获取失败 + Integer errcode = jsonResponse.getInteger("errcode"); + String errmsg = jsonResponse.getString("errmsg"); + + // 检查是否是access_token相关错误(40001, 42001, 40014等) + if (!isRetry && (errcode == 40001 || errcode == 42001 || errcode == 40014)) { + System.out.println("access_token无效(错误码:" + errcode + "),清除缓存并重试"); + // 清除access_token缓存 + clearAccessTokenCache(); + // 重试一次 + return getPhoneNumberWithRetry(code, true); + } + + // 其他错误或已经重试过 result.put("success", false); - result.put("errorMsg", "微信API返回错误:" + - jsonResponse.getString("errmsg") + - " (错误码:" + jsonResponse.getInteger("errcode") + ")"); + result.put("errorMsg", "微信API返回错误:" + errmsg + " (错误码:" + errcode + ")"); } } else { result.put("success", false); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatPayUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatPayUtil.java index 13dc336..feca1af 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatPayUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/WechatPayUtil.java @@ -81,8 +81,8 @@ public class WechatPayUtil { private static final String WECHAT_TRANSFER_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; // 企业付款 - // public static final String PAY_FH = "https://www.huafurenjia.cn/"; public static final String PAY_FH = "https://api.huafurenjia.cn/"; + // public static final String PAY_FH = "https://7c950773.r3.cpolar.top/"; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/YunXinPhoneUtilAPI.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/YunXinPhoneUtilAPI.java index 9fff46c..31b609d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/YunXinPhoneUtilAPI.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/YunXinPhoneUtilAPI.java @@ -2,6 +2,8 @@ package com.ruoyi.system.ControllerUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.service.IOrderService; import com.winnerlook.model.*; import com.winnerlook.util.Base64; import com.winnerlook.util.MD5Util; @@ -42,6 +44,7 @@ public class YunXinPhoneUtilAPI { // 回调地址常量(可通过set方法动态设置) private static String templateID = "404168"; + private static final IOrderService orderService= SpringUtils.getBean(IOrderService.class); /** * 设置AXB绑定的回调URL @@ -157,7 +160,7 @@ public class YunXinPhoneUtilAPI { * @return VoiceResponseResult 结果对象 * @throws Exception 异常 */ - public static VoiceResponseResult httpsPrivacyUnbind(String phoneA, String phoneB, String phone) throws Exception { + public static VoiceResponseResult httpsPrivacyUnbind(String phoneA, String phoneB, String phone,Long oid) throws Exception { VoiceResponseResult resultObj = new VoiceResponseResult(); String url = UNBIND_URL; try { @@ -175,7 +178,11 @@ public class YunXinPhoneUtilAPI { JSONObject rjson = JSONObject.parseObject(result); resultObj.setResult(rjson.getString("result")); resultObj.setMessage(rjson.getString("message")); - + System.out.println("[YunXinPhoneUtilAPI] 解绑执行结果: " + result); + //订单手机号码置空 + if("000000".equals(resultObj.getResult())) { + orderService.updateOrderPhone(oid); + } } catch (Exception e) { System.out.println("[YunXinPhoneUtilAPI] 解绑异常: " + e.getMessage()); throw e; @@ -190,8 +197,15 @@ public class YunXinPhoneUtilAPI { // 设置回调地址(如有需要) // setAxbCallbackUrl("http://your-callback-url.com/axb"); // setNotifyCallbackUrl("http://your-callback-url.com/notify"); - // 示例:解绑操作 - VoiceResponseResult res = httpsAxbTransfer("18339212639",3252L); - System.out.println("解绑结果:" + JSON.toJSONString(res)); + // httpsPrivacyBindAxb("15502984047","18339212639", "15202954234"); +// VoiceResponseResult resultObj= httpsPrivacyUnbind("18339212639", "15202954234","15502984047"); +// if("000000".equals(resultObj.getResult())) { +// +// } else { +// System.out.println("解绑失败"); +// } +// // 示例:解绑操作 +// VoiceResponseResult res = httpsAxbTransfer("18339212639",3252L); +// System.out.println("解绑结果:" + JSON.toJSONString(res)); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/GoodsOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/GoodsOrderMapper.java index be4fefb..9475f71 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/GoodsOrderMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/GoodsOrderMapper.java @@ -23,6 +23,9 @@ public interface GoodsOrderMapper public GoodsOrder selectGoodsOrderByorderId(String orderId); + public GoodsOrder selectGoodsOrderByMainOrderId(String orderId); + + public int selectCountGoodsOrderByUid(@Param("uid") Long uid, @Param("status") Long status); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IGoodsOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IGoodsOrderService.java index 4a7e0bb..c8a6819 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IGoodsOrderService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IGoodsOrderService.java @@ -26,7 +26,7 @@ public interface IGoodsOrderService * @return 商品订单集合 */ public List selectGoodsOrderList(GoodsOrder goodsOrder); - + public GoodsOrder selectGoodsOrderByMainOrderId(String orderId); public List selectGoodsOrdergrouBymAIDList(GoodsOrder goodsOrder); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GoodsOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GoodsOrderServiceImpl.java index 8ff8788..e12a6f4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GoodsOrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/GoodsOrderServiceImpl.java @@ -31,7 +31,9 @@ public class GoodsOrderServiceImpl implements IGoodsOrderService return goodsOrderMapper.selectGoodsOrderById(id); } - + public GoodsOrder selectGoodsOrderByMainOrderId(String orderId){ + return goodsOrderMapper.selectGoodsOrderByMainOrderId(orderId); + } public GoodsOrder selectGoodsOrderByorderId(String orderId){ return goodsOrderMapper.selectGoodsOrderByorderId(orderId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsersServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsersServiceImpl.java index 446ec73..7867255 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsersServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UsersServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; @@ -91,6 +92,42 @@ public class UsersServiceImpl implements IUsersService @Override public int insertUsers(Users users) { + if(users.getBalance()==null){ + users.setBalance(BigDecimal.ZERO); + } + if(users.getIntegral()==null){ + users.setIntegral(0L); + } + if(users.getTotalComm()==null){ + users.setTotalComm(BigDecimal.ZERO); + } + if(users.getTotalIntegral()==null){ + users.setTotalIntegral(0L); + } + if(users.getLevel()==null){ + users.setLevel(1); + } + if(users.getCommission()==null){ + users.setCommission(BigDecimal.ZERO); + } + if(users.getTotalComm()==null){ + users.setTotalComm(BigDecimal.ZERO); + } + if(users.getMargin()==null){ + users.setMargin(BigDecimal.ZERO); + } + if(users.getPropose()==null){ + users.setPropose(BigDecimal.ZERO); + } + if(users.getConsumption()==null){ + users.setConsumption(BigDecimal.ZERO); + } + if(users.getServicefee()==null){ + users.setServicefee(BigDecimal.ZERO); + } + if(users.getPropose()==null){ + users.setPropose(BigDecimal.ZERO); + } return usersMapper.insertUsers(users); } diff --git a/ruoyi-system/src/main/resources/mapper/system/GoodsOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/GoodsOrderMapper.xml index 3fd5255..e7ecc40 100644 --- a/ruoyi-system/src/main/resources/mapper/system/GoodsOrderMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/GoodsOrderMapper.xml @@ -203,6 +203,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where order_id = #{orderId} limit 1 + + + + UPDATE order_data SET user_phone=null,worker_phone=null,middle_phone=null WHERE id=#{id} + + + UPDATE order_data SET cartid=null WHERE id=#{id} + +