From 0c2c0ea39143807ced01506d4a8282a5fca73cfe Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 14 May 2025 17:27:18 +0800
Subject: [PATCH] feat(mall): 添加推广中心功能

---
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java |    2 
 src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java    |    2 
 src/main/resources/templates/febs/views/modules/levelView/saleInfo.html        |   42 ++++++++++++++
 src/main/resources/templates/febs/views/modules/levelView/saleList.html        |   24 ++++++++
 src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java              |   14 ++++
 src/main/resources/templates/febs/views/modules/levelView/levelList.html       |    4 
 src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java                   |    2 
 src/main/resources/templates/febs/views/modules/levelView/saleAdd.html         |   38 ++++++++++++
 8 files changed, 124 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java
index 63cc72a..1742bad 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelAddDto.java
+++ b/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;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java b/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java
index 28ec57f..a5e92f0 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/memberLevel/AdminSaleLevelUpdateDto.java
+++ b/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;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java b/src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java
index 9699e95..ff6c3b3 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/HappySaleLevel.java
+++ b/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;
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java
index bcc46e9..52966b4 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java
+++ b/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;
 
 
 }
diff --git a/src/main/resources/templates/febs/views/modules/levelView/levelList.html b/src/main/resources/templates/febs/views/modules/levelView/levelList.html
index 5119343..19505c1 100644
--- a/src/main/resources/templates/febs/views/modules/levelView/levelList.html
+++ b/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 +
diff --git a/src/main/resources/templates/febs/views/modules/levelView/saleAdd.html b/src/main/resources/templates/febs/views/modules/levelView/saleAdd.html
index e58dd65..456b827 100644
--- a/src/main/resources/templates/febs/views/modules/levelView/saleAdd.html
+++ b/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();
diff --git a/src/main/resources/templates/febs/views/modules/levelView/saleInfo.html b/src/main/resources/templates/febs/views/modules/levelView/saleInfo.html
index 2bb8220..a6e250f 100644
--- a/src/main/resources/templates/febs/views/modules/levelView/saleInfo.html
+++ b/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);
 
         }
diff --git a/src/main/resources/templates/febs/views/modules/levelView/saleList.html b/src/main/resources/templates/febs/views/modules/levelView/saleList.html
index 772a5dc..c235fcd 100644
--- a/src/main/resources/templates/febs/views/modules/levelView/saleList.html
+++ b/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'},

--
Gitblit v1.9.1