diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UPackageController.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UPackageController.java
new file mode 100644
index 0000000..849ede0
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/UPackageController.java
@@ -0,0 +1,62 @@
+package org.wfc.user.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.wfc.common.core.web.controller.BaseController;
+import org.wfc.common.core.web.domain.AjaxResult;
+import org.wfc.common.core.web.page.TableDataInfo;
+import org.wfc.user.domain.UPackage;
+import org.wfc.user.domain.URateLimit;
+import org.wfc.user.service.IUPackageService;
+import org.wfc.user.service.IURateLimitService;
+
+import java.util.List;
+
+/**
+ *
+ * 用户平台-套餐表 前端控制器
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@RestController
+@RequestMapping("/package")
+public class UPackageController extends BaseController {
+
+ @Autowired
+ public IUPackageService uPackageService;
+
+ @Autowired
+ private IURateLimitService uRateLimitService;
+
+ @GetMapping("/page")
+ public TableDataInfo page(UPackage uPackage) {
+ startPage();
+ List list = getPackages();
+ return getDataTable(list);
+ }
+
+ @GetMapping("/list")
+ public AjaxResult list(UPackage uPackage) {
+ List list = getPackages();
+ return success(list);
+ }
+
+ private List getPackages() {
+ List list = uPackageService.list(Wrappers.lambdaQuery()
+ .eq(UPackage::getPackageEnable, true));
+ for (UPackage pack : list) {
+ if (ObjectUtil.isNull(pack.getRateLimitId())) {
+ continue;
+ }
+ URateLimit uRateLimit = uRateLimitService.getById(pack.getRateLimitId());
+ pack.setRateLimits(uRateLimit);
+ }
+ return list;
+ }
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/URateLimitController.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/URateLimitController.java
new file mode 100644
index 0000000..f40da0c
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/controller/URateLimitController.java
@@ -0,0 +1,43 @@
+package org.wfc.user.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.wfc.common.core.web.controller.BaseController;
+import org.wfc.common.core.web.domain.AjaxResult;
+import org.wfc.common.core.web.page.TableDataInfo;
+import org.wfc.user.domain.URateLimit;
+import org.wfc.user.service.IURateLimitService;
+
+import java.util.List;
+
+/**
+ *
+ * 用户平台-带宽限速表 前端控制器
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@RestController
+@RequestMapping("/rateLimit")
+public class URateLimitController extends BaseController {
+
+ @Autowired
+ public IURateLimitService uRateLimitService;
+
+ @GetMapping("/page")
+ public TableDataInfo page(URateLimit uRateLimit) {
+ startPage();
+ List list = uRateLimitService.list();
+ return getDataTable(list);
+ }
+
+ @GetMapping("/list")
+ public AjaxResult list(URateLimit uRateLimit) {
+ List list = uRateLimitService.list();
+ return success(list);
+ }
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UPackage.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UPackage.java
new file mode 100644
index 0000000..28d2004
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/UPackage.java
@@ -0,0 +1,73 @@
+package org.wfc.user.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.wfc.common.mybatis.domain.BaseData;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * 用户平台-套餐表
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@Getter
+@Setter
+@TableName("u_package")
+@Schema(name = "UPackage", description = "用户平台-套餐表")
+public class UPackage extends BaseData {
+
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "带宽限速ID")
+ private Long rateLimitId;
+
+ @Schema(description = "套餐名称")
+ private String packageName;
+
+ @Schema(description = "有效期数")
+ private Integer periodNum;
+
+ @Schema(description = "有效期类型")
+ private String periodType;
+
+ @Schema(description = "价格")
+ private BigDecimal price;
+
+ @Schema(description = "流量")
+ private Long traffic;
+
+ @Schema(description = "时长")
+ private Long duration;
+
+ @Schema(description = "在线设备数")
+ private Integer clientNum;
+
+ @Schema(description = "备注")
+ private String remark;
+
+ @Schema(description = "带宽是否限制")
+ private Boolean rateLimitEnable;
+
+ @Schema(description = "流量是否限制")
+ private Boolean trafficEnable;
+
+ @Schema(description = "时长是否限制")
+ private Boolean durationEnable;
+
+ @Schema(description = "在线设备数是否限制")
+ private Boolean clientNumEnable;
+
+ @Schema(description = "套餐是否启用")
+ private Boolean packageEnable;
+
+ @Schema(description = "带宽限速组")
+ @TableField(exist = false)
+ private URateLimit rateLimits;
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/URateLimit.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/URateLimit.java
new file mode 100644
index 0000000..8f0d7e5
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/domain/URateLimit.java
@@ -0,0 +1,40 @@
+package org.wfc.user.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import org.wfc.common.mybatis.domain.BaseData;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 用户平台-带宽限速表
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@Getter
+@Setter
+@TableName("u_rate_limit")
+@Schema(name = "URateLimit", description = "用户平台-带宽限速表")
+public class URateLimit extends BaseData {
+
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "限速名称")
+ private String rateLimitName;
+
+ @Schema(description = "下行限速")
+ private Long downLimit;
+
+ @Schema(description = "下行限速启用")
+ private Boolean downLimitEnable;
+
+ @Schema(description = "上行限速")
+ private Long upLimit;
+
+ @Schema(description = "上行限速启用")
+ private Boolean upLimitEnable;
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UPackageMapper.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UPackageMapper.java
new file mode 100644
index 0000000..958e993
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/UPackageMapper.java
@@ -0,0 +1,16 @@
+package org.wfc.user.mapper;
+
+import org.wfc.user.domain.UPackage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 用户平台-套餐表 Mapper 接口
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+public interface UPackageMapper extends BaseMapper {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/URateLimitMapper.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/URateLimitMapper.java
new file mode 100644
index 0000000..bd28439
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/mapper/URateLimitMapper.java
@@ -0,0 +1,16 @@
+package org.wfc.user.mapper;
+
+import org.wfc.user.domain.URateLimit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 用户平台-带宽限速表 Mapper 接口
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+public interface URateLimitMapper extends BaseMapper {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUPackageService.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUPackageService.java
new file mode 100644
index 0000000..6ff1b3c
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IUPackageService.java
@@ -0,0 +1,16 @@
+package org.wfc.user.service;
+
+import org.wfc.user.domain.UPackage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 用户平台-套餐表 服务类
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+public interface IUPackageService extends IService {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IURateLimitService.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IURateLimitService.java
new file mode 100644
index 0000000..b6998de
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/IURateLimitService.java
@@ -0,0 +1,16 @@
+package org.wfc.user.service;
+
+import org.wfc.user.domain.URateLimit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 用户平台-带宽限速表 服务类
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+public interface IURateLimitService extends IService {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UPackageServiceImpl.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UPackageServiceImpl.java
new file mode 100644
index 0000000..e2fb2de
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/UPackageServiceImpl.java
@@ -0,0 +1,20 @@
+package org.wfc.user.service.impl;
+
+import org.wfc.user.domain.UPackage;
+import org.wfc.user.mapper.UPackageMapper;
+import org.wfc.user.service.IUPackageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 用户平台-套餐表 服务实现类
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@Service
+public class UPackageServiceImpl extends ServiceImpl implements IUPackageService {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/URateLimitServiceImpl.java b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/URateLimitServiceImpl.java
new file mode 100644
index 0000000..0773834
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/java/org/wfc/user/service/impl/URateLimitServiceImpl.java
@@ -0,0 +1,20 @@
+package org.wfc.user.service.impl;
+
+import org.wfc.user.domain.URateLimit;
+import org.wfc.user.mapper.URateLimitMapper;
+import org.wfc.user.service.IURateLimitService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 用户平台-带宽限速表 服务实现类
+ *
+ *
+ * @author sys
+ * @since 2024-12-20
+ */
+@Service
+public class URateLimitServiceImpl extends ServiceImpl implements IURateLimitService {
+
+}
diff --git a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UPackageMapper.xml b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UPackageMapper.xml
new file mode 100644
index 0000000..e4f0577
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/UPackageMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/URateLimitMapper.xml b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/URateLimitMapper.xml
new file mode 100644
index 0000000..9c9f553
--- /dev/null
+++ b/wfc-modules/wfc-modules-user/src/main/resources/mapper/user/URateLimitMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UPackageController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UPackageController.java
index e803350..42b8dde 100644
--- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UPackageController.java
+++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UPackageController.java
@@ -1,6 +1,7 @@
package org.wfc.system.controller;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -14,7 +15,9 @@ import org.wfc.common.core.web.controller.BaseController;
import org.wfc.common.core.web.domain.AjaxResult;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.system.domain.UPackage;
+import org.wfc.system.domain.URateLimit;
import org.wfc.system.service.IUPackageService;
+import org.wfc.system.service.IURateLimitService;
import java.util.List;
@@ -31,18 +34,21 @@ import java.util.List;
public class UPackageController extends BaseController {
@Autowired
- public IUPackageService uPackageService;
+ private IUPackageService uPackageService;
+
+ @Autowired
+ private IURateLimitService uRateLimitService;
@GetMapping("/page")
public TableDataInfo page(UPackage uPackage) {
startPage();
- List list = uPackageService.list();
+ List list = getPackages();
return getDataTable(list);
}
@GetMapping("/list")
public AjaxResult list(UPackage uPackage) {
- List list = uPackageService.list();
+ List list = getPackages();
return success(list);
}
@@ -66,4 +72,15 @@ public class UPackageController extends BaseController {
return toAjax(uPackageService.removeByIds(CollUtil.newArrayList(ids)));
}
+ private List getPackages() {
+ List list = uPackageService.list();
+ for (UPackage pack : list) {
+ if (ObjectUtil.isNull(pack.getRateLimitId())) {
+ continue;
+ }
+ URateLimit uRateLimit = uRateLimitService.getById(pack.getRateLimitId());
+ pack.setRateLimits(uRateLimit);
+ }
+ return list;
+ }
}
diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/URateLimitController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/URateLimitController.java
index 132f459..2746572 100644
--- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/URateLimitController.java
+++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/URateLimitController.java
@@ -31,7 +31,7 @@ import java.util.List;
public class URateLimitController extends BaseController {
@Autowired
- public IURateLimitService uRateLimitService;
+ private IURateLimitService uRateLimitService;
@GetMapping("/page")
public TableDataInfo page(URateLimit uRateLimit) {
diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/UPackage.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/UPackage.java
index 0b3e835..7f8f1eb 100644
--- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/UPackage.java
+++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/UPackage.java
@@ -1,12 +1,13 @@
package org.wfc.system.domain;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import org.wfc.common.mybatis.domain.BaseData;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
+import org.wfc.common.mybatis.domain.BaseData;
+
+import java.math.BigDecimal;
/**
*
@@ -65,4 +66,8 @@ public class UPackage extends BaseData {
@Schema(description = "套餐是否启用")
private Boolean packageEnable;
+
+ @Schema(description = "带宽限速组")
+ @TableField(exist = false)
+ private URateLimit rateLimits;
}