From f3c70289b1c491540a1173beebce77899b185ad5 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 15 Mar 2023 16:48:48 +0800
Subject: [PATCH] 模块管理

---
 src/main/java/org/springblade/modules/modules/service/IModulesService.java          |   42 ++
 src/main/java/org/springblade/modules/modules/service/impl/FunctionServiceImpl.java |   50 +++
 src/main/java/org/springblade/modules/modules/vo/ModulesVO.java                     |   35 ++
 src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.xml              |   28 +
 src/main/java/org/springblade/modules/modules/entity/FunctionEntity.java            |   74 ++++
 src/main/java/org/springblade/modules/modules/service/impl/ModulesServiceImpl.java  |   42 ++
 src/main/java/org/springblade/modules/modules/dto/FunctionDTO.java                  |   34 ++
 src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.java            |   50 +++
 src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.xml             |   39 ++
 src/main/java/org/springblade/modules/modules/vo/FunctionVO.java                    |   35 ++
 src/main/java/org/springblade/modules/modules/controller/FunctionController.java    |  139 ++++++++
 src/main/java/org/springblade/modules/modules/entity/ModulesEntity.java             |   64 ++++
 src/main/java/org/springblade/modules/modules/service/IFunctionService.java         |   49 +++
 src/main/java/org/springblade/modules/modules/controller/ModulesController.java     |  125 +++++++
 src/main/java/org/springblade/modules/modules/dto/ModulesDTO.java                   |   34 ++
 src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.java             |   43 ++
 src/main/java/org/springblade/common/handler/SocketIOService.java                   |   65 +--
 17 files changed, 911 insertions(+), 37 deletions(-)

diff --git a/src/main/java/org/springblade/common/handler/SocketIOService.java b/src/main/java/org/springblade/common/handler/SocketIOService.java
index b6c88ec..209b963 100644
--- a/src/main/java/org/springblade/common/handler/SocketIOService.java
+++ b/src/main/java/org/springblade/common/handler/SocketIOService.java
@@ -41,18 +41,17 @@
 	private SocketIOServer socketIOServer;
 
 	/**
-	 * Spring IoC容器创建之后,在加载SocketIOServiceImpl Bean之后启动
+	 * Spring IoC容器创建之后,在加载SocketIOConfiguration Bean之后启动
 	 *
 	 * @throws Exception
 	 */
 	@PostConstruct
 	private void autoStartup() throws Exception {
-		log.info("启动Socket!!!!!!!!!!");
 		start();
 	}
 
 	/**
-	 * Spring IoC容器在销毁SocketIOServiceImpl Bean之前关闭,避免重启项目服务端口占用问题
+	 * Spring IoC容器在销毁SocketIOConfiguration Bean之前关闭,避免重启项目服务端口占用问题
 	 *
 	 * @throws Exception
 	 */
@@ -62,56 +61,48 @@
 	}
 
 	public void start() {
-		// 监听客户端连接
-		socketIOServer.addConnectListener(client -> {
-			String uid = getParamsByClient(client);
-			if (uid != null) {
-				clientMap.put(uid, client);
-				log.info("有新的客户端连接UID:{}", uid);
-			}
-			// 给客户端发送一条信息 发送ClientReceive事件 需要客户端绑定此事件即可接收到消息
-			JSONObject jsonObject = new JSONObject();
-			jsonObject.put("name", "goat");
-			jsonObject.put("message", "hello client");
-			client.sendEvent("ClientReceive", jsonObject);
-		});
-
-		// 监听客户端断开连接
-		socketIOServer.addDisconnectListener(listener -> {
-			String uid = getParamsByClient(listener);
-			if (uid != null) {
-				clientMap.remove(uid);
-				listener.disconnect();
-				log.info("一条客户端连接中断");
-			}
-		});
-
-		socketIOServer.addEventListener("ServerReceive", JSONObject.class, (client, data, ackSender) -> {
-			String uid = getParamsByClient(client);
-			String ip = getIpByClient(client);
-			if (uid != null) {
-				log.info("接收到SID:{}发来的消息:{}", uid, data.toJSONString());
-				log.debug(ip + " ************ 客户端:" + data);
-			}
-		});
-
 		socketIOServer.start();
 		log.info("socket.io初始化服务完成");
 	}
 
