From f2f739e71b2da872100fe2f559be29731b9fd609 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 30 Jun 2026 16:37:52 +0800
Subject: [PATCH] feat(system): 添加付款链接配置功能

---
 src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java |   10 +++++
 src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java  |   10 +++++
 src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java                   |   15 +++++++
 src/main/resources/templates/febs/views/modules/system/payLink.html     |   63 +++++++++++++++++++++++++++++++
 4 files changed, 98 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
index 76e08b9..8bf59a7 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
@@ -136,6 +136,16 @@
         return new FebsResponse().success().message("保存成功");
     }
 
+    @PostMapping(value = "/payLink")
+    @ControllerEndpoint(operation = "保存付款链接配置")
+    public FebsResponse payLink(PayLinkDto dto) {
+        if (StrUtil.isBlank(dto.getXtLink())) {
+            return new FebsResponse().fail().message("付款链接不能为空");
+        }
+        commonService.addDataDic("PAY_LINK", "XT_LINK", dto.getXtLink(), "付款链接", false);
+        return new FebsResponse().success().message("保存成功");
+    }
+
     @GetMapping(value = "/moneyChangeList")
     public FebsResponse moneyChangeList() {
         List<DataDictionaryCustom> list = dataDictionaryCustomMapper.selectDicByType("MONEY_CHANGE");
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
index 355fab3..d94035d 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -188,4 +188,14 @@
     public String moneyChange() {
         return FebsUtil.view("modules/system/moneyChange");
     }
+
+    @GetMapping("payLink")
+    @RequiresPermissions("payLink:update")
+    public String payLink(Model model) {
+        PayLinkDto dto = new PayLinkDto();
+        DataDictionaryCustom xtLink = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("PAY_LINK", "XT_LINK");
+        if (xtLink != null) dto.setXtLink(xtLink.getValue());
+        model.addAttribute("payLink", dto);
+        return FebsUtil.view("modules/system/payLink");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java b/src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java
new file mode 100644
index 0000000..6d6a71a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java
@@ -0,0 +1,15 @@
+package cc.mrbird.febs.mall.dto;
+
+import lombok.Data;
+
+/**
+ * 付款链接配置 DTO
+ * 对应 data_dictionary_custom 表 type='PAY_LINK'
+ *
+ * @author auto-generated
+ */
+@Data
+public class PayLinkDto {
+    /** 付款链接 */
+    private String xtLink;
+}
diff --git a/src/main/resources/templates/febs/views/modules/system/payLink.html b/src/main/resources/templates/febs/views/modules/system/payLink.html
new file mode 100644
index 0000000..bd1623f
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/system/payLink.html
@@ -0,0 +1,63 @@
+<div class="layui-fluid layui-anim febs-anim" id="pay-link" lay-title="付款链接设置">
+    <div class="layui-row layui-col-space8 febs-container">
+        <form class="layui-form" action="" lay-filter="pay-link-form">
+            <div class="layui-card">
+                <div class="layui-card-header">付款链接配置</div>
+                <div class="layui-card-body">
+                    <div class="layui-form-item">
+                        <label class="layui-form-label required">付款链接:</label>
+                        <div class="layui-input-block">
+                            <input type="text" name="xtLink" data-th-id="${payLink.xtLink}"
+                                   lay-verify="required" autocomplete="off" class="layui-input" placeholder="请输入付款链接地址">
+                        </div>
+                        <div class="layui-word-aux" style="margin-left: 150px;">用户点击付款时跳转的链接地址,必须以 http(s):// 开头</div>
+                    </div>
+                </div>
+
+                <div class="layui-card-footer">
+                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="pay-link-form-submit" id="submit">保存</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+<style>
+    .layui-form-label {
+        width: 120px;
+    }
+
+    .layui-form-item .layui-input-block {
+        margin-left: 150px;
+    }
+
+    .layui-table-form .layui-form-item {
+        margin-bottom: 20px !important;
+    }
+</style>
+<script data-th-inline="javascript" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            payLink = [[${payLink}]],
+            validate = layui.validate,
+            $view = $('#pay-link');
+
+        form.verify(validate);
+
+        if (payLink) {
+            form.val("pay-link-form", {
+                "xtLink": payLink.xtLink
+            });
+        }
+
+        form.render();
+
+        form.on('submit(pay-link-form-submit)', function (data) {
+            febs.post(ctx + 'admin/system/payLink', data.field, function (res) {
+                febs.alert.success('保存成功');
+            });
+            return false;
+        });
+    });
+</script>

--
Gitblit v1.9.1