linwe
2023-11-23 6ab8d5b7e1d3ebc55be1180db4dadea56b4c28f4
议题议事+公益报名
40 files added
2320 ■■■■■ changed files
src/main/java/org/springblade/modules/discuss/controller/PublicDiscussController.java 133 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/controller/TopicsController.java 149 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java 126 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java 126 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/dto/PublicDiscussDTO.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/dto/TopicsDTO.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/dto/UserPublicEnrollDTO.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/dto/UserTopicsDTO.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/PublicDiscussEntity.java 163 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java 114 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java 79 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java 91 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml 76 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml 90 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml 46 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.java 51 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml 48 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/IPublicDiscussService.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/ITopicsService.java 53 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/IUserPublicEnrollService.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/PublicDiscussServiceImpl.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/TopicsServiceImpl.java 48 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/UserPublicEnrollServiceImpl.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/vo/PublicDiscussVO.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/vo/UserPublicEnrollVO.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/vo/UserTopicsVO.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/wrapper/PublicDiscussWrapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/wrapper/TopicsWrapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/wrapper/UserPublicEnrollWrapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/wrapper/UserTopicsWrapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/sql/publicdiscuss.menu.sql 10 ●●●●● patch | view | raw | blame | history
src/main/java/sql/topics.menu.sql 10 ●●●●● patch | view | raw | blame | history
src/main/java/sql/userpublicenroll.menu.sql 10 ●●●●● patch | view | raw | blame | history
src/main/java/sql/usertopics.menu.sql 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/controller/PublicDiscussController.java
New file
@@ -0,0 +1,133 @@
/*
 *      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.discuss.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.article.entity.ArticleLikeEntity;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.vo.PublicDiscussVO;
import org.springblade.modules.discuss.wrapper.PublicDiscussWrapper;
import org.springblade.modules.discuss.service.IPublicDiscussService;
import org.springblade.core.boot.ctrl.BladeController;
/**
 * 公益报名与议事 控制器
 *
 * @author BladeX
 * @since 2023-11-22
 */
