刘帅
2026-09-29 8a89ba02db5c19db669a5cf9bb7d443223bdfb71
会员管理及取消场地预约问题
3个文件已修改
33 ■■■■■ 已修改文件
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
@@ -61,7 +61,13 @@
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Vip vip = vipService.getById(id);
        if (vip == null) {
            throw new IllegalArgumentException("会员卡不存在: " + id);
        }
        model.addAttribute("vip",vip);
        // 编辑页的两个权益列表都会被模板遍历,即使会员卡尚未配置权益也必须提供空集合。
        model.addAttribute("couponList", new ArrayList<Coupon>());
        model.addAttribute("ticketList", new ArrayList<TicketDetailVO>());
        if (vip.getCouponJson() != null && !vip.getCouponJson().isEmpty()){
            String couponJson = vip.getCouponJson();
            // 转化为jsonArray
@@ -128,10 +134,6 @@
                model.addAttribute("couponList", new ArrayList<Coupon>());
            }
        }
            else{
                model.addAttribute("ticketList", new ArrayList<Coupon>());
            }
        if (vip.getTicketJson() != null && !vip.getTicketJson().isEmpty()){
            String ticketJson = vip.getTicketJson();
@@ -171,7 +173,12 @@
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Vip vip = vipService.getById(id);
        if (vip == null) {
            throw new IllegalArgumentException("会员卡不存在: " + id);
        }
        model.addAttribute("vip",vip);
        model.addAttribute("couponList", new ArrayList<Coupon>());
        model.addAttribute("ticketList", new ArrayList<TicketDetailVO>());
        if (vip.getCouponJson() != null && !vip.getCouponJson().isEmpty()){
            String couponJson = vip.getCouponJson();
            // 转化为jsonArray
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -13,6 +13,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.other.entity.*;
import com.dsh.other.enums.SiteBookingStatusEnum;
import com.dsh.other.feignclient.StoreClient;
import com.dsh.other.feignclient.account.AppUserClient;
import com.dsh.other.feignclient.account.model.AppUser;
@@ -1186,7 +1187,10 @@
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);// 退款单号
                // 运营商退款
                payMoneyUtil.weixinRefundV3(smidVx, code, siteBooking.getPayOrderNo(), siteBooking.getPayMoney().toString(), "/base/site/cancelMySiteCallback1");
                ResultUtil refundResult = payMoneyUtil.weixinRefundV3(smidVx, code, siteBooking.getPayOrderNo(), siteBooking.getPayMoney().toString(), "/base/site/cancelMySiteCallback1");
                if (!ResultUtil.SUCCESS.equals(refundResult.getCode())) {
                    return refundResult;
                }
            } else {
                Map<String, String> map = payMoneyUtil.wxRefund(siteBooking.getPayOrderNo(), siteBooking.getOrderNo(), siteBooking.getPayMoney().toString(),
                        siteBooking.getPayMoney().toString(), "/base/site/cancelMySiteCallback");
@@ -1197,9 +1201,6 @@
                if (!"SUCCESS".equals(return_code)) {
                    return ResultUtil.error(map.get("return_msg"));
                }
                siteBooking.setCancelUserId(uid);
                siteBookingService.updateById(siteBooking);
                TBackRecord tBackRecord = new TBackRecord();
                tBackRecord.setMoney(siteBooking.getPayMoney());
                tBackRecord.setUserId(siteBooking.getAppUserId());
@@ -1207,6 +1208,13 @@
                backRecordService.save(tBackRecord);
            }
            // 退款请求已受理即结束该预约,不能继续在“待核销”列表中展示。
            // 微信退款回调用于补充退款流水号及恢复优惠券,重复更新状态不会影响结果。
            siteBooking.setStatus(SiteBookingStatusEnum.CANCELED.getCode());
            siteBooking.setCancelUserId(uid);
            siteBooking.setCancelTime(new Date());
            siteBookingService.updateById(siteBooking);
        }
        if (siteBooking.getPayType() == 2) {//支付宝
cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -598,8 +598,8 @@
            // TODO: 请求成功,继续业务逻辑
            System.out.println(response);
        } catch (WXPayUtility.ApiException e) {
            // TODO: 请求失败,根据状态码执行不同的逻辑
            e.printStackTrace();
            return ResultUtil.error("微信退款申请失败");
        }
        return ResultUtil.success();
    }