Administrator
11 hours ago f2f739e71b2da872100fe2f559be29731b9fd609
feat(system): 添加付款链接配置功能

- 在 AdminSystemController 中新增 payLink 接口用于保存付款链接配置
- 创建 PayLinkDto 数据传输对象用于付款链接配置
- 新增 payLink.html 页面实现付款链接配置界面
- 在 ViewSystemController 中添加 payLink 页面访问接口
- 实现付款链接的前端表单验证和提交功能
- 添加付款链接不能为空的后端校验逻辑
2 files added
2 files modified
98 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java 15 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/payLink.html 63 ●●●●● patch | view | raw | blame | history
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");
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");
    }
}
src/main/java/cc/mrbird/febs/mall/dto/PayLinkDto.java
New file
@@ -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;
}
src/main/resources/templates/febs/views/modules/system/payLink.html
New file
@@ -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>