@RestController
@AllArgsConstructor
@RequestMapping("public_discuss/publicDiscuss")
@Api(value = "公益报名与议事", tags = "公益报名与议事接口")
public class PublicDiscussController extends BladeController {
    private final IPublicDiscussService publicDiscussService;
    /**
     * 公益报名与议事 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入publicDiscuss")
    public R<PublicDiscussVO> detail(PublicDiscussEntity publicDiscuss) {
        PublicDiscussEntity detail = publicDiscussService.getOne(Condition.getQueryWrapper(publicDiscuss));
        return R.data(PublicDiscussWrapper.build().entityVO(detail));
    }
    /**
     * 公益报名与议事 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入publicDiscuss")
    public R<IPage<PublicDiscussVO>> list(PublicDiscussEntity publicDiscuss, Query query) {
        IPage<PublicDiscussEntity> pages = publicDiscussService.page(Condition.getPage(query), Condition.getQueryWrapper(publicDiscuss));
        return R.data(PublicDiscussWrapper.build().pageVO(pages));
    }
    /**
     * 公益报名与议事 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入publicDiscuss")
    public R<IPage<PublicDiscussVO>> page(PublicDiscussVO publicDiscuss, Query query) {
        IPage<PublicDiscussVO> pages = publicDiscussService.selectPublicDiscussPage(Condition.getPage(query), publicDiscuss);
        return R.data(pages);
    }
    /**
     * 公益报名与议事 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入publicDiscuss")
    public R save(@Valid @RequestBody PublicDiscussEntity publicDiscuss) {
        return R.status(publicDiscussService.save(publicDiscuss));
    }
    /**
     * 公益报名与议事 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入publicDiscuss")
    public R update(@Valid @RequestBody PublicDiscussEntity publicDiscuss) {
        return R.status(publicDiscussService.updateById(publicDiscuss));
    }
    /**
     * 公益报名与议事 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入publicDiscuss")
    public R submit(@Valid @RequestBody PublicDiscussEntity publicDiscuss) {
        publicDiscuss.setCreateBy(AuthUtil.getUserId());
        UpdateWrapper<PublicDiscussEntity> objectUpdateWrapper = new UpdateWrapper<>();
        objectUpdateWrapper.eq("article_id", publicDiscuss.getArticleId());
        objectUpdateWrapper.eq("event_type", publicDiscuss.getEventType());
        return R.status(publicDiscussService.saveOrUpdate(publicDiscuss,objectUpdateWrapper));
    }
    /**
     * 公益报名与议事 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(publicDiscussService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/discuss/controller/TopicsController.java
New file
@@ -0,0 +1,149 @@
/*
 *      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.discuss.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
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.discuss.dto.TopicsDTO;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.service.ITopicsService;
import org.springblade.modules.discuss.vo.TopicsVO;
import org.springblade.modules.discuss.wrapper.TopicsWrapper;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
 * 议题表 控制器
 *
 * @author BladeX
 * @since 2023-11-22
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-topics/topics")
@Api(value = "议题表", tags = "议题表接口")
public class TopicsController extends BladeController {
    private final ITopicsService topicsService;
    /**
     * 议题表 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入topics")
    public R<TopicsVO> detail(TopicsEntity topics) {
        TopicsEntity detail = topicsService.getOne(Condition.getQueryWrapper(topics));
        return R.data(TopicsWrapper.build().entityVO(detail));
    }
    /**
     * 议题表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入topics")
    public R<IPage<TopicsVO>> list(TopicsEntity topics, Query query) {
        IPage<TopicsEntity> pages = topicsService.page(Condition.getPage(query), Condition.getQueryWrapper(topics));
        return R.data(TopicsWrapper.build().pageVO(pages));
    }
    /**
     * 议题表 分页
     */
    @GetMapping("/lists")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入topics")
    public R<List<TopicsDTO>> list(TopicsDTO topics) {
        List<TopicsDTO> topicsDTOS = topicsService.selectTopicsList(topics);
        return R.data(topicsDTOS);
    }
    /**
     * 议题表 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入topics")
    public R<IPage<TopicsVO>> page(TopicsVO topics, Query query) {
        IPage<TopicsVO> pages = topicsService.selectTopicsPage(Condition.getPage(query), topics);
        return R.data(pages);
    }
    /**
     * 议题表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入topics")
    public R save(@Valid @RequestBody TopicsDTO topics) {
        return R.status(topicsService.save(topics));
    }
    /**
     * 议题表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入topics")
    public R update(@Valid @RequestBody TopicsEntity topics) {
        return R.status(topicsService.updateById(topics));
    }
    /**
     * 议题表 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入topics")
    public R submit(@Valid @RequestBody TopicsDTO topics) {
        boolean b = topicsService.saveOrUpdate(topics);
        if (b) {
            List<TopicsDTO> children = topics.getChildren();
            for (TopicsDTO child : children) {
                child.setParentId(topics.getId());
                child.setLevel(2);
                boolean b2 = topicsService.saveOrUpdate(child);
            }
            return R.status(b);
        }
        return R.status(false);
    }
    /**
     * 议题表 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(topicsService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java
New file
@@ -0,0 +1,126 @@
/*
 *      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.discuss.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.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
import org.springblade.modules.discuss.wrapper.UserPublicEnrollWrapper;
import org.springblade.modules.discuss.service.IUserPublicEnrollService;
import org.springblade.core.boot.ctrl.BladeController;
/**
 * 用户公益报名记录表 控制器
 *
 * @author BladeX
 * @since 2023-11-22
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-userPublicEnroll/userPublicEnroll")
@Api(value = "用户公益报名记录表", tags = "用户公益报名记录表接口")
public class UserPublicEnrollController extends BladeController {
    private final IUserPublicEnrollService userPublicEnrollService;
    /**
     * 用户公益报名记录表 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入userPublicEnroll")
    public R<UserPublicEnrollVO> detail(UserPublicEnrollEntity userPublicEnroll) {
        UserPublicEnrollEntity detail = userPublicEnrollService.getOne(Condition.getQueryWrapper(userPublicEnroll));
        return R.data(UserPublicEnrollWrapper.build().entityVO(detail));
    }
    /**
     * 用户公益报名记录表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入userPublicEnroll")
    public R<IPage<UserPublicEnrollVO>> list(UserPublicEnrollEntity userPublicEnroll, Query query) {
        IPage<UserPublicEnrollEntity> pages = userPublicEnrollService.page(Condition.getPage(query), Condition.getQueryWrapper(userPublicEnroll));
        return R.data(UserPublicEnrollWrapper.build().pageVO(pages));
    }
    /**
     * 用户公益报名记录表 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入userPublicEnroll")
    public R<IPage<UserPublicEnrollVO>> page(UserPublicEnrollVO userPublicEnroll, Query query) {
        IPage<UserPublicEnrollVO> pages = userPublicEnrollService.selectUserPublicEnrollPage(Condition.getPage(query), userPublicEnroll);
        return R.data(pages);
    }
    /**
     * 用户公益报名记录表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入userPublicEnroll")
    public R save(@Valid @RequestBody UserPublicEnrollEntity userPublicEnroll) {
        return R.status(userPublicEnrollService.save(userPublicEnroll));
    }
    /**
     * 用户公益报名记录表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入userPublicEnroll")
    public R update(@Valid @RequestBody UserPublicEnrollEntity userPublicEnroll) {
        return R.status(userPublicEnrollService.updateById(userPublicEnroll));
    }
    /**
     * 用户公益报名记录表 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入userPublicEnroll")
    public R submit(@Valid @RequestBody UserPublicEnrollEntity userPublicEnroll) {
        return R.status(userPublicEnrollService.saveOrUpdate(userPublicEnroll));
    }
    /**
     * 用户公益报名记录表 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(userPublicEnrollService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java
New file
@@ -0,0 +1,126 @@
/*
 *      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.discuss.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.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import org.springblade.modules.discuss.wrapper.UserTopicsWrapper;
import org.springblade.modules.discuss.service.IUserTopicsService;
import org.springblade.core.boot.ctrl.BladeController;
/**
 * 用户议题报表 控制器
 *
 * @author BladeX
 * @since 2023-11-22
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-userTopics/userTopics")
@Api(value = "用户议题报表", tags = "用户议题报表接口")
public class UserTopicsController extends BladeController {
    private final IUserTopicsService userTopicsService;
    /**
     * 用户议题报表 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入userTopics")
    public R<UserTopicsVO> detail(UserTopicsEntity userTopics) {
        UserTopicsEntity detail = userTopicsService.getOne(Condition.getQueryWrapper(userTopics));
        return R.data(UserTopicsWrapper.build().entityVO(detail));
    }
    /**
     * 用户议题报表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入userTopics")
    public R<IPage<UserTopicsVO>> list(UserTopicsEntity userTopics, Query query) {
        IPage<UserTopicsEntity> pages = userTopicsService.page(Condition.getPage(query), Condition.getQueryWrapper(userTopics));
        return R.data(UserTopicsWrapper.build().pageVO(pages));
    }
    /**
     * 用户议题报表 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入userTopics")
    public R<IPage<UserTopicsVO>> page(UserTopicsVO userTopics, Query query) {
        IPage<UserTopicsVO> pages = userTopicsService.selectUserTopicsPage(Condition.getPage(query), userTopics);
        return R.data(pages);
    }
    /**
     * 用户议题报表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入userTopics")
    public R save(@Valid @RequestBody UserTopicsEntity userTopics) {
        return R.status(userTopicsService.save(userTopics));
    }
    /**
     * 用户议题报表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入userTopics")
    public R update(@Valid @RequestBody UserTopicsEntity userTopics) {
        return R.status(userTopicsService.updateById(userTopics));
    }
    /**
     * 用户议题报表 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入userTopics")
    public R submit(@Valid @RequestBody UserTopicsEntity userTopics) {
        return R.status(userTopicsService.saveOrUpdate(userTopics));
    }
    /**
     * 用户议题报表 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(userTopicsService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/discuss/dto/PublicDiscussDTO.java
New file
@@ -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.discuss.dto;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 公益报名与议事 数据传输对象实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class PublicDiscussDTO extends PublicDiscussEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/dto/TopicsDTO.java
New file
@@ -0,0 +1,38 @@
/*
 *      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.discuss.dto;
import org.springblade.modules.discuss.entity.TopicsEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * 议题表 数据传输对象实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TopicsDTO extends TopicsEntity {
    private static final long serialVersionUID = 1L;
    private List<TopicsDTO> children;
}
src/main/java/org/springblade/modules/discuss/dto/UserPublicEnrollDTO.java
New file
@@ -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.discuss.dto;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 用户公益报名记录表 数据传输对象实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserPublicEnrollDTO extends UserPublicEnrollEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/dto/UserTopicsDTO.java
New file
@@ -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.discuss.dto;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 用户议题报表 数据传输对象实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserTopicsDTO extends UserTopicsEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/entity/PublicDiscussEntity.java
New file
@@ -0,0 +1,163 @@
/*
 *      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.discuss.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 公益报名与议事 实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@TableName("jczz_public_discuss")
@ApiModel(value = "PublicDiscuss对象", description = "公益报名与议事")
public class PublicDiscussEntity  implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 标题
     */
    @ApiModelProperty(value = "标题", example = "")
    @TableField("title")
    private String title;
    /**
     * 0 开启:1关闭
     */
    @ApiModelProperty(value = "0 开启:1关闭", example = "")
    @TableField("open_flag")
    private Integer openFlag;
    /**
     * 人数限制:0 不限制
     */
    @ApiModelProperty(value = "人数限制:0 不限制", example = "")
    @TableField("number_restrictions")
    private Integer numberRestrictions;
    /**
     * 投票限制:0 一人一票 1 一户一票
     */
    @ApiModelProperty(value = "投票限制:0 一人一票 1 一户一票", example = "")
    @TableField("vote_restrictions")
    private Integer voteRestrictions;
    /**
     * 用户限制 0 不限制 1 必须绑定手机 2 必须绑定住房
     */
    @ApiModelProperty(value = "用户限制 0 不限制 1 必须绑定手机 2 必须绑定住房", example = "")
    @TableField("user_restrictions")
    private Integer userRestrictions;
    /**
     * 截止时间
     */
    @ApiModelProperty(value = "截止时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("end_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * 文章id
     */
    @ApiModelProperty(value = "文章id", example = "")
    @TableField("article_id")
    private Integer articleId;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private Date updateTime;
    /**
     * 0:否 1 是
     */
    @ApiModelProperty(value = "0:否 1 是", example = "")
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;
    /**
     * 多房屋可重复投票 0否 1是
     */
    @ApiModelProperty(value = "多房屋可重复投票 0否 1是", example = "")
    @TableField("repeat_vote")
    private Integer repeatVote;
    /**
     * 票数公开 0 全程公开 1 投票后公开 2 投票结束公开 3 不公开
     */
    @ApiModelProperty(value = "票数公开 0 全程公开 1 投票后公开 2 投票结束公开 3 不公开", example = "")
    @TableField("vote_number_public")
    private Integer voteNumberPublic;
    /**
     * 指定用户 0 否 1是
     */
    @ApiModelProperty(value = "指定用户 0 否 1是", example = "")
    @TableField("appoint_user")
    private Integer appointUser;
    /**
     * 指定用户id [ 1,2,3,4,5,6,7,8,9 ]
     */
    @ApiModelProperty(value = "指定用户id [ 1,2,3,4,5,6,7,8,9 ]", example = "")
    @TableField("user_ids")
    private String userIds;
    /**
     * 0:公益报名 1:议事
     */
    @ApiModelProperty(value = "0:公益报名 1:议事", example = "")
    @TableField("event_type")
    private Integer eventType;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", example = "")
    @TableField("create_by")
    private Long createBy;
}
src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java
New file
@@ -0,0 +1,114 @@
/*
 *      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.discuss.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serializable;
import java.util.Date;
/**
 * 议题表 实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@TableName("jczz_topics")
@ApiModel(value = "Topics对象", description = "议题表")
public class TopicsEntity  implements Serializable
{
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /** 议题内容 */
    @ApiModelProperty(value = "议题内容", example = "")
    @TableField("discuss_content")
    private String discussContent;
    /** 选项 0:单 1多 */
    @ApiModelProperty(value = "选项 0:单 1多", example = "")
    @TableField("option")
    private Integer option;
    /** 排序 */
    @ApiModelProperty(value = "排序", example = "")
    @TableField("sort")
    private Integer sort;
    /** 选择内容 */
    @ApiModelProperty(value = "选择内容", example = "")
    @TableField("option_content")
    private String optionContent;
    /** 选项说明 */
    @ApiModelProperty(value = "选项说明", example = "")
    @TableField("option_detail")
    private String optionDetail;
    /** 投票数量 */
    @ApiModelProperty(value = "投票数量", example = "")
    @TableField("number")
    private Integer number;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private Date updateTime;
    /** 0否 1是 */
    @ApiModelProperty(value = "0否 1是", example = "")
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;
    /** 公益报名与议事表id */
    @ApiModelProperty(value = "公益报名与议事表id", example = "")
    @TableField("public_discuss_id")
    private Integer publicDiscussId;
    /** 父级id */
    @ApiModelProperty(value = "父级id", example = "")
    @TableField("parent_id")
    private Integer parentId;
    /** 层级 */
    @ApiModelProperty(value = "层级", example = "")
    @TableField("level")
    private Integer level;
}
src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java
New file
@@ -0,0 +1,79 @@
/*
 *      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.discuss.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serializable;
import java.util.Date;
/**
 * 用户公益报名记录表 实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@TableName("jczz_user_public_enroll")
@ApiModel(value = "UserPublicEnroll对象", description = "用户公益报名记录表")
public class UserPublicEnrollEntity  implements Serializable
{
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /** 公益报名与议事表id */
    @ApiModelProperty(value = "公益报名与议事表id", example = "")
    @TableField("public_discuss_id")
    private Integer publicDiscussId;
    /** 用户id */
    @ApiModelProperty(value = "用户id", example = "")
    @TableField("user_id")
    private Long userId;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private Date updateTime;
    /** 0否 1是 */
    @ApiModelProperty(value = "0否 1是", example = "")
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;
}
src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java
New file
@@ -0,0 +1,91 @@
/*
 *      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.discuss.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * 用户议题报表 实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@TableName("jczz_user_topics")
@ApiModel(value = "UserTopics对象", description = "用户议题报表")
public class UserTopicsEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", example = "")
    @TableField("user_id")
    private Long userId;
    /**
     * 议题id
     */
    @ApiModelProperty(value = "议题id", example = "")
    @TableField("topics_id")
    private Integer topicsId;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;
    /**
     * 0否 1是
     */
    @ApiModelProperty(value = "0否 1是", example = "")
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;
    /**
     * 公益报名与议事表id
     */
    @ApiModelProperty(value = "公益报名与议事表id", example = "")
    @TableField("public_discuss_id")
    private Integer publicDiscussId;
}
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.java
New file
@@ -0,0 +1,52 @@
/*
 *      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.discuss.mapper;
import org.springblade.modules.discuss.dto.PublicDiscussDTO;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.vo.PublicDiscussVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 公益报名与议事 Mapper 接口
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface PublicDiscussMapper extends BaseMapper<PublicDiscussEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param publicDiscuss
     * @return
     */
    List<PublicDiscussVO> selectPublicDiscussPage(IPage page, PublicDiscussVO publicDiscuss);
    /**
     * 查询公益报名与议事表列表
     *
     * @param publicDiscussDTO 公益报名与议事表
     * @return 公益报名与议事表集合
     */
    public List<PublicDiscussDTO> selectPublicDiscussList(PublicDiscussDTO publicDiscussDTO);
}
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml
New file
@@ -0,0 +1,76 @@
<?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.discuss.mapper.PublicDiscussMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="publicDiscussResultMap" type="org.springblade.modules.discuss.entity.PublicDiscussEntity">
        <result property="id"                   column="id"    />
        <result property="title"                column="title"    />
        <result property="openFlag"             column="open_flag"    />
        <result property="numberRestrictions"    column="number_restrictions"    />
        <result property="voteRestrictions"     column="vote_restrictions"    />
        <result property="userRestrictions"    column="user_restrictions"    />
        <result property="endTime"              column="end_time"    />
        <result property="articleId"            column="article_id"    />
        <result property="createTime"            column="create_time"    />
        <result property="updateTime"            column="update_time"    />
        <result property="deleteFlag"            column="delete_flag"    />
        <result property="repeatVote"            column="repeat_vote"    />
        <result property="voteNumberPublic"    column="vote_number_public"    />
        <result property="appointUser"           column="appoint_user"    />
        <result property="userIds"               column="user_ids"    />
        <result property="eventType"             column="event_type"    />
    </resultMap>
    <sql id="selectPublicDiscuss">
        select
            id,
            title,
            open_flag,
            number_restrictions,
            vote_restrictions,
            user_restrictions,
            end_time,
            article_id,
            create_time,
            update_time,
            delete_flag,
            repeat_vote,
            vote_number_public,
            appoint_user,
            user_ids,
            event_type
        from
            jczz_public_discuss
    </sql>
    <select id="selectPublicDiscussPage" resultMap="publicDiscussResultMap">
        select * from jczz_public_discuss where deleted_flag = 0
    </select>
    <select id="selectPublicDiscussList" parameterType="org.springblade.modules.discuss.dto.PublicDiscussDTO" resultMap="publicDiscussResultMap">
        <include refid="selectPublicDiscuss"/>
        <where>
            <if test="id != null "> and id = #{id}</if>
            <if test="title != null  and title != ''"> and title = #{title}</if>
            <if test="openFlag != null "> and open_flag = #{openFlag}</if>
            <if test="numberRestrictions != null "> and number_restrictions = #{numberRestrictions}</if>
            <if test="voteRestrictions != null "> and vote_restrictions = #{voteRestrictions}</if>
            <if test="userRestrictions != null "> and user_restrictions = #{userRestrictions}</if>
            <if test="endTime != null "> and end_time = #{endTime}</if>
            <if test="articleId != null "> and article_id = #{articleId}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateTime != null "> and update_time = #{updateTime}</if>
            <if test="deleteFlag != null "> and delete_flag = #{deleteFlag}</if>
            <if test="repeatVote != null "> and repeat_vote = #{repeatVote}</if>
            <if test="voteNumberPublic != null "> and vote_number_public = #{voteNumberPublic}</if>
            <if test="appointUser != null "> and appoint_user = #{appointUser}</if>
            <if test="userIds != null  and userIds != ''"> and user_ids = #{userIds}</if>
            <if test="eventType != null "> and event_type = #{eventType}</if>
        </where>
    </select>
