From e929e795be5dad7487e6e483a361b0bc27b34216 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 17 Feb 2023 12:09:53 +0800
Subject: [PATCH] 合伙人权益的后台编辑上传 接口

---
 src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java               |   10 +++
 src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java      |   15 +++++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java    |    6 ++
 src/main/resources/templates/febs/views/modules/system/agentDetail.html      |   95 +++++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java       |   15 +++++
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java       |    2 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java         |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   11 +++
 8 files changed, 156 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index b8210ab..606d37c 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -8,6 +8,8 @@
     //微信订阅模板ID,
     // 微信订单通知
 //    WX_TEMPLATE_ID_ONE("WX_TEMPLATE", "WX_TEMPLATE_ID_ONE"),
+    // 合伙人权益
+    AGENT_DETAILS("AGENT_DETAILS", "AGENT_DETAILS"),
     // 成为合伙人的充值金额
     PRICE_AMOUNT("AGENT_PRICE", "PRICE_AMOUNT"),
     // 充值到账通知
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 163c21a..6b0cc57 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.mall.dto.AdminAgentAmountDto;
+import cc.mrbird.febs.mall.dto.AdminAgentDetailDto;
 import cc.mrbird.febs.mall.dto.CashOutSettingDto;
 import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
@@ -59,4 +60,18 @@
         dataDictionaryCustomMapper.updateById(dic);
         return new FebsResponse().success();
     }
+
+    @PostMapping(value = "/agentDetail")
+    public FebsResponse agentDetail(AdminAgentDetailDto adminAgentDetailDto) {
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.AGENT_DETAILS.getType(), DataDictionaryEnum.AGENT_DETAILS.getCode()
+        );
+
+        if(ObjectUtil.isEmpty(dic)){
+            return new FebsResponse().fail().message("请刷新页面重试");
+        }
+        dic.setValue(adminAgentDetailDto.getAgentDetail());
+        dataDictionaryCustomMapper.updateById(dic);
+        return new FebsResponse().success();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index d4f191a..7bc1690 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -201,4 +201,10 @@
         return iApiMallAgentService.agentApply(apiAgentApplyDto);
     }
 
+    @ApiOperation(value = "合伙人权益")
+    @GetMapping(value = "/agentDetail")
+    public FebsResponse agentDetail() {
+        return memberService.agentDetail();
+    }
+
 }
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 950abdd..e4ef506 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -4,10 +4,12 @@
 import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.mall.dto.AdminAgentAmountDto;
+import cc.mrbird.febs.mall.dto.AdminAgentDetailDto;
 import cc.mrbird.febs.mall.dto.CashOutSettingDto;
 import cc.mrbird.febs.mall.dto.ScoreSettingDto;
 import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -51,4 +53,17 @@
         }
         return FebsUtil.view("modules/system/agentAmountSet");
     }
+
+    @GetMapping("agentDetail")
+    @RequiresPermissions("agentDetail:update")
+    public String agentDetail(Model model) {
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.AGENT_DETAILS.getType(),
+                DataDictionaryEnum.AGENT_DETAILS.getCode());
+        AdminAgentDetailDto adminAgentDetailDto = new AdminAgentDetailDto();
+        if (ObjectUtil.isNotEmpty(dic)) {
+            adminAgentDetailDto.setAgentDetail(dic.getValue());
+            model.addAttribute("agentDetail", adminAgentDetailDto);
+        }
+        return FebsUtil.view("modules/system/agentDetail");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java
new file mode 100644
index 0000000..9af90b7
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java
@@ -0,0 +1,10 @@
+package cc.mrbird.febs.mall.dto;
+
+import lombok.Data;
+
+@Data
+public class AdminAgentDetailDto {
+
+    private String agentDetail;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index 8de90c2..3b9c789 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -77,4 +77,6 @@
     FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto);
 
     void updateMemberAgent(Long memberId);
+
+    FebsResponse agentDetail();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 3717948..aeb67dd 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -789,6 +789,17 @@
         this.baseMapper.updateById(mallMember);
     }
 
+    @Override
+    public FebsResponse agentDetail() {
+        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.AGENT_DETAILS.getType(), DataDictionaryEnum.AGENT_DETAILS.getCode());
+        Map<String, Object> map = new HashMap<>();
+        if(ObjectUtil.isNotEmpty(dataDictionaryCustom)){
+            map.put("agentDetail", dataDictionaryCustom.getValue());
+        }
+        return new FebsResponse().success().data(map);
+    }
+
     private  String getXcxLoginUrl(String code) {
         String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
diff --git a/src/main/resources/templates/febs/views/modules/system/agentDetail.html b/src/main/resources/templates/febs/views/modules/system/agentDetail.html
new file mode 100644
index 0000000..8a9d1b5
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/system/agentDetail.html
@@ -0,0 +1,95 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-agent-detail" lay-title="合伙人权益">
+    <div class="layui-row febs-container">
+        <div class="layui-col-md12">
+            <div class="layui-fluid" id="agent-detail-add">
+                <form class="layui-form" action="" lay-filter="agent-detail-form">
+                    <div class="layui-card">
+                        <div class="layui-card-body">
+                            <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
+                                <ul class="layui-tab-title">
+                                    <li class="layui-this">合伙人权益</li>
+                                </ul>
+                                <div class="layui-tab-content">
+                                    <div class="layui-tab-item layui-show">
+                                        <div class="layui-form-item">
+                                            <div class="layui-input-block">
+                                                <div style="border: 1px solid #ccc;width: 400px;">
+                                                    <div id="toolbar-container" style="border-bottom: 1px solid #ccc;width: 400px;"></div>
+                                                    <div id="editor-container" style="height: 450px;width: 400px;"></div>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-card-footer">
+                            <button class="layui-btn" lay-submit="" lay-filter="agent-detail-form-submit" id="submit">保存</button>
+                        </div>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+<style>
+</style>
+<script type="text/html" id="toolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button>
+    </div>
+</script>
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            layer = layui.layer,
+            table = layui.table,
+            form = layui.form,
+            laydate = layui.laydate,
+            agentDetail = [[${agentDetail}]],
+            layedit = layui.layedit,
+            upload = layui.upload,
+            validate = layui.validate,
+            element = layui.element;
+
+        form.render();
+
+        var E = window.wangEditor;
+        const editorConfig = { MENU_CONF: {} };
+        editorConfig.MENU_CONF['uploadImage'] = {
+            server: '/admin/goods/uploadFileBase64',
+            fieldName : "file",
+            customInsert(res, insertFn) {
+                insertFn(res.data.src, res.data.title, '')
+            },
+        }
+
+        initAgentDetailValue();
+
+        function initAgentDetailValue() {
+            window.editor = E.createEditor({
+                html: agentDetail.agentDetail,
+                selector: '#editor-container',
+                config : editorConfig,
+                mode: 'default'
+            });
+
+            window.toolbar = E.createToolbar({
+                editor,
+                selector: '#toolbar-container',
+                mode: 'default'
+            });
+        }
+
+        form.on('submit(agent-detail-form-submit)', function (data) {
+            data.field.agentDetail = editor.getHtml();
+            febs.post(ctx + 'admin/system/agentDetail', data.field, function (res) {
+                febs.alert.success('设置成功');
+            });
+            window.location.reload();
+            return false;
+        });
+
+    });
+</script>
\ No newline at end of file

--
Gitblit v1.9.1