From a834ccd8dfef154b3164b83104a6cbd4837f81b3 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 23 Jun 2026 09:43:07 +0800
Subject: [PATCH] feat(system): 添加国家运费配置功能

---
 src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 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 3bc234b..15838e8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -1,9 +1,17 @@
 package cc.mrbird.febs.mall.controller;
 
 import cc.mrbird.febs.common.entity.FebsConstant;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.mall.dto.*;
+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;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -13,8 +21,165 @@
 @RequiredArgsConstructor
 public class ViewSystemController {
 
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
     @GetMapping("profitSetting")
     public String profitSetting() {
         return FebsUtil.view("modules/system/profitSetting");
     }
+
+    @GetMapping("cashOutSetting")
+    @RequiresPermissions("cashOutSetting:update")
+    public String cashOutSetting(Model model) {
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode());
+        if (dic != null) {
+            model.addAttribute("cashout", JSONObject.parseObject(dic.getValue(), CashOutSettingDto.class));
+        }
+        return FebsUtil.view("modules/system/cashOutSetting");
+    }
+
+    @GetMapping("agentAmountSet")
+    @RequiresPermissions("agentAmountSet:update")
+    public String agentAmountSet(Model model) {
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(),
+                DataDictionaryEnum.PRICE_AMOUNT.getCode());
+        DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_STATE.getType(),
+                DataDictionaryEnum.GIVE_STATE.getCode());
+        DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ACTIVITY_BULLETIN.getType(),
+                DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
+        DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_AMOUNT.getType(),
+                DataDictionaryEnum.GIVE_AMOUNT.getCode());
+        DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CHARGE_AMOUNT.getType(),
+                DataDictionaryEnum.CHARGE_AMOUNT.getCode());
+        AdminAgentAmountDto adminAgentAmountDto = new AdminAgentAmountDto();
+        if (dic != null) {
+            adminAgentAmountDto.setAgentAmountValue(dic.getValue());
+        }
+        if (giveStateDic != null) {
+            adminAgentAmountDto.setGiveState(giveStateDic.getValue());
+        }
+        if (activityBulletinDic != null) {
+            adminAgentAmountDto.setActivityBulletin(activityBulletinDic.getValue());
+        }
+        if (giveAmountDic != null) {
+            adminAgentAmountDto.setGiveAmount(giveAmountDic.getValue());
+        }
+        if (chargeAmountDic != null) {
+            adminAgentAmountDto.setChargeAmount(chargeAmountDic.getValue());
+        }
+        model.addAttribute("agentAmountSet", adminAgentAmountDto);
+        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");
+    }
+
+
+
+    @GetMapping("indexVideo")
+    @RequiresPermissions("indexVideo:update")
+    public String indexVideoSet(Model model) {
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.VIDEO_URL_INDEX.getType(),
+                DataDictionaryEnum.VIDEO_URL_INDEX.getCode());
+        AdminIndexVideoDto adminIndexVideoDto = new AdminIndexVideoDto();
+        if (ObjectUtil.isNotEmpty(dic)) {
+            adminIndexVideoDto.setVideoUrl(dic.getValue());
+        }
+        model.addAttribute("indexVideoSet", adminIndexVideoDto);
+        return FebsUtil.view("modules/system/indexVideo");
+    }
+
+
+
+    @GetMapping("faPiao")
+    @RequiresPermissions("faPiao:update")
+    public String faPiao(Model model) {
+        FaPiaoDto faPiaoDto = new FaPiaoDto();
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.FP_CALLBACK_URL.getType(),
+                DataDictionaryEnum.FP_CALLBACK_URL.getCode());
+        if (dic != null) {
+            faPiaoDto.setCallbackUrl(dic.getValue());
+        }
+        model.addAttribute("faPiaoDto", faPiaoDto);
+        return FebsUtil.view("modules/system/faPiao");
+    }
+
+    @GetMapping("vipCenterSetting")
+    public String vipCenterSetting() {
+        return FebsUtil.view("modules/system/vipCenterSetting");
+    }
+
+    @GetMapping("kefu")
+    public String kefu() {
+        return FebsUtil.view("modules/system/kefu");
+    }
+
+    @GetMapping("sender")
+    public String sender() {
+        return FebsUtil.view("modules/system/sender");
+    }
+
+    @GetMapping("lwPayConfig")
+    @RequiresPermissions("lwPayConfig:update")
+    public String lwPayConfig(Model model) {
+        LwPayConfigDto dto = new LwPayConfigDto();
+        // 逐条读取 LWPAY_CONFIG 下的配置项
+        DataDictionaryCustom memberId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("LWPAY_CONFIG", "MEMBER_ID");
+        DataDictionaryCustom secretKey = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("LWPAY_CONFIG", "SECRET_KEY");
+        DataDictionaryCustom notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("LWPAY_CONFIG", "NOTIFY_URL");
+        DataDictionaryCustom returnUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("LWPAY_CONFIG", "RETURN_URL");
+        if (memberId != null) dto.setMemberId(memberId.getValue());
+        if (secretKey != null) dto.setSecretKey(secretKey.getValue());
+        if (notifyUrl != null) dto.setNotifyUrl(notifyUrl.getValue());
+        if (returnUrl != null) dto.setReturnUrl(returnUrl.getValue());
+        model.addAttribute("lwPayConfig", dto);
+        return FebsUtil.view("modules/system/lwPayConfig");
+    }
+
+    @GetMapping("tokenviewConfig")
+    @RequiresPermissions("tokenviewConfig:update")
+    public String tokenviewConfig(Model model) {
+        TokenviewConfigDto dto = new TokenviewConfigDto();
+        DataDictionaryCustom secret = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("TOKENVIEW_CONFIG", "WEBHOOK_SECRET");
+        DataDictionaryCustom address = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("TOKENVIEW_CONFIG", "TRC20_USDT_ADDRESS");
+        if (secret != null) dto.setWebhookSecret(secret.getValue());
+        if (address != null) dto.setTrc20UsdtAddress(address.getValue());
+        model.addAttribute("tokenviewConfig", dto);
+        return FebsUtil.view("modules/system/tokenviewConfig");
+    }
+
+    @GetMapping("salesService")
+    @RequiresPermissions("salesService:update")
+    public String salesService(Model model) {
+        SalesServiceDto dto = new SalesServiceDto();
+        DataDictionaryCustom whatsApp = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("SALES_SERVICE", "WHATSAPP");
+        DataDictionaryCustom phone = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("SALES_SERVICE", "PHONE");
+        DataDictionaryCustom email = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("SALES_SERVICE", "EMAIL");
+        DataDictionaryCustom address = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("SALES_SERVICE", "ADDRESS");
+        DataDictionaryCustom workingHours = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("SALES_SERVICE", "WORKINGHOURS");
+        if (whatsApp != null) dto.setWhatsApp(whatsApp.getValue());
+        if (phone != null) dto.setPhone(phone.getValue());
+        if (email != null) dto.setEmail(email.getValue());
+        if (address != null) dto.setAddress(address.getValue());
+        if (workingHours != null) dto.setWorkingHours(workingHours.getValue());
+        model.addAttribute("salesService", dto);
+        return FebsUtil.view("modules/system/salesService");
+    }
+
+    @GetMapping("countryDeliveryList")
+    @RequiresPermissions("countryDelivery:view")
+    public String countryDeliveryList() {
+        return FebsUtil.view("modules/system/countryDeliveryList");
+    }
 }

--
Gitblit v1.9.1