</mapper>
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.java
New file
@@ -0,0 +1,52 @@
/*
 *      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.discuss.mapper;
import org.springblade.modules.discuss.dto.TopicsDTO;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.vo.TopicsVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 议题表 Mapper 接口
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface TopicsMapper extends BaseMapper<TopicsEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param topics
     * @return
     */
    List<TopicsVO> selectTopicsPage(IPage page, TopicsVO topics);
    /**
     * 查询议题表列表
     *
     * @param topicsDTO 议题表
     * @return 议题表集合
     */
    public List<TopicsDTO> selectTopicsList(TopicsDTO topicsDTO);
}
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml
New file
@@ -0,0 +1,90 @@
<?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.discuss.mapper.TopicsMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="topicsResultMap" type="org.springblade.modules.discuss.entity.TopicsEntity">
        <result property="id"    column="id"    />
        <result property="discussContent"    column="discuss_content"    />
        <result property="option"    column="option"    />
        <result property="sort"    column="sort"    />
        <result property="optionContent"    column="option_content"    />
        <result property="optionDetail"    column="option_detail"    />
        <result property="number"    column="number"    />
        <result property="createTime"    column="crete_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
        <result property="parentId"    column="parent_id"    />
        <result property="level"    column="level"    />
    </resultMap>
    <resultMap type="org.springblade.modules.discuss.dto.TopicsDTO" id="TopicsDTOResult">
        <result property="id"    column="id"    />
        <result property="discussContent"    column="discuss_content"    />
        <result property="option"    column="option"    />
        <result property="sort"    column="sort"    />
        <result property="optionContent"    column="option_content"    />
        <result property="optionDetail"    column="option_detail"    />
        <result property="number"    column="number"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
        <result property="parentId"    column="parent_id"    />
        <result property="level"    column="level"    />
        <collection property="children" column="id" javaType="int" select="selectStlCount">
        </collection>
    </resultMap>
    <select id="selectStlCount" resultMap="TopicsDTOResult">
        <include refid="selectTopics"/>
        where parent_id = #{id}
    </select>
    <sql id="selectTopics">
        select
            id,
            discuss_content,
        option,
            sort,
            option_content,
            option_detail,
            number,
            create_time,
            update_time,
            delete_flag,
            public_discuss_id,
            parent_id,
            level
        from
            jczz_topics
    </sql>
    <select id="selectTopicsPage" resultMap="topicsResultMap">
        select * from jczz_topics where deleted_flag = 0
    </select>
    <select id="selectTopicsList" parameterType="org.springblade.modules.discuss.dto.TopicsDTO" resultMap="TopicsDTOResult">
        <include refid="selectTopics"/>
        <where>
            <if test="id != null "> and id = #{id}</if>
            <if test="discussContent != null  and discussContent != ''"> and discuss_content = #{discussContent}</if>
            <if test="option != null "> and option = #{option}</if>
            <if test="sort != null "> and sort = #{sort}</if>
            <if test="optionContent != null  and optionContent != ''"> and option_content = #{optionContent}</if>
            <if test="optionDetail != null  and optionDetail != ''"> and option_detail = #{optionDetail}</if>
            <if test="number != null "> and number = #{number}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateTime != null "> and update_time = #{updateTime}</if>
            <if test="deleteFlag != null "> and delete_flag = #{deleteFlag}</if>
            <if test="publicDiscussId != null "> and public_discuss_id = #{publicDiscussId}</if>
        </where>
    </select>
