diff --git a/pom.xml b/pom.xml
index 1597636..bc13922 100644
--- a/pom.xml
+++ b/pom.xml
@@ -192,6 +192,13 @@
${ruoyi.version}
+
+
+ com.muyu
+ ruoyi-group
+ ${ruoyi.version}
+
+
diff --git a/ruoyi-application/pom.xml b/ruoyi-application/pom.xml
index cc267f5..17b4b62 100644
--- a/ruoyi-application/pom.xml
+++ b/ruoyi-application/pom.xml
@@ -86,6 +86,13 @@
com.muyu
ruoyi-clazz
+
+
+
+ com.muyu
+ ruoyi-group
+
+
diff --git a/ruoyi-application/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-application/src/main/java/com/ruoyi/RuoYiApplication.java
index 5f974cb..37d061c 100644
--- a/ruoyi-application/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-application/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -11,7 +11,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
* @author ruoyi
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
-@MapperScan(basePackages = {"com.ruoyi.clazz.mapper"})
+@MapperScan(basePackages = {"com.ruoyi.clazz.mapper","com.ruoyi.group.mapper"})
public class RuoYiApplication {
public static void main (String[] args) {
SpringApplication.run(RuoYiApplication.class, args);
diff --git a/ruoyi-application/src/main/java/com/ruoyi/web/controller/group/GroupController.java b/ruoyi-application/src/main/java/com/ruoyi/web/controller/group/GroupController.java
new file mode 100644
index 0000000..ecbb401
--- /dev/null
+++ b/ruoyi-application/src/main/java/com/ruoyi/web/controller/group/GroupController.java
@@ -0,0 +1,111 @@
+package com.ruoyi.web.controller.group;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.group.domain.Group;
+import com.ruoyi.group.domain.req.GroupEditReq;
+import com.ruoyi.group.domain.req.GroupQueryReq;
+import com.ruoyi.group.domain.req.GroupSaveReq;
+import com.ruoyi.group.service.GroupService;
+import io.swagger.annotations.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 小组管理Controller
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Api(tags = "小组管理")
+@RestController
+@RequestMapping("/data/group")
+public class GroupController extends BaseController {
+ @Autowired
+ private GroupService groupService;
+
+ /**
+ * 查询小组管理列表
+ */
+ @ApiOperation("获取小组管理列表")
+ @PreAuthorize("@ss.hasPermi('data:group:list')")
+ @GetMapping("/list")
+ public Result> list(GroupQueryReq groupQueryReq) {
+ startPage();
+ List list = groupService.list(Group.queryBuild(groupQueryReq));
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出小组管理列表
+ */
+ @ApiOperation("导出小组管理列表")
+ @PreAuthorize("@ss.hasPermi('data:group:export')")
+ @Log(title = "小组管理", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, Group group) {
+ List list = groupService.list(group);
+ ExcelUtil util = new ExcelUtil(Group.class);
+ util.exportExcel(response, list, "小组管理数据");
+ }
+
+ /**
+ * 获取小组管理详细信息
+ */
+ @ApiOperation("获取小组管理详细信息")
+ @PreAuthorize("@ss.hasPermi('data:group:query')")
+ @GetMapping(value = "/{groupId}")
+ @ApiImplicitParam(name = "groupId", value = "groupId", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
+ public Result getInfo(@PathVariable("groupId") Long groupId) {
+ return Result.success(groupService.getById(groupId));
+ }
+
+ /**
+ * 新增小组管理
+ */
+ @PreAuthorize("@ss.hasPermi('data:group:add')")
+ @Log(title = "小组管理", businessType = BusinessType.INSERT)
+ @PostMapping
+ @ApiOperation("新增小组管理")
+ public Result add(@RequestBody GroupSaveReq groupSaveReq) {
+ return toAjax(groupService.save(Group.saveBuild(groupSaveReq)));
+ }
+
+ /**
+ * 修改小组管理
+ */
+ @PreAuthorize("@ss.hasPermi('data:group:edit')")
+ @Log(title = "小组管理", businessType = BusinessType.UPDATE)
+ @PutMapping("/{groupId}")
+ @ApiOperation("修改小组管理")
+ public Result edit(@PathVariable Long groupId, @RequestBody GroupEditReq groupEditReq) {
+ return toAjax(groupService.updateById(Group.editBuild(groupId,groupEditReq)));
+ }
+
+ /**
+ * 删除小组管理
+ */
+ @PreAuthorize("@ss.hasPermi('data:group:remove')")
+ @Log(title = "小组管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{groupIds}")
+ @ApiOperation("删除小组管理")
+ @ApiImplicitParam(name = "groupId", value = "groupId", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
+ public Result remove(@PathVariable List groupIds) {
+ return toAjax(groupService.removeBatchByIds(groupIds));
+ }
+}
diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml
index 2a7fa59..5a064ca 100644
--- a/ruoyi-modules/pom.xml
+++ b/ruoyi-modules/pom.xml
@@ -13,6 +13,7 @@
pom
ruoyi-clazz
+ ruoyi-group
diff --git a/ruoyi-modules/ruoyi-group/pom.xml b/ruoyi-modules/ruoyi-group/pom.xml
new file mode 100644
index 0000000..2d08273
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ ruoyi-modules
+ 3.8.6
+
+
+ ruoyi-group
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ ruoyi-framework
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/Group.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/Group.java
new file mode 100644
index 0000000..1f2df99
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/Group.java
@@ -0,0 +1,101 @@
+package com.ruoyi.group.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.experimental.SuperBuilder;
+import io.swagger.annotations.*;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.group.domain.req.GroupQueryReq;
+import com.ruoyi.group.domain.req.GroupSaveReq;
+import com.ruoyi.group.domain.req.GroupEditReq;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 小组管理对象 group
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("`group`")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Group", description = "小组管理")
+public class Group extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 小组ID
+ */
+ @Excel(name = "小组ID")
+ @TableId(value = "group_id", type = IdType.AUTO)
+ @ApiModelProperty(name = "小组ID", value = "小组ID")
+ private Long groupId;
+
+ /**
+ * 小组名称
+ */
+ @Excel(name = "小组名称")
+ @ApiModelProperty(name = "小组名称", value = "小组名称")
+ private String groupName;
+
+ /**
+ * 所属班级
+ */
+ @Excel(name = "所属班级")
+ @ApiModelProperty(name = "所属班级", value = "所属班级", required = true)
+ private Long groupClazz;
+
+ /**
+ * 小组状态 0-停用 1-启用
+ */
+ @Excel(name = "小组状态 0-停用 1-启用")
+ @ApiModelProperty(name = "小组状态 0-停用 1-启用", value = "小组状态 0-停用 1-启用", required = true)
+ private Long groupStatus;
+
+ /**
+ * 查询构造器
+ */
+ public static Group queryBuild(GroupQueryReq groupQueryReq) {
+ return Group.builder()
+ .groupId(groupQueryReq.getGroupId())
+ .groupName(groupQueryReq.getGroupName())
+ .groupClazz(groupQueryReq.getGroupClazz())
+ .groupStatus(groupQueryReq.getGroupStatus())
+ .build();
+ }
+
+ /**
+ * 添加构造器
+ */
+ public static Group saveBuild(GroupSaveReq groupSaveReq) {
+ return Group.builder()
+ .groupName(groupSaveReq.getGroupName())
+ .groupClazz(groupSaveReq.getGroupClazz())
+ .groupStatus(groupSaveReq.getGroupStatus())
+ .remark(groupSaveReq.getRemark())
+ .build();
+ }
+
+ /**
+ * 修改构造器
+ */
+ public static Group editBuild(Long groupId, GroupEditReq groupEditReq) {
+ return Group.builder()
+ .groupId(groupId)
+ .groupName(groupEditReq.getGroupName())
+ .groupClazz(groupEditReq.getGroupClazz())
+ .groupStatus(groupEditReq.getGroupStatus())
+ .remark(groupEditReq.getRemark())
+ .build();
+ }
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupEditReq.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupEditReq.java
new file mode 100644
index 0000000..2ab3b2c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupEditReq.java
@@ -0,0 +1,41 @@
+package com.ruoyi.group.domain.req;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.experimental.SuperBuilder;
+import io.swagger.annotations.*;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 小组管理对象 group
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "GroupEditReq", description = "小组管理")
+public class GroupEditReq extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 小组名称 */
+ @ApiModelProperty(name = "小组名称", value = "小组名称")
+ private String groupName;
+
+ /** 所属班级 */
+ @ApiModelProperty(name = "所属班级", value = "所属班级", required = true)
+ private Long groupClazz;
+
+ /** 小组状态 0-停用 1-启用 */
+ @ApiModelProperty(name = "小组状态 0-停用 1-启用", value = "小组状态 0-停用 1-启用", required = true)
+ private Long groupStatus;
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupQueryReq.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupQueryReq.java
new file mode 100644
index 0000000..0ba1c38
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupQueryReq.java
@@ -0,0 +1,47 @@
+package com.ruoyi.group.domain.req;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.experimental.SuperBuilder;
+import io.swagger.annotations.*;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 小组管理对象 group
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "GroupQueryReq", description = "小组管理")
+public class GroupQueryReq extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 小组ID */
+ @TableId(value = "groupId",type = IdType.AUTO)
+ @ApiModelProperty(name = "小组ID", value = "小组ID")
+ private Long groupId;
+
+ /** 小组名称 */
+ @ApiModelProperty(name = "小组名称", value = "小组名称")
+ private String groupName;
+
+ /** 所属班级 */
+ @ApiModelProperty(name = "所属班级", value = "所属班级")
+ private Long groupClazz;
+
+ /** 小组状态 0-停用 1-启用 */
+ @ApiModelProperty(name = "小组状态 0-停用 1-启用", value = "小组状态 0-停用 1-启用")
+ private Long groupStatus;
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupSaveReq.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupSaveReq.java
new file mode 100644
index 0000000..3590d5f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/domain/req/GroupSaveReq.java
@@ -0,0 +1,44 @@
+package com.ruoyi.group.domain.req;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.experimental.SuperBuilder;
+import io.swagger.annotations.*;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 小组管理对象 group
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "GroupSaveReq", description = "小组管理")
+public class GroupSaveReq extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 小组名称 */
+
+ @ApiModelProperty(name = "小组名称", value = "小组名称")
+ private String groupName;
+
+ /** 所属班级 */
+
+ @ApiModelProperty(name = "所属班级", value = "所属班级", required = true)
+ private Long groupClazz;
+
+ /** 小组状态 0-停用 1-启用 */
+
+ @ApiModelProperty(name = "小组状态 0-停用 1-启用", value = "小组状态 0-停用 1-启用", required = true)
+ private Long groupStatus;
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/mapper/GroupMapper.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/mapper/GroupMapper.java
new file mode 100644
index 0000000..79f8c90
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/mapper/GroupMapper.java
@@ -0,0 +1,15 @@
+package com.ruoyi.group.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.group.domain.Group;
+
+/**
+ * 小组管理Mapper接口
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+public interface GroupMapper extends BaseMapper {
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/GroupService.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/GroupService.java
new file mode 100644
index 0000000..946c93e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/GroupService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.group.service;
+
+import java.util.List;
+import com.ruoyi.group.domain.Group;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 小组管理Service接口
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+public interface GroupService extends IService {
+ /**
+ * 查询小组管理列表
+ *
+ * @param group 小组管理
+ * @return 小组管理集合
+ */
+ public List list(Group group);
+
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/impl/GroupServiceImpl.java b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/impl/GroupServiceImpl.java
new file mode 100644
index 0000000..e12ce13
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/java/com/ruoyi/group/service/impl/GroupServiceImpl.java
@@ -0,0 +1,57 @@
+package com.ruoyi.group.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.ObjUtils;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import com.ruoyi.group.mapper.GroupMapper;
+import com.ruoyi.group.domain.Group;
+import com.ruoyi.group.service.GroupService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
+/**
+ * 小组管理Service业务层处理
+ *
+ * @author seer
+ * @date 2024-04-23
+ */
+@Slf4j
+@Service
+public class GroupServiceImpl extends ServiceImpl implements GroupService {
+
+ /**
+ * 查询小组管理列表
+ *
+ * @param group 小组管理
+ * @return 小组管理
+ */
+ @Override
+ public List list(Group group) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+
+ if (ObjUtils.notNull(group.getGroupId())){
+ queryWrapper.eq(Group::getGroupId, group.getGroupId());
+ }
+
+ if (ObjUtils.notNull(group.getGroupName())){
+ queryWrapper.like(Group::getGroupName, group.getGroupName());
+ }
+
+ if (null != (group.getGroupClazz())){
+ queryWrapper.eq(Group::getGroupClazz, group.getGroupClazz());
+ }
+
+ if (null != group.getGroupStatus()){
+ queryWrapper.eq(Group::getGroupStatus, group.getGroupStatus());
+ }
+
+
+
+
+
+ return list(queryWrapper);
+ }
+}
diff --git a/ruoyi-modules/ruoyi-group/src/main/resources/mapper/data/GroupMapper.xml b/ruoyi-modules/ruoyi-group/src/main/resources/mapper/data/GroupMapper.xml
new file mode 100644
index 0000000..96d8be0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-group/src/main/resources/mapper/data/GroupMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select group_id, group_name, group_clazz, group_status, create_by, create_time, update_by, update_time, remark from `group`
+
+