From 6f36eac9e93e6268374f4fde2fcd9a43f8bf6655 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 10 Jan 2025 11:00:41 +0800
Subject: [PATCH] feat(mall): 添加客服设置功能

---
 src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java |    5 ++
 src/main/resources/templates/febs/views/modules/system/kefu.html       |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java      |   17 ++++++++
 3 files changed, 119 insertions(+), 0 deletions(-)

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 d3277d0..93e3249 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -119,4 +119,9 @@
     public String vipCenterSetting() {
         return FebsUtil.view("modules/system/vipCenterSetting");
     }
+
+    @GetMapping("kefu")
+    public String kefu() {
+        return FebsUtil.view("modules/system/kefu");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
index 08902f7..b890d8d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
@@ -8,6 +8,7 @@
 import cc.mrbird.febs.mall.mapper.AppVersionMapper;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.mall.service.ICommonService;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.best.javaSdk.Client;
@@ -53,6 +54,22 @@
 
     @Override
     public List<DataDictionaryCustom> findDataDicByType(String type) {
+        List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(type);
+        if(type.equals("KEFU_SET")){
+            if(CollUtil.isEmpty(dataDictionaryCustoms)){
+                DataDictionaryCustom dataDictionaryCustom = new DataDictionaryCustom();
+                dataDictionaryCustom.setType(type);
+                dataDictionaryCustom.setCode("WEIXIN");
+                dataDictionaryCustom.setDescription("微信客服");
+                dataDictionaryCustomMapper.insert(dataDictionaryCustom);
+                DataDictionaryCustom dataDictionaryCustom2 = new DataDictionaryCustom();
+                dataDictionaryCustom2.setType(type);
+                dataDictionaryCustom2.setCode("WHATSAPP");
+                dataDictionaryCustom2.setDescription("WhatsApp客服");
+                dataDictionaryCustomMapper.insert(dataDictionaryCustom2);
+            }
+        }
+
         return dataDictionaryCustomMapper.selectDicByType(type);
     }
 
diff --git a/src/main/resources/templates/febs/views/modules/system/kefu.html b/src/main/resources/templates/febs/views/modules/system/kefu.html
new file mode 100644
index 0000000..6917deb
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/system/kefu.html
@@ -0,0 +1,97 @@
+<div class="layui-fluid layui-anim febs-anim" id="kefu-setting" lay-title="客服">
+    <div class="layui-row layui-col-space8 febs-container">
+        <form class="layui-form" action="" lay-filter="kefu-setting-form">
+            <div class="layui-card">
+                <div class="layui-card-body flex" id="cardBody">
+
+                </div>
+
+                <div class="layui-card-footer">
+                    <button class="layui-btn layui-btn-normal save-btn" lay-submit="" lay-filter="kefu-setting-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;
+    }
+    .flex{
+        display: flex;
+        flex-wrap: wrap;
+    }
+    .save-btn{
+        display: block;
+        margin: 0 auto;
+    }
+    .layui-upload-list{
+        height: 200px;
+    }
+</style>
+<script type="text/html" id="kefuOperate">
+    {{#  layui.each(d, function(index, item){ }}
+    <div class="layui-form-item">
+        <label class="layui-form-label febs-form-item-require">{{item.description}}:</label>
+        <input type="text" lay-verify="required" name="{{item.code}}"
+               autoComplete="off" value="{{item.value}}" class="layui-input">
+    </div>
+    {{# }) }}
+</script>
+<script data-th-inline="javascript" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree', 'laytpl', 'upload'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            validate = layui.validate
+            , templateHtml = kefuOperate.innerHTML
+            , $cardBody = $("#cardBody")
+            , laytpl = layui.laytpl
+            , upload = layui.upload
+            , $view = $('#kefu-setting');
+
+        form.verify(validate);
+        form.render();
+
+        dicDataReq("KEFU_SET");
+        function dicDataReq(type) {
+            $cardBody.empty();
+            $.get(ctx + 'admin/common/findDicByType/' + type, function (r) {
+                if (r.code === 200) {
+                    var data = r.data;
+                    laytpl(templateHtml).render(data, function(html) {
+                        $cardBody.append(html);
+                    })
+                }
+            });
+        }
+
+        form.on('submit(kefu-setting-form-submit)', function (data) {
+            $.ajax({
+                'url':ctx + 'admin/system/bonusSystemSetting',
+                'type':'post',
+                'dataType':'json',
+                'headers' : {'Content-Type' : 'application/json;charset=utf-8'},
+                'traditional': true,
+                'data':JSON.stringify(data.field),
+                'success':function (data) {
+                    if (data.code == 200) {
+                        febs.alert.success(data.message);
+                    }
+                },
+                'error':function () {
+                    febs.alert.warn('服务器繁忙');
+                }
+            })
+            return false;
+        });
+    });
+</script>
\ No newline at end of file

--
Gitblit v1.9.1