</mapper>
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.java
New file
@@ -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.discuss.mapper;
import org.springblade.modules.discuss.dto.UserPublicEnrollDTO;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 用户公益报名记录表 Mapper 接口
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface UserPublicEnrollMapper extends BaseMapper<UserPublicEnrollEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param userPublicEnroll
     * @return
     */
    List<UserPublicEnrollVO> selectUserPublicEnrollPage(IPage page, UserPublicEnrollVO userPublicEnroll);
    /**
     * 查询用户公益报名记录表列表
     *
     * @param userPublicEnrollDTO 用户公益报名记录表
     * @return 用户公益报名记录表集合
     */
    public List<UserPublicEnrollDTO> selectUserPublicEnrollList(UserPublicEnrollDTO userPublicEnrollDTO);
}
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml
New file
@@ -0,0 +1,46 @@
<?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.discuss.mapper.UserPublicEnrollMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="userPublicEnrollResultMap" type="org.springblade.modules.discuss.entity.UserPublicEnrollEntity">
        <result property="id"    column="id"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
        <result property="userId"    column="user_id"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
    </resultMap>
    <sql id="selectUserPublicEnroll">
        select
            id,
            public_discuss_id,
            user_id,
            create_time,
            update_time,
            delete_flag
        from
            jczz_user_public_enroll
    </sql>
    <select id="selectUserPublicEnrollPage" resultMap="userPublicEnrollResultMap">
        select * from jczz_user_public_enroll where deleted_flag = 0
    </select>
    <select id="selectUserPublicEnrollList" parameterType="org.springblade.modules.discuss.dto.UserPublicEnrollDTO" resultMap="userPublicEnrollResultMap">
        <include refid="selectUserPublicEnroll"/>
        <where>
            <if test="id != null "> and id = #{id}</if>
            <if test="publicDiscussId != null "> and public_discuss_id = #{publicDiscussId}</if>
            <if test="userId != null "> and user_id = #{userId}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateTime != null "> and update_time = #{updateTime}</if>
            <if test="deleteFlag != null "> and delete_flag = #{deleteFlag}</if>
        </where>
    </select>
