he2802 2 лет назад
Родитель
Сommit
df7e786d42
100 измененных файлов с 6622 добавлено и 23 удалено
  1. 92 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempController.java
  2. 105 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempGoodsController.java
  3. 101 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempPosterController.java
  4. 105 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempRelationController.java
  5. 135 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysConfigController.java
  6. 163 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysDeptController.java
  7. 169 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysMenuController.java
  8. 192 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleController.java
  9. 22 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleMenuController.java
  10. 285 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserController.java
  11. 21 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserRoleController.java
  12. 105 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityController.java
  13. 105 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityGoodsController.java
  14. 105 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityPosterController.java
  15. 0 4
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysUser.java
  16. 6 9
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CustomTenantLineHandler.java
  17. 79 6
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TokenService.java
  18. 67 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TopSysPermissionService.java
  19. 1 4
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TopUserDetailsServiceImpl.java
  20. 61 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityAddBo.java
  21. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityEditBo.java
  22. 50 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsAddBo.java
  23. 61 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsEditBo.java
  24. 63 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsQueryBo.java
  25. 65 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterAddBo.java
  26. 70 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterEditBo.java
  27. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterQueryBo.java
  28. 72 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityQueryBo.java
  29. 68 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempAddBo.java
  30. 74 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempEditBo.java
  31. 50 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsAddBo.java
  32. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsEditBo.java
  33. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsQueryBo.java
  34. 64 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterAddBo.java
  35. 68 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterEditBo.java
  36. 43 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterQueryBo.java
  37. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempQueryBo.java
  38. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationAddBo.java
  39. 37 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationEditBo.java
  40. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationQueryBo.java
  41. 61 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivity.java
  42. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityGoods.java
  43. 62 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityPoster.java
  44. 59 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTemp.java
  45. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempGoods.java
  46. 62 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempPoster.java
  47. 42 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempRelation.java
  48. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityGoodsMapper.java
  49. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityMapper.java
  50. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityPosterMapper.java
  51. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempGoodsMapper.java
  52. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempMapper.java
  53. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempPosterMapper.java
  54. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempRelationMapper.java
  55. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityGoodsService.java
  56. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityPosterService.java
  57. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java
  58. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempGoodsService.java
  59. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempPosterService.java
  60. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempRelationService.java
  61. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempService.java
  62. 104 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java
  63. 99 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java
  64. 104 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java
  65. 99 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempGoodsServiceImpl.java
  66. 114 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempPosterServiceImpl.java
  67. 98 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempRelationServiceImpl.java
  68. 191 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempServiceImpl.java
  69. 95 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanAccountServiceImpl.java
  70. 96 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanPosterServiceImpl.java
  71. 92 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanRelationServiceImpl.java
  72. 103 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanServiceImpl.java
  73. 58 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityGoodsVo.java
  74. 66 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityPosterVo.java
  75. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempGoodsVo.java
  76. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempPosterVo.java
  77. 35 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempRelationVo.java
  78. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempVo.java
  79. 24 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTenantVo.java
  80. 66 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityVo.java
  81. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigAddBo.java
  82. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigEditBo.java
  83. 54 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigQueryBo.java
  84. 62 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptAddBo.java
  85. 66 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptEditBo.java
  86. 63 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptQueryBo.java
  87. 74 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuAddBo.java
  88. 85 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuEditBo.java
  89. 75 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuQueryBo.java
  90. 62 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleAddBo.java
  91. 66 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleEditBo.java
  92. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuAddBo.java
  93. 28 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuEditBo.java
  94. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuQueryBo.java
  95. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleQueryBo.java
  96. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleAddBo.java
  97. 28 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleEditBo.java
  98. 34 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleQueryBo.java
  99. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysConfig.java
  100. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysDept.java

+ 92 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempController.java