+	/**
+	 * 连接时
+	 * @param client
+	 */
 	@OnConnect
 	public void onConnect(SocketIOClient client){
 		log.info(getIpByClient(client));
 		HandshakeData handshakeData = client.getHandshakeData();
 		Map<String, List<String>> urlParams = handshakeData.getUrlParams();
-
 	}
 
+	/**
+	 * 监听前端订阅相同事件发送过来的信息
+	 * @param client
+	 * @param ackRequest
+	 * @param data
+	 */
 	@OnEvent(value = "msg")
 	public void OnEvent(SocketIOClient client, AckRequest ackRequest, String data){
 		log.info("发来消息:" + data);
 	}
 
+	/**
+	 * 监听前端订阅相同事件发送过来的信息
+	 * @param client
+	 * @param ackRequest
+	 * @param data
+	 */
+	@OnEvent(value = "msg2")
+	public void OnEventMsg2(SocketIOClient client, AckRequest ackRequest, String data){
+		log.info("发来消息:" + data);
+		client.sendEvent("ClientReceive","copy"+data);
+	}
+
+	/**
+	 * 断开连接时
+	 * @param client
+	 */
 	@OnDisconnect()
 	public void OnEvent(SocketIOClient client){
 		log.info("{}断开连接",client.getSessionId());
diff --git a/src/main/java/org/springblade/modules/modules/controller/FunctionController.java b/src/main/java/org/springblade/modules/modules/controller/FunctionController.java
new file mode 100644
index 0000000..5a1223c
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/controller/FunctionController.java
@@ -0,0 +1,139 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.modules.entity.FunctionEntity;
+import org.springblade.modules.modules.service.IFunctionService;
+import org.springblade.modules.modules.vo.FunctionVO;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
+
+/**
+ * 功能表 控制器
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("function/function")
+@Api(value = "功能表", tags = "功能表接口")
+public class FunctionController extends BladeController {
+
+	private final IFunctionService modulesFunctionService;
+
+	/**
+	 * 功能表 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入modulesFunction")
+	public R<FunctionEntity> detail(FunctionEntity modulesFunction) {
+		FunctionEntity detail = modulesFunctionService.getOne(Condition.getQueryWrapper(modulesFunction));
+		return R.data(detail);
+	}
+	/**
+	 * 功能表 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入modulesFunction")
+	public R<IPage<FunctionEntity>> list(FunctionEntity modulesFunction, Query query) {
+		IPage<FunctionEntity> pages = modulesFunctionService.page(Condition.getPage(query), Condition.getQueryWrapper(modulesFunction));
+		return R.data(pages);
+	}
+
+	/**
+	 * 功能表 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入modulesFunction")
+	public R<IPage<FunctionVO>> page(FunctionVO modulesFunction, Query query) {
+		IPage<FunctionVO> pages = modulesFunctionService.selectFunctionPage(Condition.getPage(query), modulesFunction);
+		return R.data(pages);
+	}
+
+	/**
+	 * 功能表 所有功能集合
+	 */
+	@GetMapping("/all")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入modulesFunction")
+	public R getAll(FunctionEntity function) {
+		List<FunctionEntity> functionEntities = modulesFunctionService.getAll(function);
+		return R.data(functionEntities);
+	}
+
+	/**
+	 * 功能表 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入modulesFunction")
+	public R save(@Valid @RequestBody FunctionEntity modulesFunction) {
+		return R.status(modulesFunctionService.save(modulesFunction));
+	}
+
+	/**
+	 * 功能表 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入modulesFunction")
+	public R update(@Valid @RequestBody FunctionEntity modulesFunction) {
+		return R.status(modulesFunctionService.updateById(modulesFunction));
+	}
+
+	/**
+	 * 功能表 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入modulesFunction")
+	public R submit(@Valid @RequestBody FunctionEntity modulesFunction) {
+		return R.status(modulesFunctionService.saveOrUpdate(modulesFunction));
+	}
+
+	/**
+	 * 功能表 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(modulesFunctionService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/controller/ModulesController.java b/src/main/java/org/springblade/modules/modules/controller/ModulesController.java
new file mode 100644
index 0000000..803730e
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/controller/ModulesController.java
@@ -0,0 +1,125 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.modules.entity.ModulesEntity;
+import org.springblade.modules.modules.vo.ModulesVO;
+import org.springblade.modules.modules.service.IModulesService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 模块表 控制器
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("modules/modules")
+@Api(value = "模块表", tags = "模块表接口")
+public class ModulesController extends BladeController {
+
+	private final IModulesService modulesService;
+
+	/**
+	 * 模块表 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入modules")
+	public R<ModulesEntity> detail(ModulesEntity modules) {
+		ModulesEntity detail = modulesService.getOne(Condition.getQueryWrapper(modules));
+		return R.data(detail);
+	}
+	/**
+	 * 模块表 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入modules")
+	public R<IPage<ModulesEntity>> list(ModulesEntity modules, Query query) {
+		IPage<ModulesEntity> pages = modulesService.page(Condition.getPage(query), Condition.getQueryWrapper(modules));
+		return R.data(pages);
+	}
+
+	/**
+	 * 模块表 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入modules")
+	public R<IPage<ModulesVO>> page(ModulesVO modules, Query query) {
+		IPage<ModulesVO> pages = modulesService.selectModulesPage(Condition.getPage(query), modules);
+		return R.data(pages);
+	}
+
+	/**
+	 * 模块表 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入modules")
+	public R save(@Valid @RequestBody ModulesEntity modules) {
+		return R.status(modulesService.save(modules));
+	}
+
+	/**
+	 * 模块表 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入modules")
+	public R update(@Valid @RequestBody ModulesEntity modules) {
+		return R.status(modulesService.updateById(modules));
+	}
+
+	/**
+	 * 模块表 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入modules")
+	public R submit(@Valid @RequestBody ModulesEntity modules) {
+		return R.status(modulesService.saveOrUpdate(modules));
+	}
+
+	/**
+	 * 模块表 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(modulesService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/dto/FunctionDTO.java b/src/main/java/org/springblade/modules/modules/dto/FunctionDTO.java
new file mode 100644
index 0000000..c52a015
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/dto/FunctionDTO.java
@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.modules.entity.FunctionEntity;
+
+/**
+ * 功能表 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FunctionDTO extends FunctionEntity {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/dto/ModulesDTO.java b/src/main/java/org/springblade/modules/modules/dto/ModulesDTO.java
new file mode 100644
index 0000000..e70f0c4
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/dto/ModulesDTO.java
@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.dto;
+
+import org.springblade.modules.modules.entity.ModulesEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 模块表 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModulesDTO extends ModulesEntity {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/entity/FunctionEntity.java b/src/main/java/org/springblade/modules/modules/entity/FunctionEntity.java
new file mode 100644
index 0000000..d7d46e5
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/entity/FunctionEntity.java
@@ -0,0 +1,74 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 功能表 实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@TableName(value = "sys_modules_function",autoResultMap = true)
+@ApiModel(value = "Function对象", description = "功能表")
+@EqualsAndHashCode(callSuper = true)
+public class FunctionEntity extends TenantEntity {
+
+	/**
+	 * 模块主键
+	 */
+	@ApiModelProperty(value = "模块主键")
+	private String modulesId;
+	/**
+	 * 功能名称
+	 */
+	@ApiModelProperty(value = "功能名称")
+	private String name;
+	/**
+	 * 功能属性:1开始页;2内容页;3结束页
+	 */
+	@ApiModelProperty(value = "功能属性:1开始页;2内容页;3结束页")
+	private String property;
+	/**
+	 * 内容类型:1动画;2图册;3视频
+	 */
+	@ApiModelProperty(value = "内容类型:1动画;2图册;3视频")
+	private String type;
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+	/**
+	 * 文件链接
+	 */
+	@ApiModelProperty(value = "文件链接")
+	@TableField(value = "file_url",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
+	private Object fileUrl;
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/entity/ModulesEntity.java b/src/main/java/org/springblade/modules/modules/entity/ModulesEntity.java
new file mode 100644
index 0000000..d5fbe62
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/entity/ModulesEntity.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 模块表 实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@TableName(value = "sys_modules",autoResultMap = true)
+@ApiModel(value = "Modules对象", description = "模块表")
+@EqualsAndHashCode(callSuper = true)
+public class ModulesEntity extends TenantEntity {
+
+	/**
+	 * 模块名称
+	 */
+	@ApiModelProperty(value = "模块名称")
+	private String name;
+	/**
+	 * 高
+	 */
+	@ApiModelProperty(value = "高")
+	private String height;
+	/**
+	 * 宽
+	 */
+	@ApiModelProperty(value = "宽")
+	private String width;
+	/**
+	 * 模块背景
+	 */
+	@ApiModelProperty(value = "模块背景")
+	@TableField(value = "background",typeHandler = FastjsonTypeHandler.class,updateStrategy = FieldStrategy.IGNORED)
+	private Object background;
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.java b/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.java
new file mode 100644
index 0000000..39988ab
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.modules.entity.FunctionEntity;
+import org.springblade.modules.modules.vo.FunctionVO;
+
+import java.util.List;
+
+/**
+ * 功能表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+public interface FunctionMapper extends BaseMapper<FunctionEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param modulesFunction
+	 * @return
+	 */
+	List<FunctionVO> selectFunctionPage(IPage page, FunctionVO modulesFunction);
+
+	/**
+	 * 获取全部
+	 * @param function
+	 * @return
+	 */
+	List<FunctionEntity> getAll(@Param("function") FunctionEntity function);
+}
diff --git a/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.xml b/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.xml
new file mode 100644
index 0000000..89e3153
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/mapper/FunctionMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.modules.mapper.FunctionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="modulesFunctionResultMap" type="org.springblade.modules.modules.entity.FunctionEntity">
+        <result column="id" property="id"/>
+        <result column="modules_id" property="modulesId"/>
+        <result column="name" property="name"/>
+        <result column="property" property="property"/>
+        <result column="type" property="type"/>
+        <result column="sort" property="sort"/>
+        <result column="file_url" property="fileUrl" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+    <select id="selectFunctionPage" resultMap="modulesFunctionResultMap">
+        select * from sys_modules_function where is_deleted = 0
+    </select>
+
+    <select id="getAll" resultMap="modulesFunctionResultMap">
+        select * from sys_modules_function
+        where is_deleted = 0
+        <if test="function.modulesId !=null and function.modulesId !=''">
+          AND modules_id = #{function.modulesId}
+        </if>
+        ORDER BY property ASC,sort ASC
+    </select>
+
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.java b/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.java
new file mode 100644
index 0000000..670b14a
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.mapper;
+
+import org.springblade.modules.modules.entity.ModulesEntity;
+import org.springblade.modules.modules.vo.ModulesVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 模块表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+public interface ModulesMapper extends BaseMapper<ModulesEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param modules
+	 * @return
+	 */
+	List<ModulesVO> selectModulesPage(IPage page, ModulesVO modules);
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.xml b/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.xml
new file mode 100644
index 0000000..47c23e8
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/mapper/ModulesMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.modules.mapper.ModulesMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="modulesResultMap" type="org.springblade.modules.modules.entity.ModulesEntity">
+        <result column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="height" property="height"/>
+        <result column="width" property="width"/>
+        <result column="background" property="background"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+    <select id="selectModulesPage" resultMap="modulesResultMap">
+        select * from sys_modules where is_deleted = 0
+    </select>
+
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/modules/service/IFunctionService.java b/src/main/java/org/springblade/modules/modules/service/IFunctionService.java
new file mode 100644
index 0000000..dd9575b
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/service/IFunctionService.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.service;
+
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.modules.entity.FunctionEntity;
+import org.springblade.modules.modules.vo.FunctionVO;
+
+import java.util.List;
+
+/**
+ * 功能表 服务类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+public interface IFunctionService extends BaseService<FunctionEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param modulesFunction
+	 * @return
+	 */
+	IPage<FunctionVO> selectFunctionPage(IPage<FunctionVO> page, FunctionVO modulesFunction);
+
+	/**
+	 * 获取全部
+	 * @param function
+	 * @return
+	 */
+	List<FunctionEntity> getAll(FunctionEntity function);
+}
diff --git a/src/main/java/org/springblade/modules/modules/service/IModulesService.java b/src/main/java/org/springblade/modules/modules/service/IModulesService.java
new file mode 100644
index 0000000..f244659
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/service/IModulesService.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.service;
+
+import org.springblade.modules.modules.entity.ModulesEntity;
+import org.springblade.modules.modules.vo.ModulesVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 模块表 服务类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+public interface IModulesService extends BaseService<ModulesEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param modules
+	 * @return
+	 */
+	IPage<ModulesVO> selectModulesPage(IPage<ModulesVO> page, ModulesVO modules);
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/service/impl/FunctionServiceImpl.java b/src/main/java/org/springblade/modules/modules/service/impl/FunctionServiceImpl.java
new file mode 100644
index 0000000..8cfb74f
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/service/impl/FunctionServiceImpl.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.modules.entity.FunctionEntity;
+import org.springblade.modules.modules.mapper.FunctionMapper;
+import org.springblade.modules.modules.service.IFunctionService;
+import org.springblade.modules.modules.vo.FunctionVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 功能表 服务实现类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Service
+public class FunctionServiceImpl extends BaseServiceImpl<FunctionMapper, FunctionEntity> implements IFunctionService {
+
+	@Override
+	public IPage<FunctionVO> selectFunctionPage(IPage<FunctionVO> page, FunctionVO modulesFunction) {
+		return page.setRecords(baseMapper.selectFunctionPage(page, modulesFunction));
+	}
+
+	@Override
+	public List<FunctionEntity> getAll(FunctionEntity function) {
+		return baseMapper.getAll(function);
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/service/impl/ModulesServiceImpl.java b/src/main/java/org/springblade/modules/modules/service/impl/ModulesServiceImpl.java
new file mode 100644
index 0000000..bfd1180
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/service/impl/ModulesServiceImpl.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.service.impl;
+
+import org.springblade.modules.modules.entity.ModulesEntity;
+import org.springblade.modules.modules.vo.ModulesVO;
+import org.springblade.modules.modules.mapper.ModulesMapper;
+import org.springblade.modules.modules.service.IModulesService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 模块表 服务实现类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Service
+public class ModulesServiceImpl extends BaseServiceImpl<ModulesMapper, ModulesEntity> implements IModulesService {
+
+	@Override
+	public IPage<ModulesVO> selectModulesPage(IPage<ModulesVO> page, ModulesVO modules) {
+		return page.setRecords(baseMapper.selectModulesPage(page, modules));
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/vo/FunctionVO.java b/src/main/java/org/springblade/modules/modules/vo/FunctionVO.java
new file mode 100644
index 0000000..bd0f8fa
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/vo/FunctionVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.vo;
+
+import org.springblade.core.tool.node.INode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.modules.entity.FunctionEntity;
+
+/**
+ * 功能表 视图实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FunctionVO extends FunctionEntity {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/modules/vo/ModulesVO.java b/src/main/java/org/springblade/modules/modules/vo/ModulesVO.java
new file mode 100644
index 0000000..69c007d
--- /dev/null
+++ b/src/main/java/org/springblade/modules/modules/vo/ModulesVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.modules.vo;
+
+import org.springblade.modules.modules.entity.ModulesEntity;
+import org.springblade.core.tool.node.INode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 模块表 视图实体类
+ *
+ * @author BladeX
+ * @since 2023-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModulesVO extends ModulesEntity {
+	private static final long serialVersionUID = 1L;
+
+}

--
Gitblit v1.9.3