</mapper>
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.java
New file
@@ -0,0 +1,51 @@
/*
 *      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.discuss.mapper;
import org.springblade.modules.discuss.dto.UserTopicsDTO;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 用户议题报表 Mapper 接口
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface UserTopicsMapper extends BaseMapper<UserTopicsEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param userTopics
     * @return
     */
    List<UserTopicsVO> selectUserTopicsPage(IPage page, UserTopicsVO userTopics);
    /**
     * 查询用户议题报表列表
     *
     * @param userTopicsDTO 用户议题报表
     * @return 用户议题报表集合
     */
    public List<UserTopicsDTO> selectUserTopicsList(UserTopicsDTO userTopicsDTO);
}
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
New file
@@ -0,0 +1,48 @@
<?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.discuss.mapper.UserTopicsMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="userTopicsResultMap" type="org.springblade.modules.discuss.entity.UserTopicsEntity">
        <result property="id"    column="id"    />
        <result property="userId"    column="user_id"    />
        <result property="topicsId"    column="topics_id"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="deleteFlag"    column="delete_flag"    />
        <result property="publicDiscussId"    column="public_discuss_id"    />
    </resultMap>
    <sql id="selectUserTopics">
        select
            id,
            user_id,
            topics_id,
            create_time,
            update_time,
            delete_flag,
            public_discuss_id
        from
            jczz_user_topics
    </sql>
    <select id="selectUserTopicsPage" resultMap="userTopicsResultMap">
        select * from jczz_user_topics where deleted_flag = 0
    </select>
    <select id="selectUserTopicsList" parameterType="org.springblade.modules.discuss.dto.UserTopicsDTO" resultMap="userTopicsResultMap">
        <include refid="selectUserTopics"/>
        <where>
            <if test="id != null "> and id = #{id}</if>
            <if test="userId != null "> and user_id = #{userId}</if>
            <if test="topicsId != null "> and topics_id = #{topicsId}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateTime != null "> and update_time = #{updateTime}</if>
            <if test="deleteFlag != null "> and delete_flag = #{deleteFlag}</if>
            <if test="publicDiscussId != null "> and public_discuss_id = #{publicDiscussId}</if>
        </where>
    </select>
</mapper>
src/main/java/org/springblade/modules/discuss/service/IPublicDiscussService.java
New file
@@ -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.discuss.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.vo.PublicDiscussVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
/**
 * 公益报名与议事 服务类
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface IPublicDiscussService extends IService<PublicDiscussEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param publicDiscuss
     * @return
     */
    IPage<PublicDiscussVO> selectPublicDiscussPage(IPage<PublicDiscussVO> page, PublicDiscussVO publicDiscuss);
}
src/main/java/org/springblade/modules/discuss/service/ITopicsService.java
New file
@@ -0,0 +1,53 @@
/*
 *      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.discuss.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.discuss.dto.TopicsDTO;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.vo.TopicsVO;
import java.util.List;
/**
 * 议题表 服务类
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface ITopicsService extends IService<TopicsEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param topics
     * @return
     */
    IPage<TopicsVO> selectTopicsPage(IPage<TopicsVO> page, TopicsVO topics);
    /**
     *
     * @param topicsDTO
     * @return
     */
    public List<TopicsDTO> selectTopicsList(TopicsDTO topicsDTO);
}
src/main/java/org/springblade/modules/discuss/service/IUserPublicEnrollService.java
New file
@@ -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.discuss.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
/**
 * 用户公益报名记录表 服务类
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface IUserPublicEnrollService extends IService<UserPublicEnrollEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param userPublicEnroll
     * @return
     */
    IPage<UserPublicEnrollVO> selectUserPublicEnrollPage(IPage<UserPublicEnrollVO> page, UserPublicEnrollVO userPublicEnroll);
}
src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java
New file
@@ -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.discuss.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.vo.UserTopicsVO;
/**
 * 用户议题报表 服务类
 *
 * @author BladeX
 * @since 2023-11-22
 */
