xiaoyong931011
2023-02-17 e929e795be5dad7487e6e483a361b0bc27b34216
合伙人权益的后台编辑上传
接口
2 files added
6 files modified
156 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/agentDetail.html 95 ●●●●● patch | view | raw | blame | history
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"),
    // 充值到账通知
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();
    }
}
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();
    }
}
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");
    }
}
src/main/java/cc/mrbird/febs/mall/dto/AdminAgentDetailDto.java
New file
@@ -0,0 +1,10 @@
package cc.mrbird.febs.mall.dto;
import lombok.Data;
@Data
public class AdminAgentDetailDto {
    private String agentDetail;
}
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -77,4 +77,6 @@
    FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto);
    void updateMemberAgent(Long memberId);
    FebsResponse agentDetail();
}
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);
src/main/resources/templates/febs/views/modules/system/agentDetail.html
New file
@@ -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>