diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardController.java
new file mode 100644
index 0000000..fb97702
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.base.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.BaseCard;
+import com.ruoyi.base.service.IBaseCardService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 会员卡Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/base/card")
+public class BaseCardController extends BaseController
+{
+    @Autowired
+    private IBaseCardService baseCardService;
+
+    /**
+     * 查询会员卡列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BaseCard baseCard,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BaseCard> page = new Page<>(pageNum, pageSize);
+        IPage<BaseCard> list = baseCardService.queryListPage(baseCard,page);
+        return success(list);
+    }
+
+    /**
+     * 导出会员卡列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:export')")
+    @Log(title = "会员卡", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseCard baseCard)
+    {
+        List<BaseCard> list = baseCardService.list();
+        ExcelUtil<BaseCard> util = new ExcelUtil<BaseCard>(BaseCard.class);
+        util.exportExcel(response, list, "会员卡数据");
+    }
+
+    /**
+     * 获取会员卡详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(baseCardService.getById(id));
+    }
+
+    /**
+     * 新增会员卡
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:add')")
+    @Log(title = "会员卡", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseCard baseCard)
+    {
+        return toAjax(baseCardService.save(baseCard));
+    }
+
+    /**
+     * 修改会员卡
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:edit')")
+    @Log(title = "会员卡", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseCard baseCard)
+    {
+        return toAjax(baseCardService.updateById(baseCard));
+    }
+
+    /**
+     * 删除会员卡
+     */
+    @PreAuthorize("@ss.hasPermi('base:card:remove')")
+    @Log(title = "会员卡", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(baseCardService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java
new file mode 100644
index 0000000..99473b9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.base.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.BaseCardRights;
+import com.ruoyi.base.service.IBaseCardRightsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 会员卡权益Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/base/cardRights")
+public class BaseCardRightsController extends BaseController
+{
+    @Autowired
+    private IBaseCardRightsService baseCardRightsService;
+
+    /**
+     * 查询会员卡权益列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BaseCardRights baseCardRights,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BaseCardRights> page = new Page<>(pageNum, pageSize);
+        IPage<BaseCardRights> list = baseCardRightsService.queryListPage(baseCardRights,page);
+        return success(list);
+    }
+
+    /**
+     * 导出会员卡权益列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:export')")
+    @Log(title = "会员卡权益", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseCardRights baseCardRights)
+    {
+        List<BaseCardRights> list = baseCardRightsService.list();
+        ExcelUtil<BaseCardRights> util = new ExcelUtil<BaseCardRights>(BaseCardRights.class);
+        util.exportExcel(response, list, "会员卡权益数据");
+    }
+
+    /**
+     * 获取会员卡权益详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(baseCardRightsService.getById(id));
+    }
+
+    /**
+     * 新增会员卡权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:add')")
+    @Log(title = "会员卡权益", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseCardRights baseCardRights)
+    {
+        return toAjax(baseCardRightsService.save(baseCardRights));
+    }
+
+    /**
+     * 修改会员卡权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:edit')")
+    @Log(title = "会员卡权益", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseCardRights baseCardRights)
+    {
+        return toAjax(baseCardRightsService.updateById(baseCardRights));
+    }
+
+    /**
+     * 删除会员卡权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:cardRights:remove')")
+    @Log(title = "会员卡权益", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(baseCardRightsService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java
new file mode 100644
index 0000000..61c6843
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCategoryController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.base.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.BaseCategory;
+import com.ruoyi.base.service.IBaseCategoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 分类树-各种分类属性结构Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/base/category")
+public class BaseCategoryController extends BaseController
+{
+    @Autowired
+    private IBaseCategoryService baseCategoryService;
+
+    /**
+     * 查询分类树-各种分类属性结构列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BaseCategory baseCategory,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BaseCategory> page = new Page<>(pageNum, pageSize);
+        IPage<BaseCategory> list = baseCategoryService.queryListPage(baseCategory,page);
+        return success(list);
+    }
+
+    /**
+     * 导出分类树-各种分类属性结构列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:export')")
+    @Log(title = "分类树-各种分类属性结构", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseCategory baseCategory)
+    {
+        List<BaseCategory> list = baseCategoryService.list();
+        ExcelUtil<BaseCategory> util = new ExcelUtil<BaseCategory>(BaseCategory.class);
+        util.exportExcel(response, list, "分类树-各种分类属性结构数据");
+    }
+
+    /**
+     * 获取分类树-各种分类属性结构详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(baseCategoryService.getById(id));
+    }
+
+    /**
+     * 新增分类树-各种分类属性结构
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:add')")
+    @Log(title = "分类树-各种分类属性结构", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseCategory baseCategory)
+    {
+        return toAjax(baseCategoryService.save(baseCategory));
+    }
+
+    /**
+     * 修改分类树-各种分类属性结构
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:edit')")
+    @Log(title = "分类树-各种分类属性结构", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseCategory baseCategory)
+    {
+        return toAjax(baseCategoryService.updateById(baseCategory));
+    }
+
+    /**
+     * 删除分类树-各种分类属性结构
+     */
+    @PreAuthorize("@ss.hasPermi('base:category:remove')")
+    @Log(title = "分类树-各种分类属性结构", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(baseCategoryService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCouponController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCouponController.java
new file mode 100644
index 0000000..79d7394
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCouponController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.base.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.BaseCoupon;
+import com.ruoyi.base.service.IBaseCouponService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告券Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/base/coupon")
+public class BaseCouponController extends BaseController
+{
+    @Autowired
+    private IBaseCouponService baseCouponService;
+
+    /**
+     * 查询通告券列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BaseCoupon baseCoupon,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BaseCoupon> page = new Page<>(pageNum, pageSize);
+        IPage<BaseCoupon> list = baseCouponService.queryListPage(baseCoupon,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告券列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:export')")
+    @Log(title = "通告券", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseCoupon baseCoupon)
+    {
+        List<BaseCoupon> list = baseCouponService.list();
+        ExcelUtil<BaseCoupon> util = new ExcelUtil<BaseCoupon>(BaseCoupon.class);
+        util.exportExcel(response, list, "通告券数据");
+    }
+
+    /**
+     * 获取通告券详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(baseCouponService.getById(id));
+    }
+
+    /**
+     * 新增通告券
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:add')")
+    @Log(title = "通告券", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseCoupon baseCoupon)
+    {
+        return toAjax(baseCouponService.save(baseCoupon));
+    }
+
+    /**
+     * 修改通告券
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:edit')")
+    @Log(title = "通告券", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseCoupon baseCoupon)
+    {
+        return toAjax(baseCouponService.updateById(baseCoupon));
+    }
+
+    /**
+     * 删除通告券
+     */
+    @PreAuthorize("@ss.hasPermi('base:coupon:remove')")
+    @Log(title = "通告券", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(baseCouponService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseRightsController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseRightsController.java
new file mode 100644
index 0000000..2caa4a4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseRightsController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.base.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.base.domain.BaseRights;
+import com.ruoyi.base.service.IBaseRightsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 会员权益Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/base/rights")
+public class BaseRightsController extends BaseController
+{
+    @Autowired
+    private IBaseRightsService baseRightsService;
+
+    /**
+     * 查询会员权益列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BaseRights baseRights,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BaseRights> page = new Page<>(pageNum, pageSize);
+        IPage<BaseRights> list = baseRightsService.queryListPage(baseRights,page);
+        return success(list);
+    }
+
+    /**
+     * 导出会员权益列表
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:export')")
+    @Log(title = "会员权益", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseRights baseRights)
+    {
+        List<BaseRights> list = baseRightsService.list();
+        ExcelUtil<BaseRights> util = new ExcelUtil<BaseRights>(BaseRights.class);
+        util.exportExcel(response, list, "会员权益数据");
+    }
+
+    /**
+     * 获取会员权益详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(baseRightsService.getById(id));
+    }
+
+    /**
+     * 新增会员权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:add')")
+    @Log(title = "会员权益", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseRights baseRights)
+    {
+        return toAjax(baseRightsService.save(baseRights));
+    }
+
+    /**
+     * 修改会员权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:edit')")
+    @Log(title = "会员权益", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseRights baseRights)
+    {
+        return toAjax(baseRightsService.updateById(baseRights));
+    }
+
+    /**
+     * 删除会员权益
+     */
+    @PreAuthorize("@ss.hasPermi('base:rights:remove')")
+    @Log(title = "会员权益", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(baseRightsService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCard.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCard.java
new file mode 100644
index 0000000..444428f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCard.java
@@ -0,0 +1,76 @@
+package com.ruoyi.base.domain;
+
+import java.math.BigDecimal;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 会员卡对象 dl_base_card
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_base_card")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseCard extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 会员卡名称 */
+    @Excel(name = "会员卡名称")
+    private String cardName;
+
+    /** 会员卡所属用户类型 */
+    @Excel(name = "会员卡所属用户类型")
+    private String userType;
+
+    /** 会员卡描述 */
+    @Excel(name = "会员卡描述")
+    private String content;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    /** 是否系统内置 */
+    @Excel(name = "是否系统内置")
+    private Integer isSystem;
+
+    /** 图片logo */
+    @Excel(name = "图片logo")
+    private String image;
+
+    /** 月付金额(为null就是没有) */
+    @Excel(name = "月付金额", readConverterExp = "为=null就是没有")
+    private BigDecimal monthPrice;
+
+    /** 季付金额(为null就是没有) */
+    @Excel(name = "季付金额", readConverterExp = "为=null就是没有")
+    private BigDecimal quarterPrice;
+
+    /** 年付金额(为null就是没有) */
+    @Excel(name = "年付金额", readConverterExp = "为=null就是没有")
+    private BigDecimal yearPrice;
+
+    /** 备注(保留字段) */
+    @Excel(name = "备注", readConverterExp = "保=留字段")
+    private String remark;
+
+    /** 是否显示 */
+    @Excel(name = "是否显示")
+    private Integer isShow;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java
new file mode 100644
index 0000000..c2679fc
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java
@@ -0,0 +1,43 @@
+package com.ruoyi.base.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 会员卡权益对象 dl_base_card_rights
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_base_card_rights")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseCardRights extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 会员卡 */
+    @Excel(name = "会员卡")
+    private String cardId;
+
+    /** 权益 */
+    @Excel(name = "权益")
+    private String rightsId;
+
+    /** 权益值 */
+    @Excel(name = "权益值")
+    private Long rightsValue;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCategory.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCategory.java
new file mode 100644
index 0000000..0af1e61
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCategory.java
@@ -0,0 +1,62 @@
+package com.ruoyi.base.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 分类树-各种分类属性结构对象 dl_base_category
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_base_category")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseCategory extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 唯一编码 */
+    @Excel(name = "唯一编码")
+    private String code;
+
+    /** 父级 */
+    @Excel(name = "父级")
+    private String pid;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Long sort;
+
+    /** 标题 */
+    @Excel(name = "标题")
+    private String title;
+
+    /** 描述 */
+    @Excel(name = "描述")
+    private String content;
+
+    /** 是否平台级数据 */
+    @Excel(name = "是否平台级数据")
+    private Integer isSystem;
+
+    /** 所有者id */
+    private Long userId;
+
+    /** 备注-扩展字段 */
+    @Excel(name = "备注-扩展字段")
+    private String remark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCoupon.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCoupon.java
new file mode 100644
index 0000000..e645e87
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCoupon.java
@@ -0,0 +1,44 @@
+package com.ruoyi.base.domain;
+
+import java.math.BigDecimal;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告券对象 dl_base_coupon
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_base_coupon")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseCoupon extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    private Integer couponNum;
+
+    /** 价格 */
+    @Excel(name = "价格")
+    private BigDecimal price;
+
+    /** 是否显示 */
+    @Excel(name = "是否显示")
+    private Integer isShow;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseRights.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseRights.java
new file mode 100644
index 0000000..49fc434
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseRights.java
@@ -0,0 +1,62 @@
+package com.ruoyi.base.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 会员权益对象 dl_base_rights
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_base_rights")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseRights extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 权益所属用户类型 */
+    @Excel(name = "权益所属用户类型")
+    private String userType;
+
+    /** 权益编码 */
+    @Excel(name = "权益编码")
+    private String code;
+
+    /** 权益名称 */
+    @Excel(name = "权益名称")
+    private String name;
+
+    /** 权益logo */
+    @Excel(name = "权益logo")
+    private String image;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    /** 权益类型 */
+    @Excel(name = "权益类型")
+    private String rightsType;
+
+    /** 权益限制周期(数据字典:dl_rights_cycle) */
+    @Excel(name = "权益限制周期(数据字典:dl_rights_cycle)")
+    private String rightsCycle;
+
+    /** 备注 */
+    private String remark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardMapper.java
new file mode 100644
index 0000000..a80c806
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.base.domain.BaseCard;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 会员卡Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BaseCardMapper extends BaseMapper<BaseCard>
+{
+    IPage<BaseCard> queryListPage(@Param("entity") BaseCard entity, Page<BaseCard> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java
new file mode 100644
index 0000000..b4c054c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.base.domain.BaseCardRights;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 会员卡权益Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BaseCardRightsMapper extends BaseMapper<BaseCardRights>
+{
+    IPage<BaseCardRights> queryListPage(@Param("entity") BaseCardRights entity, Page<BaseCardRights> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java
new file mode 100644
index 0000000..b1de3e5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCategoryMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.base.domain.BaseCategory;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 分类树-各种分类属性结构Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BaseCategoryMapper extends BaseMapper<BaseCategory>
+{
+    IPage<BaseCategory> queryListPage(@Param("entity") BaseCategory entity, Page<BaseCategory> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCouponMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCouponMapper.java
new file mode 100644
index 0000000..3e4a82b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCouponMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.base.domain.BaseCoupon;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告券Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BaseCouponMapper extends BaseMapper<BaseCoupon>
+{
+    IPage<BaseCoupon> queryListPage(@Param("entity") BaseCoupon entity, Page<BaseCoupon> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseRightsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseRightsMapper.java
new file mode 100644
index 0000000..0dce978
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseRightsMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.base.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.base.domain.BaseRights;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 会员权益Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BaseRightsMapper extends BaseMapper<BaseRights>
+{
+    IPage<BaseRights> queryListPage(@Param("entity") BaseRights entity, Page<BaseRights> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java
new file mode 100644
index 0000000..4329262
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.base.domain.BaseCardRights;
+
+/**
+ * 会员卡权益Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBaseCardRightsService extends IService<BaseCardRights>
+{
+    IPage<BaseCardRights> queryListPage(BaseCardRights pageReqVO, Page<BaseCardRights> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardService.java
new file mode 100644
index 0000000..740cba1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.base.domain.BaseCard;
+
+/**
+ * 会员卡Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBaseCardService extends IService<BaseCard>
+{
+    IPage<BaseCard> queryListPage(BaseCard pageReqVO, Page<BaseCard> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java
new file mode 100644
index 0000000..7f156f2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCategoryService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.base.domain.BaseCategory;
+
+/**
+ * 分类树-各种分类属性结构Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBaseCategoryService extends IService<BaseCategory>
+{
+    IPage<BaseCategory> queryListPage(BaseCategory pageReqVO, Page<BaseCategory> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCouponService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCouponService.java
new file mode 100644
index 0000000..430d43a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCouponService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.base.domain.BaseCoupon;
+
+/**
+ * 通告券Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBaseCouponService extends IService<BaseCoupon>
+{
+    IPage<BaseCoupon> queryListPage(BaseCoupon pageReqVO, Page<BaseCoupon> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseRightsService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseRightsService.java
new file mode 100644
index 0000000..d0bcf1d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseRightsService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.base.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.base.domain.BaseRights;
+
+/**
+ * 会员权益Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBaseRightsService extends IService<BaseRights>
+{
+    IPage<BaseRights> queryListPage(BaseRights pageReqVO, Page<BaseRights> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java
new file mode 100644
index 0000000..9fe7734
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.base.mapper.BaseCardRightsMapper;
+import com.ruoyi.base.domain.BaseCardRights;
+import com.ruoyi.base.service.IBaseCardRightsService;
+
+/**
+ * 会员卡权益Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BaseCardRightsServiceImpl extends ServiceImpl<BaseCardRightsMapper,BaseCardRights>  implements IBaseCardRightsService
+{
+    @Autowired
+    private BaseCardRightsMapper baseCardRightsMapper;
+
+    @Override
+    public IPage<BaseCardRights> queryListPage(BaseCardRights pageReqVO, Page<BaseCardRights> page) {
+        return baseCardRightsMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardServiceImpl.java
new file mode 100644
index 0000000..c4e6c41
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.base.mapper.BaseCardMapper;
+import com.ruoyi.base.domain.BaseCard;
+import com.ruoyi.base.service.IBaseCardService;
+
+/**
+ * 会员卡Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BaseCardServiceImpl extends ServiceImpl<BaseCardMapper,BaseCard>  implements IBaseCardService
+{
+    @Autowired
+    private BaseCardMapper baseCardMapper;
+
+    @Override
+    public IPage<BaseCard> queryListPage(BaseCard pageReqVO, Page<BaseCard> page) {
+        return baseCardMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java
new file mode 100644
index 0000000..ea94465
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCategoryServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.base.mapper.BaseCategoryMapper;
+import com.ruoyi.base.domain.BaseCategory;
+import com.ruoyi.base.service.IBaseCategoryService;
+
+/**
+ * 分类树-各种分类属性结构Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BaseCategoryServiceImpl extends ServiceImpl<BaseCategoryMapper,BaseCategory>  implements IBaseCategoryService
+{
+    @Autowired
+    private BaseCategoryMapper baseCategoryMapper;
+
+    @Override
+    public IPage<BaseCategory> queryListPage(BaseCategory pageReqVO, Page<BaseCategory> page) {
+        return baseCategoryMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCouponServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCouponServiceImpl.java
new file mode 100644
index 0000000..a589846
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCouponServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.base.mapper.BaseCouponMapper;
+import com.ruoyi.base.domain.BaseCoupon;
+import com.ruoyi.base.service.IBaseCouponService;
+
+/**
+ * 通告券Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BaseCouponServiceImpl extends ServiceImpl<BaseCouponMapper,BaseCoupon>  implements IBaseCouponService
+{
+    @Autowired
+    private BaseCouponMapper baseCouponMapper;
+
+    @Override
+    public IPage<BaseCoupon> queryListPage(BaseCoupon pageReqVO, Page<BaseCoupon> page) {
+        return baseCouponMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseRightsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseRightsServiceImpl.java
new file mode 100644
index 0000000..741c4ff
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseRightsServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.base.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.base.mapper.BaseRightsMapper;
+import com.ruoyi.base.domain.BaseRights;
+import com.ruoyi.base.service.IBaseRightsService;
+
+/**
+ * 会员权益Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BaseRightsServiceImpl extends ServiceImpl<BaseRightsMapper,BaseRights>  implements IBaseRightsService
+{
+    @Autowired
+    private BaseRightsMapper baseRightsMapper;
+
+    @Override
+    public IPage<BaseRights> queryListPage(BaseRights pageReqVO, Page<BaseRights> page) {
+        return baseRightsMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiEvaluateController.java
new file mode 100644
index 0000000..644bd12
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiEvaluateController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiEvaluate;
+import com.ruoyi.busi.service.IBusiEvaluateService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 评价Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/evaluate")
+public class BusiEvaluateController extends BaseController
+{
+    @Autowired
+    private IBusiEvaluateService busiEvaluateService;
+
+    /**
+     * 查询评价列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiEvaluate busiEvaluate,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiEvaluate> page = new Page<>(pageNum, pageSize);
+        IPage<BusiEvaluate> list = busiEvaluateService.queryListPage(busiEvaluate,page);
+        return success(list);
+    }
+
+    /**
+     * 导出评价列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:export')")
+    @Log(title = "评价", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiEvaluate busiEvaluate)
+    {
+        List<BusiEvaluate> list = busiEvaluateService.list();
+        ExcelUtil<BusiEvaluate> util = new ExcelUtil<BusiEvaluate>(BusiEvaluate.class);
+        util.exportExcel(response, list, "评价数据");
+    }
+
+    /**
+     * 获取评价详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiEvaluateService.getById(id));
+    }
+
+    /**
+     * 新增评价
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:add')")
+    @Log(title = "评价", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiEvaluate busiEvaluate)
+    {
+        return toAjax(busiEvaluateService.save(busiEvaluate));
+    }
+
+    /**
+     * 修改评价
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:edit')")
+    @Log(title = "评价", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiEvaluate busiEvaluate)
+    {
+        return toAjax(busiEvaluateService.updateById(busiEvaluate));
+    }
+
+    /**
+     * 删除评价
+     */
+    @PreAuthorize("@ss.hasPermi('busi:evaluate:remove')")
+    @Log(title = "评价", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiEvaluateService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java
new file mode 100644
index 0000000..b06023d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiFeedbackController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiFeedback;
+import com.ruoyi.busi.service.IBusiFeedbackService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 意见反馈Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/feedback")
+public class BusiFeedbackController extends BaseController
+{
+    @Autowired
+    private IBusiFeedbackService busiFeedbackService;
+
+    /**
+     * 查询意见反馈列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiFeedback busiFeedback,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiFeedback> page = new Page<>(pageNum, pageSize);
+        IPage<BusiFeedback> list = busiFeedbackService.queryListPage(busiFeedback,page);
+        return success(list);
+    }
+
+    /**
+     * 导出意见反馈列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:export')")
+    @Log(title = "意见反馈", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiFeedback busiFeedback)
+    {
+        List<BusiFeedback> list = busiFeedbackService.list();
+        ExcelUtil<BusiFeedback> util = new ExcelUtil<BusiFeedback>(BusiFeedback.class);
+        util.exportExcel(response, list, "意见反馈数据");
+    }
+
+    /**
+     * 获取意见反馈详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiFeedbackService.getById(id));
+    }
+
+    /**
+     * 新增意见反馈
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:add')")
+    @Log(title = "意见反馈", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiFeedback busiFeedback)
+    {
+        return toAjax(busiFeedbackService.save(busiFeedback));
+    }
+
+    /**
+     * 修改意见反馈
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:edit')")
+    @Log(title = "意见反馈", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiFeedback busiFeedback)
+    {
+        return toAjax(busiFeedbackService.updateById(busiFeedback));
+    }
+
+    /**
+     * 删除意见反馈
+     */
+    @PreAuthorize("@ss.hasPermi('busi:feedback:remove')")
+    @Log(title = "意见反馈", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiFeedbackService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java
new file mode 100644
index 0000000..c9bbbfc
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNotice;
+import com.ruoyi.busi.service.IBusiNoticeService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/notice")
+public class BusiNoticeController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeService busiNoticeService;
+
+    /**
+     * 查询通告列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNotice busiNotice,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNotice> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNotice> list = busiNoticeService.queryListPage(busiNotice,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:export')")
+    @Log(title = "通告", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNotice busiNotice)
+    {
+        List<BusiNotice> list = busiNoticeService.list();
+        ExcelUtil<BusiNotice> util = new ExcelUtil<BusiNotice>(BusiNotice.class);
+        util.exportExcel(response, list, "通告数据");
+    }
+
+    /**
+     * 获取通告详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeService.getById(id));
+    }
+
+    /**
+     * 新增通告
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:add')")
+    @Log(title = "通告", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNotice busiNotice)
+    {
+        return toAjax(busiNoticeService.save(busiNotice));
+    }
+
+    /**
+     * 修改通告
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:edit')")
+    @Log(title = "通告", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNotice busiNotice)
+    {
+        return toAjax(busiNoticeService.updateById(busiNotice));
+    }
+
+    /**
+     * 删除通告
+     */
+    @PreAuthorize("@ss.hasPermi('busi:notice:remove')")
+    @Log(title = "通告", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeFormController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeFormController.java
new file mode 100644
index 0000000..73f95ed
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeFormController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticeForm;
+import com.ruoyi.busi.service.IBusiNoticeFormService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告自定义报名单Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/form")
+public class BusiNoticeFormController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeFormService busiNoticeFormService;
+
+    /**
+     * 查询通告自定义报名单列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticeForm busiNoticeForm,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticeForm> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticeForm> list = busiNoticeFormService.queryListPage(busiNoticeForm,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告自定义报名单列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:export')")
+    @Log(title = "通告自定义报名单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticeForm busiNoticeForm)
+    {
+        List<BusiNoticeForm> list = busiNoticeFormService.list();
+        ExcelUtil<BusiNoticeForm> util = new ExcelUtil<BusiNoticeForm>(BusiNoticeForm.class);
+        util.exportExcel(response, list, "通告自定义报名单数据");
+    }
+
+    /**
+     * 获取通告自定义报名单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeFormService.getById(id));
+    }
+
+    /**
+     * 新增通告自定义报名单
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:add')")
+    @Log(title = "通告自定义报名单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticeForm busiNoticeForm)
+    {
+        return toAjax(busiNoticeFormService.save(busiNoticeForm));
+    }
+
+    /**
+     * 修改通告自定义报名单
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:edit')")
+    @Log(title = "通告自定义报名单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticeForm busiNoticeForm)
+    {
+        return toAjax(busiNoticeFormService.updateById(busiNoticeForm));
+    }
+
+    /**
+     * 删除通告自定义报名单
+     */
+    @PreAuthorize("@ss.hasPermi('busi:form:remove')")
+    @Log(title = "通告自定义报名单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeFormService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeMsgController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeMsgController.java
new file mode 100644
index 0000000..c8d7c25
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeMsgController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticeMsg;
+import com.ruoyi.busi.service.IBusiNoticeMsgService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告留言Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/msg")
+public class BusiNoticeMsgController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeMsgService busiNoticeMsgService;
+
+    /**
+     * 查询通告留言列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticeMsg busiNoticeMsg,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticeMsg> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticeMsg> list = busiNoticeMsgService.queryListPage(busiNoticeMsg,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告留言列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:export')")
+    @Log(title = "通告留言", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticeMsg busiNoticeMsg)
+    {
+        List<BusiNoticeMsg> list = busiNoticeMsgService.list();
+        ExcelUtil<BusiNoticeMsg> util = new ExcelUtil<BusiNoticeMsg>(BusiNoticeMsg.class);
+        util.exportExcel(response, list, "通告留言数据");
+    }
+
+    /**
+     * 获取通告留言详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeMsgService.getById(id));
+    }
+
+    /**
+     * 新增通告留言
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:add')")
+    @Log(title = "通告留言", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticeMsg busiNoticeMsg)
+    {
+        return toAjax(busiNoticeMsgService.save(busiNoticeMsg));
+    }
+
+    /**
+     * 修改通告留言
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:edit')")
+    @Log(title = "通告留言", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticeMsg busiNoticeMsg)
+    {
+        return toAjax(busiNoticeMsgService.updateById(busiNoticeMsg));
+    }
+
+    /**
+     * 删除通告留言
+     */
+    @PreAuthorize("@ss.hasPermi('busi:msg:remove')")
+    @Log(title = "通告留言", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeMsgService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticePriceController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticePriceController.java
new file mode 100644
index 0000000..aa1ca0c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticePriceController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticePrice;
+import com.ruoyi.busi.service.IBusiNoticePriceService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告报名名片价格Controller
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/price")
+public class BusiNoticePriceController extends BaseController
+{
+    @Autowired
+    private IBusiNoticePriceService busiNoticePriceService;
+
+    /**
+     * 查询通告报名名片价格列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticePrice busiNoticePrice,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticePrice> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticePrice> list = busiNoticePriceService.queryListPage(busiNoticePrice,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告报名名片价格列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:export')")
+    @Log(title = "通告报名名片价格", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticePrice busiNoticePrice)
+    {
+        List<BusiNoticePrice> list = busiNoticePriceService.list();
+        ExcelUtil<BusiNoticePrice> util = new ExcelUtil<BusiNoticePrice>(BusiNoticePrice.class);
+        util.exportExcel(response, list, "通告报名名片价格数据");
+    }
+
+    /**
+     * 获取通告报名名片价格详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticePriceService.getById(id));
+    }
+
+    /**
+     * 新增通告报名名片价格
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:add')")
+    @Log(title = "通告报名名片价格", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticePrice busiNoticePrice)
+    {
+        return toAjax(busiNoticePriceService.save(busiNoticePrice));
+    }
+
+    /**
+     * 修改通告报名名片价格
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:edit')")
+    @Log(title = "通告报名名片价格", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticePrice busiNoticePrice)
+    {
+        return toAjax(busiNoticePriceService.updateById(busiNoticePrice));
+    }
+
+    /**
+     * 删除通告报名名片价格
+     */
+    @PreAuthorize("@ss.hasPermi('busi:price:remove')")
+    @Log(title = "通告报名名片价格", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticePriceService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignCardController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignCardController.java
new file mode 100644
index 0000000..0ce277e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignCardController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticeSignCard;
+import com.ruoyi.busi.service.IBusiNoticeSignCardService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告报名名片Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/card")
+public class BusiNoticeSignCardController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeSignCardService busiNoticeSignCardService;
+
+    /**
+     * 查询通告报名名片列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticeSignCard busiNoticeSignCard,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticeSignCard> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticeSignCard> list = busiNoticeSignCardService.queryListPage(busiNoticeSignCard,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告报名名片列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:export')")
+    @Log(title = "通告报名名片", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticeSignCard busiNoticeSignCard)
+    {
+        List<BusiNoticeSignCard> list = busiNoticeSignCardService.list();
+        ExcelUtil<BusiNoticeSignCard> util = new ExcelUtil<BusiNoticeSignCard>(BusiNoticeSignCard.class);
+        util.exportExcel(response, list, "通告报名名片数据");
+    }
+
+    /**
+     * 获取通告报名名片详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeSignCardService.getById(id));
+    }
+
+    /**
+     * 新增通告报名名片
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:add')")
+    @Log(title = "通告报名名片", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticeSignCard busiNoticeSignCard)
+    {
+        return toAjax(busiNoticeSignCardService.save(busiNoticeSignCard));
+    }
+
+    /**
+     * 修改通告报名名片
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:edit')")
+    @Log(title = "通告报名名片", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticeSignCard busiNoticeSignCard)
+    {
+        return toAjax(busiNoticeSignCardService.updateById(busiNoticeSignCard));
+    }
+
+    /**
+     * 删除通告报名名片
+     */
+    @PreAuthorize("@ss.hasPermi('busi:card:remove')")
+    @Log(title = "通告报名名片", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeSignCardService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignController.java
new file mode 100644
index 0000000..68735b3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeSignController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticeSign;
+import com.ruoyi.busi.service.IBusiNoticeSignService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告报名Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/sign")
+public class BusiNoticeSignController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeSignService busiNoticeSignService;
+
+    /**
+     * 查询通告报名列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticeSign busiNoticeSign,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticeSign> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticeSign> list = busiNoticeSignService.queryListPage(busiNoticeSign,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告报名列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:export')")
+    @Log(title = "通告报名", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticeSign busiNoticeSign)
+    {
+        List<BusiNoticeSign> list = busiNoticeSignService.list();
+        ExcelUtil<BusiNoticeSign> util = new ExcelUtil<BusiNoticeSign>(BusiNoticeSign.class);
+        util.exportExcel(response, list, "通告报名数据");
+    }
+
+    /**
+     * 获取通告报名详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeSignService.getById(id));
+    }
+
+    /**
+     * 新增通告报名
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:add')")
+    @Log(title = "通告报名", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticeSign busiNoticeSign)
+    {
+        return toAjax(busiNoticeSignService.save(busiNoticeSign));
+    }
+
+    /**
+     * 修改通告报名
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:edit')")
+    @Log(title = "通告报名", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticeSign busiNoticeSign)
+    {
+        return toAjax(busiNoticeSignService.updateById(busiNoticeSign));
+    }
+
+    /**
+     * 删除通告报名
+     */
+    @PreAuthorize("@ss.hasPermi('busi:sign:remove')")
+    @Log(title = "通告报名", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeSignService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeViewController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeViewController.java
new file mode 100644
index 0000000..3ff0acb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNoticeViewController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiNoticeView;
+import com.ruoyi.busi.service.IBusiNoticeViewService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 通告浏览量Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/view")
+public class BusiNoticeViewController extends BaseController
+{
+    @Autowired
+    private IBusiNoticeViewService busiNoticeViewService;
+
+    /**
+     * 查询通告浏览量列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiNoticeView busiNoticeView,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiNoticeView> page = new Page<>(pageNum, pageSize);
+        IPage<BusiNoticeView> list = busiNoticeViewService.queryListPage(busiNoticeView,page);
+        return success(list);
+    }
+
+    /**
+     * 导出通告浏览量列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:export')")
+    @Log(title = "通告浏览量", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiNoticeView busiNoticeView)
+    {
+        List<BusiNoticeView> list = busiNoticeViewService.list();
+        ExcelUtil<BusiNoticeView> util = new ExcelUtil<BusiNoticeView>(BusiNoticeView.class);
+        util.exportExcel(response, list, "通告浏览量数据");
+    }
+
+    /**
+     * 获取通告浏览量详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiNoticeViewService.getById(id));
+    }
+
+    /**
+     * 新增通告浏览量
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:add')")
+    @Log(title = "通告浏览量", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiNoticeView busiNoticeView)
+    {
+        return toAjax(busiNoticeViewService.save(busiNoticeView));
+    }
+
+    /**
+     * 修改通告浏览量
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:edit')")
+    @Log(title = "通告浏览量", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiNoticeView busiNoticeView)
+    {
+        return toAjax(busiNoticeViewService.updateById(busiNoticeView));
+    }
+
+    /**
+     * 删除通告浏览量
+     */
+    @PreAuthorize("@ss.hasPermi('busi:view:remove')")
+    @Log(title = "通告浏览量", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiNoticeViewService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java
new file mode 100644
index 0000000..142c34a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiReportController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.busi.controller;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.busi.domain.BusiReport;
+import com.ruoyi.busi.service.IBusiReportService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 举报记录Controller
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@RestController
+@RequestMapping("/busi/report")
+public class BusiReportController extends BaseController
+{
+    @Autowired
+    private IBusiReportService busiReportService;
+
+    /**
+     * 查询举报记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BusiReport busiReport,
+                                @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
+    {
+        Page<BusiReport> page = new Page<>(pageNum, pageSize);
+        IPage<BusiReport> list = busiReportService.queryListPage(busiReport,page);
+        return success(list);
+    }
+
+    /**
+     * 导出举报记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:export')")
+    @Log(title = "举报记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BusiReport busiReport)
+    {
+        List<BusiReport> list = busiReportService.list();
+        ExcelUtil<BusiReport> util = new ExcelUtil<BusiReport>(BusiReport.class);
+        util.exportExcel(response, list, "举报记录数据");
+    }
+
+    /**
+     * 获取举报记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(busiReportService.getById(id));
+    }
+
+    /**
+     * 新增举报记录
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:add')")
+    @Log(title = "举报记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BusiReport busiReport)
+    {
+        return toAjax(busiReportService.save(busiReport));
+    }
+
+    /**
+     * 修改举报记录
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:edit')")
+    @Log(title = "举报记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BusiReport busiReport)
+    {
+        return toAjax(busiReportService.updateById(busiReport));
+    }
+
+    /**
+     * 删除举报记录
+     */
+    @PreAuthorize("@ss.hasPermi('busi:report:remove')")
+    @Log(title = "举报记录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        List<String> list = new ArrayList<>(Arrays.asList(ids));
+        return toAjax(busiReportService.removeByIds(list));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiEvaluate.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiEvaluate.java
new file mode 100644
index 0000000..f96efba
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiEvaluate.java
@@ -0,0 +1,58 @@
+package com.ruoyi.busi.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 评价对象 dl_busi_evaluate
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_evaluate")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiEvaluate extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 评价者 */
+    private Long userId;
+
+    /** 用户类型 */
+    @Excel(name = "用户类型")
+    private String userType;
+
+    /** 评价者 */
+    @Excel(name = "评价者")
+    private String nickname;
+
+    /** 被评价者 */
+    @Excel(name = "被评价者")
+    private Long toUserId;
+
+    /** 被评价者用户类型 */
+    @Excel(name = "被评价者用户类型")
+    private String toUserType;
+
+    /** 评价内容code */
+    @Excel(name = "评价内容code")
+    private String evaluateCode;
+
+    /** 评价内容 */
+    @Excel(name = "评价内容")
+    private String evaluate;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiFeedback.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiFeedback.java
new file mode 100644
index 0000000..a100d2b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiFeedback.java
@@ -0,0 +1,66 @@
+package com.ruoyi.busi.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 意见反馈对象 dl_busi_feedback
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_feedback")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiFeedback extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 用户 */
+    @Excel(name = "用户")
+    private Long userId;
+
+    /** 用户类型 */
+    @Excel(name = "用户类型")
+    private String userType;
+
+    /** 反馈意见 */
+    @Excel(name = "反馈意见")
+    private String content;
+
+    /** 反馈图片 */
+    @Excel(name = "反馈图片")
+    private String images;
+
+    /** 回馈内容 */
+    @Excel(name = "回馈内容")
+    private String backContent;
+
+    /** 回馈图片 */
+    @Excel(name = "回馈图片")
+    private String backImages;
+
+    /** 回馈时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "回馈时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date backTime;
+
+    /** 回馈人 */
+    @Excel(name = "回馈人")
+    private Long backUserId;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java
new file mode 100644
index 0000000..5ba686f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNotice.java
@@ -0,0 +1,159 @@
+package com.ruoyi.busi.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告对象 dl_busi_notice
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNotice extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 发布者 */
+    @Excel(name = "发布者")
+    private Long userId;
+
+    /** 标题 */
+    @Excel(name = "标题")
+    private String title;
+
+    /** 平台 */
+    private String platformCode;
+
+    /** 平台名称 */
+    @Excel(name = "平台名称")
+    private String platformName;
+
+    /** 国家 */
+    @Excel(name = "国家")
+    private String country;
+
+    /** 稿费下限 */
+    @Excel(name = "稿费下限")
+    private BigDecimal feeDown;
+
+    /** 稿费上限 */
+    @Excel(name = "稿费上限")
+    private BigDecimal feeUp;
+
+    /** 是否需自报价 */
+    @Excel(name = "是否需自报价")
+    private Integer isSelfPrice;
+
+    /** 赠品明细 */
+    @Excel(name = "赠品明细")
+    private String giftDetail;
+
+    /** 赠品价值 */
+    @Excel(name = "赠品价值")
+    private BigDecimal giftPrice;
+
+    /** 截止日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "截止日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endDate;
+
+    /** 品牌 */
+    @Excel(name = "品牌")
+    private String brand;
+
+    /** 是否公开品牌 */
+    @Excel(name = "是否公开品牌")
+    private Integer isShowBrand;
+
+    /** 招募名额 */
+    @Excel(name = "招募名额")
+    private Long needNum;
+
+    /** 粉丝要求下限 */
+    @Excel(name = "粉丝要求下限")
+    private Long fansDown;
+
+    /** 粉丝要求上限 */
+    @Excel(name = "粉丝要求上限")
+    private Long fansUp;
+
+    /** 报名是否需符合粉丝要求(0否|1是) */
+    @Excel(name = "报名是否需符合粉丝要求(0否|1是)")
+    private Integer isEligible;
+
+    /** 图文/视频/不限 */
+    @Excel(name = "图文/视频/不限")
+    private String pic;
+
+    /** 单品/合集/不限 */
+    @Excel(name = "单品/合集/不限")
+    private String collect;
+
+    /** 通告明细 */
+    @Excel(name = "通告明细")
+    private String detail;
+
+    /** 产品图 */
+    @Excel(name = "产品图")
+    private String images;
+
+    /** 博主类型 */
+    @Excel(name = "博主类型")
+    private String bloggerTypes;
+
+    /** 是否公开联系方式 */
+    @Excel(name = "是否公开联系方式")
+    private Integer isShowTel;
+
+    /** 微信号 */
+    @Excel(name = "微信号")
+    private String wechat;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel;
+
+    /** 微信群码图片 */
+    @Excel(name = "微信群码图片")
+    private String groupImage;
+
+    /** 是否使用通告券(0 否|1是) */
+    @Excel(name = "是否使用通告券", readConverterExp = "0=,否=|1是")
+    private Integer isUseCoupon;
+
+    /** 审核状态 */
+    @Excel(name = "审核状态")
+    private String approvalStatus;
+
+    /** 审核人 */
+    @Excel(name = "审核人")
+    private Long approvalUserId;
+
+    /** 审核时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date approvalTime;
+
+    /** 审核备注 */
+    @Excel(name = "审核备注")
+    private String approvalRemark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeForm.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeForm.java
new file mode 100644
index 0000000..5c55ac7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeForm.java
@@ -0,0 +1,43 @@
+package com.ruoyi.busi.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告自定义报名单对象 dl_busi_notice_form
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_form")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticeForm extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 通告 */
+    @Excel(name = "通告")
+    private String noticeId;
+
+    /** 字段label标题 */
+    @Excel(name = "字段label标题")
+    private String labelTitle;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sort;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeMsg.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeMsg.java
new file mode 100644
index 0000000..d013a6b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeMsg.java
@@ -0,0 +1,43 @@
+package com.ruoyi.busi.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告留言对象 dl_busi_notice_msg
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_msg")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticeMsg extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 通告 */
+    @Excel(name = "通告")
+    private String noticeId;
+
+    /** 报名用户 */
+    @Excel(name = "报名用户")
+    private Long userId;
+
+    /** 留言内容 */
+    @Excel(name = "留言内容")
+    private String content;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticePrice.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticePrice.java
new file mode 100644
index 0000000..04f9b9b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticePrice.java
@@ -0,0 +1,52 @@
+package com.ruoyi.busi.domain;
+
+import java.math.BigDecimal;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告报名名片价格对象 dl_busi_notice_price
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_price")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticePrice extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 通告 */
+    @Excel(name = "通告")
+    private String noticeId;
+
+    /** 报名用户 */
+    @Excel(name = "报名用户")
+    private Long userId;
+
+    /** 名片 */
+    @Excel(name = "名片")
+    private String cardId;
+
+    /** 报价类型 */
+    @Excel(name = "报价类型")
+    private String priceType;
+
+    /** 报价 */
+    @Excel(name = "报价")
+    private BigDecimal price;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSign.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSign.java
new file mode 100644
index 0000000..e4576d7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSign.java
@@ -0,0 +1,77 @@
+package com.ruoyi.busi.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告报名对象 dl_busi_notice_sign
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_sign")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticeSign extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 通告 */
+    @Excel(name = "通告")
+    private String noticeId;
+
+    /** 报名用户 */
+    private Long userId;
+
+    /** 报名用户昵称 */
+    @Excel(name = "报名用户昵称")
+    private String nickname;
+
+    /** 报名用户头像 */
+    @Excel(name = "报名用户头像")
+    private String avatar;
+
+    /** 是否超级报名 */
+    @Excel(name = "是否超级报名")
+    private Integer isSuper;
+
+    /** 联系方式 */
+    @Excel(name = "联系方式")
+    private String tel;
+
+    /** 收货地址 */
+    @Excel(name = "收货地址")
+    private String addrId;
+
+    /** 通告合作状态 */
+    @Excel(name = "通告合作状态")
+    private String status;
+
+    /** 稿件内容 */
+    private String content;
+
+    /** 稿件图片 */
+    @Excel(name = "稿件图片")
+    private String images;
+
+    /** 已发布的文章链接 */
+    @Excel(name = "已发布的文章链接")
+    private String articleRef;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remark;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSignCard.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSignCard.java
new file mode 100644
index 0000000..22d2bf4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeSignCard.java
@@ -0,0 +1,47 @@
+package com.ruoyi.busi.domain;
+
+import java.math.BigDecimal;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告报名名片对象 dl_busi_notice_sign_card
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_sign_card")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticeSignCard extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 通告 */
+    @Excel(name = "通告")
+    private String noticeId;
+
+    /** 报名用户 */
+    @Excel(name = "报名用户")
+    private Long userId;
+
+    /** 名片 */
+    private String cardId;
+
+    /** 默认报价 */
+    @Excel(name = "默认报价")
+    private BigDecimal price;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeView.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeView.java
new file mode 100644
index 0000000..9aa7797
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiNoticeView.java
@@ -0,0 +1,35 @@
+package com.ruoyi.busi.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 通告浏览量对象 dl_busi_notice_view
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_notice_view")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiNoticeView extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 通告id */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 浏览量 */
+    @Excel(name = "浏览量")
+    private Long viewNum;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java
new file mode 100644
index 0000000..650d170
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiReport.java
@@ -0,0 +1,77 @@
+package com.ruoyi.busi.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+import com.ruoyi.common.core.domain.DlBaseEntity;
+
+/**
+ * 举报记录对象 dl_busi_report
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@TableName("dl_busi_report")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusiReport extends DlBaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 唯一主键 */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 用户 */
+    @Excel(name = "用户")
+    private Long userId;
+
+    /** 用户类型 */
+    private String userType;
+
+    /** 被举报人 */
+    @Excel(name = "被举报人")
+    private Long reportUserId;
+
+    /** 被举报人类型 */
+    private String reportUserType;
+
+    /** 被举报的通告 */
+    @Excel(name = "被举报的通告")
+    private String reportNoticeId;
+
+    /** 举报类型code(树形字典:dl_report_type) */
+    private String reportType;
+
+    /** 举报类型文本 */
+    @Excel(name = "举报类型文本")
+    private String reportTitle;
+
+    /** 举报描述 */
+    private String content;
+
+    /** 举报图片 */
+    private String images;
+
+    /** 处理人 */
+    @Excel(name = "处理人")
+    private Long dealUserId;
+
+    /** 处理结果 */
+    @Excel(name = "处理结果")
+    private String dealResult;
+
+    /** 处理时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date dealTime;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiEvaluateMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiEvaluateMapper.java
new file mode 100644
index 0000000..f6453b1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiEvaluateMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiEvaluate;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 评价Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiEvaluateMapper extends BaseMapper<BusiEvaluate>
+{
+    IPage<BusiEvaluate> queryListPage(@Param("entity") BusiEvaluate entity, Page<BusiEvaluate> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java
new file mode 100644
index 0000000..1715d20
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiFeedbackMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiFeedback;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 意见反馈Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiFeedbackMapper extends BaseMapper<BusiFeedback>
+{
+    IPage<BusiFeedback> queryListPage(@Param("entity") BusiFeedback entity, Page<BusiFeedback> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeFormMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeFormMapper.java
new file mode 100644
index 0000000..4d67b81
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeFormMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticeForm;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告自定义报名单Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeFormMapper extends BaseMapper<BusiNoticeForm>
+{
+    IPage<BusiNoticeForm> queryListPage(@Param("entity") BusiNoticeForm entity, Page<BusiNoticeForm> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java
new file mode 100644
index 0000000..eac253c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNotice;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeMapper extends BaseMapper<BusiNotice>
+{
+    IPage<BusiNotice> queryListPage(@Param("entity") BusiNotice entity, Page<BusiNotice> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMsgMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMsgMapper.java
new file mode 100644
index 0000000..f60ae29
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeMsgMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticeMsg;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告留言Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeMsgMapper extends BaseMapper<BusiNoticeMsg>
+{
+    IPage<BusiNoticeMsg> queryListPage(@Param("entity") BusiNoticeMsg entity, Page<BusiNoticeMsg> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticePriceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticePriceMapper.java
new file mode 100644
index 0000000..36e937b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticePriceMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticePrice;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告报名名片价格Mapper接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticePriceMapper extends BaseMapper<BusiNoticePrice>
+{
+    IPage<BusiNoticePrice> queryListPage(@Param("entity") BusiNoticePrice entity, Page<BusiNoticePrice> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignCardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignCardMapper.java
new file mode 100644
index 0000000..ec24799
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignCardMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticeSignCard;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告报名名片Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeSignCardMapper extends BaseMapper<BusiNoticeSignCard>
+{
+    IPage<BusiNoticeSignCard> queryListPage(@Param("entity") BusiNoticeSignCard entity, Page<BusiNoticeSignCard> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignMapper.java
new file mode 100644
index 0000000..6dbc652
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeSignMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticeSign;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告报名Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeSignMapper extends BaseMapper<BusiNoticeSign>
+{
+    IPage<BusiNoticeSign> queryListPage(@Param("entity") BusiNoticeSign entity, Page<BusiNoticeSign> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeViewMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeViewMapper.java
new file mode 100644
index 0000000..f18bb8d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiNoticeViewMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiNoticeView;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 通告浏览量Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiNoticeViewMapper extends BaseMapper<BusiNoticeView>
+{
+    IPage<BusiNoticeView> queryListPage(@Param("entity") BusiNoticeView entity, Page<BusiNoticeView> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java
new file mode 100644
index 0000000..6cf966c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiReportMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.busi.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.busi.domain.BusiReport;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 举报记录Mapper接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Mapper
+public interface BusiReportMapper extends BaseMapper<BusiReport>
+{
+    IPage<BusiReport> queryListPage(@Param("entity") BusiReport entity, Page<BusiReport> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiEvaluateService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiEvaluateService.java
new file mode 100644
index 0000000..373545e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiEvaluateService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiEvaluate;
+
+/**
+ * 评价Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiEvaluateService extends IService<BusiEvaluate>
+{
+    IPage<BusiEvaluate> queryListPage(BusiEvaluate pageReqVO, Page<BusiEvaluate> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java
new file mode 100644
index 0000000..2d1792a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiFeedbackService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiFeedback;
+
+/**
+ * 意见反馈Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiFeedbackService extends IService<BusiFeedback>
+{
+    IPage<BusiFeedback> queryListPage(BusiFeedback pageReqVO, Page<BusiFeedback> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeFormService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeFormService.java
new file mode 100644
index 0000000..30f6ac0
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeFormService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticeForm;
+
+/**
+ * 通告自定义报名单Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeFormService extends IService<BusiNoticeForm>
+{
+    IPage<BusiNoticeForm> queryListPage(BusiNoticeForm pageReqVO, Page<BusiNoticeForm> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeMsgService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeMsgService.java
new file mode 100644
index 0000000..a85cd19
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeMsgService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticeMsg;
+
+/**
+ * 通告留言Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeMsgService extends IService<BusiNoticeMsg>
+{
+    IPage<BusiNoticeMsg> queryListPage(BusiNoticeMsg pageReqVO, Page<BusiNoticeMsg> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticePriceService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticePriceService.java
new file mode 100644
index 0000000..5e85a11
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticePriceService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticePrice;
+
+/**
+ * 通告报名名片价格Service接口
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+public interface IBusiNoticePriceService extends IService<BusiNoticePrice>
+{
+    IPage<BusiNoticePrice> queryListPage(BusiNoticePrice pageReqVO, Page<BusiNoticePrice> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java
new file mode 100644
index 0000000..55ddf2e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNotice;
+
+/**
+ * 通告Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeService extends IService<BusiNotice>
+{
+    IPage<BusiNotice> queryListPage(BusiNotice pageReqVO, Page<BusiNotice> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignCardService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignCardService.java
new file mode 100644
index 0000000..4734067
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignCardService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticeSignCard;
+
+/**
+ * 通告报名名片Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeSignCardService extends IService<BusiNoticeSignCard>
+{
+    IPage<BusiNoticeSignCard> queryListPage(BusiNoticeSignCard pageReqVO, Page<BusiNoticeSignCard> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignService.java
new file mode 100644
index 0000000..44a1bf7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeSignService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticeSign;
+
+/**
+ * 通告报名Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeSignService extends IService<BusiNoticeSign>
+{
+    IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeViewService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeViewService.java
new file mode 100644
index 0000000..1ff6c47
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiNoticeViewService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiNoticeView;
+
+/**
+ * 通告浏览量Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiNoticeViewService extends IService<BusiNoticeView>
+{
+    IPage<BusiNoticeView> queryListPage(BusiNoticeView pageReqVO, Page<BusiNoticeView> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java
new file mode 100644
index 0000000..22029b4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiReportService.java
@@ -0,0 +1,18 @@
+package com.ruoyi.busi.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.busi.domain.BusiReport;
+
+/**
+ * 举报记录Service接口
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+public interface IBusiReportService extends IService<BusiReport>
+{
+    IPage<BusiReport> queryListPage(BusiReport pageReqVO, Page<BusiReport> page);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiEvaluateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiEvaluateServiceImpl.java
new file mode 100644
index 0000000..d025cd5
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiEvaluateServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiEvaluateMapper;
+import com.ruoyi.busi.domain.BusiEvaluate;
+import com.ruoyi.busi.service.IBusiEvaluateService;
+
+/**
+ * 评价Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiEvaluateServiceImpl extends ServiceImpl<BusiEvaluateMapper,BusiEvaluate>  implements IBusiEvaluateService
+{
+    @Autowired
+    private BusiEvaluateMapper busiEvaluateMapper;
+
+    @Override
+    public IPage<BusiEvaluate> queryListPage(BusiEvaluate pageReqVO, Page<BusiEvaluate> page) {
+        return busiEvaluateMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java
new file mode 100644
index 0000000..ffb4d0a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiFeedbackServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiFeedbackMapper;
+import com.ruoyi.busi.domain.BusiFeedback;
+import com.ruoyi.busi.service.IBusiFeedbackService;
+
+/**
+ * 意见反馈Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiFeedbackServiceImpl extends ServiceImpl<BusiFeedbackMapper,BusiFeedback>  implements IBusiFeedbackService
+{
+    @Autowired
+    private BusiFeedbackMapper busiFeedbackMapper;
+
+    @Override
+    public IPage<BusiFeedback> queryListPage(BusiFeedback pageReqVO, Page<BusiFeedback> page) {
+        return busiFeedbackMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeFormServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeFormServiceImpl.java
new file mode 100644
index 0000000..f3cb377
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeFormServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeFormMapper;
+import com.ruoyi.busi.domain.BusiNoticeForm;
+import com.ruoyi.busi.service.IBusiNoticeFormService;
+
+/**
+ * 通告自定义报名单Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeFormServiceImpl extends ServiceImpl<BusiNoticeFormMapper,BusiNoticeForm>  implements IBusiNoticeFormService
+{
+    @Autowired
+    private BusiNoticeFormMapper busiNoticeFormMapper;
+
+    @Override
+    public IPage<BusiNoticeForm> queryListPage(BusiNoticeForm pageReqVO, Page<BusiNoticeForm> page) {
+        return busiNoticeFormMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeMsgServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeMsgServiceImpl.java
new file mode 100644
index 0000000..e519882
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeMsgServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeMsgMapper;
+import com.ruoyi.busi.domain.BusiNoticeMsg;
+import com.ruoyi.busi.service.IBusiNoticeMsgService;
+
+/**
+ * 通告留言Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeMsgServiceImpl extends ServiceImpl<BusiNoticeMsgMapper,BusiNoticeMsg>  implements IBusiNoticeMsgService
+{
+    @Autowired
+    private BusiNoticeMsgMapper busiNoticeMsgMapper;
+
+    @Override
+    public IPage<BusiNoticeMsg> queryListPage(BusiNoticeMsg pageReqVO, Page<BusiNoticeMsg> page) {
+        return busiNoticeMsgMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticePriceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticePriceServiceImpl.java
new file mode 100644
index 0000000..f4cbaa9
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticePriceServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticePriceMapper;
+import com.ruoyi.busi.domain.BusiNoticePrice;
+import com.ruoyi.busi.service.IBusiNoticePriceService;
+
+/**
+ * 通告报名名片价格Service业务层处理
+ * 
+ * @author vinjor-m
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticePriceServiceImpl extends ServiceImpl<BusiNoticePriceMapper,BusiNoticePrice>  implements IBusiNoticePriceService
+{
+    @Autowired
+    private BusiNoticePriceMapper busiNoticePriceMapper;
+
+    @Override
+    public IPage<BusiNoticePrice> queryListPage(BusiNoticePrice pageReqVO, Page<BusiNoticePrice> page) {
+        return busiNoticePriceMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java
new file mode 100644
index 0000000..4531f16
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeMapper;
+import com.ruoyi.busi.domain.BusiNotice;
+import com.ruoyi.busi.service.IBusiNoticeService;
+
+/**
+ * 通告Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNotice>  implements IBusiNoticeService
+{
+    @Autowired
+    private BusiNoticeMapper busiNoticeMapper;
+
+    @Override
+    public IPage<BusiNotice> queryListPage(BusiNotice pageReqVO, Page<BusiNotice> page) {
+        return busiNoticeMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignCardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignCardServiceImpl.java
new file mode 100644
index 0000000..39b7a75
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignCardServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeSignCardMapper;
+import com.ruoyi.busi.domain.BusiNoticeSignCard;
+import com.ruoyi.busi.service.IBusiNoticeSignCardService;
+
+/**
+ * 通告报名名片Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeSignCardServiceImpl extends ServiceImpl<BusiNoticeSignCardMapper,BusiNoticeSignCard>  implements IBusiNoticeSignCardService
+{
+    @Autowired
+    private BusiNoticeSignCardMapper busiNoticeSignCardMapper;
+
+    @Override
+    public IPage<BusiNoticeSignCard> queryListPage(BusiNoticeSignCard pageReqVO, Page<BusiNoticeSignCard> page) {
+        return busiNoticeSignCardMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java
new file mode 100644
index 0000000..ee0e256
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeSignMapper;
+import com.ruoyi.busi.domain.BusiNoticeSign;
+import com.ruoyi.busi.service.IBusiNoticeSignService;
+
+/**
+ * 通告报名Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,BusiNoticeSign>  implements IBusiNoticeSignService
+{
+    @Autowired
+    private BusiNoticeSignMapper busiNoticeSignMapper;
+
+    @Override
+    public IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page) {
+        return busiNoticeSignMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeViewServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeViewServiceImpl.java
new file mode 100644
index 0000000..dbf55ae
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeViewServiceImpl.java
@@ -0,0 +1,29 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiNoticeViewMapper;
+import com.ruoyi.busi.domain.BusiNoticeView;
+import com.ruoyi.busi.service.IBusiNoticeViewService;
+
+/**
+ * 通告浏览量Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiNoticeViewServiceImpl extends ServiceImpl<BusiNoticeViewMapper,BusiNoticeView>  implements IBusiNoticeViewService
+{
+    @Autowired
+    private BusiNoticeViewMapper busiNoticeViewMapper;
+
+    @Override
+    public IPage<BusiNoticeView> queryListPage(BusiNoticeView pageReqVO, Page<BusiNoticeView> page) {
+        return busiNoticeViewMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java
new file mode 100644
index 0000000..9d7c2c6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiReportServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.busi.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.busi.mapper.BusiReportMapper;
+import com.ruoyi.busi.domain.BusiReport;
+import com.ruoyi.busi.service.IBusiReportService;
+
+/**
+ * 举报记录Service业务层处理
+ * 
+ * @author 朱春云
+ * @date 2025-03-17
+ */
+@Service
+public class BusiReportServiceImpl extends ServiceImpl<BusiReportMapper,BusiReport>  implements IBusiReportService
+{
+    @Autowired
+    private BusiReportMapper busiReportMapper;
+
+    @Override
+    public IPage<BusiReport> queryListPage(BusiReport pageReqVO, Page<BusiReport> page) {
+        return busiReportMapper.queryListPage(pageReqVO, page);
+    }
+}
diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml
new file mode 100644
index 0000000..dcf9875
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.base.mapper.BaseCardMapper">
+    
+    <resultMap type="BaseCard" id="BaseCardResult">
+        <result property="id"    column="id"    />
+        <result property="cardName"    column="card_name"    />
+        <result property="userType"    column="user_type"    />
+        <result property="content"    column="content"    />
+        <result property="sort"    column="sort"    />
+        <result property="isSystem"    column="is_system"    />
+        <result property="image"    column="image"    />
+        <result property="monthPrice"    column="month_price"    />
+        <result property="quarterPrice"    column="quarter_price"    />
+        <result property="yearPrice"    column="year_price"    />
+        <result property="remark"    column="remark"    />
+        <result property="isShow"    column="is_show"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBaseCardVo">
+        select id, card_name, user_type, content, sort, is_system, image, month_price, quarter_price, year_price, remark, is_show, creator, create_time, updater, update_time, del_flag from dl_base_card
+    </sql>
+
+    <select id="queryListPage" parameterType="BaseCard" resultMap="BaseCardResult">
+        <include refid="selectBaseCardVo"/>
+        <where>
+                        <if test="entity.cardName != null  and entity.cardName != ''"> and card_name like concat('%', #{entity.cardName}, '%')</if>
+                        <if test="entity.userType != null  and entity.userType != ''"> and user_type = #{entity.userType}</if>
+                        <if test="entity.isSystem != null "> and is_system = #{entity.isSystem}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml
new file mode 100644
index 0000000..8d97073
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml
@@ -0,0 +1,29 @@
+<?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="com.ruoyi.base.mapper.BaseCardRightsMapper">
+    
+    <resultMap type="BaseCardRights" id="BaseCardRightsResult">
+        <result property="id"    column="id"    />
+        <result property="cardId"    column="card_id"    />
+        <result property="rightsId"    column="rights_id"    />
+        <result property="rightsValue"    column="rights_value"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBaseCardRightsVo">
+        select id, card_id, rights_id, rights_value, creator, create_time, updater, update_time, del_flag from dl_base_card_rights
+    </sql>
+
+    <select id="queryListPage" parameterType="BaseCardRights" resultMap="BaseCardRightsResult">
+        <include refid="selectBaseCardRightsVo"/>
+        <where>
+                        <if test="entity.rightsId != null  and entity.rightsId != ''"> and rights_id = #{entity.rightsId}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCategoryMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCategoryMapper.xml
new file mode 100644
index 0000000..ea11e79
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCategoryMapper.xml
@@ -0,0 +1,40 @@
+<?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="com.ruoyi.base.mapper.BaseCategoryMapper">
+    
+    <resultMap type="BaseCategory" id="BaseCategoryResult">
+        <result property="id"    column="id"    />
+        <result property="code"    column="code"    />
+        <result property="pid"    column="pid"    />
+        <result property="sort"    column="sort"    />
+        <result property="title"    column="title"    />
+        <result property="content"    column="content"    />
+        <result property="isSystem"    column="is_system"    />
+        <result property="userId"    column="user_id"    />
+        <result property="remark"    column="remark"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBaseCategoryVo">
+        select id, code, pid, sort, title, content, is_system, user_id, remark, creator, create_time, updater, update_time, del_flag from dl_base_category
+    </sql>
+
+    <select id="queryListPage" parameterType="BaseCategory" resultMap="BaseCategoryResult">
+        <include refid="selectBaseCategoryVo"/>
+        <where>
+                        <if test="entity.code != null  and entity.code != ''"> and code = #{entity.code}</if>
+                        <if test="entity.pid != null  and entity.pid != ''"> and pid = #{entity.pid}</if>
+                        <if test="entity.sort != null "> and sort = #{entity.sort}</if>
+                        <if test="entity.title != null  and entity.title != ''"> and title = #{entity.title}</if>
+                        <if test="entity.content != null  and entity.content != ''"> and content = #{entity.content}</if>
+                        <if test="entity.isSystem != null "> and is_system = #{entity.isSystem}</if>
+                        <if test="entity.remark != null  and entity.remark != ''"> and remark = #{entity.remark}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCouponMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCouponMapper.xml
new file mode 100644
index 0000000..3b1e4d5
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCouponMapper.xml
@@ -0,0 +1,29 @@
+<?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="com.ruoyi.base.mapper.BaseCouponMapper">
+    
+    <resultMap type="BaseCoupon" id="BaseCouponResult">
+        <result property="id"    column="id"    />
+        <result property="couponNum"    column="coupon_num"    />
+        <result property="price"    column="price"    />
+        <result property="isShow"    column="is_show"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBaseCouponVo">
+        select id, coupon_num, price, is_show, creator, create_time, updater, update_time, del_flag from dl_base_coupon
+    </sql>
+
+    <select id="queryListPage" parameterType="BaseCoupon" resultMap="BaseCouponResult">
+        <include refid="selectBaseCouponVo"/>
+        <where>
+                        <if test="entity.isShow != null "> and is_show = #{entity.isShow}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseRightsMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseRightsMapper.xml
new file mode 100644
index 0000000..abc28f1
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/base/BaseRightsMapper.xml
@@ -0,0 +1,38 @@
+<?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="com.ruoyi.base.mapper.BaseRightsMapper">
+    
+    <resultMap type="BaseRights" id="BaseRightsResult">
+        <result property="id"    column="id"    />
+        <result property="userType"    column="user_type"    />
+        <result property="code"    column="code"    />
+        <result property="name"    column="name"    />
+        <result property="image"    column="image"    />
+        <result property="sort"    column="sort"    />
+        <result property="rightsType"    column="rights_type"    />
+        <result property="rightsCycle"    column="rights_cycle"    />
+        <result property="remark"    column="remark"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBaseRightsVo">
+        select id, user_type, code, name, image, sort, rights_type, rights_cycle, remark, creator, create_time, updater, update_time, del_flag from dl_base_rights
+    </sql>
+
+    <select id="queryListPage" parameterType="BaseRights" resultMap="BaseRightsResult">
+        <include refid="selectBaseRightsVo"/>
+        <where>
+                        <if test="entity.userType != null  and entity.userType != ''"> and user_type = #{entity.userType}</if>
+                        <if test="entity.code != null  and entity.code != ''"> and code = #{entity.code}</if>
+                        <if test="entity.name != null  and entity.name != ''"> and name like concat('%', #{entity.name}, '%')</if>
+                        <if test="entity.rightsType != null  and entity.rightsType != ''"> and rights_type = #{entity.rightsType}</if>
+                        <if test="entity.rightsCycle != null  and entity.rightsCycle != ''"> and rights_cycle = #{entity.rightsCycle}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiEvaluateMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiEvaluateMapper.xml
new file mode 100644
index 0000000..f96cc98
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiEvaluateMapper.xml
@@ -0,0 +1,36 @@
+<?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="com.ruoyi.busi.mapper.BusiEvaluateMapper">
+    
+    <resultMap type="BusiEvaluate" id="BusiEvaluateResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="userType"    column="user_type"    />
+        <result property="nickname"    column="nickname"    />
+        <result property="toUserId"    column="to_user_id"    />
+        <result property="toUserType"    column="to_user_type"    />
+        <result property="evaluateCode"    column="evaluate_code"    />
+        <result property="evaluate"    column="evaluate"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiEvaluateVo">
+        select id, user_id, user_type, nickname, to_user_id, to_user_type, evaluate_code, evaluate, creator, create_time, updater, update_time, del_flag from dl_busi_evaluate
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiEvaluate" resultMap="BusiEvaluateResult">
+        <include refid="selectBusiEvaluateVo"/>
+        <where>
+                        <if test="entity.userType != null  and entity.userType != ''"> and user_type = #{entity.userType}</if>
+                        <if test="entity.nickname != null  and entity.nickname != ''"> and nickname like concat('%', #{entity.nickname}, '%')</if>
+                        <if test="entity.toUserId != null "> and to_user_id like concat('%', #{entity.toUserId}, '%')</if>
+                        <if test="entity.toUserType != null  and entity.toUserType != ''"> and to_user_type = #{entity.toUserType}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml
new file mode 100644
index 0000000..882fb12
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiFeedbackMapper.xml
@@ -0,0 +1,37 @@
+<?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="com.ruoyi.busi.mapper.BusiFeedbackMapper">
+    
+    <resultMap type="BusiFeedback" id="BusiFeedbackResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="userType"    column="user_type"    />
+        <result property="content"    column="content"    />
+        <result property="images"    column="images"    />
+        <result property="backContent"    column="back_content"    />
+        <result property="backImages"    column="back_images"    />
+        <result property="backTime"    column="back_time"    />
+        <result property="backUserId"    column="back_user_id"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiFeedbackVo">
+        select id, user_id, user_type, content, images, back_content, back_images, back_time, back_user_id, creator, create_time, updater, update_time, del_flag from dl_busi_feedback
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiFeedback" resultMap="BusiFeedbackResult">
+        <include refid="selectBusiFeedbackVo"/>
+        <where>
+                        <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if>
+                        <if test="entity.userType != null  and entity.userType != ''"> and user_type = #{entity.userType}</if>
+                        <if test="entity.backUserId != null "> and back_user_id = #{entity.backUserId}</if>
+                        <if test="entity.createTime != null "> and create_time = #{entity.createTime}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeFormMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeFormMapper.xml
new file mode 100644
index 0000000..6ae344e
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeFormMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.busi.mapper.BusiNoticeFormMapper">
+    
+    <resultMap type="BusiNoticeForm" id="BusiNoticeFormResult">
+        <result property="id"    column="id"    />
+        <result property="noticeId"    column="notice_id"    />
+        <result property="labelTitle"    column="label_title"    />
+        <result property="sort"    column="sort"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeFormVo">
+        select id, notice_id, label_title, sort, creator, create_time, updater, update_time, del_flag from dl_busi_notice_form
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticeForm" resultMap="BusiNoticeFormResult">
+        <include refid="selectBusiNoticeFormVo"/>
+        <where>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml
new file mode 100644
index 0000000..92c019c
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMapper.xml
@@ -0,0 +1,72 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticeMapper">
+    
+    <resultMap type="BusiNotice" id="BusiNoticeResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="title"    column="title"    />
+        <result property="platformCode"    column="platform_code"    />
+        <result property="platformName"    column="platform_name"    />
+        <result property="country"    column="country"    />
+        <result property="feeDown"    column="fee_down"    />
+        <result property="feeUp"    column="fee_up"    />
+        <result property="isSelfPrice"    column="is_self_price"    />
+        <result property="giftDetail"    column="gift_detail"    />
+        <result property="giftPrice"    column="gift_price"    />
+        <result property="endDate"    column="end_date"    />
+        <result property="brand"    column="brand"    />
+        <result property="isShowBrand"    column="is_show_brand"    />
+        <result property="needNum"    column="need_num"    />
+        <result property="fansDown"    column="fans_down"    />
+        <result property="fansUp"    column="fans_up"    />
+        <result property="isEligible"    column="is_eligible"    />
+        <result property="pic"    column="pic"    />
+        <result property="collect"    column="collect"    />
+        <result property="detail"    column="detail"    />
+        <result property="images"    column="images"    />
+        <result property="bloggerTypes"    column="blogger_types"    />
+        <result property="isShowTel"    column="is_show_tel"    />
+        <result property="wechat"    column="wechat"    />
+        <result property="tel"    column="tel"    />
+        <result property="groupImage"    column="group_image"    />
+        <result property="isUseCoupon"    column="is_use_coupon"    />
+        <result property="approvalStatus"    column="approval_status"    />
+        <result property="approvalUserId"    column="approval_user_id"    />
+        <result property="approvalTime"    column="approval_time"    />
+        <result property="approvalRemark"    column="approval_remark"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeVo">
+        select id, user_id, title, platform_code, platform_name, country, fee_down, fee_up, is_self_price, gift_detail, gift_price, end_date, brand, is_show_brand, need_num, fans_down, fans_up, is_eligible, pic, collect, detail, images, blogger_types, is_show_tel, wechat, tel, group_image, is_use_coupon, approval_status, approval_user_id, approval_time, approval_remark, creator, create_time, updater, update_time, del_flag from dl_busi_notice
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNotice" resultMap="BusiNoticeResult">
+        <include refid="selectBusiNoticeVo"/>
+        <where>
+                        <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if>
+                        <if test="entity.title != null  and entity.title != ''"> and title like concat('%', #{entity.title}, '%')</if>
+                        <if test="entity.platformName != null  and entity.platformName != ''"> and platform_name like concat('%', #{entity.platformName}, '%')</if>
+                        <if test="entity.country != null  and entity.country != ''"> and country = #{entity.country}</if>
+                        <if test="entity.feeDown != null "> and fee_down = #{entity.feeDown}</if>
+                        <if test="entity.feeUp != null "> and fee_up = #{entity.feeUp}</if>
+                        <if test="entity.isSelfPrice != null "> and is_self_price = #{entity.isSelfPrice}</if>
+                        <if test="entity.brand != null  and entity.brand != ''"> and brand = #{entity.brand}</if>
+                        <if test="entity.isShowBrand != null "> and is_show_brand = #{entity.isShowBrand}</if>
+                        <if test="entity.needNum != null "> and need_num = #{entity.needNum}</if>
+                        <if test="entity.fansDown != null "> and fans_down = #{entity.fansDown}</if>
+                        <if test="entity.fansUp != null "> and fans_up = #{entity.fansUp}</if>
+                        <if test="entity.isEligible != null "> and is_eligible = #{entity.isEligible}</if>
+                        <if test="entity.pic != null  and entity.pic != ''"> and pic = #{entity.pic}</if>
+                        <if test="entity.collect != null  and entity.collect != ''"> and collect = #{entity.collect}</if>
+                        <if test="entity.detail != null  and entity.detail != ''"> and detail = #{entity.detail}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMsgMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMsgMapper.xml
new file mode 100644
index 0000000..1146c0c
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeMsgMapper.xml
@@ -0,0 +1,30 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticeMsgMapper">
+    
+    <resultMap type="BusiNoticeMsg" id="BusiNoticeMsgResult">
+        <result property="id"    column="id"    />
+        <result property="noticeId"    column="notice_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="content"    column="content"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeMsgVo">
+        select id, notice_id, user_id, content, creator, create_time, updater, update_time, del_flag from dl_busi_notice_msg
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticeMsg" resultMap="BusiNoticeMsgResult">
+        <include refid="selectBusiNoticeMsgVo"/>
+        <where>
+                        <if test="entity.noticeId != null  and entity.noticeId != ''"> and notice_id like concat('%', #{entity.noticeId}, '%')</if>
+                        <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticePriceMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticePriceMapper.xml
new file mode 100644
index 0000000..96e8c50
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticePriceMapper.xml
@@ -0,0 +1,34 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticePriceMapper">
+    
+    <resultMap type="BusiNoticePrice" id="BusiNoticePriceResult">
+        <result property="id"    column="id"    />
+        <result property="noticeId"    column="notice_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="cardId"    column="card_id"    />
+        <result property="priceType"    column="price_type"    />
+        <result property="price"    column="price"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticePriceVo">
+        select id, notice_id, user_id, card_id, price_type, price, creator, create_time, updater, update_time, del_flag from dl_busi_notice_price
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticePrice" resultMap="BusiNoticePriceResult">
+        <include refid="selectBusiNoticePriceVo"/>
+        <where>
+                        <if test="entity.noticeId != null  and entity.noticeId != ''"> and notice_id = #{entity.noticeId}</if>
+                        <if test="entity.userId != null "> and user_id = #{entity.userId}</if>
+                        <if test="entity.priceType != null  and entity.priceType != ''"> and price_type = #{entity.priceType}</if>
+                        <if test="entity.price != null "> and price = #{entity.price}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignCardMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignCardMapper.xml
new file mode 100644
index 0000000..87d19a5
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignCardMapper.xml
@@ -0,0 +1,31 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticeSignCardMapper">
+    
+    <resultMap type="BusiNoticeSignCard" id="BusiNoticeSignCardResult">
+        <result property="id"    column="id"    />
+        <result property="noticeId"    column="notice_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="cardId"    column="card_id"    />
+        <result property="price"    column="price"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeSignCardVo">
+        select id, notice_id, user_id, card_id, price, creator, create_time, updater, update_time, del_flag from dl_busi_notice_sign_card
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticeSignCard" resultMap="BusiNoticeSignCardResult">
+        <include refid="selectBusiNoticeSignCardVo"/>
+        <where>
+                        <if test="entity.noticeId != null  and entity.noticeId != ''"> and notice_id like concat('%', #{entity.noticeId}, '%')</if>
+                        <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignMapper.xml
new file mode 100644
index 0000000..a8df361
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeSignMapper.xml
@@ -0,0 +1,42 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticeSignMapper">
+    
+    <resultMap type="BusiNoticeSign" id="BusiNoticeSignResult">
+        <result property="id"    column="id"    />
+        <result property="noticeId"    column="notice_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="nickname"    column="nickname"    />
+        <result property="avatar"    column="avatar"    />
+        <result property="isSuper"    column="is_super"    />
+        <result property="tel"    column="tel"    />
+        <result property="addrId"    column="addr_id"    />
+        <result property="status"    column="status"    />
+        <result property="content"    column="content"    />
+        <result property="images"    column="images"    />
+        <result property="articleRef"    column="article_ref"    />
+        <result property="remark"    column="remark"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeSignVo">
+        select id, notice_id, user_id, nickname, avatar, is_super, tel, addr_id, status, content, images, article_ref, remark, creator, create_time, updater, update_time, del_flag from dl_busi_notice_sign
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticeSign" resultMap="BusiNoticeSignResult">
+        <include refid="selectBusiNoticeSignVo"/>
+        <where>
+                        <if test="entity.noticeId != null  and entity.noticeId != ''"> and notice_id like concat('%', #{entity.noticeId}, '%')</if>
+                        <if test="entity.nickname != null  and entity.nickname != ''"> and nickname like concat('%', #{entity.nickname}, '%')</if>
+                        <if test="entity.isSuper != null "> and is_super = #{entity.isSuper}</if>
+                        <if test="entity.tel != null  and entity.tel != ''"> and tel like concat('%', #{entity.tel}, '%')</if>
+                        <if test="entity.status != null  and entity.status != ''"> and status = #{entity.status}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeViewMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeViewMapper.xml
new file mode 100644
index 0000000..ad1d432
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiNoticeViewMapper.xml
@@ -0,0 +1,22 @@
+<?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="com.ruoyi.busi.mapper.BusiNoticeViewMapper">
+    
+    <resultMap type="BusiNoticeView" id="BusiNoticeViewResult">
+        <result property="id"    column="id"    />
+        <result property="viewNum"    column="view_num"    />
+    </resultMap>
+
+    <sql id="selectBusiNoticeViewVo">
+        select id, view_num from dl_busi_notice_view
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiNoticeView" resultMap="BusiNoticeViewResult">
+        <include refid="selectBusiNoticeViewVo"/>
+        <where>
+                        <if test="entity.viewNum != null "> and view_num = #{entity.viewNum}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml b/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml
new file mode 100644
index 0000000..0370065
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/busi/BusiReportMapper.xml
@@ -0,0 +1,42 @@
+<?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="com.ruoyi.busi.mapper.BusiReportMapper">
+    
+    <resultMap type="BusiReport" id="BusiReportResult">
+        <result property="id"    column="id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="userType"    column="user_type"    />
+        <result property="reportUserId"    column="report_user_id"    />
+        <result property="reportUserType"    column="report_user_type"    />
+        <result property="reportNoticeId"    column="report_notice_id"    />
+        <result property="reportType"    column="report_type"    />
+        <result property="reportTitle"    column="report_title"    />
+        <result property="content"    column="content"    />
+        <result property="images"    column="images"    />
+        <result property="dealUserId"    column="deal_user_id"    />
+        <result property="dealResult"    column="deal_result"    />
+        <result property="dealTime"    column="deal_time"    />
+        <result property="creator"    column="creator"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updater"    column="updater"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+    <sql id="selectBusiReportVo">
+        select id, user_id, user_type, report_user_id, report_user_type, report_notice_id, report_type, report_title, content, images, deal_user_id, deal_result, deal_time, creator, create_time, updater, update_time, del_flag from dl_busi_report
+    </sql>
+
+    <select id="queryListPage" parameterType="BusiReport" resultMap="BusiReportResult">
+        <include refid="selectBusiReportVo"/>
+        <where>
+                        <if test="entity.userId != null "> and user_id like concat('%', #{entity.userId}, '%')</if>
+                        <if test="entity.reportUserId != null "> and report_user_id like concat('%', #{entity.reportUserId}, '%')</if>
+                        <if test="entity.reportNoticeId != null  and entity.reportNoticeId != ''"> and report_notice_id like concat('%', #{entity.reportNoticeId}, '%')</if>
+                        <if test="entity.reportTitle != null  and entity.reportTitle != ''"> and report_title = #{entity.reportTitle}</if>
+                        <if test="entity.dealUserId != null "> and deal_user_id = #{entity.dealUserId}</if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file