public interface IUserTopicsService extends IService<UserTopicsEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param userTopics
     * @return
     */
    IPage<UserTopicsVO> selectUserTopicsPage(IPage<UserTopicsVO> page, UserTopicsVO userTopics);
}
src/main/java/org/springblade/modules/discuss/service/impl/PublicDiscussServiceImpl.java
New file
@@ -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.discuss.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.mapper.PublicDiscussMapper;
import org.springblade.modules.discuss.service.IPublicDiscussService;
import org.springblade.modules.discuss.vo.PublicDiscussVO;
import org.springframework.stereotype.Service;
/**
 * 公益报名与议事 服务实现类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Service
public class PublicDiscussServiceImpl extends ServiceImpl<PublicDiscussMapper, PublicDiscussEntity> implements IPublicDiscussService {
    @Override
    public IPage<PublicDiscussVO> selectPublicDiscussPage(IPage<PublicDiscussVO> page, PublicDiscussVO publicDiscuss) {
        return page.setRecords(baseMapper.selectPublicDiscussPage(page, publicDiscuss));
    }
}
src/main/java/org/springblade/modules/discuss/service/impl/TopicsServiceImpl.java
New file
@@ -0,0 +1,48 @@
/*
 *      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.discuss.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.discuss.dto.TopicsDTO;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.mapper.TopicsMapper;
import org.springblade.modules.discuss.service.ITopicsService;
import org.springblade.modules.discuss.vo.TopicsVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 议题表 服务实现类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Service
public class TopicsServiceImpl extends ServiceImpl<TopicsMapper, TopicsEntity> implements ITopicsService {
    @Override
    public IPage<TopicsVO> selectTopicsPage(IPage<TopicsVO> page, TopicsVO topics) {
        return page.setRecords(baseMapper.selectTopicsPage(page, topics));
    }
    @Override
    public List<TopicsDTO> selectTopicsList(TopicsDTO topicsDTO) {
        return  baseMapper.selectTopicsList( topicsDTO);
    }
}
src/main/java/org/springblade/modules/discuss/service/impl/UserPublicEnrollServiceImpl.java
New file
@@ -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.discuss.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.mapper.UserPublicEnrollMapper;
import org.springblade.modules.discuss.service.IUserPublicEnrollService;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
import org.springframework.stereotype.Service;
/**
 * 用户公益报名记录表 服务实现类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Service
public class UserPublicEnrollServiceImpl extends ServiceImpl<UserPublicEnrollMapper, UserPublicEnrollEntity> implements IUserPublicEnrollService {
    @Override
    public IPage<UserPublicEnrollVO> selectUserPublicEnrollPage(IPage<UserPublicEnrollVO> page, UserPublicEnrollVO userPublicEnroll) {
        return page.setRecords(baseMapper.selectUserPublicEnrollPage(page, userPublicEnroll));
    }
}
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java
New file
@@ -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.discuss.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.mapper.UserTopicsMapper;
import org.springblade.modules.discuss.service.IUserTopicsService;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import org.springframework.stereotype.Service;
/**
 * 用户议题报表 服务实现类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Service
public class UserTopicsServiceImpl extends ServiceImpl<UserTopicsMapper, UserTopicsEntity> implements IUserTopicsService {
    @Override
    public IPage<UserTopicsVO> selectUserTopicsPage(IPage<UserTopicsVO> page, UserTopicsVO userTopics) {
        return page.setRecords(baseMapper.selectUserTopicsPage(page, userTopics));
    }
}
src/main/java/org/springblade/modules/discuss/vo/PublicDiscussVO.java
New file
@@ -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.discuss.vo;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 公益报名与议事 视图实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class PublicDiscussVO extends PublicDiscussEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java
New file
@@ -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.discuss.vo;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 议题表 视图实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TopicsVO extends TopicsEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/vo/UserPublicEnrollVO.java
New file
@@ -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.discuss.vo;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 用户公益报名记录表 视图实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserPublicEnrollVO extends UserPublicEnrollEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/vo/UserTopicsVO.java
New file
@@ -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.discuss.vo;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 用户议题报表 视图实体类
 *
 * @author BladeX
 * @since 2023-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserTopicsVO extends UserTopicsEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/discuss/wrapper/PublicDiscussWrapper.java
New file
@@ -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.discuss.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.vo.PublicDiscussVO;
import java.util.Objects;
/**
 * 公益报名与议事 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2023-11-22
 */
public class PublicDiscussWrapper extends BaseEntityWrapper<PublicDiscussEntity, PublicDiscussVO>  {
    public static PublicDiscussWrapper build() {
        return new PublicDiscussWrapper();
     }
    @Override
    public PublicDiscussVO entityVO(PublicDiscussEntity publicDiscuss) {
        PublicDiscussVO publicDiscussVO = Objects.requireNonNull(BeanUtil.copy(publicDiscuss, PublicDiscussVO.class));
        //User createUser = UserCache.getUser(publicDiscuss.getCreateUser());
        //User updateUser = UserCache.getUser(publicDiscuss.getUpdateUser());
        //publicDiscussVO.setCreateUserName(createUser.getName());
        //publicDiscussVO.setUpdateUserName(updateUser.getName());
        return publicDiscussVO;
    }
}
src/main/java/org/springblade/modules/discuss/wrapper/TopicsWrapper.java
New file
@@ -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.discuss.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.vo.TopicsVO;
import java.util.Objects;
/**
 * 议题表 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2023-11-22
 */
public class TopicsWrapper extends BaseEntityWrapper<TopicsEntity, TopicsVO>  {
    public static TopicsWrapper build() {
        return new TopicsWrapper();
     }
    @Override
    public TopicsVO entityVO(TopicsEntity topics) {
        TopicsVO topicsVO = Objects.requireNonNull(BeanUtil.copy(topics, TopicsVO.class));
        //User createUser = UserCache.getUser(topics.getCreateUser());
        //User updateUser = UserCache.getUser(topics.getUpdateUser());
        //topicsVO.setCreateUserName(createUser.getName());
        //topicsVO.setUpdateUserName(updateUser.getName());
        return topicsVO;
    }
}
src/main/java/org/springblade/modules/discuss/wrapper/UserPublicEnrollWrapper.java
New file
@@ -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.discuss.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.vo.UserPublicEnrollVO;
import java.util.Objects;
/**
 * 用户公益报名记录表 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2023-11-22
 */
