From 8afcd94ba0c6e587dc9cc79a0c1d922fe6fbca49 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 22 Jun 2026 17:45:17 +0800
Subject: [PATCH] feat(system): 添加LWPAY和Tokenview支付配置功能
---
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 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..481aff6 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,141 @@
@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");
+ }
}
--
Gitblit v1.9.1