Administrator
2025-05-14 0c2c0ea39143807ced01506d4a8282a5fca73cfe
feat(mall): 添加推广中心功能

- 在 AdminSaleLevelAddDto 和 AdminSaleLevelUpdateDto 中添加 headerPng 字段
- 在 ApiLevelListInfoVo 中添加 headerPng 字段并移除其他未使用的字段
- 在 HappySaleLevel 实体中添加 headerPng 字段
- 更新相关模板文件,支持推广中心图片上传和展示
8 files modified
128 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java 14 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/levelView/levelList.html 4 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/levelView/saleAdd.html 38 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/levelView/saleInfo.html 42 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/levelView/saleList.html 24 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java
@@ -14,4 +14,6 @@
    private BigDecimal returnPercent;
    private String content;
    private String iconPng;
    private String headerPng;
}
src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java
@@ -15,4 +15,6 @@
    private BigDecimal returnPercent;
    private String content;
    private String iconPng;
    private String headerPng;
}
src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java
@@ -19,6 +19,7 @@
     `return_percent` decimal(20,2) DEFAULT NULL COMMENT '等级返佣比例',
     `content` text COMMENT '规则说明',
     `icon_png` varchar(200) DEFAULT NULL COMMENT '等级图标',
     `header_png` varchar(200) DEFAULT NULL COMMENT '分销头部图片',
     */
@@ -31,5 +32,6 @@
    private BigDecimal returnPercent;
    private String content;
    private String iconPng;
    private String headerPng;
}
src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "ApiLevelListInfoVo", description = "我的推广")
public class ApiLevelListInfoVo {
@@ -17,8 +19,16 @@
    private Integer code;
    @ApiModelProperty(value = "规则说明")
    private String content;
    @ApiModelProperty(value = "等级图片")
    private String iconPng;
    @ApiModelProperty(value = "推广中心")
    private String headerPng;
//    @ApiModelProperty(value = "直推人数")
//    private Integer directCnt;
//    @ApiModelProperty(value = "团队人数")
//    private Integer teamCnt;
//    @ApiModelProperty(value = "团队业绩")
//    private BigDecimal teamAmount;
//    @ApiModelProperty(value = "返佣比例:团队成员下单,点击确认收货后,返还支付金额乘以返佣比例=团队业绩")
//    private BigDecimal returnPercent;
}
src/main/resources/templates/febs/views/modules/levelView/levelList.html
@@ -120,7 +120,7 @@
                //页面层
                layer.open({
                    type: 1,
                    title: "会员图标",
                    title: "会员中心",
                    skin: 'layui-layer-rim', //加上边框
                    area: ['100%', '100%'], //宽高
                    shadeClose: true, //开启遮罩关闭
@@ -182,7 +182,7 @@
                                '</a>';
                        },
                    minWidth: 150,align: 'center'},
                    {field: 'iconPng',title: '会员中心',
                    {field: 'headerPng',title: '会员中心',
                        templet: function (d) {
                            return '<a lay-event="seeHeaderPng">' +
                                '<img id="seeHeaderPng' + d.id + '" src="' + d.headerPng +
src/main/resources/templates/febs/views/modules/levelView/saleAdd.html
@@ -40,6 +40,28 @@
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-row layui-col-space10 layui-form-item">
                                    <div class="layui-col-lg6">
                                        <label class="layui-form-label febs-form-item-require">推广中心:</label>
                                        <div class="layui-input-block">
                                            <div class="layui-upload">
                                                <button type="button" class="layui-btn layui-btn-normal layui-btn" id="headerPngUploadButton">上传</button>
                                                <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
                                                    <div class="layui-upload-list" id="headerPngUpload"></div>
                                                </blockquote>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-row layui-col-space10 layui-form-item febs-hide">
                                    <div class="layui-col-lg6">
                                        <label class="layui-form-label">推广中心图标链接:</label>
                                        <div class="layui-input-block">
                                            <input type="text" id="headerPng" lay-verify="required" name="headerPng" autocomplete="off" class="layui-input" readonly>
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-form-item">
                                    <label class="layui-form-label febs-form-item-require">返佣比例:</label>
                                    <div class="layui-form-mid">团队成员下单,点击确认收货后,返还支付金额乘以</div>
@@ -170,6 +192,22 @@
                $("#iconPng").val(res.data.src);
            }
        });
        //图片上传
        upload.render({
            elem: '#headerPngUploadButton'
            ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
            ,accept: 'file' //普通文件
            ,size: 10240 //限制文件大小,单位 KB
            ,before: function(obj){
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#headerPngUpload').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">')
                });
            }
            ,done: function(res){
                $("#headerPng").val(res.data.src);
            }
        });
        formSelects.render();
        form.on('submit(sale-level-form-submit)', function (data) {
            data.field.content = editor.txt.html();
src/main/resources/templates/febs/views/modules/levelView/saleInfo.html
@@ -42,6 +42,28 @@
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-row layui-col-space10 layui-form-item">
                                    <div class="layui-col-lg6">
                                        <label class="layui-form-label febs-form-item-require">推广中心:</label>
                                        <div class="layui-input-block">
                                            <div class="layui-upload">
                                                <button type="button" class="layui-btn layui-btn-normal layui-btn" id="headerPngUploadButton">上传</button>
                                                <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
                                                    <div class="layui-upload-list" id="headerPngUpload"></div>
                                                </blockquote>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-row layui-col-space10 layui-form-item febs-hide">
                                    <div class="layui-col-lg6">
                                        <label class="layui-form-label">推广中心图标链接:</label>
                                        <div class="layui-input-block">
                                            <input type="text" id="headerPng" lay-verify="required" name="headerPng" autocomplete="off" class="layui-input" readonly>
                                        </div>
                                    </div>
                                </div>
                                <div class="layui-form-item">
                                    <label class="layui-form-label febs-form-item-require">返佣比例:</label>
                                    <div class="layui-form-mid">团队成员下单,点击确认收货后,返还支付金额乘以</div>
@@ -170,6 +192,22 @@
                $("#iconPng").val(res.data.src);
            }
        });
        //图片上传
        upload.render({
            elem: '#headerPngUploadButton'
            ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口
            ,accept: 'file' //普通文件
            ,size: 10240 //限制文件大小,单位 KB
            ,before: function(obj){
                //预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result){
                    $('#headerPngUpload').html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">')
                });
            }
            ,done: function(res){
                $("#headerPng").val(res.data.src);
            }
        });
        form.render();
        inithappySaleLevel();