public class UserPublicEnrollWrapper extends BaseEntityWrapper<UserPublicEnrollEntity, UserPublicEnrollVO>  {
    public static UserPublicEnrollWrapper build() {
        return new UserPublicEnrollWrapper();
     }
    @Override
    public UserPublicEnrollVO entityVO(UserPublicEnrollEntity userPublicEnroll) {
        UserPublicEnrollVO userPublicEnrollVO = Objects.requireNonNull(BeanUtil.copy(userPublicEnroll, UserPublicEnrollVO.class));
        //User createUser = UserCache.getUser(userPublicEnroll.getCreateUser());
        //User updateUser = UserCache.getUser(userPublicEnroll.getUpdateUser());
        //userPublicEnrollVO.setCreateUserName(createUser.getName());
        //userPublicEnrollVO.setUpdateUserName(updateUser.getName());
        return userPublicEnrollVO;
    }
}
src/main/java/org/springblade/modules/discuss/wrapper/UserTopicsWrapper.java
New file
@@ -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.discuss.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import java.util.Objects;
/**
 * 用户议题报表 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2023-11-22
 */
public class UserTopicsWrapper extends BaseEntityWrapper<UserTopicsEntity, UserTopicsVO>  {
    public static UserTopicsWrapper build() {
        return new UserTopicsWrapper();
     }
    @Override
    public UserTopicsVO entityVO(UserTopicsEntity userTopics) {
        UserTopicsVO userTopicsVO = Objects.requireNonNull(BeanUtil.copy(userTopics, UserTopicsVO.class));
        //User createUser = UserCache.getUser(userTopics.getCreateUser());
        //User updateUser = UserCache.getUser(userTopics.getUpdateUser());
        //userTopicsVO.setCreateUserName(createUser.getName());
        //userTopicsVO.setUpdateUserName(updateUser.getName());
        return userTopicsVO;
    }
}
src/main/java/sql/publicdiscuss.menu.sql
New file
@@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727263229228367873', 1123598815738675201, 'publicDiscuss', '公益报名与议事', 'menu', '/discuss/publicDiscuss', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727263229228367874', '1727263229228367873', 'publicDiscuss_add', '新增', 'add', '/discuss/publicDiscuss/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727263229228367875', '1727263229228367873', 'publicDiscuss_edit', '修改', 'edit', '/discuss/publicDiscuss/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727263229228367876', '1727263229228367873', 'publicDiscuss_delete', '删除', 'delete', '/api/public_discuss/publicDiscuss/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727263229228367877', '1727263229228367873', 'publicDiscuss_view', '查看', 'view', '/discuss/publicDiscuss/view', 'file-text', 4, 2, 2, 1, NULL, 0);
src/main/java/sql/topics.menu.sql
New file
@@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996484665345', 1123598815738675201, 'topics', '议题表', 'menu', '/discuss/topics', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996484665346', '1727261996484665345', 'topics_add', '新增', 'add', '/discuss/topics/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996484665347', '1727261996484665345', 'topics_edit', '修改', 'edit', '/discuss/topics/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996484665348', '1727261996484665345', 'topics_delete', '删除', 'delete', '/api/blade-topics/topics/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996484665349', '1727261996484665345', 'topics_view', '查看', 'view', '/discuss/topics/view', 'file-text', 4, 2, 2, 1, NULL, 0);
src/main/java/sql/userpublicenroll.menu.sql
New file
@@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996811821057', 1123598815738675201, 'userPublicEnroll', '用户公益报名记录表', 'menu', '/discuss/userPublicEnroll', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996811821058', '1727261996811821057', 'userPublicEnroll_add', '新增', 'add', '/discuss/userPublicEnroll/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996811821059', '1727261996811821057', 'userPublicEnroll_edit', '修改', 'edit', '/discuss/userPublicEnroll/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996811821060', '1727261996811821057', 'userPublicEnroll_delete', '删除', 'delete', '/api/blade-userPublicEnroll/userPublicEnroll/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261996811821061', '1727261996811821057', 'userPublicEnroll_view', '查看', 'view', '/discuss/userPublicEnroll/view', 'file-text', 4, 2, 2, 1, NULL, 0);
src/main/java/sql/usertopics.menu.sql
New file
@@ -0,0 +1,10 @@
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261997134782465', 1123598815738675201, 'userTopics', '用户议题报表', 'menu', '/discuss/userTopics', NULL, 1, 1, 0, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261997134782466', '1727261997134782465', 'userTopics_add', '新增', 'add', '/discuss/userTopics/add', 'plus', 1, 2, 1, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261997134782467', '1727261997134782465', 'userTopics_edit', '修改', 'edit', '/discuss/userTopics/edit', 'form', 2, 2, 2, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261997134782468', '1727261997134782465', 'userTopics_delete', '删除', 'delete', '/api/blade-userTopics/userTopics/remove', 'delete', 3, 2, 3, 1, NULL, 0);
INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
VALUES ('1727261997134782469', '1727261997134782465', 'userTopics_view', '查看', 'view', '/discuss/userTopics/view', 'file-text', 4, 2, 2, 1, NULL, 0);