2025008071805

This commit is contained in:
张潘 2025-08-13 18:20:22 +08:00
parent 3ad7422f9e
commit 90268bd97b
10 changed files with 879 additions and 426 deletions

View File

@ -235,6 +235,10 @@ public class UsersPayBeforController extends BaseController
public AjaxResult unifiedRefund(@RequestBody Map<String, Object> params)
{
try {
// 添加调试日志
System.out.println("=== 统一退款接口开始 ===");
System.out.println("接收到的参数: " + params);
String orderId = params.get("orderId") == null ? null : params.get("orderId").toString();
BigDecimal wechatRefund = params.get("wechatRefund") == null ? BigDecimal.ZERO : new BigDecimal(params.get("wechatRefund").toString());
BigDecimal balanceRefund = params.get("balanceRefund") == null ? BigDecimal.ZERO : new BigDecimal(params.get("balanceRefund").toString());
@ -244,6 +248,17 @@ public class UsersPayBeforController extends BaseController
BigDecimal couponRefund = params.get("couponRefund") == null ? BigDecimal.ZERO : new BigDecimal(params.get("couponRefund").toString());
String refundRemark = params.get("refundRemark") == null ? "" : params.get("refundRemark").toString();
// 添加参数解析后的调试日志
System.out.println("解析后的参数:");
System.out.println(" orderId: " + orderId);
System.out.println(" wechatRefund: " + wechatRefund);
System.out.println(" balanceRefund: " + balanceRefund);
System.out.println(" shoppingGoldRefund: " + shoppingGoldRefund);
System.out.println(" serviceGoldRefund: " + serviceGoldRefund);
System.out.println(" memberDiscountRefund: " + memberDiscountRefund);
System.out.println(" couponRefund: " + couponRefund);
System.out.println(" refundRemark: " + refundRemark);
if (orderId == null || orderId.trim().isEmpty()) {
return error("订单ID不能为空");
}
@ -251,6 +266,8 @@ public class UsersPayBeforController extends BaseController
BigDecimal totalRefund = wechatRefund.add(balanceRefund).add(shoppingGoldRefund)
.add(serviceGoldRefund).add(memberDiscountRefund).add(couponRefund);
System.out.println("总退款金额: " + totalRefund);
if (totalRefund.compareTo(BigDecimal.ZERO) <= 0) {
return error("退款金额必须大于0");
}
@ -378,6 +395,13 @@ public class UsersPayBeforController extends BaseController
orderLogService.insertOrderLog(orderLog);
// 更新支付记录状态和退款金额
// 创建参数副本避免修改原始参数
BigDecimal remainingWechatRefund = wechatRefund;
BigDecimal remainingBalanceRefund = balanceRefund;
BigDecimal remainingShoppingGoldRefund = shoppingGoldRefund;
BigDecimal remainingServiceGoldRefund = serviceGoldRefund;
BigDecimal remainingCouponRefund = couponRefund;
for (UsersPayBefor record : payRecords) {
BigDecimal currentRefunded = record.getReturnmoney() != null ? record.getReturnmoney() : BigDecimal.ZERO;
@ -386,42 +410,42 @@ public class UsersPayBeforController extends BaseController
// 根据该记录的支付方式分配退款金额
if (record.getWxmoney() != null && record.getWxmoney().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal wxRefund = wechatRefund.min(record.getWxmoney().subtract(currentRefunded));
BigDecimal wxRefund = remainingWechatRefund.min(record.getWxmoney().subtract(currentRefunded));
if (wxRefund.compareTo(BigDecimal.ZERO) > 0) {
recordRefundAmount = recordRefundAmount.add(wxRefund);
wechatRefund = wechatRefund.subtract(wxRefund);
remainingWechatRefund = remainingWechatRefund.subtract(wxRefund);
}
}
if (record.getYemoney() != null && record.getYemoney().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal yeRefund = balanceRefund.min(record.getYemoney().subtract(currentRefunded));
BigDecimal yeRefund = remainingBalanceRefund.min(record.getYemoney().subtract(currentRefunded));
if (yeRefund.compareTo(BigDecimal.ZERO) > 0) {
recordRefundAmount = recordRefundAmount.add(yeRefund);
balanceRefund = balanceRefund.subtract(yeRefund);
remainingBalanceRefund = remainingBalanceRefund.subtract(yeRefund);
}
}
if (record.getShopmoney() != null && record.getShopmoney().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal shopRefund = shoppingGoldRefund.min(record.getShopmoney().subtract(currentRefunded));
BigDecimal shopRefund = remainingShoppingGoldRefund.min(record.getShopmoney().subtract(currentRefunded));
if (shopRefund.compareTo(BigDecimal.ZERO) > 0) {
recordRefundAmount = recordRefundAmount.add(shopRefund);
shoppingGoldRefund = shoppingGoldRefund.subtract(shopRefund);
remainingShoppingGoldRefund = remainingShoppingGoldRefund.subtract(shopRefund);
}
}
if (record.getServicemoney() != null && record.getServicemoney().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal serviceRefund = serviceGoldRefund.min(record.getServicemoney().subtract(currentRefunded));
BigDecimal serviceRefund = remainingServiceGoldRefund.min(record.getServicemoney().subtract(currentRefunded));
if (serviceRefund.compareTo(BigDecimal.ZERO) > 0) {
recordRefundAmount = recordRefundAmount.add(serviceRefund);
serviceGoldRefund = serviceGoldRefund.subtract(serviceRefund);
remainingServiceGoldRefund = remainingServiceGoldRefund.subtract(serviceRefund);
}
}
if (record.getCouponmoney() != null && record.getCouponmoney().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal couponRefundAmount = couponRefund.min(record.getCouponmoney().subtract(currentRefunded));
BigDecimal couponRefundAmount = remainingCouponRefund.min(record.getCouponmoney().subtract(currentRefunded));
if (couponRefundAmount.compareTo(BigDecimal.ZERO) > 0) {
recordRefundAmount = recordRefundAmount.add(couponRefundAmount);
couponRefund = couponRefund.subtract(couponRefundAmount);
remainingCouponRefund = remainingCouponRefund.subtract(couponRefundAmount);
}
}
@ -442,6 +466,7 @@ public class UsersPayBeforController extends BaseController
}
// 调用退款工具方法实现真实的业务退款与金额变动
// 使用原始参数而不是被修改的副本
Map<String, Object> refundResult = refundUtil.processUnifiedRefund(
orderId, wechatRefund, balanceRefund, shoppingGoldRefund,
serviceGoldRefund, memberDiscountRefund, couponRefund, refundRemark

View File

@ -130,7 +130,7 @@ public class CartOrderUtil {
//一口价金额大于0的时候进行支付
if (order.getTotalPrice().compareTo(BigDecimal.ZERO)>0){
String payBeforeId = payBeforeUtil.createPayBefore(user, itemPrice, order.getOrderId(), null, order.getProductId(), cart.getOrdertype(), order.getSku(), null, null, null, null,1L, null, null);
String payBeforeId = payBeforeUtil.createPayBefore(user, itemPrice, order.getOrderId(), null, order.getProductId(), cart.getOrdertype(), order.getSku(), null, null, null, null,1L, null, null,BigDecimal.ZERO);
}else{
DispatchUtil.dispatchOrder(order.getId());
}
@ -182,6 +182,7 @@ public class CartOrderUtil {
goodsOrder.setProductId(serviceGoods.getId());
goodsOrder.setProductName(serviceGoods.getTitle());
goodsOrder.setNum((long) num);
goodsOrder.setPostage(serviceGoods.getPostage());
goodsOrder.setSku(sku);
goodsOrder.setIsself(isself);
goodsOrder.setIsforservice(serviceGoods.getIsforservice());
@ -274,6 +275,7 @@ public class CartOrderUtil {
goodsOrder.setGoodPrice(serviceGoods.getPrice());
goodsOrder.setPayPrice(itemPrice);
goodsOrder.setStatus(1L); // 待支付
goodsOrder.setPostage(serviceGoods.getPostage());
goodsOrder.setMainOrderId(maincorid);
//goodsOrder.setIsmany(1L);
int insertResult = goodsOrderService.insertGoodsOrder(goodsOrder);

View File

@ -2958,12 +2958,16 @@ public class DispatchUtil {
orderLognew.setWorkerLogId(worker.getId());
orderLogService.insertOrderLog(orderLognew);
//绑定虚拟号码
//微信推送
ServiceGoods serviceGoods = serviceGoodsService.selectServiceGoodsById(order.getProductId());
//给师傅派单的时候的推送
WXsendMsgUtil.sendMsgForWorkerInfo(worker.getOpenid(), order, serviceGoods);
Map<String, Object> map= OrderBindWorkerUtil.getOrderBindWorker(order.getId());
YunXinPhoneUtilAPI.httpsAxbTransfer(order.getWorkerPhone());
// if (map.get("code").equals("200")) {
// //电话通知
// YunXinPhoneUtilAPI.httpsAxbTransfer(order.getWorkerPhone());
// }
if (map.get("code").equals("200")) {
//电话通知
YunXinPhoneUtilAPI.httpsAxbTransfer(order.getWorkerPhone());
}
return worker;

View File

@ -187,7 +187,7 @@ public class HomeUtril {
*
* @return 分类树形列表数据只包含title和icon
*/
public Map<String, Object> getServiceCategories() {
public Map<String, Object> getServiceCategories(String city) {
try {
Map<String, Object> result = new HashMap<>();
@ -195,6 +195,10 @@ public class HomeUtril {
ServiceCate serviceCateQuery = new ServiceCate();
serviceCateQuery.setStatus(1L);
serviceCateQuery.setType(1L);
if (StringUtils.isNotBlank(city)){
serviceCateQuery.setCity(city);
}
List<ServiceCate> allCategoryList = serviceCateService.selectServiceCateList(serviceCateQuery);
// 2. 分离一级分类和二级分类
@ -303,11 +307,14 @@ public class HomeUtril {
* 查询type=1且isgroup=1的服务商品前4个
* 返回icon标题pricegroupprice字段
*/
public Map<String, Object> getGroupList() {
public Map<String, Object> getGroupList(String city) {
try {
Map<String, Object> result = new HashMap<>();
// 构建查询条件
ServiceGoods queryGoods = new ServiceGoods();
if (StringUtils.isNotBlank(city)){
queryGoods.setCity(city);
}
queryGoods.setType(1); // type=1
queryGoods.setIsgroup(1); // isgroup=1
queryGoods.setStatus("1"); // 只查询启用状态的商品

View File

@ -3,6 +3,7 @@ package com.ruoyi.system.ControllerUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.AmapUtils;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.service.*;
@ -629,7 +630,7 @@ public class OrderUtil {
* @param user 用户实体
* @return 新建的订单对象仅拼团或处理结果Map
*/
public static Object prepayCallback(UsersPayBefor payBefor, Users user) {
public static Object prepayCallback(UsersPayBefor payBefor, Users user) throws Exception {
System.out.println("=== prepayCallback 方法开始 ===");
System.out.println("输入参数 - payBefor: " + (payBefor != null ? payBefor.toString() : "null"));
System.out.println("输入参数 - user: " + (user != null ? user.toString() : "null"));
@ -652,10 +653,14 @@ public class OrderUtil {
if (gorders != null && !gorders.isEmpty()){
for (GoodsOrder g: gorders){
g.setStatus(2L);
g.setPayTime(DateUtils.getNowDate());
goodsOrderService.updateGoodsOrder(g);
// BenefitPointsUtil.processBenefitPoints(g.getId(),g.getTotalPrice(),"2");
}
}
//String openid, String orderid,String price,String Address, String title,String reamk
//微信发送消息
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),gorder.getAddress(),"商品支付","商品支付成功");
// updateInventoryAndSales(gorder.getOrderId(), 2);
//处理服务金
@ -674,6 +679,7 @@ public class OrderUtil {
for (GoodsOrder goodsOrder : orderslist){
System.out.println("更新商品订单 - ID: " + goodsOrder.getId() + ", 原状态: " + goodsOrder.getStatus());
goodsOrder.setStatus(2L);
goodsOrder.setPayTime(DateUtils.getNowDate());
goodsOrder.setTransactionId(payBefor.getPaycode());
int updateResult = goodsOrderService.updateGoodsOrder(goodsOrder);
@ -683,6 +689,9 @@ public class OrderUtil {
System.out.println("未找到相关商品订单");
}
System.out.println("拼团商品订单处理完成返回orderid: " + payBefor.getOrderid());
//微信发送消息给客户
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),gorder.getAddress(),"商品支付","商品支付成功");
return payBefor.getOrderid();
}
@ -691,8 +700,11 @@ public class OrderUtil {
GoodsOrder order = goodsOrderService.selectGoodsOrderByorderId(payBefor.getOrderid());
if (order != null) {
order.setStatus(2L);
order.setPayTime(DateUtils.getNowDate());
order.setTransactionId(payBefor.getPaycode());
//BenefitPointsUtil.processBenefitPoints(order.getId(),order.getTotalPrice(),"2");
//微信发送消息
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"商品支付","商品支付成功");
int updateResult = goodsOrderService.updateGoodsOrder(order);
}
return null;
@ -723,7 +735,13 @@ public class OrderUtil {
//
// }
// }
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"上门费支付","上门费支付成功");
//微信发送消息给师傅
Users master = usersService.selectUsersById(order.getWorkerId());
WXsendMsgUtil.sendUserPayDoorMoneyForWorker(master.getOpenid(),order,"上门费支付成功");
}
//微信发送消息
return 1;
}
if (type == 8) {
@ -740,6 +758,10 @@ public class OrderUtil {
order.setPayPrice(order.getPayPrice().add(payBefor.getAllmoney()));
orderService.updateOrder(order);
}
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"定金支付","定金支付成功");
//微信发送消息给师傅
Users master = usersService.selectUsersById(order.getWorkerId());
WXsendMsgUtil.sendUserPayDoorMoneyForWorker(master.getOpenid(),order,"定金支付成功");
ISTOPAYSIZE(payBefor.getLastorderid());
}
}
@ -773,6 +795,10 @@ public class OrderUtil {
if (updateResult > 0){
ISTOPAYSIZE(payBefor.getLastorderid());
}
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"尾款支付","尾款支付成功");
//微信发送消息给师傅
Users master = usersService.selectUsersById(order.getWorkerId());
WXsendMsgUtil.sendUserPayDoorMoneyForWorker(master.getOpenid(),order,"尾款支付成功");
}
return 1;
}
@ -788,6 +814,10 @@ public class OrderUtil {
if (order != null){
order.setPayPrice(order.getPayPrice().add(payBefor.getAllmoney()));
orderService.updateOrder(order);
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"差价支付","差价支付成功");
//微信发送消息给师傅
Users master = usersService.selectUsersById(order.getWorkerId());
WXsendMsgUtil.sendUserPayDoorMoneyForWorker(master.getOpenid(),order,"差价支付成功");
}
ISTOPAYSIZE(payBefor.getLastorderid());
}
@ -858,6 +888,8 @@ public class OrderUtil {
System.out.println("未找到报价记录,处理失败");
}
System.out.println("需求报价订单处理完成返回order: " + (order != null ? order.getOrderId() : "null"));
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"报价支付","师傅报价支付成功");
// updateInventoryAndSales(order.getOrderId(), 1);
//dispatchOrderCheck(order);
return order;
@ -879,6 +911,8 @@ public class OrderUtil {
userUseSecondaryCard.setStatus(1L);
int cardUpdateResult = userUseSecondaryCardService.updateUserUseSecondaryCard(userUseSecondaryCard);
System.out.println("次卡状态更新结果: " + cardUpdateResult);
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),"","次卡支付","次卡支付成功");
}
return null;
}
@ -927,6 +961,8 @@ public class OrderUtil {
// }
// }
// }
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"秒杀订单支付","秒杀订单支付成功");
return order;
} else {
System.out.println("未找到订单");
@ -1076,6 +1112,8 @@ public class OrderUtil {
System.out.println("拼团订单处理完成返回order: " + order.getOrderId());
//派单效验
dispatchOrderCheck(order);
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"拼团订单支付","拼团订单支付成功");
//库存及销量变更
// updateInventoryAndSales(ptorderid, 1);
return order;
@ -1114,6 +1152,8 @@ public class OrderUtil {
order.setStatus(1L); // 1=待预约
int orderUpdateResult = orderService.updateOrder(order);
dispatchOrderCheck(order);
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"次卡下单","次卡下单成功");
return order;
}
System.out.println("次卡订单处理完成,返回: " + (userUseSecondaryCard != null ? userUseSecondaryCard.getId() : "null"));
@ -1146,6 +1186,8 @@ public class OrderUtil {
System.out.println("订单状态更新结果: " + orderUpdateResult);
System.out.println("普通订单处理完成返回order: " + order.getOrderId());
dispatchOrderCheck(order);
WXsendMsgUtil.sendUserForMoneySuccess(user.getOpenid(),payBefor.getOrderid(),payBefor.getAllmoney().toString(),order.getAddress(),"预约下单","预约下单成功");
return order;
} else {
System.out.println("未找到订单");

View File

@ -50,7 +50,7 @@ public class PayBeforeUtil {
*/
public String createPayBefore(Users user, BigDecimal amount, String orderId, Long oid,
Long serviceId, Long orderType, String sku, String grouporderid,
Long addressid, String maketime, String attachments,Long servicetype,Long baojiaid,String lastorderid) {
Long addressid, String maketime, String attachments,Long servicetype,Long baojiaid,String lastorderid,BigDecimal youfei) {
try {
// 计算会员优惠
BigDecimal memberMoney = BigDecimal.ZERO;
@ -90,6 +90,7 @@ public class PayBeforeUtil {
payBefore.setUid(user.getId());
payBefore.setOrderid(orderId);
payBefore.setOid(oid);
payBefore.setPostage(youfei);
payBefore.setPaycode(GenerateCustomCode.generCreateOrder("PAY"));
payBefore.setAllmoney(amount); // 原始总金额
// 微信支付金额 = 总金额 - 会员优惠 - 服务金抵扣 - 购物金抵扣
@ -224,7 +225,7 @@ public class PayBeforeUtil {
* @return 预支付记录ID失败返回null
*/
public String createPayBefore(Users user, BigDecimal amount) {
return createPayBefore(user, amount, null, null, 0L, 0L, null, null, null, null, null,null, null,null);
return createPayBefore(user, amount, null, null, 0L, 0L, null, null, null, null, null,null, null,null, null);
}
/**
@ -240,7 +241,7 @@ public class PayBeforeUtil {
*/
public String createPayBefore(Users user, BigDecimal amount, String orderId, Long oid,
Long serviceId, Long orderType) {
return createPayBefore(user, amount, orderId, oid, serviceId, orderType, null, null, null, null, null,null, null, null);
return createPayBefore(user, amount, orderId, oid, serviceId, orderType, null, null, null, null, null,null, null, null, null);
}
/**
@ -407,7 +408,7 @@ public class PayBeforeUtil {
orderLog.getId(), // oid
null, // serviceId
8L, // type=8 定金
null, null, null, null, null, 1L, null, lastorderid
null, null, null, null, null, 1L, null, lastorderid, null
);
}
// 金额一致无需操作
@ -420,7 +421,7 @@ public class PayBeforeUtil {
orderLog.getId(), // oid
null, // serviceId
8L, // type=8 定金
null, null, null, null, null, 1L, null, lastorderid
null, null, null, null, null, 1L, null, lastorderid, null
);
}
} else {
@ -479,7 +480,7 @@ public class PayBeforeUtil {
orderLog.getId(), // oid
null, // serviceId
9L, // type=9 尾款
null, null, null, null, null, 1L, null, lastorderid
null, null, null, null, null, 1L, null, lastorderid, null
);
}
// 金额一致无需操作
@ -492,7 +493,7 @@ public class PayBeforeUtil {
orderLog.getId(), // oid
null, // serviceId
9L, // type=9 尾款
null, null, null, null, null, 1L, null, lastorderid
null, null, null, null, null, 1L, null, lastorderid, null
);
}
} else {

View File

@ -297,7 +297,7 @@ public class WXsendMsgUtil {
return PublicPush(wxMssVo);
}
//用户支付上门费后向师傅进行推送
public static String sendUserPayDoorMoneyForWorker(String openid, Order order, ServiceGoods serviceGoods) throws Exception {
public static String sendUserPayDoorMoneyForWorker(String openid, Order order, String name) throws Exception {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//拼接推送的模版
WxMssVo wxMssVo = new WxMssVo();
@ -309,35 +309,63 @@ public class WXsendMsgUtil {
// mark="暂无备注";
// }
Map<String, TemplateData> m = new HashMap<>(3);
m.put("thing15", new TemplateData(serviceGoods.getTitle()));
m.put("thing15", new TemplateData(name));
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("用户已支付上门"));
m.put("thing9", new TemplateData("用户已支付"));
System.out.println("师傅设置上门费的时候的推送:" + m.toString());
wxMssVo.setData(m);
return PublicPush(wxMssVo);
}
// //商城订单变化后给客户发送的通知
// public static String sendUserGoodsOrderStatusForUser(String openid, String orderid, String name) 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/serveSF/home/details?id="+orderid);
//// String mark = order.getMark();
//// if (StringUtils.isEmpty( mark)){
//// mark="暂无备注";
//// }
// Map<String, TemplateData> m = new HashMap<>(3);
// m.put("thing15", new TemplateData(name));
// m.put("character_string5", new TemplateData(orderid));
// m.put("date3", new TemplateData(AppletControllerUtil.timeStamp2Date(order)));
// m.put("thing1", new TemplateData(order.getAddress()));
// m.put("thing9", new TemplateData("用户已支付费用"));
//
// System.out.println("师傅设置上门费的时候的推送:" + m.toString());
// wxMssVo.setData(m);
// return PublicPush(wxMssVo);
// }
//客户支付成功的消息推送
public static String sendUserForMoneySuccess(String openid, GoodsOrder order, ServiceGoods serviceGoods) throws Exception {
public static String sendUserForMoneySuccess(String openid, String orderid,String price,String Address, 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(PAY_GOODS);//订阅消息模板id
wxMssVo.setPage("/pages/mine/shopOrder/index");
String mark = order.getMark();
if (StringUtils.isEmpty( mark)){
mark="暂无备注";
}
// String mark = order.getMark();
// if (StringUtils.isEmpty( mark)){
// mark="暂无备注";
// }
Map<String, TemplateData> m = new HashMap<>(3);
m.put("thing11", new TemplateData(serviceGoods.getTitle()));
m.put("character_string3", new TemplateData(order.getOrderId()));
m.put("amount27",new TemplateData(String.valueOf(order.getTotalPrice())));
m.put("thing1", new TemplateData(order.getAddress()));
m.put("thing9", new TemplateData("师傅已经已经接单"));
m.put("thing11", new TemplateData(title));
m.put("character_string3", new TemplateData(orderid));
m.put("amount27",new TemplateData(price));
m.put("thing1", new TemplateData(Address));
m.put("thing9", new TemplateData(reamk));
System.out.println("师傅设置上门费的时候的推送:" + m.toString());
wxMssVo.setData(m);

View File

@ -81,7 +81,7 @@ 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://403e667e.r3.cpolar.top";
public static final String PAY_FH = "https://403e667e.r3.cpolar.top/";
/**
* 其他配置常量
*/

View File

@ -834,10 +834,26 @@ export default {
},
calculateTotalRefund() {
const total = (parseFloat(this.refundForm.wechatRefund) || 0) + (parseFloat(this.refundForm.balanceRefund) || 0) +
(parseFloat(this.refundForm.shoppingGoldRefund) || 0) + (parseFloat(this.refundForm.serviceGoldRefund) || 0) +
(parseFloat(this.refundForm.couponRefund === '1' ? this.actualPaymentData.couponmoney : 0) || 0);
console.log('=== 开始计算总退款金额 ===');
console.log('refundForm:', this.refundForm);
const wechatAmount = parseFloat(this.refundForm.wechatRefund) || 0;
const balanceAmount = parseFloat(this.refundForm.balanceRefund) || 0;
const shoppingAmount = parseFloat(this.refundForm.shoppingGoldRefund) || 0;
const serviceAmount = parseFloat(this.refundForm.serviceGoldRefund) || 0;
const couponAmount = parseFloat(this.refundForm.couponRefund === '1' ? this.actualPaymentData.couponmoney : 0) || 0;
console.log('各项金额:');
console.log(' 微信退款:', wechatAmount);
console.log(' 余额退款:', balanceAmount);
console.log(' 购物金退款:', shoppingAmount);
console.log(' 服务金退款:', serviceAmount);
console.log(' 优惠券退款:', couponAmount);
const total = wechatAmount + balanceAmount + shoppingAmount + serviceAmount + couponAmount;
this.totalRefundAmount = total.toFixed(2);
console.log('总退款金额:', this.totalRefundAmount);
},
validateRefundAmount() {
@ -863,6 +879,11 @@ export default {
this.confirmLoading = true;
try {
//
console.log('=== 开始确认退款 ===');
console.log('refundForm:', this.refundForm);
console.log('actualPaymentData:', this.actualPaymentData);
const params = {
orderId: this.orderId,
wechatRefund: this.refundForm.wechatRefund || "0",
@ -873,8 +894,20 @@ export default {
refundRemark: this.refundForm.refundRemark
};
console.log('构建的参数:', params);
console.log('参数类型检查:');
console.log(' orderId:', typeof params.orderId, params.orderId);
console.log(' wechatRefund:', typeof params.wechatRefund, params.wechatRefund);
console.log(' balanceRefund:', typeof params.balanceRefund, params.balanceRefund);
console.log(' shoppingGoldRefund:', typeof params.shoppingGoldRefund, params.shoppingGoldRefund);
console.log(' serviceGoldRefund:', typeof params.serviceGoldRefund, params.serviceGoldRefund);
console.log(' couponRefund:', typeof params.couponRefund, params.couponRefund);
console.log(' refundRemark:', typeof params.refundRemark, params.refundRemark);
const response = await unifiedRefund(params);
console.log('退款接口响应:', response);
if (response.code === 200) {
this.$message.success("退款成功");
this.$emit("success", response.data);