@@ -190,6 +228,10 @@
            $('#iconPngUpload').append('<img src="' + happySaleLevel.iconPng + '" alt="" class="layui-upload-img single-image" style="width: 130px">');
            $("#iconPng").val(happySaleLevel.iconPng);
            $('#headerPngUpload').append('<img src="' + happySaleLevel.headerPng + '" alt="" class="layui-upload-img single-image" style="width: 130px">');
            $("#headerPng").val(happySaleLevel.headerPng);
            editor.txt.html(happySaleLevel.content);
        }
src/main/resources/templates/febs/views/modules/levelView/saleList.html
@@ -114,6 +114,22 @@
                    content: '<div style="text-align:center"><img src="' + $(t).attr('src') + '" /></div>'
                });
            }
            if (layEvent === 'seeHeaderPng') {
                var t = $view.find('#seeHeaderPng'+data.id+'');
                //页面层
                layer.open({
                    type: 1,
                    title: "推广中心",
                    skin: 'layui-layer-rim', //加上边框
                    area: ['100%', '100%'], //宽高
                    shadeClose: true, //开启遮罩关闭
                    end: function (index, layero) {
                        return false;
                    },
                    content: '<div style="text-align:center"><img src="' + $(t).attr('src') + '" /></div>'
                });
            }
            if (layEvent === 'saleInfoEvent') {
                febs.modal.open('编辑','modules/levelView/saleInfo/' + data.id, {
                    btn: ['提交', '取消'],
@@ -166,6 +182,14 @@
                                '</a>';
                        },
                    minWidth: 150,align: 'center'},
                    {field: 'headerPng',title: '推广中心',
                        templet: function (d) {
                            return '<a lay-event="seeHeaderPng">' +
                                '<img id="seeHeaderPng' + d.id + '" src="' + d.headerPng +
                                '" alt="图片" style="width: 50px; height: 50px; object-fit: cover; border-radius: 5px; cursor: pointer;">' +
                                '</a>';
                        },
                        minWidth: 150,align: 'center'},
                    {field: 'directCnt', title: '直推人数', minWidth: 150,align:'center'},
                    {field: 'teamCnt', title: '团队人数', minWidth: 150,align:'center'},
                    {field: 'teamAmount', title: '团队业绩', minWidth: 150,align:'center'},