@@ -0,0 +1,92 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【分销模板控制器】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api("分销模板控制器")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/distribution/temp")
+public class DistributionActivityTempController extends BaseController {
+
+    private final IDistributionActivityTempService iDistributionActivityTempService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询分销活动模板列表")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityTempVo> list(DistributionActivityTempQueryBo bo) {
+        startPage();
+        List<DistributionActivityTempVo> list = iDistributionActivityTempService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityTempVo> export(DistributionActivityTempQueryBo bo) {
+        List<DistributionActivityTempVo> list = iDistributionActivityTempService.queryList(bo);
+        ExcelUtil<DistributionActivityTempVo> util = new ExcelUtil<DistributionActivityTempVo>(DistributionActivityTempVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取分销活动模板详细信息
+     */
+    @ApiOperation("获取分销活动模板详细信息")
+    @GetMapping("/{id}")
+    public AjaxResult<DistributionActivityTempVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iDistributionActivityTempService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增分销活动模板")
+    @PostMapping("/save")
+    public AjaxResult<Void> add(@RequestBody DistributionActivityTempAddBo bo) {
+        return toAjax(iDistributionActivityTempService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改分销活动模板")
+    @PutMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityTempEditBo bo) {
+        return toAjax(iDistributionActivityTempService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iDistributionActivityTempService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 105 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempGoodsController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempGoodsService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempGoodsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/goods")
+public class DistributionActivityTempGoodsController extends BaseController {
+
+    private final IDistributionActivityTempGoodsService iDistributionActivityTempGoodsService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityTempGoodsVo> list(DistributionActivityTempGoodsQueryBo bo) {
+        startPage();
+        List<DistributionActivityTempGoodsVo> list = iDistributionActivityTempGoodsService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityTempGoodsVo> export(DistributionActivityTempGoodsQueryBo bo) {
+        List<DistributionActivityTempGoodsVo> list = iDistributionActivityTempGoodsService.queryList(bo);
+        ExcelUtil<DistributionActivityTempGoodsVo> util = new ExcelUtil<DistributionActivityTempGoodsVo>(DistributionActivityTempGoodsVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取【请填写功能名称】详细信息")
+    @PreAuthorize("@ss.hasPermi('system:goods:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<DistributionActivityTempGoodsVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iDistributionActivityTempGoodsService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody DistributionActivityTempGoodsAddBo bo) {
+        return toAjax(iDistributionActivityTempGoodsService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityTempGoodsEditBo bo) {
+        return toAjax(iDistributionActivityTempGoodsService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iDistributionActivityTempGoodsService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 101 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempPosterController.java

@@ -0,0 +1,101 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempPosterService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempPosterVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【分销海报模板控制器】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api("分销海报模板控制器")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/distribution/poster")
+public class DistributionActivityTempPosterController extends BaseController {
+
+    private final IDistributionActivityTempPosterService iDistributionActivityTempPosterService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:poster:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityTempPosterVo> list(DistributionActivityTempPosterQueryBo bo) {
+        startPage();
+        List<DistributionActivityTempPosterVo> list = iDistributionActivityTempPosterService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:poster:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityTempPosterVo> export(DistributionActivityTempPosterQueryBo bo) {
+        List<DistributionActivityTempPosterVo> list = iDistributionActivityTempPosterService.queryList(bo);
+        ExcelUtil<DistributionActivityTempPosterVo> util = new ExcelUtil<DistributionActivityTempPosterVo>(DistributionActivityTempPosterVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取海报模板详细信息")
+    @PreAuthorize("@ss.hasPermi('system:poster:query')")
+    @GetMapping("/{posterTempId}")
+    public AjaxResult<DistributionActivityTempPosterVo> getInfo(@PathVariable("posterTempId" ) Long posterTempId) {
+        return AjaxResult.success(iDistributionActivityTempPosterService.queryById(posterTempId));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增海报模板")
+    @PostMapping("/save")
+    public AjaxResult<Void> add(@RequestBody DistributionActivityTempPosterAddBo bo) {
+        return toAjax(iDistributionActivityTempPosterService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改海报模板")
+    @PutMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityTempPosterEditBo bo) {
+        return toAjax(iDistributionActivityTempPosterService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:poster:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{posterTempIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] posterTempIds) {
+        return toAjax(iDistributionActivityTempPosterService.deleteWithValidByIds(Arrays.asList(posterTempIds), true) ? 1 : 0);
+    }
+}

+ 105 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempRelationController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempRelationService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempRelationVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/relation")
+public class DistributionActivityTempRelationController extends BaseController {
+
+    private final IDistributionActivityTempRelationService iDistributionActivityTempRelationService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:relation:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityTempRelationVo> list(DistributionActivityTempRelationQueryBo bo) {
+        startPage();
+        List<DistributionActivityTempRelationVo> list = iDistributionActivityTempRelationService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:relation:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityTempRelationVo> export(DistributionActivityTempRelationQueryBo bo) {
+        List<DistributionActivityTempRelationVo> list = iDistributionActivityTempRelationService.queryList(bo);
+        ExcelUtil<DistributionActivityTempRelationVo> util = new ExcelUtil<DistributionActivityTempRelationVo>(DistributionActivityTempRelationVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取【请填写功能名称】详细信息")
+    @PreAuthorize("@ss.hasPermi('system:relation:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<DistributionActivityTempRelationVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iDistributionActivityTempRelationService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:relation:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody DistributionActivityTempRelationAddBo bo) {
+        return toAjax(iDistributionActivityTempRelationService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:relation:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityTempRelationEditBo bo) {
+        return toAjax(iDistributionActivityTempRelationService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:relation:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iDistributionActivityTempRelationService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 135 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysConfigController.java

@@ -0,0 +1,135 @@
+package com.zhongzheng.controller.top;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.modules.system.vo.SysConfigVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/config")
+public class TopSysConfigController extends BaseController {
+    @Autowired
+    private ISysConfigService configService;
+
+    /**
+     * 获取参数配置列表
+     */
+    @ApiOperation("配置列表")
+    @PreAuthorize("@ss.hasPermi('system:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysConfigVo config)
+    {
+        startPage();
+        List<SysConfigVo> list = configService.selectConfigList(config);
+        return getDataTable(list);
+    }
+
+    /*@Log(title = "参数管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:config:export')")
+    @GetMapping("/export")
+    public AjaxResult export(SysConfig config)
+    {
+        List<SysConfig> list = configService.selectConfigList(config);
+        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
+        return util.exportExcel(list, "参数数据");
+    }*/
+
+    /**
+     * 根据参数编号获取详细信息
+     */
+    @ApiOperation("通过ID配置详情")
+    @PreAuthorize("@ss.hasPermi('system:config:query')")
+    @GetMapping(value = "/{configId}")
+    public AjaxResult getInfo(@PathVariable Long configId)
+    {
+        return AjaxResult.success(configService.selectConfigById(configId));
+    }
+
+    /**
+     * 根据参数键名查询参数值
+     */
+    @ApiOperation("通过KEY获取配置详情")
+    @GetMapping(value = "/configKey/{configKey}")
+    public AjaxResult getConfigKey(@PathVariable String configKey)
+    {
+        return AjaxResult.success("配置内容",configService.selectConfigByKey(configKey));
+    }
+
+    /**
+     * 新增参数配置
+     */
+    @ApiOperation("新增配置")
+    @PreAuthorize("@ss.hasPermi('system:config:add')")
+    @Log(title = "参数管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    @RepeatSubmit
+    public AjaxResult add(@Validated @RequestBody SysConfigVo config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(configService.insertConfig(config));
+    }
+
+    /**
+     * 修改参数配置
+     */
+    @ApiOperation("修改配置")
+    @PreAuthorize("@ss.hasPermi('system:config:edit')")
+    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysConfigVo config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 删除参数配置
+     */
+    @ApiOperation("删除配置")
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{configIds}")
+    public AjaxResult remove(@PathVariable Long[] configIds)
+    {
+        return toAjax(configService.deleteConfigByIds(configIds));
+    }
+
+    /**
+     * 清空缓存
+     */
+    @ApiOperation("刷新配置缓存")
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clearCache")
+    public AjaxResult clearCache()
+    {
+        configService.clearCache();
+        return AjaxResult.success();
+    }
+}

+ 163 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysDeptController.java

@@ -0,0 +1,163 @@
+package com.zhongzheng.controller.top;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * 部门Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "部门控制器", tags = {"部门管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/dept")
+public class TopSysDeptController extends BaseController {
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 获取部门列表
+     */
+    @ApiOperation("部门列表")
+    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list")
+    public AjaxResult list(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return AjaxResult.success(depts);
+    }
+
+    /**
+     * 查询部门列表(排除节点)
+     */
+    @ApiOperation("查询部门列表(节点)")
+    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list/exclude/{deptId}")
+    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        Iterator<SysDept> it = depts.iterator();
+        while (it.hasNext())
+        {
+            SysDept d = (SysDept) it.next();
+            if (d.getDeptId().intValue() == deptId
+                    || ArrayUtils.contains(StrUtil.split(d.getAncestors(), ","), deptId + ""))
+            {
+                it.remove();
+            }
+        }
+        return AjaxResult.success(depts);
+    }
+
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @ApiOperation("根据部门编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:dept:query')")
+    @GetMapping(value = "/{deptId}")
+    public AjaxResult getInfo(@PathVariable Long deptId)
+    {
+        return AjaxResult.success(deptService.selectDeptById(deptId));
+    }
+
+    /**
+     * 获取部门下拉树列表
+     */
+    @ApiOperation("获取部门下拉树列表")
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
+    }
+
+    /**
+     * 加载对应角色部门列表树
+     */
+    @ApiOperation("加载对应角色部门列表树")
+    @GetMapping(value = "/roleDeptTreeselect/{roleId}")
+    public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        Map<String,Object> map = new HashMap<>();
+        map.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
+        map.put("depts", deptService.buildDeptTreeSelect(depts));
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 新增部门
+     */
+    @ApiOperation("新增部门")
+    @ApiOperationSupport(includeParameters = {"deptName","parentId","orderNum","status"})
+    @PreAuthorize("@ss.hasPermi('system:dept:add')")
+    @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDept dept)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        dept.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(deptService.insertDept(dept));
+    }
+
+    /**
+     * 修改部门
+     */
+    @ApiOperation("修改部门")
+    @PreAuthorize("@ss.hasPermi('system:dept:edit')")
+    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody SysDept dept)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        else if (dept.getParentId().equals(dept.getDeptId()))
+        {
+            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
+        else if (StrUtil.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
+                && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0)
+        {
+            return AjaxResult.error("该部门包含未停用的子部门!");
+        }
+        dept.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(deptService.updateDept(dept));
+    }
+
+    /**
+     * 删除部门
+     */
+    @ApiOperation("删除部门")
+    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
+    @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @PostMapping("/delete")
+    public AjaxResult remove(@PathVariable Long deptId)
+    {
+        if (deptService.hasChildByDeptId(deptId))
+        {
+            return AjaxResult.error("存在下级部门,不允许删除");
+        }
+        if (deptService.checkDeptExistUser(deptId))
+        {
+            return AjaxResult.error("部门存在用户,不允许删除");
+        }
+        return toAjax(deptService.deleteDeptById(deptId));
+    }
+}

+ 169 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysMenuController.java

@@ -0,0 +1,169 @@
+package com.zhongzheng.controller.top;
+
+import cn.hutool.core.util.StrUtil;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.constant.Constants;
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.SysMenu;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.system.service.ISysMenuService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/menu")
+public class TopSysMenuController extends BaseController {
+    @Autowired
+    private ISysMenuService menuService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 获取菜单列表
+     */
+    @ApiOperation("获取菜单列表")
+    @PreAuthorize("@ss.hasPermi('system:menu:list')")
+    @GetMapping("/list")
+    public AjaxResult list(SysMenu menu)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUser().getUserId();
+        List<SysMenu> menus = menuService.selectMenuList(menu, userId);
+        return AjaxResult.success(menus);
+    }
+
+    /**
+     * 根据菜单编号获取详细信息
+     */
+    @ApiOperation("根据菜单编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable Long menuId)
+    {
+        return AjaxResult.success(menuService.selectMenuById(menuId));
+    }
+
+    /**
+     * 获取菜单下拉树列表
+     */
+    @ApiOperation("获取菜单下拉树列表")
+    @ApiOperationSupport(includeParameters = {})
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(SysMenu menu)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUser().getUserId();
+        List<SysMenu> menus = menuService.selectMenuList(menu, userId);
+        return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
+    }
+
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @ApiOperation("加载对应角色菜单列表树")
+    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
+    public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<SysMenu> menus = menuService.selectMenuList(loginUser.getUser().getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ajax;
+    }
+
+    /**
+     * 新增菜单
+     */
+    @ApiOperation("新增菜单")
+    @ApiOperationSupport(ignoreParameters = {"children","createBy","createTime","menuId","params"
+            ,"parentName","remark","updateBy","updateTime"})
+    @PreAuthorize("@ss.hasPermi('system:menu:add')")
+    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+                && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        menu.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(menuService.insertMenu(menu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @ApiOperation("修改菜单")
+    @ApiOperationSupport(ignoreParameters = {"children","createBy","createTime","params"
+            ,"parentName","remark","updateBy","updateTime"})
+    @PreAuthorize("@ss.hasPermi('system:menu:edit')")
+    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+                && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        else if (menu.getMenuId().equals(menu.getParentId()))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
+        }
+        menu.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(menuService.updateMenu(menu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @ApiOperation("删除菜单")
+    @PreAuthorize("@ss.hasPermi('system:menu:remove')")
+    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{menuId}")
+    public AjaxResult remove(@PathVariable Long menuId)
+    {
+        if (menuService.hasChildByMenuId(menuId))
+        {
+            return AjaxResult.error("存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(menuId))
+        {
+            return AjaxResult.error("菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.deleteMenuById(menuId));
+    }
+}

+ 192 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleController.java

@@ -0,0 +1,192 @@
+package com.zhongzheng.controller.top;
+
+import cn.hutool.core.lang.Validator;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.SysRole;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.framework.web.service.TopSysPermissionService;
+import com.zhongzheng.modules.top.service.ITopSysRoleService;
+import com.zhongzheng.modules.top.service.ITopSysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 角色信息Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "角色信息控制器", tags = {"角色信息管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/role")
+public class TopSysRoleController extends BaseController {
+    @Autowired
+    private ITopSysRoleService topSysRoleService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @Autowired
+    private TopSysPermissionService topSysPermissionService;
+
+    @Autowired
+    private ITopSysUserService topSysUserService;
+
+    @ApiOperation("角色列表")
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysRole role)
+    {
+        startPage();
+        List<SysRole> list = topSysRoleService.selectRoleList(role);
+        return getDataTable(list);
+    }
+
+    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:role:export')")
+    @GetMapping("/export")
+    public AjaxResult export(SysRole role)
+    {
+        List<SysRole> list = topSysRoleService.selectRoleList(role);
+        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
+        return util.exportExcel(list, "角色数据");
+    }
+
+    /**
+     * 根据角色编号获取详细信息
+     */
+    @ApiOperation("根据角色编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping(value = "/{roleId}")
+    public AjaxResult getInfo(@PathVariable Long roleId)
+    {
+        return AjaxResult.success(topSysRoleService.selectRoleById(roleId));
+    }
+
+    /**
+     * 新增角色
+     */
+    @ApiOperation("新增角色")
+    @ApiOperationSupport(ignoreParameters = {"createBy","createTime","dataScope","delFlag","updateTime"
+            ,"flag","params","roleId","updateBy","deptIds","deptCheckStrictly","menuCheckStrictly"})
+    @PreAuthorize("@ss.hasPermi('system:role:add')")
+    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysRole role)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(topSysRoleService.checkRoleNameUnique(role)))
+        {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(topSysRoleService.checkRoleKeyUnique(role)))
+        {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(topSysRoleService.insertRole(role));
+
+    }
+
+    /**
+     * 修改保存角色
+     */
+    @ApiOperation("修改保存角色")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody SysRole role)
+    {
+        topSysRoleService.checkRoleAllowed(role);
+        if (UserConstants.NOT_UNIQUE.equals(topSysRoleService.checkRoleNameUnique(role)))
+        {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(topSysRoleService.checkRoleKeyUnique(role)))
+        {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setUpdateBy(SecurityUtils.getUsername());
+
+        if (topSysRoleService.updateRole(role) > 0)
+        {
+            // 更新缓存用户权限
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+            if (Validator.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
+            {
+                loginUser.setPermissions(topSysPermissionService.getMenuPermission(loginUser.getUser()));
+                loginUser.setUser(topSysUserService.selectUserByUserName(loginUser.getUser().getUserName()));
+                tokenService.setLoginUser(loginUser);
+            }
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+    }
+
+    /**
+     * 修改保存数据权限
+     */
+    @ApiOperation("修改保存数据权限")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/dataScope")
+    public AjaxResult dataScope(@RequestBody SysRole role)
+    {
+        topSysRoleService.checkRoleAllowed(role);
+        return toAjax(topSysRoleService.authDataScope(role));
+    }
+
+    /**
+     * 状态修改
+     */
+    @ApiOperation("状态修改")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody SysRole role)
+    {
+        topSysRoleService.checkRoleAllowed(role);
+        role.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(topSysRoleService.updateRoleStatus(role));
+    }
+
+    /**
+     * 删除角色
+     */
+    @ApiOperation("删除角色")
+    @PreAuthorize("@ss.hasPermi('system:role:remove')")
+    @Log(title = "角色管理", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{roleIds}")
+    public AjaxResult remove(@PathVariable Long[] roleIds)
+    {
+        return toAjax(topSysRoleService.deleteRoleByIds(roleIds));
+    }
+
+    /**
+     * 获取角色选择框列表
+     */
+    @ApiOperation("获取角色选择框列表")
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        return AjaxResult.success(topSysRoleService.selectRoleAll());
+    }
+}

+ 22 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleMenuController.java

@@ -0,0 +1,22 @@
+package com.zhongzheng.controller.top;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/menu")
+public class TopSysRoleMenuController extends BaseController {
+
+}

+ 285 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserController.java

@@ -0,0 +1,285 @@
+package com.zhongzheng.controller.top;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.bo.SysUserEditBo;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.TopSysUser;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
+import com.zhongzheng.modules.top.domain.TopSysRole;
+import com.zhongzheng.modules.top.service.ITopSysPostService;
+import com.zhongzheng.modules.top.service.ITopSysRoleService;
+import com.zhongzheng.modules.top.service.ITopSysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="用户信息管理")
+@RestController
+@RequestMapping("/system/top/user")
+public class TopSysUserController extends BaseController
+{
+    @Autowired
+    private ITopSysUserService topSysUserService;
+
+    @Autowired
+    private ITopSysRoleService topSysRoleService;
+
+    @Autowired
+    private ITopSysPostService topSysPostService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @Resource
+    private AuthenticationManager authenticationManager;
+
+    /**
+     * 获取用户列表
+     */
+    @ApiOperation("获取用户列表")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TopSysUser user)
+    {
+        startPage();
+        List<TopSysUser> list = topSysUserService.selectUserList(user);
+        return getDataTable(list);
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:export')")
+    @GetMapping("/export")
+    public AjaxResult export(TopSysUser user)
+    {
+        List<TopSysUser> list = topSysUserService.selectUserList(user);
+        ExcelUtil<TopSysUser> util = new ExcelUtil<TopSysUser>(TopSysUser.class);
+        return util.exportExcel(list, "用户数据");
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:import')")
+    @PostMapping("/importData")
+  /*  public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<TopSysUser> util = new ExcelUtil<TopSysUser>(TopSysUser.class);
+        List<TopSysUser> userList = util.importExcel(file.getInputStream());
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        String operName = loginUser.getUsername();
+        String message = topSysUserService.importUser(userList, updateSupport, operName);
+        return AjaxResult.success(message);
+    }*/
+
+    @GetMapping("/importTemplate")
+    public AjaxResult importTemplate()
+    {
+        ExcelUtil<TopSysUser> util = new ExcelUtil<TopSysUser>(TopSysUser.class);
+        return util.importTemplateExcel("用户数据");
+    }
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @ApiOperation("获取用户详细")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path")
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping(value = {  "/{userId}" })
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        List<TopSysRole> roles = topSysRoleService.selectRoleAll();
+        TopSysUser sysUser = topSysUserService.selectUserById(userId);
+        ajax.put("roles", TopSysUser.isAdmin(sysUser.getUserId()) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("posts", topSysPostService.selectPostAll());
+        if (Validator.isNotNull(userId))
+        {
+            ajax.put(AjaxResult.DATA_TAG, topSysUserService.selectUserById(userId));
+            ajax.put("postIds", topSysPostService.selectPostListByUserId(userId));
+            ajax.put("roleIds", topSysRoleService.selectRoleListByUserId(userId));
+        }
+        return ajax;
+    }
+
+    /**
+     * 新增用户
+     */
+    @ApiOperation("新增用户")
+    @ApiOperationSupport(ignoreParameters = {"id","orderDate.id"})
+    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody TopSysUser user)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(topSysUserService.checkUserNameUnique(user.getUserName())))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (Validator.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(topSysUserService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (Validator.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(topSysUserService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setCreateBy(SecurityUtils.getUsername());
+        if(!ToolsUtils.verifPwd(user.getPassword())){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        return toAjax(topSysUserService.insertUser(user));
+    }
+
+    /**
+     * 修改用户
+     */
+    @ApiOperation("更新用户")
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody SysUserEditBo bo)
+    {
+        if (Validator.isNotEmpty(bo.getStatus())&&bo.getStatus().equals(-1)){
+            TopSysUser user = BeanUtil.toBean(bo, TopSysUser.class);
+            int result = topSysUserService.updateUser(user);
+            return toAjax(result);
+        }
+        TopSysUser user = BeanUtil.toBean(bo, TopSysUser.class);
+        topSysUserService.checkUserAllowed(user);
+        TopLoginUser loginUser = tokenService.getTopLoginUser(ServletUtils.getRequest());
+        if(!loginUser.getUser().isAdmin()&& !loginUser.getUser().getUserId().equals(user.getUserId())){
+            return AjaxResult.error("您无权限修改本信息");
+        }
+
+        if (Validator.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(topSysUserService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (Validator.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(topSysUserService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        if(Validator.isNotEmpty(user.getPassword())){
+            //重置密码
+            if(!loginUser.getUser().isAdmin()){
+                //普通用户需传入旧密码修改
+                // 旧密码用户验证
+                Authentication authentication = null;
+                try
+                {
+                    // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+                    authentication = authenticationManager
+                            .authenticate(new UsernamePasswordAuthenticationToken(loginUser.getUser().getUserName(), bo.getOldPassword()));
+                }
+                catch (Exception e)
+                {
+                    return AjaxResult.error("旧密码错误");
+                }
+
+            }
+            if(!ToolsUtils.verifPwd(user.getPassword())){
+                throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+            }
+            user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        }
+        user.setUpdateBy(SecurityUtils.getUsername());
+        int result = topSysUserService.updateUser(user);
+        if(result>0){
+            TopSysUser newUser = topSysUserService.selectUserByUserName(loginUser.getUser().getUserName());
+            //同个用户ID则更新用户信息,admin操作其他用户则不更新
+            if(newUser.getUserId().equals(loginUser.getUser().getUserId())){
+                // 更新缓存用户
+                loginUser.setUser(newUser);
+            }
+            tokenService.setTopLoginUser(loginUser);
+        }
+        return toAjax(result);
+    }
+
+    /**
+     * 删除用户
+     */
+  /*  @ApiOperation("删除用户信息")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path")
+    @PreAuthorize("@ss.hasPermi('system:user:remove')")
+    @Log(title = "用户管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{userIds}")
+    public AjaxResult remove(@PathVariable Long[] userIds)
+    {
+        return toAjax(topSysUserService.deleteUserByIds(userIds));
+    }*/
+
+    /**
+     * 重置密码
+     */
+
+  /*  @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/resetPwd")
+    public AjaxResult resetPwd(@RequestBody TopSysUser user)
+    {
+        topSysUserService.checkUserAllowed(user);
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(topSysUserService.resetPwd(user));
+    }*/
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody TopSysUser user)
+    {
+        topSysUserService.checkUserAllowed(user);
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(topSysUserService.updateUserStatus(user));
+    }
+
+    /**
+     * 业务层次获取用户列表
+     */
+    @ApiOperation("业务层次获取用户列表")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/businessPeopleList")
+    public TableDataInfo queryBusinessPeopleList(CourseBusinessQueryBo bo)
+    {
+        startPage();
+        List<TopSysUser> list = topSysUserService.queryBusinessPeopleList(bo);
+        return getDataTable(list);
+    }
+}

+ 21 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserRoleController.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.controller.top;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户和角色关联Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Api(value = "用户和角色关联控制器", tags = {"用户和角色关联管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/role")
+public class TopSysUserRoleController extends BaseController {
+}

+ 105 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+import com.zhongzheng.system.bo.DistributionActivityAddBo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/activity")
+public class DistributionActivityController extends BaseController {
+
+    private final IDistributionActivityService iDistributionActivityService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:activity:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityVo> list(DistributionActivityQueryBo bo) {
+        startPage();
+        List<DistributionActivityVo> list = iDistributionActivityService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:activity:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityVo> export(DistributionActivityQueryBo bo) {
+        List<DistributionActivityVo> list = iDistributionActivityService.queryList(bo);
+        ExcelUtil<DistributionActivityVo> util = new ExcelUtil<DistributionActivityVo>(DistributionActivityVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取【请填写功能名称】详细信息")
+    @PreAuthorize("@ss.hasPermi('system:activity:query')")
+    @GetMapping("/{distributionId}")
+    public AjaxResult<DistributionActivityVo> getInfo(@PathVariable("distributionId" ) Long distributionId) {
+        return AjaxResult.success(iDistributionActivityService.queryById(distributionId));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:activity:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody DistributionActivityAddBo bo) {
+        return toAjax(iDistributionActivityService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:activity:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityEditBo bo) {
+        return toAjax(iDistributionActivityService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:activity:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{distributionIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] distributionIds) {
+        return toAjax(iDistributionActivityService.deleteWithValidByIds(Arrays.asList(distributionIds), true) ? 1 : 0);
+    }
+}

+ 105 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityGoodsController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/goods")
+public class DistributionActivityGoodsController extends BaseController {
+
+    private final IDistributionActivityGoodsService iDistributionActivityGoodsService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityGoodsVo> list(DistributionActivityGoodsQueryBo bo) {
+        startPage();
+        List<DistributionActivityGoodsVo> list = iDistributionActivityGoodsService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityGoodsVo> export(DistributionActivityGoodsQueryBo bo) {
+        List<DistributionActivityGoodsVo> list = iDistributionActivityGoodsService.queryList(bo);
+        ExcelUtil<DistributionActivityGoodsVo> util = new ExcelUtil<DistributionActivityGoodsVo>(DistributionActivityGoodsVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取【请填写功能名称】详细信息")
+    @PreAuthorize("@ss.hasPermi('system:goods:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<DistributionActivityGoodsVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iDistributionActivityGoodsService.queryById(id));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody DistributionActivityGoodsAddBo bo) {
+        return toAjax(iDistributionActivityGoodsService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityGoodsEditBo bo) {
+        return toAjax(iDistributionActivityGoodsService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:goods:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iDistributionActivityGoodsService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 105 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityPosterController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.distribution;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityPosterService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityPosterVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/poster")
+public class DistributionActivityPosterController extends BaseController {
+
+    private final IDistributionActivityPosterService iDistributionActivityPosterService;
+
+    /**
+     * 查询【请填写功能名称】列表
+     */
+    @ApiOperation("查询【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:poster:list')")
+    @GetMapping("/list")
+    public TableDataInfo<DistributionActivityPosterVo> list(DistributionActivityPosterQueryBo bo) {
+        startPage();
+        List<DistributionActivityPosterVo> list = iDistributionActivityPosterService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出【请填写功能名称】列表
+     */
+    @ApiOperation("导出【请填写功能名称】列表")
+    @PreAuthorize("@ss.hasPermi('system:poster:export')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<DistributionActivityPosterVo> export(DistributionActivityPosterQueryBo bo) {
+        List<DistributionActivityPosterVo> list = iDistributionActivityPosterService.queryList(bo);
+        ExcelUtil<DistributionActivityPosterVo> util = new ExcelUtil<DistributionActivityPosterVo>(DistributionActivityPosterVo.class);
+        return util.exportExcel(list, "【请填写功能名称】");
+    }
+
+    /**
+     * 获取【请填写功能名称】详细信息
+     */
+    @ApiOperation("获取【请填写功能名称】详细信息")
+    @PreAuthorize("@ss.hasPermi('system:poster:query')")
+    @GetMapping("/{posterId}")
+    public AjaxResult<DistributionActivityPosterVo> getInfo(@PathVariable("posterId" ) Long posterId) {
+        return AjaxResult.success(iDistributionActivityPosterService.queryById(posterId));
+    }
+
+    /**
+     * 新增【请填写功能名称】
+     */
+    @ApiOperation("新增【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:poster:add')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody DistributionActivityPosterAddBo bo) {
+        return toAjax(iDistributionActivityPosterService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改【请填写功能名称】
+     */
+    @ApiOperation("修改【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:poster:edit')")
+    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody DistributionActivityPosterEditBo bo) {
+        return toAjax(iDistributionActivityPosterService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除【请填写功能名称】
+     */
+    @ApiOperation("删除【请填写功能名称】")
+    @PreAuthorize("@ss.hasPermi('system:poster:remove')")
+    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{posterIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] posterIds) {
+        return toAjax(iDistributionActivityPosterService.deleteWithValidByIds(Arrays.asList(posterIds), true) ? 1 : 0);
+    }
+}

+ 0 - 4
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysUser.java

@@ -150,10 +150,6 @@ public class TopSysUser implements Serializable
     @TableField(exist = false)
     private Long[] postIds;
 
-    public TopSysUser(Long userId)
-    {
-        this.userId = userId;
-    }
 
     public boolean isAdmin()
     {

+ 6 - 9
zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CustomTenantLineHandler.java

@@ -5,22 +5,15 @@ import cn.hutool.http.HttpStatus;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.ServletUtils;
 import lombok.SneakyThrows;
 import net.sf.jsqlparser.expression.Expression;
 import net.sf.jsqlparser.expression.LongValue;
-import org.apache.commons.compress.utils.Lists;
-
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.xml.soap.MimeHeaders;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 多租户处理插件
@@ -55,6 +48,10 @@ public class CustomTenantLineHandler implements TenantLineHandler {
         add("sys_logininfor");
         add("sys_old_org");
         add("top_sys_tenant_register");
+        add("distribution_activity_temp");
+        add("distribution_activity_temp_goods");
+        add("distribution_activity_temp_poster");
+        add("distribution_activity_temp_relation");
     }};
 
     /**

+ 79 - 6
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TokenService.java

@@ -2,13 +2,11 @@ package com.zhongzheng.framework.web.service;
 
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.http.HttpStatus;
 import cn.hutool.http.useragent.UserAgent;
 import cn.hutool.http.useragent.UserAgentUtil;
-import com.alibaba.fastjson.JSON;
 import com.zhongzheng.common.constant.Constants;
-import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.exception.user.UserPasswordNotMatchException;
@@ -19,12 +17,10 @@ import com.zhongzheng.common.utils.ip.IpUtils;
 import com.zhongzheng.framework.manager.AsyncManager;
 import com.zhongzheng.framework.manager.factory.AsyncFactory;
 import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.ExpiredJwtException;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -33,7 +29,6 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -97,6 +92,33 @@ public class TokenService
         return null;
     }
 
+    /**
+     * 获取用户身份信息
+     *
+     * @return 用户信息
+     */
+    public TopLoginUser getTopLoginUser(HttpServletRequest request)  {
+        //测试用户
+        String test_token = request.getHeader("X-Auth-Token");
+        if("test".equals(test_token)){
+            return getTestTopUser();
+        }
+        // 获取请求携带的令牌
+        String token = getToken(request);
+        if (Validator.isNotEmpty(token))
+        {
+            String uuid = "";
+            Claims claims = parseToken(token);
+            // 解析对应的权限以及用户信息
+            uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
+            String userKey = getTokenKey(uuid);
+            TopLoginUser user = redisCache.getCacheObject(userKey);
+            return user;
+        }
+
+        return null;
+    }
+
     private LoginUser getTestUser(){
         Authentication authentication = null;
         try
@@ -123,6 +145,32 @@ public class TokenService
         return loginUser;
     }
 
+    private TopLoginUser getTestTopUser(){
+        Authentication authentication = null;
+        try
+        {
+            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+            authentication = authenticationManager
+                    .authenticate(new UsernamePasswordAuthenticationToken("admin", "admin123"));
+        }
+        catch (Exception e)
+        {
+            if (e instanceof BadCredentialsException)
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor("admin", Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+                throw new UserPasswordNotMatchException();
+            }
+            else
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor("admin", Constants.LOGIN_FAIL, e.getMessage()));
+                throw new CustomException(e.getMessage());
+            }
+        }
+        TopLoginUser loginUser = (TopLoginUser) authentication.getPrincipal();
+        loginUser.setExpireTime(System.currentTimeMillis()+200);
+        return loginUser;
+    }
+
     /**
      * 设置用户身份信息
      */
@@ -134,6 +182,17 @@ public class TokenService
         }
     }
 
+    /**
+     * 设置用户身份信息
+     */
+    public void setTopLoginUser(TopLoginUser loginUser)
+    {
+        if (Validator.isNotNull(loginUser) && Validator.isNotEmpty(loginUser.getToken()))
+        {
+            refreshTopToken(loginUser);
+        }
+    }
+
     /**
      * 删除用户身份信息
      */
@@ -194,6 +253,20 @@ public class TokenService
         redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
     }
 
+    /**
+     * 刷新令牌有效期
+     *
+     * @param loginUser 登录信息
+     */
+    public void refreshTopToken(TopLoginUser loginUser)
+    {
+        loginUser.setLoginTime(System.currentTimeMillis());
+        loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+        // 根据uuid将loginUser缓存
+        String userKey = getTokenKey(loginUser.getToken());
+        redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+    }
+
     /**
      * 设置用户代理信息
      *

+ 67 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TopSysPermissionService.java

@@ -0,0 +1,67 @@
+package com.zhongzheng.framework.web.service;
+
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.modules.top.service.ITopSysMenuService;
+import com.zhongzheng.modules.top.service.ITopSysRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 用户权限处理
+ *
+ * @author zhongzheng
+ */
+@Component
+public class TopSysPermissionService
+{
+    @Autowired
+    private ITopSysRoleService topSysRoleService;
+
+    @Autowired
+    private ITopSysMenuService topSysMenuService;
+
+    /**
+     * 获取角色数据权限
+     *
+     * @param user 用户信息
+     * @return 角色权限信息
+     */
+    public Set<String> getRolePermission(SysUser user)
+    {
+        Set<String> roles = new HashSet<String>();
+        // 管理员拥有所有权限
+        if (user.isAdmin())
+        {
+            roles.add("admin");
+        }
+        else
+        {
+            roles.addAll(topSysRoleService.selectRolePermissionByUserId(user.getUserId()));
+        }
+        return roles;
+    }
+
+    /**
+     * 获取菜单数据权限
+     *
+     * @param user 用户信息
+     * @return 菜单权限信息
+     */
+    public Set<String> getMenuPermission(SysUser user)
+    {
+        Set<String> perms = new HashSet<String>();
+        // 管理员拥有所有权限
+        if (user.isAdmin())
+        {
+            perms.add("*:*:*");
+        }
+        else
+        {
+            perms.addAll(topSysMenuService.selectMenuPermsByUserId(user.getUserId()));
+        }
+        return perms;
+    }
+}

+ 1 - 4
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/TopUserDetailsServiceImpl.java

@@ -1,13 +1,10 @@
 package com.zhongzheng.framework.web.service;
 
 import cn.hutool.core.lang.Validator;
-import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.core.domain.entity.TopSysUser;
-import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.enums.UserStatus;
 import com.zhongzheng.common.exception.BaseException;
-import com.zhongzheng.modules.system.service.ISysUserService;
 import com.zhongzheng.modules.top.service.ITopSysUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,7 +35,7 @@ public class TopUserDetailsServiceImpl implements UserDetailsService
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
     {
         //超级管理系统用户
-        TopSysUser super_user = topUserService.selectUserByUserName(username);
+        TopSysUser super_user = topUserService.selectUserByUserNameByName(username);
         if (Validator.isNull(super_user))
         {
             log.info("登录用户:{} 不存在.", username);

+ 61 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityAddBo.java

@@ -0,0 +1,61 @@
+package com.zhongzheng.system.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityAddBo {
+
+    /** 活动编码 */
+    @ApiModelProperty("活动编码")
+    private String code;
+    /** 活动类型:1,分销活动 */
+    @ApiModelProperty("活动类型:1,分销活动")
+    private Integer type;
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String name;
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭 ")
+    private Integer useStatus;
+    /** 模板ID */
+    @ApiModelProperty("模板ID")
+    private Long tempId;
+    /** 海报模板ID */
+    @ApiModelProperty("海报模板ID")
+    private Long posterId;
+    /** 拥挤冻结期(天) */
+    @ApiModelProperty("拥挤冻结期(天)")
+    private Integer freezingPeriod;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 创建人 */
+    @ApiModelProperty("创建人")
+    private String createBy;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+}

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityEditBo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityEditBo {
+
+    /** 分销活动ID */
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+
+    /** 活动编码 */
+    @ApiModelProperty("活动编码")
+    private String code;
+
+    /** 活动类型:1,分销活动 */
+    @ApiModelProperty("活动类型:1,分销活动")
+    private Integer type;
+
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String name;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭 ")
+    private Integer useStatus;
+
+    /** 模板ID */
+    @ApiModelProperty("模板ID")
+    private Long tempId;
+
+    /** 海报模板ID */
+    @ApiModelProperty("海报模板ID")
+    private Long posterId;
+
+    /** 拥挤冻结期(天) */
+    @ApiModelProperty("拥挤冻结期(天)")
+    private Integer freezingPeriod;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+
+}

+ 50 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsAddBo.java

@@ -0,0 +1,50 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityGoodsAddBo {
+
+    /** 分销活动ID */
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+    /** 总佣金上限 */
+    @ApiModelProperty("总佣金上限")
+    private BigDecimal profitMax;
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级拥挤类型:1百分比,2固定金额")
+    private Integer profitType;
+    /** 一级拥金 */
+    @ApiModelProperty("一级拥金")
+    private BigDecimal profitOne;
+    /** 二级拥金 */
+    @ApiModelProperty("二级拥金")
+    private BigDecimal profitTwo;
+    /** 三级拥金 */
+    @ApiModelProperty("三级拥金")
+    private BigDecimal profitThree;
+}

+ 61 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsEditBo.java

@@ -0,0 +1,61 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityGoodsEditBo {
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    private Long id;
+
+    /** 分销活动ID */
+    @ApiModelProperty("分销活动ID")
+    private Long distributionId;
+
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+
+    /** 总佣金上限 */
+    @ApiModelProperty("总佣金上限")
+    private BigDecimal profitMax;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级拥挤类型:1百分比,2固定金额")
+    private Integer profitType;
+
+    /** 一级拥金 */
+    @ApiModelProperty("一级拥金")
+    private BigDecimal profitOne;
+
+    /** 二级拥金 */
+    @ApiModelProperty("二级拥金")
+    private BigDecimal profitTwo;
+
+    /** 三级拥金 */
+    @ApiModelProperty("三级拥金")
+    private BigDecimal profitThree;
+
+
+}

+ 63 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityGoodsQueryBo.java

@@ -0,0 +1,63 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityGoodsQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 分销活动ID */
+	@ApiModelProperty("分销活动ID")
+	private Long distributionId;
+	/** 商品ID */
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	/** 总佣金上限 */
+	@ApiModelProperty("总佣金上限")
+	private Long profitMax;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 层级拥挤类型:1百分比,2固定金额 */
+	@ApiModelProperty("层级拥挤类型:1百分比,2固定金额")
+	private Integer profitType;
+	/** 一级拥金 */
+	@ApiModelProperty("一级拥金")
+	private Long profitOne;
+	/** 二级拥金 */
+	@ApiModelProperty("二级拥金")
+	private Long profitTwo;
+	/** 三级拥金 */
+	@ApiModelProperty("三级拥金")
+	private Long profitThree;
+}

+ 65 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterAddBo.java

@@ -0,0 +1,65 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityPosterAddBo {
+
+    /** 海报模板地址 */
+    @ApiModelProperty("海报模板地址")
+    private String url;
+    /** 海报模板名称 */
+    @ApiModelProperty("海报模板名称")
+    private String name;
+    /** 海报标题 */
+    @ApiModelProperty("海报标题")
+    private String posterHead;
+    /** 海报广告语 */
+    @ApiModelProperty("海报广告语")
+    private String posterSlogan;
+    /** 海报商品图片 */
+    @ApiModelProperty("海报商品图片")
+    private String posterGoods;
+    /** 海报标题配置 */
+    @ApiModelProperty("海报标题配置")
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    @ApiModelProperty("海报广告语配置")
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    @ApiModelProperty("海报商品图片配置")
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    @ApiModelProperty("海报个人信息码配置")
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    @ApiModelProperty("海报分销码配置")
+    private String posterDistributionConfig;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭")
+    private Integer useStatus;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 70 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterEditBo.java

@@ -0,0 +1,70 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityPosterEditBo {
+
+    /** 活动海报模板ID */
+    @ApiModelProperty("活动海报模板ID")
+    private Long posterId;
+
+    /** 海报模板名称 */
+    @ApiModelProperty("海报模板名称")
+    private String name;
+
+    /** 海报模板地址 */
+    @ApiModelProperty("海报模板地址")
+    private String url;
+
+    /** 海报标题 */
+    @ApiModelProperty("海报标题")
+    private String posterHead;
+    /** 海报广告语 */
+    @ApiModelProperty("海报广告语")
+    private String posterSlogan;
+    /** 海报商品图片 */
+    @ApiModelProperty("海报商品图片")
+    private String posterGoods;
+    /** 海报标题配置 */
+    @ApiModelProperty("海报标题配置")
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    @ApiModelProperty("海报广告语配置")
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    @ApiModelProperty("海报商品图片配置")
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    @ApiModelProperty("海报个人信息码配置")
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    @ApiModelProperty("海报分销码配置")
+    private String posterDistributionConfig;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭")
+    private Integer useStatus;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityPosterQueryBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityPosterQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 海报模板地址 */
+	@ApiModelProperty("海报模板地址")
+	private String url;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 72 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityQueryBo.java

@@ -0,0 +1,72 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 活动编码 */
+	@ApiModelProperty("活动编码")
+	private String code;
+	/** 活动类型:1,分销活动 */
+	@ApiModelProperty("活动类型:1,分销活动")
+	private Integer type;
+	/** 活动名称 */
+	@ApiModelProperty("活动名称")
+	private String name;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	/** 结束时间 */
+	@ApiModelProperty("结束时间")
+	private Long endTime;
+	/** 模板ID */
+	@ApiModelProperty("模板ID")
+	private Long tempId;
+	/** 海报模板ID */
+	@ApiModelProperty("海报模板ID")
+	private Long posterTempId;
+	/** 海报标题 */
+	@ApiModelProperty("海报标题")
+	private String posterHead;
+	/** 海报广告语 */
+	@ApiModelProperty("海报广告语")
+	private String posterSlogan;
+	/** 海报配置(二维码坐标JSON) */
+	@ApiModelProperty("海报配置(二维码坐标JSON)")
+	private String posterConfig;
+}

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempAddBo.java

@@ -0,0 +1,68 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_temp
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityTempAddBo {
+
+    /** 活动编码 */
+    @ApiModelProperty("活动编码")
+    private String code;
+    /** 活动类型:1,分销活动 */
+    @ApiModelProperty("活动类型:1,分销活动")
+    private Integer type;
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String name;
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 拥挤冻结期(天) */
+    @ApiModelProperty("拥挤冻结期(天)")
+    private Integer freezingPeriod;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+    /** 发布状态:1已发布,0未发布 */
+    @ApiModelProperty("发布状态:1已发布,0未发布")
+    private Integer publishStatus;
+    /** 海报模板ID */
+    @ApiModelProperty("海报模板ID")
+    private Long posterTempId;
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 创建人 */
+    @ApiModelProperty("创建人")
+    private String createBy;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+    @ApiModelProperty("是否所有机构:1是,0否")
+    private Integer isAllOrg;
+
+    @ApiModelProperty("机构ID集合")
+    private List<Long> tenantIds;
+
+    @ApiModelProperty("活动商品集合")
+    private List<DistributionActivityTempGoodsAddBo> goodsList;
+}

+ 74 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempEditBo.java

@@ -0,0 +1,74 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_temp
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityTempEditBo {
+
+    /** 模板ID */
+    @ApiModelProperty("模板ID")
+    private Long id;
+
+    /** 活动编码 */
+    @ApiModelProperty("活动编码")
+    private String code;
+
+    /** 活动类型:1,分销活动 */
+    @ApiModelProperty("活动类型:1,分销活动")
+    private Integer type;
+
+    /** 活动名称 */
+    @ApiModelProperty("活动名称")
+    private String name;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 发布状态:1已发布,0未发布 */
+    @ApiModelProperty("发布状态:1已发布,0未发布")
+    private Integer publishStatus;
+    /** 拥挤冻结期(天) */
+    @ApiModelProperty("拥挤冻结期(天)")
+    private Integer freezingPeriod;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+    /** 海报模板ID */
+    @ApiModelProperty("海报模板ID")
+    private Long posterTempId;
+
+    /** 开始时间 */
+    @ApiModelProperty("开始时间")
+    private Long startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty("结束时间")
+    private Long endTime;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+    @ApiModelProperty("是否所有机构:1是,0否")
+    private Integer isAllOrg;
+
+    @ApiModelProperty("机构ID集合")
+    private List<Long> tenantIds;
+
+    @ApiModelProperty("活动商品集合")
+    private List<DistributionActivityTempGoodsAddBo> goodsList;
+
+}

+ 50 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsAddBo.java

@@ -0,0 +1,50 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_temp_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityTempGoodsAddBo {
+
+    /** 分销模板ID */
+    @ApiModelProperty("分销模板ID")
+    private Long distributionTempId;
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+    /** 佣金上限 */
+    @ApiModelProperty("佣金上限")
+    private BigDecimal profitMax;
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级拥挤类型:1百分比,2固定金额 ")
+    private Integer profitType;
+    /** 一级拥金 */
+    @ApiModelProperty("一级拥金")
+    private BigDecimal profitOne;
+    /** 二级拥金 */
+    @ApiModelProperty("二级拥金")
+    private BigDecimal profitTwo;
+    /** 三级拥金 */
+    @ApiModelProperty("三级拥金")
+    private BigDecimal profitThree;
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsEditBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_temp_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityTempGoodsEditBo {
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    private Long id;
+
+    /** 分销模板ID */
+    @ApiModelProperty("分销模板ID")
+    private Long distributionTempId;
+
+    /** 商品ID */
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+
+    /** 佣金上限 */
+    @ApiModelProperty("佣金上限")
+    private BigDecimal profitMax;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    @ApiModelProperty("层级拥挤类型:1百分比,2固定金额 ")
+    private Integer profitType;
+    /** 一级拥金 */
+    @ApiModelProperty("一级拥金")
+    private BigDecimal profitOne;
+    /** 二级拥金 */
+    @ApiModelProperty("二级拥金")
+    private BigDecimal profitTwo;
+    /** 三级拥金 */
+    @ApiModelProperty("三级拥金")
+    private BigDecimal profitThree;
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempGoodsQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_temp_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityTempGoodsQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 分销模板ID */
+	@ApiModelProperty("分销模板ID")
+	private Long distributionTempId;
+	/** 商品ID */
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	/** 佣金上限 */
+	@ApiModelProperty("佣金上限")
+	private BigDecimal profitMax;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 64 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterAddBo.java

@@ -0,0 +1,64 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_temp_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityTempPosterAddBo {
+
+    /** 海报模板地址 */
+    @ApiModelProperty("海报模板地址")
+    private String posterUrl;
+    /** 海报模板名称 */
+    @ApiModelProperty("海报模板名称")
+    private String name;
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭")
+    private Integer useStatus;
+    /** 海报标题 */
+    @ApiModelProperty("海报标题")
+    private String posterHead;
+    /** 海报广告语 */
+    @ApiModelProperty("海报广告语")
+    private String posterSlogan;
+    /** 海报商品图片 */
+    @ApiModelProperty("海报商品图片")
+    private String posterGoods;
+    /** 海报标题配置 */
+    @ApiModelProperty("海报标题配置")
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    @ApiModelProperty("海报广告语配置")
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    @ApiModelProperty("海报商品图片配置")
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    @ApiModelProperty("海报个人信息码配置")
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    @ApiModelProperty("海报分销码配置")
+    private String posterDistributionConfig;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterEditBo.java

@@ -0,0 +1,68 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_temp_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityTempPosterEditBo {
+
+    /** 活动海报模板ID */
+    @ApiModelProperty("活动海报模板ID")
+    private Long posterTempId;
+    /** 海报模板名称 */
+    @ApiModelProperty("海报模板名称")
+    private String name;
+    /** 海报模板地址 */
+    @ApiModelProperty("海报模板地址")
+    private String posterUrl;
+
+    /** 海报标题 */
+    @ApiModelProperty("海报标题")
+    private String posterHead;
+    /** 海报广告语 */
+    @ApiModelProperty("海报广告语")
+    private String posterSlogan;
+    /** 海报商品图片 */
+    @ApiModelProperty("海报商品图片")
+    private String posterGoods;
+    /** 海报标题配置 */
+    @ApiModelProperty("海报标题配置")
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    @ApiModelProperty("海报广告语配置")
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    @ApiModelProperty("海报商品图片配置")
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    @ApiModelProperty("海报个人信息码配置")
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    @ApiModelProperty("海报分销码配置")
+    private String posterDistributionConfig;
+
+    /** 状态:1有效,0无效 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 使用状态:1启用,0关闭 */
+    @ApiModelProperty("使用状态:1启用,0关闭")
+    private Integer useStatus;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

+ 43 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempPosterQueryBo.java

@@ -0,0 +1,43 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_temp_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityTempPosterQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 海报模板地址 */
+	@ApiModelProperty("海报模板地址")
+	private String posterUrl;
+	/** 海报模板名称 */
+	@ApiModelProperty("海报模板名称")
+	private String name;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempQueryBo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_temp
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityTempQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 活动编码 */
+	@ApiModelProperty("活动编码")
+	private String code;
+	/** 活动类型:1,分销活动 */
+	@ApiModelProperty("活动类型:1,分销活动")
+	private Integer type;
+	/** 活动名称 */
+	@ApiModelProperty("活动名称")
+	private String name;
+	/** 状态:1有效,0无效 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 海报模板ID */
+	@ApiModelProperty("海报模板ID")
+	private Long posterTempId;
+	/** 海报标题 */
+	@ApiModelProperty("海报标题")
+	private String posterHead;
+	/** 海报广告语 */
+	@ApiModelProperty("海报广告语")
+	private String posterSlogan;
+	/** 海报配置(二维码坐标JSON) */
+	@ApiModelProperty("海报配置(二维码坐标JSON)")
+	private String posterConfig;
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	/** 结束时间 */
+	@ApiModelProperty("结束时间")
+	private Long endTime;
+}

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationAddBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 distribution_activity_temp_relation
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class DistributionActivityTempRelationAddBo {
+
+    /** 分销模板ID */
+    @ApiModelProperty("分销模板ID")
+    private Long distributionTempId;
+    /** 状态:1开启,0关闭 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+}

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationEditBo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 【请填写功能名称】编辑对象 distribution_activity_temp_relation
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class DistributionActivityTempRelationEditBo {
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    private Long id;
+
+    /** 分销模板ID */
+    @ApiModelProperty("分销模板ID")
+    private Long distributionTempId;
+
+
+    /** 状态:1开启,0关闭 */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempRelationQueryBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 distribution_activity_temp_relation
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class DistributionActivityTempRelationQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 分销模板ID */
+	@ApiModelProperty("分销模板ID")
+	private Long distributionTempId;
+	/** 状态:1开启,0关闭 */
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 61 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivity.java

@@ -0,0 +1,61 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity")
+public class DistributionActivity implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 分销活动ID */
+    @TableId(value = "distribution_id")
+    private Long distributionId;
+    /** 活动编码 */
+    private String code;
+    /** 活动类型:1,分销活动 */
+    private Integer type;
+    /** 活动名称 */
+    private String name;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 开始时间 */
+    private Long startTime;
+    /** 结束时间 */
+    private Long endTime;
+    /** 模板ID */
+    private Long tempId;
+    /** 海报ID */
+    private Long posterId;
+    /** 使用状态:1启用,0关闭 */
+    private Integer useStatus;
+    /** 拥挤冻结期(天) */
+    private Integer freezingPeriod;
+    /** 备注 */
+    private String remark;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 创建人 */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityGoods.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_goods")
+public class DistributionActivityGoods implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    private Long id;
+    /** 分销活动ID */
+    private Long distributionId;
+    /** 商品ID */
+    private Long goodsId;
+    /** 总佣金上限 */
+    private BigDecimal profitMax;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    private Integer profitType;
+    /** 一级拥金 */
+    private BigDecimal profitOne;
+    /** 二级拥金 */
+    private BigDecimal profitTwo;
+    /** 三级拥金 */
+    private BigDecimal profitThree;
+}

+ 62 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityPoster.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_poster")
+public class DistributionActivityPoster implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 活动海报模板ID */
+    @TableId(value = "poster_id")
+    private Long posterId;
+    /** 海报模板名称 */
+    private String name;
+    /** 海报模板地址 */
+    private String url;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 使用状态:1启用,0关闭 */
+    private Integer useStatus;
+    /** 海报标题 */
+    private String posterHead;
+    /** 海报广告语 */
+    private String posterSlogan;
+    /** 海报商品图片 */
+    private String posterGoods;
+    /** 海报标题配置 */
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    private String posterDistributionConfig;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 备注 */
+    private String remark;
+}

+ 59 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTemp.java

@@ -0,0 +1,59 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_temp
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_temp")
+public class DistributionActivityTemp implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 模板ID */
+    @TableId(value = "id")
+    private Long id;
+    /** 活动编码 */
+    private String code;
+    /** 活动类型:1,分销活动 */
+    private Integer type;
+    /** 活动名称 */
+    private String name;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 发布状态:1已发布,0未发布 */
+    private Integer publishStatus;
+    /** 海报模板ID */
+    private Long posterTempId;
+    /** 拥挤冻结期(天) */
+    private Integer freezingPeriod;
+    /** 备注 */
+    private String remark;
+    /** 开始时间 */
+    private Long startTime;
+    /** 结束时间 */
+    private Long endTime;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 创建人 */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempGoods.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_temp_goods
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_temp_goods")
+public class DistributionActivityTempGoods implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    private Long id;
+    /** 分销模板ID */
+    private Long distributionTempId;
+    /** 商品ID */
+    private Long goodsId;
+    /** 佣金上限 */
+    private BigDecimal profitMax;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 层级拥挤类型:1百分比,2固定金额 */
+    private Integer profitType;
+    /** 一级拥金 */
+    private BigDecimal profitOne;
+    /** 二级拥金 */
+    private BigDecimal profitTwo;
+    /** 三级拥金 */
+    private BigDecimal profitThree;
+}

+ 62 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempPoster.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_temp_poster
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_temp_poster")
+public class DistributionActivityTempPoster implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 活动海报模板ID */
+    @TableId(value = "poster_temp_id")
+    private Long posterTempId;
+    /** 海报模板名称 */
+    private String name;
+    /** 海报模板地址 */
+    private String posterUrl;
+    /** 海报标题 */
+    private String posterHead;
+    /** 海报广告语 */
+    private String posterSlogan;
+    /** 海报商品图片 */
+    private String posterGoods;
+    /** 海报标题配置 */
+    private String posterHeadConfig;
+    /** 海报广告语配置 */
+    private String posterSloganConfig;
+    /** 海报商品图片配置 */
+    private String posterGoodsConfig;
+    /** 海报个人信息码配置 */
+    private String posterSalesmanConfig;
+    /** 海报分销码配置 */
+    private String posterDistributionConfig;
+    /** 状态:1有效,0无效 */
+    private Integer status;
+    /** 使用状态:1启用,0关闭 */
+    private Integer useStatus;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 备注 */
+    private String remark;
+}

+ 42 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempRelation.java

@@ -0,0 +1,42 @@
+package com.zhongzheng.modules.distribution.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 【请填写功能名称】对象 distribution_activity_temp_relation
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("distribution_activity_temp_relation")
+public class DistributionActivityTempRelation implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    private Long id;
+    /** 分销模板ID */
+    private Long distributionTempId;
+    /** 状态:1开启,0关闭 */
+    private Integer status;
+    /** 商户ID */
+    private Long tenantId;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityGoodsMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityGoodsMapper extends BaseMapper<DistributionActivityGoods> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivity;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityMapper extends BaseMapper<DistributionActivity> {
+
+}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityPosterMapper.java

@@ -0,0 +1,15 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityPoster;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityPosterMapper extends BaseMapper<DistributionActivityPoster> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempGoodsMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempGoods;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityTempGoodsMapper extends BaseMapper<DistributionActivityTempGoods> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTemp;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityTempMapper extends BaseMapper<DistributionActivityTemp> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempPosterMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempPoster;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityTempPosterMapper extends BaseMapper<DistributionActivityTempPoster> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/mapper/DistributionActivityTempRelationMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.distribution.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempRelation;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface DistributionActivityTempRelationMapper extends BaseMapper<DistributionActivityTempRelation> {
+
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityGoodsService.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityGoodsService extends IService<DistributionActivityGoods> {
+    /**
+     * 查询单个
+     *
+     * @return
+     */
+    DistributionActivityGoodsVo queryById(Long id);
+
+    /**
+     * 查询列表
+     */
+    List<DistributionActivityGoodsVo> queryList(DistributionActivityGoodsQueryBo bo);
+
+    /**
+     * 根据新增业务对象插入【请填写功能名称】
+     *
+     * @param bo 【请填写功能名称】新增业务对象
+     * @return
+     */
+    Boolean insertByAddBo(DistributionActivityGoodsAddBo bo);
+
+    /**
+     * 根据编辑业务对象修改【请填写功能名称】
+     *
+     * @param bo 【请填写功能名称】编辑业务对象
+     * @return
+     */
+    Boolean updateByEditBo(DistributionActivityGoodsEditBo bo);
+
+    /**
+     * 校验并删除数据
+     *
+     * @param ids     主键集合
+     * @param isValid 是否校验,true-删除前校验,false-不校验
+     * @return
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityPosterService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityPoster;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityPosterVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityPosterService extends IService<DistributionActivityPoster> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityPosterVo queryById(Long posterId);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityPosterVo> queryList(DistributionActivityPosterQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(DistributionActivityPosterAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityPosterEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityService.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivity;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityService extends IService<DistributionActivity> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityVo queryById(Long distributionId);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityVo> queryList(DistributionActivityQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(com.zhongzheng.system.bo.DistributionActivityAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempGoodsService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempGoods;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempGoodsVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityTempGoodsService extends IService<DistributionActivityTempGoods> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityTempGoodsVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityTempGoodsVo> queryList(DistributionActivityTempGoodsQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(DistributionActivityTempGoodsAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityTempGoodsEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempPosterService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.distribution.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempPoster;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempPosterVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityTempPosterService extends IService<DistributionActivityTempPoster> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityTempPosterVo queryById(Long posterTempId);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityTempPosterVo> queryList(DistributionActivityTempPosterQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(DistributionActivityTempPosterAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityTempPosterEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempRelationService.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.distribution.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempRelation;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempRelationVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityTempRelationService extends IService<DistributionActivityTempRelation> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityTempRelationVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityTempRelationVo> queryList(DistributionActivityTempRelationQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(DistributionActivityTempRelationAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityTempRelationEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTempService.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.distribution.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTemp;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+public interface IDistributionActivityTempService extends IService<DistributionActivityTemp> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	DistributionActivityTempVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<DistributionActivityTempVo> queryList(DistributionActivityTempQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(DistributionActivityTempAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(DistributionActivityTempEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 104 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java

@@ -0,0 +1,104 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityGoodsQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityGoodsMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityGoodsVo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityGoodsServiceImpl extends ServiceImpl<DistributionActivityGoodsMapper, DistributionActivityGoods> implements IDistributionActivityGoodsService {
+
+    @Override
+    public DistributionActivityGoodsVo queryById(Long id){
+        DistributionActivityGoods db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionActivityGoodsVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityGoodsVo> queryList(DistributionActivityGoodsQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDistributionId() != null, DistributionActivityGoods::getDistributionId, bo.getDistributionId());
+        lqw.eq(bo.getGoodsId() != null, DistributionActivityGoods::getGoodsId, bo.getGoodsId());
+        lqw.eq(bo.getProfitMax() != null, DistributionActivityGoods::getProfitMax, bo.getProfitMax());
+        lqw.eq(bo.getStatus() != null, DistributionActivityGoods::getStatus, bo.getStatus());
+        lqw.eq(bo.getProfitType() != null, DistributionActivityGoods::getProfitType, bo.getProfitType());
+        lqw.eq(bo.getProfitOne() != null, DistributionActivityGoods::getProfitOne, bo.getProfitOne());
+        lqw.eq(bo.getProfitTwo() != null, DistributionActivityGoods::getProfitTwo, bo.getProfitTwo());
+        lqw.eq(bo.getProfitThree() != null, DistributionActivityGoods::getProfitThree, bo.getProfitThree());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityGoodsVo> entity2Vo(Collection<DistributionActivityGoods> collection) {
+        List<DistributionActivityGoodsVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityGoodsVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityGoods> page = (Page<DistributionActivityGoods>)collection;
+            Page<DistributionActivityGoodsVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionActivityGoodsAddBo bo) {
+        DistributionActivityGoods add = BeanUtil.toBean(bo, DistributionActivityGoods.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityGoodsEditBo bo) {
+        DistributionActivityGoods update = BeanUtil.toBean(bo, DistributionActivityGoods.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityGoods entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 99 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java

@@ -0,0 +1,99 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityPosterQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityPoster;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityPosterMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityPosterService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityPosterVo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityPosterServiceImpl extends ServiceImpl<DistributionActivityPosterMapper, DistributionActivityPoster> implements IDistributionActivityPosterService {
+
+    @Override
+    public DistributionActivityPosterVo queryById(Long posterId){
+        DistributionActivityPoster db = this.baseMapper.selectById(posterId);
+        return BeanUtil.toBean(db, DistributionActivityPosterVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityPosterVo> queryList(DistributionActivityPosterQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityPoster> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getUrl()), DistributionActivityPoster::getUrl, bo.getUrl());
+        lqw.eq(bo.getStatus() != null, DistributionActivityPoster::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityPosterVo> entity2Vo(Collection<DistributionActivityPoster> collection) {
+        List<DistributionActivityPosterVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityPosterVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityPoster> page = (Page<DistributionActivityPoster>)collection;
+            Page<DistributionActivityPosterVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionActivityPosterAddBo bo) {
+        DistributionActivityPoster add = BeanUtil.toBean(bo, DistributionActivityPoster.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityPosterEditBo bo) {
+        DistributionActivityPoster update = BeanUtil.toBean(bo, DistributionActivityPoster.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityPoster entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 104 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java

@@ -0,0 +1,104 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivity;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityVo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityServiceImpl extends ServiceImpl<DistributionActivityMapper, DistributionActivity> implements IDistributionActivityService {
+
+    @Override
+    public DistributionActivityVo queryById(Long distributionId){
+        DistributionActivity db = this.baseMapper.selectById(distributionId);
+        return BeanUtil.toBean(db, DistributionActivityVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityVo> queryList(DistributionActivityQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivity> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getCode()), DistributionActivity::getCode, bo.getCode());
+        lqw.eq(bo.getType() != null, DistributionActivity::getType, bo.getType());
+        lqw.like(StrUtil.isNotBlank(bo.getName()), DistributionActivity::getName, bo.getName());
+        lqw.eq(bo.getStatus() != null, DistributionActivity::getStatus, bo.getStatus());
+        lqw.eq(bo.getStartTime() != null, DistributionActivity::getStartTime, bo.getStartTime());
+        lqw.eq(bo.getEndTime() != null, DistributionActivity::getEndTime, bo.getEndTime());
+        lqw.eq(bo.getTempId() != null, DistributionActivity::getTempId, bo.getTempId());
+        lqw.eq(bo.getPosterTempId() != null, DistributionActivity::getPosterTempId, bo.getPosterTempId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityVo> entity2Vo(Collection<DistributionActivity> collection) {
+        List<DistributionActivityVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivity> page = (Page<DistributionActivity>)collection;
+            Page<DistributionActivityVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(com.zhongzheng.system.bo.DistributionActivityAddBo bo) {
+        DistributionActivity add = BeanUtil.toBean(bo, DistributionActivity.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityEditBo bo) {
+        DistributionActivity update = BeanUtil.toBean(bo, DistributionActivity.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivity entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 99 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempGoodsServiceImpl.java

@@ -0,0 +1,99 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempGoodsQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempGoods;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempGoodsMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempGoodsService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempGoodsVo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityTempGoodsServiceImpl extends ServiceImpl<DistributionActivityTempGoodsMapper, DistributionActivityTempGoods> implements IDistributionActivityTempGoodsService {
+
+    @Override
+    public DistributionActivityTempGoodsVo queryById(Long id){
+        DistributionActivityTempGoods db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionActivityTempGoodsVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityTempGoodsVo> queryList(DistributionActivityTempGoodsQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityTempGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDistributionTempId() != null, DistributionActivityTempGoods::getDistributionTempId, bo.getDistributionTempId());
+        lqw.eq(bo.getGoodsId() != null, DistributionActivityTempGoods::getGoodsId, bo.getGoodsId());
+        lqw.eq(bo.getProfitMax() != null, DistributionActivityTempGoods::getProfitMax, bo.getProfitMax());
+        lqw.eq(bo.getStatus() != null, DistributionActivityTempGoods::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityTempGoodsVo> entity2Vo(Collection<DistributionActivityTempGoods> collection) {
+        List<DistributionActivityTempGoodsVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityTempGoodsVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityTempGoods> page = (Page<DistributionActivityTempGoods>)collection;
+            Page<DistributionActivityTempGoodsVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionActivityTempGoodsAddBo bo) {
+        DistributionActivityTempGoods add = BeanUtil.toBean(bo, DistributionActivityTempGoods.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityTempGoodsEditBo bo) {
+        DistributionActivityTempGoods update = BeanUtil.toBean(bo, DistributionActivityTempGoods.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityTempGoods entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 114 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempPosterServiceImpl.java

@@ -0,0 +1,114 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempPosterQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTemp;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempPoster;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempPosterMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempPosterService;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempPosterVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityTempPosterServiceImpl extends ServiceImpl<DistributionActivityTempPosterMapper, DistributionActivityTempPoster> implements IDistributionActivityTempPosterService {
+
+    @Autowired
+    private IDistributionActivityTempService iDistributionActivityTempService;
+
+    @Override
+    public DistributionActivityTempPosterVo queryById(Long posterTempId){
+        DistributionActivityTempPoster db = this.baseMapper.selectById(posterTempId);
+        return BeanUtil.toBean(db, DistributionActivityTempPosterVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityTempPosterVo> queryList(DistributionActivityTempPosterQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityTempPoster> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getPosterUrl()), DistributionActivityTempPoster::getPosterUrl, bo.getPosterUrl());
+        lqw.eq(bo.getStatus() != null, DistributionActivityTempPoster::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityTempPosterVo> entity2Vo(Collection<DistributionActivityTempPoster> collection) {
+        List<DistributionActivityTempPosterVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityTempPosterVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityTempPoster> page = (Page<DistributionActivityTempPoster>)collection;
+            Page<DistributionActivityTempPosterVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionActivityTempPosterAddBo bo) {
+        DistributionActivityTempPoster add = BeanUtil.toBean(bo, DistributionActivityTempPoster.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityTempPosterEditBo bo) {
+        //校验是否有绑定活动
+        int count = iDistributionActivityTempService.count(new LambdaQueryWrapper<DistributionActivityTemp>()
+                .eq(DistributionActivityTemp::getPosterTempId, bo.getPosterTempId())
+                .eq(DistributionActivityTemp::getStatus, 1)
+                .eq(DistributionActivityTemp::getPublishStatus, 1));
+        if (count > 0 ){
+            throw new CustomException("该海报模板已绑定发布的分销活动,请勿修改!");
+        }
+        DistributionActivityTempPoster update = BeanUtil.toBean(bo, DistributionActivityTempPoster.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityTempPoster entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 98 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempRelationServiceImpl.java

@@ -0,0 +1,98 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempRelationQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempRelation;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempRelationMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempRelationService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempRelationVo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityTempRelationServiceImpl extends ServiceImpl<DistributionActivityTempRelationMapper, DistributionActivityTempRelation> implements IDistributionActivityTempRelationService {
+
+    @Override
+    public DistributionActivityTempRelationVo queryById(Long id){
+        DistributionActivityTempRelation db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionActivityTempRelationVo.class);
+    }
+
+    @Override
+    public List<DistributionActivityTempRelationVo> queryList(DistributionActivityTempRelationQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityTempRelation> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDistributionTempId() != null, DistributionActivityTempRelation::getDistributionTempId, bo.getDistributionTempId());
+        lqw.eq(bo.getStatus() != null, DistributionActivityTempRelation::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityTempRelationVo> entity2Vo(Collection<DistributionActivityTempRelation> collection) {
+        List<DistributionActivityTempRelationVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityTempRelationVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityTempRelation> page = (Page<DistributionActivityTempRelation>)collection;
+            Page<DistributionActivityTempRelationVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionActivityTempRelationAddBo bo) {
+        DistributionActivityTempRelation add = BeanUtil.toBean(bo, DistributionActivityTempRelation.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionActivityTempRelationEditBo bo) {
+        DistributionActivityTempRelation update = BeanUtil.toBean(bo, DistributionActivityTempRelation.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityTempRelation entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 191 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempServiceImpl.java

@@ -0,0 +1,191 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempQueryBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTemp;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempGoods;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempRelation;
+import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempGoodsService;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempRelationService;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempVo;
+import com.zhongzheng.modules.system.service.ISysOldOrgService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionActivityTempServiceImpl extends ServiceImpl<DistributionActivityTempMapper, DistributionActivityTemp> implements IDistributionActivityTempService {
+
+    @Autowired
+    private IDistributionActivityTempRelationService iDistributionActivityTempRelationService;
+    @Autowired
+    private IDistributionActivityTempGoodsService iDistributionActivityTempGoodsService;
+    @Autowired
+    private ISysOldOrgService iSysOldOrgService;
+
+    @Override
+    public DistributionActivityTempVo queryById(Long id){
+        DistributionActivityTemp db = this.baseMapper.selectById(id);
+        DistributionActivityTempVo vo = BeanUtil.toBean(db, DistributionActivityTempVo.class);
+        //获取商品和机构信息
+        List<DistributionActivityTempRelation> relationList = iDistributionActivityTempRelationService
+                .list(new LambdaQueryWrapper<DistributionActivityTempRelation>()
+                .eq(DistributionActivityTempRelation::getDistributionTempId, vo.getId()));
+//        if (CollectionUtils.isNotEmpty(relationList)){
+//            relationList.stream().map(item -> {
+//                DistributionActivityTenantVo tenantVo = new DistributionActivityTenantVo();
+//
+//            })
+//        }
+
+        return vo;
+    }
+
+    @Override
+    public List<DistributionActivityTempVo> queryList(DistributionActivityTempQueryBo bo) {
+        LambdaQueryWrapper<DistributionActivityTemp> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getCode()), DistributionActivityTemp::getCode, bo.getCode());
+        lqw.eq(bo.getType() != null, DistributionActivityTemp::getType, bo.getType());
+        lqw.like(StrUtil.isNotBlank(bo.getName()), DistributionActivityTemp::getName, bo.getName());
+        lqw.eq(bo.getStatus() != null, DistributionActivityTemp::getStatus, bo.getStatus());
+        lqw.eq(bo.getPosterTempId() != null, DistributionActivityTemp::getPosterTempId, bo.getPosterTempId());
+        lqw.eq(bo.getStartTime() != null, DistributionActivityTemp::getStartTime, bo.getStartTime());
+        lqw.eq(bo.getEndTime() != null, DistributionActivityTemp::getEndTime, bo.getEndTime());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionActivityTempVo> entity2Vo(Collection<DistributionActivityTemp> collection) {
+        List<DistributionActivityTempVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionActivityTempVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionActivityTemp> page = (Page<DistributionActivityTemp>)collection;
+            Page<DistributionActivityTempVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean insertByAddBo(DistributionActivityTempAddBo bo) {
+        //活动模板基本信息
+        DistributionActivityTemp add = BeanUtil.toBean(bo, DistributionActivityTemp.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        this.save(add);
+        this.saveRelation(bo,add.getId());
+        return true;
+    }
+
+    //添加关联信息
+    private void saveRelation(DistributionActivityTempAddBo bo,Long tempId){
+        //机构信息
+        if (ObjectUtils.isNotNull(bo.getIsAllOrg()) && bo.getIsAllOrg() == 1){
+            //发布所有机构
+            DistributionActivityTempRelation entity = new DistributionActivityTempRelation();
+            entity.setDistributionTempId(tempId);
+            entity.setTenantId(0L);
+            entity.setCreateTime(DateUtils.getNowTime());
+            entity.setUpdateTime(DateUtils.getNowTime());
+            iDistributionActivityTempRelationService.save(entity);
+        }
+        if (CollectionUtils.isNotEmpty(bo.getTenantIds())){
+            List<DistributionActivityTempRelation> entitys = bo.getTenantIds().stream().map(id -> {
+                DistributionActivityTempRelation entity = new DistributionActivityTempRelation();
+                entity.setDistributionTempId(tempId);
+                entity.setTenantId(id);
+                entity.setCreateTime(DateUtils.getNowTime());
+                entity.setUpdateTime(DateUtils.getNowTime());
+                return entity;
+            }).collect(Collectors.toList());
+            iDistributionActivityTempRelationService.saveBatch(entitys);
+        }
+        //活动商品
+        if (CollectionUtils.isNotEmpty(bo.getGoodsList())){
+            List<DistributionActivityTempGoods> collect = bo.getGoodsList().stream().map(item -> {
+                DistributionActivityTempGoods entity = BeanUtil.toBean(item, DistributionActivityTempGoods.class);
+                entity.setDistributionTempId(tempId);
+                entity.setCreateTime(DateUtils.getNowTime());
+                entity.setUpdateTime(DateUtils.getNowTime());
+                return entity;
+            }).collect(Collectors.toList());
+            iDistributionActivityTempGoodsService.saveBatch(collect);
+        }
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateByEditBo(DistributionActivityTempEditBo bo) {
+        //校验
+        DistributionActivityTemp activityTemp = getById(bo.getId());
+        if (activityTemp.getPublishStatus() == 1){
+            throw new CustomException("活动已发布,不能修改!");
+        }
+        DistributionActivityTemp update = BeanUtil.toBean(bo, DistributionActivityTemp.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        this.updateById(update);
+        //删除活动商品和下发机构重新绑定
+        iDistributionActivityTempGoodsService.remove(new LambdaQueryWrapper<DistributionActivityTempGoods>()
+        .eq(DistributionActivityTempGoods::getDistributionTempId,bo.getId()));
+        iDistributionActivityTempRelationService.remove(new LambdaQueryWrapper<DistributionActivityTempRelation>()
+        .eq(DistributionActivityTempRelation::getDistributionTempId,bo.getId()));
+        DistributionActivityTempAddBo addBo = new DistributionActivityTempAddBo();
+        addBo.setIsAllOrg(bo.getIsAllOrg());
+        addBo.setGoodsList(bo.getGoodsList());
+        addBo.setTenantIds(bo.getTenantIds());
+        this.saveRelation(addBo,bo.getId());
+        return true;
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionActivityTemp entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 95 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanAccountServiceImpl.java

@@ -0,0 +1,95 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionSalesmanAccountServiceImpl extends ServiceImpl<DistributionSalesmanAccountMapper, DistributionSalesmanAccount> implements IDistributionSalesmanAccountService {
+
+    @Override
+    public DistributionSalesmanAccountVo queryById(Long id){
+        DistributionSalesmanAccount db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionSalesmanAccountVo.class);
+    }
+
+    @Override
+    public List<DistributionSalesmanAccountVo> queryList(DistributionSalesmanAccountQueryBo bo) {
+        LambdaQueryWrapper<DistributionSalesmanAccount> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getSalesmanId() != null, DistributionSalesmanAccount::getSalesmanId, bo.getSalesmanId());
+        lqw.eq(bo.getType() != null, DistributionSalesmanAccount::getType, bo.getType());
+        lqw.eq(StrUtil.isNotBlank(bo.getOpenId()), DistributionSalesmanAccount::getOpenId, bo.getOpenId());
+        lqw.eq(StrUtil.isNotBlank(bo.getUnionId()), DistributionSalesmanAccount::getUnionId, bo.getUnionId());
+        lqw.eq(bo.getStatus() != null, DistributionSalesmanAccount::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionSalesmanAccountVo> entity2Vo(Collection<DistributionSalesmanAccount> collection) {
+        List<DistributionSalesmanAccountVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionSalesmanAccountVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionSalesmanAccount> page = (Page<DistributionSalesmanAccount>)collection;
+            Page<DistributionSalesmanAccountVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionSalesmanAccountAddBo bo) {
+        DistributionSalesmanAccount add = BeanUtil.toBean(bo, DistributionSalesmanAccount.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionSalesmanAccountEditBo bo) {
+        DistributionSalesmanAccount update = BeanUtil.toBean(bo, DistributionSalesmanAccount.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionSalesmanAccount entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 96 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanPosterServiceImpl.java

@@ -0,0 +1,96 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionSalesmanPosterServiceImpl extends ServiceImpl<DistributionSalesmanPosterMapper, DistributionSalesmanPoster> implements IDistributionSalesmanPosterService {
+
+    @Override
+    public DistributionSalesmanPosterVo queryById(Long id){
+        DistributionSalesmanPoster db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionSalesmanPosterVo.class);
+    }
+
+    @Override
+    public List<DistributionSalesmanPosterVo> queryList(DistributionSalesmanPosterQueryBo bo) {
+        LambdaQueryWrapper<DistributionSalesmanPoster> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getPosterId() != null, DistributionSalesmanPoster::getPosterId, bo.getPosterId());
+        lqw.eq(bo.getSalesmanId() != null, DistributionSalesmanPoster::getSalesmanId, bo.getSalesmanId());
+        lqw.eq(StrUtil.isNotBlank(bo.getPosterHead()), DistributionSalesmanPoster::getPosterHead, bo.getPosterHead());
+        lqw.eq(StrUtil.isNotBlank(bo.getPosterSlogan()), DistributionSalesmanPoster::getPosterSlogan, bo.getPosterSlogan());
+        lqw.eq(StrUtil.isNotBlank(bo.getPosterConfig()), DistributionSalesmanPoster::getPosterConfig, bo.getPosterConfig());
+        lqw.eq(bo.getStatus() != null, DistributionSalesmanPoster::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionSalesmanPosterVo> entity2Vo(Collection<DistributionSalesmanPoster> collection) {
+        List<DistributionSalesmanPosterVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionSalesmanPosterVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionSalesmanPoster> page = (Page<DistributionSalesmanPoster>)collection;
+            Page<DistributionSalesmanPosterVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionSalesmanPosterAddBo bo) {
+        DistributionSalesmanPoster add = BeanUtil.toBean(bo, DistributionSalesmanPoster.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionSalesmanPosterEditBo bo) {
+        DistributionSalesmanPoster update = BeanUtil.toBean(bo, DistributionSalesmanPoster.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionSalesmanPoster entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 92 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanRelationServiceImpl.java

@@ -0,0 +1,92 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionSalesmanRelationServiceImpl extends ServiceImpl<DistributionSalesmanRelationMapper, DistributionSalesmanRelation> implements IDistributionSalesmanRelationService {
+
+    @Override
+    public DistributionSalesmanRelationVo queryById(Long id){
+        DistributionSalesmanRelation db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, DistributionSalesmanRelationVo.class);
+    }
+
+    @Override
+    public List<DistributionSalesmanRelationVo> queryList(DistributionSalesmanRelationQueryBo bo) {
+        LambdaQueryWrapper<DistributionSalesmanRelation> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDistributionId() != null, DistributionSalesmanRelation::getDistributionId, bo.getDistributionId());
+        lqw.eq(bo.getSalesmanId() != null, DistributionSalesmanRelation::getSalesmanId, bo.getSalesmanId());
+        lqw.eq(bo.getStatus() != null, DistributionSalesmanRelation::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionSalesmanRelationVo> entity2Vo(Collection<DistributionSalesmanRelation> collection) {
+        List<DistributionSalesmanRelationVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionSalesmanRelationVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionSalesmanRelation> page = (Page<DistributionSalesmanRelation>)collection;
+            Page<DistributionSalesmanRelationVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionSalesmanRelationAddBo bo) {
+        DistributionSalesmanRelation add = BeanUtil.toBean(bo, DistributionSalesmanRelation.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionSalesmanRelationEditBo bo) {
+        DistributionSalesmanRelation update = BeanUtil.toBean(bo, DistributionSalesmanRelation.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionSalesmanRelation entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 103 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionSalesmanServiceImpl.java

@@ -0,0 +1,103 @@
+package com.zhongzheng.modules.distribution.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Service
+public class DistributionSalesmanServiceImpl extends ServiceImpl<DistributionSalesmanMapper, DistributionSalesman> implements IDistributionSalesmanService {
+
+    @Override
+    public DistributionSalesmanVo queryById(Long salesmanId){
+        DistributionSalesman db = this.baseMapper.selectById(salesmanId);
+        return BeanUtil.toBean(db, DistributionSalesmanVo.class);
+    }
+
+    @Override
+    public List<DistributionSalesmanVo> queryList(DistributionSalesmanQueryBo bo) {
+        LambdaQueryWrapper<DistributionSalesman> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getUserAccount()), DistributionSalesman::getUserAccount, bo.getUserAccount());
+        lqw.like(StrUtil.isNotBlank(bo.getNickname()), DistributionSalesman::getNickname, bo.getNickname());
+        lqw.like(StrUtil.isNotBlank(bo.getRealname()), DistributionSalesman::getRealname, bo.getRealname());
+        lqw.eq(bo.getSex() != null, DistributionSalesman::getSex, bo.getSex());
+        lqw.eq(StrUtil.isNotBlank(bo.getIdCard()), DistributionSalesman::getIdCard, bo.getIdCard());
+        lqw.eq(StrUtil.isNotBlank(bo.getTelphone()), DistributionSalesman::getTelphone, bo.getTelphone());
+        lqw.eq(bo.getUserLevel() != null, DistributionSalesman::getUserLevel, bo.getUserLevel());
+        lqw.eq(StrUtil.isNotBlank(bo.getUserBirth()), DistributionSalesman::getUserBirth, bo.getUserBirth());
+        lqw.eq(bo.getParentId() != null, DistributionSalesman::getParentId, bo.getParentId());
+        lqw.eq(bo.getBrokerageTotal() != null, DistributionSalesman::getBrokerageTotal, bo.getBrokerageTotal());
+        lqw.eq(bo.getBrokeragePractical() != null, DistributionSalesman::getBrokeragePractical, bo.getBrokeragePractical());
+        lqw.eq(bo.getBrokerageFreeze() != null, DistributionSalesman::getBrokerageFreeze, bo.getBrokerageFreeze());
+        lqw.eq(bo.getStatus() != null, DistributionSalesman::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<DistributionSalesmanVo> entity2Vo(Collection<DistributionSalesman> collection) {
+        List<DistributionSalesmanVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, DistributionSalesmanVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<DistributionSalesman> page = (Page<DistributionSalesman>)collection;
+            Page<DistributionSalesmanVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(DistributionSalesmanAddBo bo) {
+        DistributionSalesman add = BeanUtil.toBean(bo, DistributionSalesman.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(DistributionSalesmanEditBo bo) {
+        DistributionSalesman update = BeanUtil.toBean(bo, DistributionSalesman.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(DistributionSalesman entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 58 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityGoodsVo.java

@@ -0,0 +1,58 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityGoodsVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 主键 */
+	@ApiModelProperty("主键")
+	private Long id;
+
+	/** 分销活动ID */
+	@Excel(name = "分销活动ID")
+	@ApiModelProperty("分销活动ID")
+	private Long distributionId;
+	/** 商品ID */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	/** 总佣金上限 */
+	@Excel(name = "总佣金上限")
+	@ApiModelProperty("总佣金上限")
+	private BigDecimal profitMax;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 层级拥挤类型:1百分比,2固定金额 */
+	@Excel(name = "层级拥挤类型:1百分比,2固定金额")
+	@ApiModelProperty("层级拥挤类型:1百分比,2固定金额")
+	private Integer profitType;
+	/** 一级拥金 */
+	@Excel(name = "一级拥金")
+	@ApiModelProperty("一级拥金")
+	private BigDecimal profitOne;
+	/** 二级拥金 */
+	@Excel(name = "二级拥金")
+	@ApiModelProperty("二级拥金")
+	private BigDecimal profitTwo;
+	/** 三级拥金 */
+	@Excel(name = "三级拥金")
+	@ApiModelProperty("三级拥金")
+	private BigDecimal profitThree;
+}

+ 66 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityPosterVo.java

@@ -0,0 +1,66 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityPosterVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 活动海报模板ID */
+	@ApiModelProperty("活动海报模板ID")
+	private Long posterId;
+
+	/** 海报模板地址 */
+	@Excel(name = "海报模板地址")
+	@ApiModelProperty("海报模板地址")
+	private String url;
+	/** 海报模板名称 */
+	@ApiModelProperty("海报模板名称")
+	private String name;
+	/** 海报标题 */
+	@ApiModelProperty("海报标题")
+	private String posterHead;
+	/** 海报广告语 */
+	@ApiModelProperty("海报广告语")
+	private String posterSlogan;
+	/** 海报商品图片 */
+	@ApiModelProperty("海报商品图片")
+	private String posterGoods;
+	/** 海报标题配置 */
+	@ApiModelProperty("海报标题配置")
+	private String posterHeadConfig;
+	/** 海报广告语配置 */
+	@ApiModelProperty("海报广告语配置")
+	private String posterSloganConfig;
+	/** 海报商品图片配置 */
+	@ApiModelProperty("海报商品图片配置")
+	private String posterGoodsConfig;
+	/** 海报个人信息码配置 */
+	@ApiModelProperty("海报个人信息码配置")
+	private String posterSalesmanConfig;
+	/** 海报分销码配置 */
+	@ApiModelProperty("海报分销码配置")
+	private String posterDistributionConfig;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 使用状态:1启用,0关闭 */
+	@ApiModelProperty("使用状态:1启用,0关闭")
+	private Integer useStatus;
+	/** 备注 */
+	@ApiModelProperty("备注")
+	private String remark;
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempGoodsVo.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityTempGoodsVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 主键 */
+	@ApiModelProperty("主键")
+	private Long id;
+
+	/** 分销模板ID */
+	@Excel(name = "分销模板ID")
+	@ApiModelProperty("分销模板ID")
+	private Long distributionTempId;
+	/** 商品ID */
+	@Excel(name = "商品ID")
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	@ApiModelProperty("商品价格")
+	private BigDecimal goodsPrice;
+	/** 佣金上限 */
+	@Excel(name = "佣金上限")
+	@ApiModelProperty("佣金上限")
+	private BigDecimal profitMax;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 层级拥挤类型:1百分比,2固定金额 */
+	@ApiModelProperty("层级拥挤类型:1百分比,2固定金额 ")
+	private Integer profitType;
+	/** 一级拥金 */
+	@ApiModelProperty("一级拥金")
+	private BigDecimal profitOne;
+	/** 二级拥金 */
+	@ApiModelProperty("二级拥金")
+	private BigDecimal profitTwo;
+	/** 三级拥金 */
+	@ApiModelProperty("三级拥金")
+	private BigDecimal profitThree;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempPosterVo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityTempPosterVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 活动海报模板ID */
+	@ApiModelProperty("活动海报模板ID")
+	private Long posterTempId;
+
+	/** 海报模板地址 */
+	@Excel(name = "海报模板地址")
+	@ApiModelProperty("海报模板地址")
+	private String posterUrl;
+	/** 海报标题 */
+	@ApiModelProperty("海报标题")
+	private String posterHead;
+	/** 海报广告语 */
+	@ApiModelProperty("海报广告语")
+	private String posterSlogan;
+	/** 海报商品图片 */
+	@ApiModelProperty("海报商品图片")
+	private String posterGoods;
+	/** 海报标题配置 */
+	@ApiModelProperty("海报标题配置")
+	private String posterHeadConfig;
+	/** 海报广告语配置 */
+	@ApiModelProperty("海报广告语配置")
+	private String posterSloganConfig;
+	/** 海报商品图片配置 */
+	@ApiModelProperty("海报商品图片配置")
+	private String posterGoodsConfig;
+	/** 海报个人信息码配置 */
+	@ApiModelProperty("海报个人信息码配置")
+	private String posterSalesmanConfig;
+	/** 海报分销码配置 */
+	@ApiModelProperty("海报分销码配置")
+	private String posterDistributionConfig;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 使用状态:1启用,0关闭 */
+	@ApiModelProperty("使用状态:1启用,0关闭")
+	private Integer useStatus;
+}

+ 35 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempRelationVo.java

@@ -0,0 +1,35 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityTempRelationVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 主键 */
+	@ApiModelProperty("主键")
+	private Long id;
+
+	/** 分销模板ID */
+	@Excel(name = "分销模板ID")
+	@ApiModelProperty("分销模板ID")
+	private Long distributionTempId;
+	/** 状态:1开启,0关闭 */
+	@Excel(name = "状态:1开启,0关闭")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTempVo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityTempVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 模板ID */
+	@ApiModelProperty("模板ID")
+	private Long id;
+
+	/** 活动编码 */
+	@Excel(name = "活动编码")
+	@ApiModelProperty("活动编码")
+	private String code;
+	/** 活动类型:1,分销活动 */
+	@Excel(name = "活动类型:1,分销活动")
+	@ApiModelProperty("活动类型:1,分销活动")
+	private Integer type;
+	/** 活动名称 */
+	@Excel(name = "活动名称")
+	@ApiModelProperty("活动名称")
+	private String name;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 发布状态:1已发布,0未发布 */
+	@ApiModelProperty("发布状态:1已发布,0未发布")
+	private Integer publishStatus;
+	/** 拥挤冻结期(天) */
+	@ApiModelProperty("拥挤冻结期(天)")
+	private Integer freezingPeriod;
+	/** 备注 */
+	@ApiModelProperty("备注")
+	private String remark;
+	/** 海报模板ID */
+	@Excel(name = "海报模板ID")
+	@ApiModelProperty("海报模板ID")
+	private Long posterTempId;
+	/** 开始时间 */
+	@Excel(name = "开始时间")
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	/** 结束时间 */
+	@Excel(name = "结束时间")
+	@ApiModelProperty("结束时间")
+	private Long endTime;
+
+	@ApiModelProperty("机构集合")
+	private List<DistributionActivityTenantVo> tenantList;
+
+	@ApiModelProperty("活动商品集合")
+	private List<DistributionActivityTempGoodsVo> goodsList;
+}

+ 24 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTenantVo.java

@@ -0,0 +1,24 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年03月08日 15:35
+ */
+@Data
+public class DistributionActivityTenantVo implements Serializable {
+
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+
+    @ApiModelProperty("机构名称")
+    private String tenantName;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+}

+ 66 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityVo.java

@@ -0,0 +1,66 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 分销活动ID */
+	@ApiModelProperty("分销活动ID")
+	private Long distributionId;
+
+	/** 活动编码 */
+	@Excel(name = "活动编码")
+	@ApiModelProperty("活动编码")
+	private String code;
+	/** 活动类型:1,分销活动 */
+	@Excel(name = "活动类型:1,分销活动")
+	@ApiModelProperty("活动类型:1,分销活动")
+	private Integer type;
+	/** 活动名称 */
+	@Excel(name = "活动名称")
+	@ApiModelProperty("活动名称")
+	private String name;
+	/** 状态:1有效,0无效 */
+	@Excel(name = "状态:1有效,0无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+	/** 拥挤冻结期(天) */
+	@ApiModelProperty("拥挤冻结期(天)")
+	private Integer freezingPeriod;
+	/** 备注 */
+	@ApiModelProperty("备注")
+	private String remark;
+	/** 开始时间 */
+	@Excel(name = "开始时间")
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	/** 结束时间 */
+	@Excel(name = "结束时间")
+	@ApiModelProperty("结束时间")
+	private Long endTime;
+	/** 使用状态:1启用,0关闭 */
+	@ApiModelProperty("使用状态:1启用,0关闭 ")
+	private Integer useStatus;
+	/** 模板ID */
+	@Excel(name = "模板ID")
+	@ApiModelProperty("模板ID")
+	private Long tempId;
+	/** 海报模板ID */
+	@Excel(name = "海报ID")
+	@ApiModelProperty("海报ID")
+	private Long posterId;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigAddBo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 top_sys_config
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class TopSysConfigAddBo {
+
+    /** 参数名称 */
+    @ApiModelProperty("参数名称")
+    private String configName;
+    /** 参数键名 */
+    @ApiModelProperty("参数键名")
+    private String configKey;
+    /** 参数键值 */
+    @ApiModelProperty("参数键值")
+    private String configValue;
+    /** 系统内置(Y是 N否) */
+    @ApiModelProperty("系统内置(Y是 N否)")
+    private String configType;
+    /** 创建者 */
+    @ApiModelProperty("创建者")
+    private String createBy;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+    /** 配置模块 */
+    @ApiModelProperty("配置模块")
+    private String configModule;
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigEditBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 【请填写功能名称】编辑对象 top_sys_config
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class TopSysConfigEditBo {
+
+    /** 参数主键 */
+    @ApiModelProperty("参数主键")
+    private Long configId;
+
+    /** 参数名称 */
+    @ApiModelProperty("参数名称")
+    private String configName;
+
+    /** 参数键名 */
+    @ApiModelProperty("参数键名")
+    private String configKey;
+
+    /** 参数键值 */
+    @ApiModelProperty("参数键值")
+    private String configValue;
+
+    /** 系统内置(Y是 N否) */
+    @ApiModelProperty("系统内置(Y是 N否)")
+    private String configType;
+
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /** 配置模块 */
+    @ApiModelProperty("配置模块")
+    private String configModule;
+
+}

+ 54 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysConfigQueryBo.java

@@ -0,0 +1,54 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 top_sys_config
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class TopSysConfigQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 参数名称 */
+	@ApiModelProperty("参数名称")
+	private String configName;
+	/** 参数键名 */
+	@ApiModelProperty("参数键名")
+	private String configKey;
+	/** 参数键值 */
+	@ApiModelProperty("参数键值")
+	private String configValue;
+	/** 系统内置(Y是 N否) */
+	@ApiModelProperty("系统内置(Y是 N否)")
+	private String configType;
+	/** 配置模块 */
+	@ApiModelProperty("配置模块")
+	private String configModule;
+}

+ 62 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptAddBo.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 部门添加对象 top_sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("部门添加对象")
+public class TopSysDeptAddBo {
+
+    /** 父部门id */
+    @ApiModelProperty("父部门id")
+    private Long parentId;
+    /** 祖级列表 */
+    @ApiModelProperty("祖级列表")
+    private String ancestors;
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long orderNum;
+    /** 负责人 */
+    @ApiModelProperty("负责人")
+    private String leader;
+    /** 联系电话 */
+    @ApiModelProperty("联系电话")
+    private String phone;
+    /** 邮箱 */
+    @ApiModelProperty("邮箱")
+    private String email;
+    /** 部门状态(0正常 1停用) */
+    @ApiModelProperty("部门状态(0正常 1停用)")
+    private String status;
+    /** 删除标志(0代表存在 2代表删除) */
+    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+    /** 创建者 */
+    @ApiModelProperty("创建者")
+    private String createBy;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+}

+ 66 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptEditBo.java

@@ -0,0 +1,66 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 部门编辑对象 top_sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("部门编辑对象")
+public class TopSysDeptEditBo {
+
+    /** 部门id */
+    @ApiModelProperty("部门id")
+    private Long deptId;
+
+    /** 父部门id */
+    @ApiModelProperty("父部门id")
+    private Long parentId;
+
+    /** 祖级列表 */
+    @ApiModelProperty("祖级列表")
+    private String ancestors;
+
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long orderNum;
+
+    /** 负责人 */
+    @ApiModelProperty("负责人")
+    private String leader;
+
+    /** 联系电话 */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /** 邮箱 */
+    @ApiModelProperty("邮箱")
+    private String email;
+
+    /** 部门状态(0正常 1停用) */
+    @ApiModelProperty("部门状态(0正常 1停用)")
+    private String status;
+
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+
+}

+ 63 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysDeptQueryBo.java

@@ -0,0 +1,63 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 部门分页查询对象 top_sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("部门分页查询对象")
+public class TopSysDeptQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 父部门id */
+	@ApiModelProperty("父部门id")
+	private Long parentId;
+	/** 祖级列表 */
+	@ApiModelProperty("祖级列表")
+	private String ancestors;
+	/** 部门名称 */
+	@ApiModelProperty("部门名称")
+	private String deptName;
+	/** 显示顺序 */
+	@ApiModelProperty("显示顺序")
+	private Long orderNum;
+	/** 负责人 */
+	@ApiModelProperty("负责人")
+	private String leader;
+	/** 联系电话 */
+	@ApiModelProperty("联系电话")
+	private String phone;
+	/** 邮箱 */
+	@ApiModelProperty("邮箱")
+	private String email;
+	/** 部门状态(0正常 1停用) */
+	@ApiModelProperty("部门状态(0正常 1停用)")
+	private String status;
+}

+ 74 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuAddBo.java

@@ -0,0 +1,74 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 top_sys_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class TopSysMenuAddBo {
+
+    /** 菜单名称 */
+    @ApiModelProperty("菜单名称")
+    private String menuName;
+    /** 父菜单ID */
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long orderNum;
+    /** 路由地址 */
+    @ApiModelProperty("路由地址")
+    private String path;
+    /** 组件路径 */
+    @ApiModelProperty("组件路径")
+    private String component;
+    /** 是否为外链(0是 1否) */
+    @ApiModelProperty("是否为外链(0是 1否)")
+    private Long isFrame;
+    /** 是否缓存(0缓存 1不缓存) */
+    @ApiModelProperty("是否缓存(0缓存 1不缓存)")
+    private Long isCache;
+    /** 菜单类型(M目录 C菜单 F按钮) */
+    @ApiModelProperty("菜单类型(M目录 C菜单 F按钮)")
+    private String menuType;
+    /** 菜单状态(1显示 0隐藏) */
+    @ApiModelProperty("菜单状态(1显示 0隐藏)")
+    private String visible;
+    /** 菜单状态(1正常 0停用) */
+    @ApiModelProperty("菜单状态(1正常 0停用)")
+    private String status;
+    /** 权限标识 */
+    @ApiModelProperty("权限标识")
+    private String perms;
+    /** 菜单图标 */
+    @ApiModelProperty("菜单图标")
+    private String icon;
+    /** 创建者 */
+    @ApiModelProperty("创建者")
+    private String createBy;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 85 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuEditBo.java

@@ -0,0 +1,85 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 【请填写功能名称】编辑对象 top_sys_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class TopSysMenuEditBo {
+
+    /** 菜单ID */
+    @ApiModelProperty("菜单ID")
+    private Long menuId;
+
+    /** 菜单名称 */
+    @ApiModelProperty("菜单名称")
+    private String menuName;
+
+    /** 父菜单ID */
+    @ApiModelProperty("父菜单ID")
+    private Long parentId;
+
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long orderNum;
+
+    /** 路由地址 */
+    @ApiModelProperty("路由地址")
+    private String path;
+
+    /** 组件路径 */
+    @ApiModelProperty("组件路径")
+    private String component;
+
+    /** 是否为外链(0是 1否) */
+    @ApiModelProperty("是否为外链(0是 1否)")
+    private Long isFrame;
+
+    /** 是否缓存(0缓存 1不缓存) */
+    @ApiModelProperty("是否缓存(0缓存 1不缓存)")
+    private Long isCache;
+
+    /** 菜单类型(M目录 C菜单 F按钮) */
+    @ApiModelProperty("菜单类型(M目录 C菜单 F按钮)")
+    private String menuType;
+
+    /** 菜单状态(1显示 0隐藏) */
+    @ApiModelProperty("菜单状态(1显示 0隐藏)")
+    private String visible;
+
+    /** 菜单状态(1正常 0停用) */
+    @ApiModelProperty("菜单状态(1正常 0停用)")
+    private String status;
+
+    /** 权限标识 */
+    @ApiModelProperty("权限标识")
+    private String perms;
+
+    /** 菜单图标 */
+    @ApiModelProperty("菜单图标")
+    private String icon;
+
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

+ 75 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysMenuQueryBo.java

@@ -0,0 +1,75 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 top_sys_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class TopSysMenuQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 菜单名称 */
+	@ApiModelProperty("菜单名称")
+	private String menuName;
+	/** 父菜单ID */
+	@ApiModelProperty("父菜单ID")
+	private Long parentId;
+	/** 显示顺序 */
+	@ApiModelProperty("显示顺序")
+	private Long orderNum;
+	/** 路由地址 */
+	@ApiModelProperty("路由地址")
+	private String path;
+	/** 组件路径 */
+	@ApiModelProperty("组件路径")
+	private String component;
+	/** 是否为外链(0是 1否) */
+	@ApiModelProperty("是否为外链(0是 1否)")
+	private Long isFrame;
+	/** 是否缓存(0缓存 1不缓存) */
+	@ApiModelProperty("是否缓存(0缓存 1不缓存)")
+	private Long isCache;
+	/** 菜单类型(M目录 C菜单 F按钮) */
+	@ApiModelProperty("菜单类型(M目录 C菜单 F按钮)")
+	private String menuType;
+	/** 菜单状态(1显示 0隐藏) */
+	@ApiModelProperty("菜单状态(1显示 0隐藏)")
+	private String visible;
+	/** 菜单状态(1正常 0停用) */
+	@ApiModelProperty("菜单状态(1正常 0停用)")
+	private String status;
+	/** 权限标识 */
+	@ApiModelProperty("权限标识")
+	private String perms;
+	/** 菜单图标 */
+	@ApiModelProperty("菜单图标")
+	private String icon;
+}

+ 62 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleAddBo.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 角色信息添加对象 top_sys_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("角色信息添加对象")
+public class TopSysRoleAddBo {
+
+    /** 角色名称 */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+    /** 角色权限字符串 */
+    @ApiModelProperty("角色权限字符串")
+    private String roleKey;
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long roleSort;
+    /** 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) */
+    @ApiModelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)")
+    private String dataScope;
+    /** 菜单树选择项是否关联显示 */
+    @ApiModelProperty("菜单树选择项是否关联显示")
+    private Integer menuCheckStrictly;
+    /** 部门树选择项是否关联显示 */
+    @ApiModelProperty("部门树选择项是否关联显示")
+    private Integer deptCheckStrictly;
+    /** 角色状态(1正常 0停用) */
+    @ApiModelProperty("角色状态(1正常 0停用)")
+    private String status;
+    /** 删除标志(0代表存在 2代表删除) */
+    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+    /** 创建者 */
+    @ApiModelProperty("创建者")
+    private String createBy;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 66 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleEditBo.java

@@ -0,0 +1,66 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 角色信息编辑对象 top_sys_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("角色信息编辑对象")
+public class TopSysRoleEditBo {
+
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private Long roleId;
+
+    /** 角色名称 */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+    /** 角色权限字符串 */
+    @ApiModelProperty("角色权限字符串")
+    private String roleKey;
+
+    /** 显示顺序 */
+    @ApiModelProperty("显示顺序")
+    private Long roleSort;
+
+    /** 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) */
+    @ApiModelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)")
+    private String dataScope;
+
+    /** 菜单树选择项是否关联显示 */
+    @ApiModelProperty("菜单树选择项是否关联显示")
+    private Integer menuCheckStrictly;
+
+    /** 部门树选择项是否关联显示 */
+    @ApiModelProperty("部门树选择项是否关联显示")
+    private Integer deptCheckStrictly;
+
+    /** 角色状态(1正常 0停用) */
+    @ApiModelProperty("角色状态(1正常 0停用)")
+    private String status;
+
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+}

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuAddBo.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 top_sys_role_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class TopSysRoleMenuAddBo {
+
+}

+ 28 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuEditBo.java

@@ -0,0 +1,28 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 【请填写功能名称】编辑对象 top_sys_role_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class TopSysRoleMenuEditBo {
+
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private Long roleId;
+
+    /** 菜单ID */
+    @ApiModelProperty("菜单ID")
+    private Long menuId;
+
+}

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleMenuQueryBo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 top_sys_role_menu
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class TopSysRoleMenuQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysRoleQueryBo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 角色信息分页查询对象 top_sys_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("角色信息分页查询对象")
+public class TopSysRoleQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 角色名称 */
+	@ApiModelProperty("角色名称")
+	private String roleName;
+	/** 角色权限字符串 */
+	@ApiModelProperty("角色权限字符串")
+	private String roleKey;
+	/** 显示顺序 */
+	@ApiModelProperty("显示顺序")
+	private Long roleSort;
+	/** 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) */
+	@ApiModelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)")
+	private String dataScope;
+	/** 菜单树选择项是否关联显示 */
+	@ApiModelProperty("菜单树选择项是否关联显示")
+	private Integer menuCheckStrictly;
+	/** 部门树选择项是否关联显示 */
+	@ApiModelProperty("部门树选择项是否关联显示")
+	private Integer deptCheckStrictly;
+	/** 角色状态(1正常 0停用) */
+	@ApiModelProperty("角色状态(1正常 0停用)")
+	private String status;
+}

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleAddBo.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 用户和角色关联添加对象 top_sys_user_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("用户和角色关联添加对象")
+public class TopSysUserRoleAddBo {
+
+}

+ 28 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleEditBo.java

@@ -0,0 +1,28 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 用户和角色关联编辑对象 top_sys_user_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@ApiModel("用户和角色关联编辑对象")
+public class TopSysUserRoleEditBo {
+
+    /** 用户ID */
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private Long roleId;
+
+}

+ 34 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysUserRoleQueryBo.java

@@ -0,0 +1,34 @@
+package com.zhongzheng.modules.top.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户和角色关联分页查询对象 top_sys_user_role
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("用户和角色关联分页查询对象")
+public class TopSysUserRoleQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+}

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysConfig.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.top.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 【请填写功能名称】对象 top_sys_config
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("top_sys_config")
+public class TopSysConfig implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 参数主键 */
+    @TableId(value = "config_id")
+    private Long configId;
+    /** 参数名称 */
+    private String configName;
+    /** 参数键名 */
+    private String configKey;
+    /** 参数键值 */
+    private String configValue;
+    /** 系统内置(Y是 N否) */
+    private String configType;
+    /** 创建者 */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+    /** 更新者 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+    /** 备注 */
+    private String remark;
+    /** 配置模块 */
+    private String configModule;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysDept.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.top.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 部门对象 top_sys_dept
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("top_sys_dept")
+public class TopSysDept implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** 部门id */
+    @TableId(value = "dept_id")
+    private Long deptId;
+    /** 父部门id */
+    private Long parentId;
+    /** 祖级列表 */
+    private String ancestors;
+    /** 部门名称 */
+    private String deptName;
+    /** 显示顺序 */
+    private Long orderNum;
+    /** 负责人 */
+    private String leader;
+    /** 联系电话 */
+    private String phone;
+    /** 邮箱 */
+    private String email;
+    /** 部门状态(0正常 1停用) */
+    private String status;
+    /** 删除标志(0代表存在 2代表删除) */
+    @TableLogic
+    private String delFlag;
+    /** 创建者 */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+    /** 更新者 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов