Jelajahi Sumber

Merge remote-tracking branch 'origin/prod-test' into prod-test

lwhhszx 10 bulan lalu
induk
melakukan
998f13d34c
100 mengubah file dengan 1116 tambahan dan 75 penghapusan
  1. 58 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/AppVipTypeDTO.java
  2. 13 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionCodeDTO.java
  3. 39 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionModuleDTO.java
  4. 34 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionModuleUpdateDTO.java
  5. 29 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryAssoFunctionModuleDTO.java
  6. 12 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVersionInfoDTO.java
  7. 35 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVersionListDTO.java
  8. 29 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVipDTO.java
  9. 1 1
      PCS/src/main/java/cn/cslg/permission/common/model/dto/TenantVipTypeFunctionAddNewDTO.java
  10. 54 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/VersionDTO.java
  11. 53 0
      PCS/src/main/java/cn/cslg/permission/common/model/vo/AppVipTypeVO.java
  12. 49 0
      PCS/src/main/java/cn/cslg/permission/common/model/vo/VersionVO.java
  13. 38 0
      PCS/src/main/java/cn/cslg/permission/common/model/vo/associate/AssoFunctionModuleVO.java
  14. 3 2
      PCS/src/main/java/cn/cslg/permission/controller/TenantVipTypeController.java
  15. 55 0
      PCS/src/main/java/cn/cslg/permission/controller/qiaobi/AssoFunctionModuleController.java
  16. 74 0
      PCS/src/main/java/cn/cslg/permission/controller/qiaobi/VersionController.java
  17. 44 0
      PCS/src/main/java/cn/cslg/permission/controller/qiaobi/VipTypeController.java
  18. 4 1
      PCS/src/main/java/cn/cslg/permission/domain/TenantVipType.java
  19. 42 0
      PCS/src/main/java/cn/cslg/permission/domain/Version.java
  20. 7 0
      PCS/src/main/java/cn/cslg/permission/domain/associate/AssoFunctionModule.java
  21. 13 0
      PCS/src/main/java/cn/cslg/permission/mapper/VersionMapper.java
  22. 4 0
      PCS/src/main/java/cn/cslg/permission/mapper/qiaobi/AppVipTypeMapper.java
  23. 1 1
      PCS/src/main/java/cn/cslg/permission/service/ITenantVipTypeService.java
  24. 137 0
      PCS/src/main/java/cn/cslg/permission/service/VersionService.java
  25. 76 0
      PCS/src/main/java/cn/cslg/permission/service/associate/AssoFunctionModuleService.java
  26. 67 67
      PCS/src/main/java/cn/cslg/permission/service/impl/TenantVipTypeService.java
  27. 110 0
      PCS/src/main/java/cn/cslg/permission/service/qiaobi/AppVipTypeService.java
  28. 28 0
      PCS/src/main/resources/mapper/AppVipTypeMapper.xml
  29. 7 3
      PCS/src/main/resources/mapper/TenantVipTypeMapper.xml
  30. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/Application.class
  31. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/GlobalException.class
  32. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/AsyncExceptionHandler.class
  33. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/AsyncTaskPoolConfig.class
  34. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/InnerInterceptor/LizzMybatisIntercepts.class
  35. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/MailConstants.class
  36. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/MybatisPlusConfig.class
  37. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/SaTokenConfigure.class
  38. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/config/SpringDocConfig.class
  39. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/annotation/AnnotationParse.class
  40. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/annotation/LoggerAspect.class
  41. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/annotation/Permission.class
  42. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/Constants$1.class
  43. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/Constants.class
  44. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/DocFlag.class
  45. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/EStatus.class
  46. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/RedisConf.class
  47. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/base/RequestHolder.class
  48. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/exception/BaseException.class
  49. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/exception/CustomException.class
  50. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/core/exception/PermissionException.class
  51. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/AreaAddressDTO.class
  52. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/ClassNumberDTO.class
  53. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/CommonData.class
  54. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/CustomFieldDTO.class
  55. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/PageDTO.class
  56. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/ProjectFieldOrderDTO.class
  57. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/TaskWebSocketDTO.class
  58. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/TenantDTO.class
  59. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/dto/UploadFileDTO.class
  60. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/LoginVO.class
  61. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/SysDictVO.class
  62. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/UserVO.class
  63. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoDepartRolVO.class
  64. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoPerRolVO.class
  65. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoUserGroupPersonnelVO.class
  66. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoUserGroupRoleVO.class
  67. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/BackupUtils$Backup.class
  68. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/BackupUtils.class
  69. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/DataUtils.class
  70. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/DateUtils.class
  71. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/ExcelUtils.class
  72. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/FileUtils.class
  73. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/FormatUtil.class
  74. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$1.class
  75. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$2.class
  76. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$3.class
  77. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils.class
  78. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/RequestDataHelper.class
  79. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/Response.class
  80. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/SecurityUtils/SecurityUtils.class
  81. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/ServletUtils.class
  82. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/SoMap.class
  83. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/SpringContextUtil.class
  84. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/SpringUtils.class
  85. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/StringUtils.class
  86. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/TestUtils.class
  87. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/WebSocketServer.class
  88. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/auth/AuthAop.class
  89. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/common/utils/auth/checkAuth.class
  90. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/ApplicationController.class
  91. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/DataController.class
  92. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/FunctionController.class
  93. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/LoginController.class
  94. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/PositionController.class
  95. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/RoleController.class
  96. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/SysDictController.class
  97. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/SystemController.class
  98. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/TenantController.class
  99. TEMPAT SAMPAH
      PCS/target/classes/cn/cslg/permission/controller/UserGroupController.class
  100. 0 0
      PCS/target/classes/cn/cslg/permission/domain/System.class

+ 58 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/AppVipTypeDTO.java

@@ -0,0 +1,58 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+public class AppVipTypeDTO {
+    private Integer id;
+
+    /**
+     * 应用代码
+     */
+    private String applicationCode;
+
+    /**
+     * 会员类型id
+     */
+    private Integer tenantVipTypeId;
+
+    /**
+     * 持续时长 月
+     */
+    private Integer lastTime;
+
+    /**
+     * 租户会员类型名称
+     */
+    private String tenantVipName;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 是否启用
+     */
+    private Integer enable;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人ID
+     */
+    private Integer createPersonId;
+    /**
+     * 创建人姓名
+     */
+    private String createPersonName;
+    /**
+     * 应用会员设置为1
+     */
+    private Integer useType;
+}

+ 13 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionCodeDTO.java

@@ -0,0 +1,13 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/27
+ */
+@Data
+public class AssoFunctionCodeDTO {
+    private Integer functionId;
+    private String code;
+}

+ 39 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionModuleDTO.java

@@ -0,0 +1,39 @@
+package cn.cslg.permission.common.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/27
+ */
+@Data
+public class AssoFunctionModuleDTO {
+
+    private Integer functionId;
+
+    private String code;
+
+    /**
+     * 创建人id
+     */
+    private Integer createUser;
+
+    /**
+     * 是否删除(1是 0否)
+     */
+    private Boolean isDelete;
+
+    /**
+     * 是否授权(1未授权 2授权)
+     */
+    private Integer authType;
+
+    private Integer versionId;
+
+    private String version;
+}

+ 34 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionModuleUpdateDTO.java

@@ -0,0 +1,34 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/27
+ */
+@Data
+public class AssoFunctionModuleUpdateDTO {
+    private Integer id;
+    private Integer functionId;
+    private String code;
+    /**
+     * 创建人id
+     */
+    private Integer createUser;
+
+    /**
+     * 是否删除(1是 0否)
+     */
+    private Boolean isDelete;
+
+    /**
+     * 是否授权(1未授权 2授权)
+     */
+    private Integer authType;
+
+    private String versionNum;
+
+    private Integer appVipTypeId;
+}

+ 29 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryAssoFunctionModuleDTO.java

@@ -0,0 +1,29 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/20
+ */
+@Data
+public class QueryAssoFunctionModuleDTO {
+    /**
+     * 模糊查询检索条件
+     */
+    private String vipName;
+    /**
+     * 每页条数
+     */
+    private Long pageSize;
+
+    /**
+     * 当前页数
+     */
+    private Long pageNum;
+
+    /**
+     * 数据总数
+     */
+    private Integer total;
+}

+ 12 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVersionInfoDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/20
+ */
+@Data
+public class QueryVersionInfoDTO {
+    private Integer id;
+}

+ 35 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVersionListDTO.java

@@ -0,0 +1,35 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/20
+ */
+@Data
+public class QueryVersionListDTO {
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 每页条数
+     */
+    private Long pageSize;
+
+    /**
+     * 当前页数
+     */
+    private Long pageNum;
+
+    /**
+     * 数据总数
+     */
+    private Integer total;
+}

+ 29 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVipDTO.java

@@ -0,0 +1,29 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/20
+ */
+@Data
+public class QueryVipDTO {
+    /**
+     * 模糊查询检索条件
+     */
+    private String vipName;
+    /**
+     * 每页条数
+     */
+    private Long pageSize;
+
+    /**
+     * 当前页数
+     */
+    private Long pageNum;
+
+    /**
+     * 数据总数
+     */
+    private Integer total;
+}

+ 1 - 1
PCS/src/main/java/cn/cslg/permission/common/model/dto/TenantVipTypeFunctionAddNewDTO.java

@@ -44,5 +44,5 @@ public class TenantVipTypeFunctionAddNewDTO implements Serializable {
      */
     private String createPersonName;
 
-
+    private Integer useType;
 }

+ 54 - 0
PCS/src/main/java/cn/cslg/permission/common/model/dto/VersionDTO.java

@@ -0,0 +1,54 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+public class VersionDTO {
+    private Integer id;
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 文件
+     */
+    private String fileGuid;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 功能与代码
+     */
+    private List<AssoFunctionCodeDTO> assoFunctionCodeDTOS;
+
+    /**
+     * 创建人id
+     */
+    private Integer createUser;
+
+    /**
+     * 是否删除(1是 0否)
+     */
+    private Boolean isDelete;
+
+    /**
+     * 是否授权(1未授权 2授权)
+     */
+    private Integer authType;
+
+}

+ 53 - 0
PCS/src/main/java/cn/cslg/permission/common/model/vo/AppVipTypeVO.java

@@ -0,0 +1,53 @@
+package cn.cslg.permission.common.model.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/22
+ */
+@Data
+public class AppVipTypeVO {
+    /**
+     * app的id
+     */
+    private Integer id;
+
+    /**
+     * 应用代码
+     */
+    private String applicationCode;
+
+    /**
+     * 会员类型id
+     */
+    private Integer tenantVipTypeId;
+
+    /**
+     * 持续时长 月
+     */
+    private Integer lastTime;
+
+    /**
+     * 租户会员类型名称
+     */
+    private String tenantVipName;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人ID
+     */
+    private Integer createPersonId;
+    /**
+     * 创建人姓名
+     */
+    private String createPersonName;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}

+ 49 - 0
PCS/src/main/java/cn/cslg/permission/common/model/vo/VersionVO.java

@@ -0,0 +1,49 @@
+package cn.cslg.permission.common.model.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+public class VersionVO {
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+    private Integer versionId;
+    /**
+     * 版本号
+     */
+    private String version;
+
+    /**
+     * 版本文件
+     */
+    private String fileGuid;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private Integer functionId;
+
+    private String code;
+
+    private Integer authType;
+
+    private Integer createUser;
+
+    private String createPersonName;
+
+    private Date createTime;
+}

+ 38 - 0
PCS/src/main/java/cn/cslg/permission/common/model/vo/associate/AssoFunctionModuleVO.java

@@ -0,0 +1,38 @@
+package cn.cslg.permission.common.model.vo.associate;
+
+import cn.cslg.permission.common.model.dto.AssoFunctionCodeDTO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/27
+ */
+@Data
+public class AssoFunctionModuleVO {
+    private Integer id;
+
+    private Integer functionId;
+
+    private String code;
+
+    /**
+     * 创建人id
+     */
+    private Integer createUser;
+
+    /**
+     * 是否删除(1是 0否)
+     */
+    private Boolean isDelete;
+
+    /**
+     * 是否授权(1未授权 2授权)
+     */
+    private Integer authType;
+
+    private String versionNum;
+
+    private Integer appVipTypeId;
+}

+ 3 - 2
PCS/src/main/java/cn/cslg/permission/controller/TenantVipTypeController.java

@@ -33,12 +33,13 @@ public class TenantVipTypeController {
     public String addNew(@RequestBody TenantVipTypeFunctionAddNewDTO tenantVipTypeFunctionAddNewDTO) {
         log.info("开始处理【新增租户会员类型】的请求,参数为:{}", tenantVipTypeFunctionAddNewDTO);
         if (tenantVipTypeFunctionAddNewDTO != null) {
+            Integer id = null;
             try {
-                tenantVipTypeService.addNew(tenantVipTypeFunctionAddNewDTO);
+                id = tenantVipTypeService.addNew(tenantVipTypeFunctionAddNewDTO);
             } catch (XiaoShiException e) {
                 return Response.error(e.getMessage());
             }
-            return Response.success("新增租户会员类型完成");
+            return Response.success("新增租户会员类型完成" + id);
         }
         return Response.error();
     }

+ 55 - 0
PCS/src/main/java/cn/cslg/permission/controller/qiaobi/AssoFunctionModuleController.java

@@ -0,0 +1,55 @@
+package cn.cslg.permission.controller.qiaobi;
+
+import cn.cslg.permission.common.core.base.Constants;
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.AppVipTypeDTO;
+import cn.cslg.permission.common.model.dto.AssoFunctionModuleDTO;
+import cn.cslg.permission.common.model.dto.AssoFunctionModuleUpdateDTO;
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
+import cn.cslg.permission.common.utils.Response;
+import cn.cslg.permission.service.associate.AssoFunctionModuleService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/28
+ */
+@Tag(name = "功能模块关联")
+@RestController
+@RequestMapping(Constants.PERMISSION_API + "/assoFunctionModule")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class AssoFunctionModuleController {
+    private final AssoFunctionModuleService assoFunctionModuleService;
+
+
+
+    @Operation(summary = "修改")
+    @PostMapping("/update")
+    public String update(@RequestBody AssoFunctionModuleUpdateDTO assoFunctionModuleUpdateDTO) {
+        Records records = assoFunctionModuleService.update(assoFunctionModuleUpdateDTO);
+        return Response.success(records);
+    }
+
+//    @Operation(summary = "分页查询会员列表")
+//    @PostMapping("/query")
+//    public String query(@RequestBody QueryVipDTO queryVipDTO){
+//        Records records = appVipTypeService.queryAppVipType(queryVipDTO);
+//        return Response.success(records);
+//    }
+
+    @Operation(summary = "根据ids删除信息")
+    @PostMapping("/delete")
+    public String delete(@RequestBody List<Integer> ids) {
+        if (ids != null) {
+            assoFunctionModuleService.delete(ids);
+            return Response.success("删除成功");
+        }
+        return Response.error("删除失败");
+    }
+}

+ 74 - 0
PCS/src/main/java/cn/cslg/permission/controller/qiaobi/VersionController.java

@@ -0,0 +1,74 @@
+package cn.cslg.permission.controller.qiaobi;
+
+import cn.cslg.permission.common.core.base.Constants;
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.QueryVersionInfoDTO;
+import cn.cslg.permission.common.model.dto.QueryVersionListDTO;
+import cn.cslg.permission.common.model.dto.VersionDTO;
+import cn.cslg.permission.common.utils.Response;
+import cn.cslg.permission.service.VersionService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Slf4j
+@RestController
+@RequestMapping(Constants.PERMISSION_API + "/version")
+public class VersionController {
+    @Autowired
+    private VersionService versionService;
+
+    @Operation(summary = "添加版本")
+    @PostMapping("/add")
+    public String add(@RequestBody VersionDTO versionDTO) {
+        Records records = versionService.add(versionDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "修改版本")
+    @PostMapping("/update")
+    public String update(@RequestBody VersionDTO versionDTO) {
+        Records records = versionService.update(versionDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "分页查询版本列表")
+    @PostMapping("/queryVersionList")
+    public String queryVersionList(@RequestBody QueryVersionListDTO queryVersionListDTO){
+        Records records = versionService.queryVersionList(queryVersionListDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询版本详情")
+    @PostMapping("/queryVersionInfo")
+    public String queryVersionInfo(@RequestBody QueryVersionInfoDTO queryVersionInfoDTO){
+        Records records = versionService.queryVersionInfo(queryVersionInfoDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "根据id查询版本信息")
+    @GetMapping("/queryById")
+    public String queryById(Integer id){
+        Records records = new Records();
+        if (id != null) {
+            records = versionService.queryById(id);
+        }
+        return Response.success(records);
+    }
+
+//    @Operation(summary = "根据ids删除后续事项数据信息")
+//    @PostMapping("/delete")
+//    public Response delete(@RequestBody List<Integer> ids) {
+//        log.info("开始处理【删除后续事项】的请求,请求参数为:{}", ids);
+//        if (ids != null) {
+//            followUpService.delete(ids);
+//            return Response.success("删除后续事项完成");
+//        }
+//        return Response.error("请求参数为null");
+//    }
+}

+ 44 - 0
PCS/src/main/java/cn/cslg/permission/controller/qiaobi/VipTypeController.java

@@ -1,6 +1,9 @@
 package cn.cslg.permission.controller.qiaobi;
 
 import cn.cslg.permission.common.core.base.Constants;
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.AppVipTypeDTO;
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVIPTypeVO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVipTypeDTO;
 import cn.cslg.permission.common.utils.Response;
@@ -33,4 +36,45 @@ public class VipTypeController {
       return Response.success(qiaoBiVIPTypeVOList);
     }
 
+    @Operation(summary = "添加会员")
+    @PostMapping("/add")
+    public String add(@RequestBody AppVipTypeDTO appVipTypeDTO) {
+        Records records = appVipTypeService.add(appVipTypeDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "修改会员")
+    @PostMapping("/update")
+    public String update(@RequestBody AppVipTypeDTO appVipTypeDTO) {
+        Records records = appVipTypeService.update(appVipTypeDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "分页查询会员列表")
+    @PostMapping("/query")
+    public String query(@RequestBody QueryVipDTO queryVipDTO){
+        Records records = appVipTypeService.queryAppVipType(queryVipDTO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "根据id查询会员信息")
+    @GetMapping("/queryById")
+    public String queryById(Integer id){
+        Records records = new Records();
+        if (id != null) {
+            records = appVipTypeService.getVipById(id);
+        }
+        return Response.success(records);
+    }
+
+    @Operation(summary = "根据ids删除应用会员信息")
+    @PostMapping("/delete")
+    public String delete(@RequestBody List<Integer> ids) {
+        if (ids != null) {
+            appVipTypeService.delete(ids);
+            return Response.success("删除成功");
+        }
+        return Response.error("删除失败");
+    }
+
 }

+ 4 - 1
PCS/src/main/java/cn/cslg/permission/domain/TenantVipType.java

@@ -49,5 +49,8 @@ public class TenantVipType implements Serializable {
      * 创建人姓名
      */
     private String createPersonName;
-
+    /**
+     * 应用会员设置为1
+     */
+    private Integer useType;
 }

+ 42 - 0
PCS/src/main/java/cn/cslg/permission/domain/Version.java

@@ -0,0 +1,42 @@
+package cn.cslg.permission.domain;
+
+import cn.cslg.permission.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 版本
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+@Accessors(chain = true)
+@TableName("VERSION")
+public class Version extends Model {
+    private Integer id;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 版本文件
+     */
+    private String fileGuid;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 7 - 0
PCS/src/main/java/cn/cslg/permission/domain/associate/AssoFunctionModule.java

@@ -42,4 +42,11 @@ public class AssoFunctionModule extends BaseEntity<AssoFunctionModule> {
      */
     @TableField(value = "VERSION")
     private String version;
+
+    /**
+     * 版本
+     */
+    @TableField(value = "VERSION_ID")
+    private Integer versionId;
+
 }

+ 13 - 0
PCS/src/main/java/cn/cslg/permission/mapper/VersionMapper.java

@@ -0,0 +1,13 @@
+package cn.cslg.permission.mapper;
+
+import cn.cslg.permission.domain.Version;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Mapper
+public interface VersionMapper extends BaseMapper<Version> {
+}

+ 4 - 0
PCS/src/main/java/cn/cslg/permission/mapper/qiaobi/AppVipTypeMapper.java

@@ -1,9 +1,12 @@
 package cn.cslg.permission.mapper.qiaobi;
 
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVIPTypeVO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVipTypeDTO;
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
 import cn.cslg.permission.domain.qiaobi.AppVipType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -15,6 +18,7 @@ import java.util.List;
 */
 public interface AppVipTypeMapper extends BaseMapper<AppVipType> {
     public List<QiaoBiVIPTypeVO> queryQiaobiVipTypeVOs(QiaoBiVipTypeDTO qiaoBiVipTypeDTO);
+    List<AppVipTypeVO> queryAppVipType(QueryVipDTO queryVipDTO);
 }
 
 

+ 1 - 1
PCS/src/main/java/cn/cslg/permission/service/ITenantVipTypeService.java

@@ -21,7 +21,7 @@ public interface ITenantVipTypeService extends IService<TenantVipType> {
      * @param tenantVipTypeFunctionAddNewDTO 租户会员类型和功能数据对象
      */
     @Transactional
-    void addNew(TenantVipTypeFunctionAddNewDTO tenantVipTypeFunctionAddNewDTO);
+    Integer addNew(TenantVipTypeFunctionAddNewDTO tenantVipTypeFunctionAddNewDTO);
 
     /**
      * 分页查询租户会员类型(包含对应的功能权限)列表

+ 137 - 0
PCS/src/main/java/cn/cslg/permission/service/VersionService.java

@@ -0,0 +1,137 @@
+package cn.cslg.permission.service;
+
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.*;
+import cn.cslg.permission.common.model.vo.VersionVO;
+import cn.cslg.permission.domain.Version;
+import cn.cslg.permission.domain.associate.AssoFunctionModule;
+import cn.cslg.permission.mapper.VersionMapper;
+import cn.cslg.permission.service.associate.AssoFunctionModuleService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class VersionService extends ServiceImpl<VersionMapper, Version> {
+    private final AssoFunctionModuleService assoFunctionModuleService;
+
+    /**
+     * 新增
+     */
+    public Records add(VersionDTO versionDTO) {
+        Records records = new Records();
+        Version version = new Version();
+        BeanUtils.copyProperties(versionDTO, version);
+        version.insert();
+        Integer id = version.getId();
+        String versionNum = version.getVersionNum();
+        List<AssoFunctionModuleDTO> assoFunctionModuleDTOS = new ArrayList<>();
+        List<AssoFunctionCodeDTO> codeDTOS = versionDTO.getAssoFunctionCodeDTOS();
+        if (!codeDTOS.isEmpty()) {
+            for (AssoFunctionCodeDTO codeDTO : codeDTOS) {
+                AssoFunctionModuleDTO assoFunctionModuleDTO = new AssoFunctionModuleDTO();
+                // 代码和功能赋值
+                assoFunctionModuleDTO.setFunctionId(codeDTO.getFunctionId());
+                assoFunctionModuleDTO.setCode(codeDTO.getCode());
+                // 版本id
+                assoFunctionModuleDTO.setVersionId(id);
+                // 版本号
+                assoFunctionModuleDTO.setVersion(versionNum);
+                // 字段配置
+                assoFunctionModuleDTO.setAuthType(versionDTO.getAuthType());
+                assoFunctionModuleDTO.setCreateUser(versionDTO.getCreateUser());
+                assoFunctionModuleDTO.setIsDelete(false);
+                assoFunctionModuleDTOS.add(assoFunctionModuleDTO);
+            }
+            assoFunctionModuleService.add(assoFunctionModuleDTOS);
+        }
+        records.setRecords(version.getId());
+        return records;
+    }
+
+    /**
+     *
+     */
+    public Records update(VersionDTO versionDTO) {
+        Records records = new Records();
+        Integer id = versionDTO.getId();
+        Version version = this.getById(id);
+        BeanUtils.copyProperties(versionDTO, version);
+        version.updateById();
+        records.setRecords(id);
+        return records;
+    }
+
+    public Records queryVersionList(QueryVersionListDTO queryVersionListDTO){
+        Records records = new Records();
+        Long current = queryVersionListDTO.getPageNum();
+        Long size = queryVersionListDTO.getPageSize();
+        String versionName = queryVersionListDTO.getVersionName();
+        String versionNum = queryVersionListDTO.getVersionNum();
+
+        LambdaQueryWrapper<Version> queryWrapper = new LambdaQueryWrapper<>();
+        IPage<Version> versions = this.page(new Page<>(current, size), queryWrapper);
+        List<Version> retrieveRecordList = versions.getRecords();
+
+        records.setCurrent(current);
+        records.setSize(current);
+        records.setTotal(versions.getTotal());
+
+        records.setRecords(retrieveRecordList);
+        return records;
+    }
+
+    public Records queryVersionInfo(QueryVersionInfoDTO queryVersionInfoDTO){
+        Records records = new Records();
+        VersionVO versionVO = new VersionVO();
+        Integer versionId = queryVersionInfoDTO.getId();
+        Version version = this.getById(versionId);
+        if (version != null) {
+            versionVO.setVersion(version.getVersionNum());
+            versionVO.setVersionId(version.getId());
+            versionVO.setVersionName(version.getVersionName());
+            versionVO.setRemark(version.getRemark());
+            versionVO.setFileGuid(version.getFileGuid());
+            LambdaQueryWrapper<AssoFunctionModule> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(AssoFunctionModule::getVersionId, versionId);
+            AssoFunctionModule assoFunctionModule = assoFunctionModuleService.getOne(queryWrapper, false);
+            if (assoFunctionModule != null) {
+                versionVO.setAuthType(assoFunctionModule.getAuthType());
+                versionVO.setFunctionId(assoFunctionModule.getFunctionId());
+                versionVO.setCode(assoFunctionModule.getCode());
+                versionVO.setCreateUser(assoFunctionModule.getCreateUser());
+                versionVO.setCreateTime(assoFunctionModule.getCreateTime());
+            }
+        }
+        records.setRecords(versionVO);
+        return records;
+    }
+
+    public Records queryById(Integer id){
+        Records records = new Records();
+        VersionVO versionVO = new VersionVO();
+        Version version = this.getById(id);
+        BeanUtils.copyProperties(version, versionVO);
+        records.setRecords(versionVO);
+        return records;
+    }
+
+    public Records delete(List<Integer> ids){
+        Records records = new Records();
+        return records;
+    }
+}

+ 76 - 0
PCS/src/main/java/cn/cslg/permission/service/associate/AssoFunctionModuleService.java

@@ -0,0 +1,76 @@
+package cn.cslg.permission.service.associate;
+
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.*;
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
+import cn.cslg.permission.domain.TenantVipType;
+import cn.cslg.permission.domain.associate.AssoFunctionModule;
+import cn.cslg.permission.domain.qiaobi.AppVipType;
+import cn.cslg.permission.mapper.associate.AssoFunctionModuleMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/28
+ */
+@Service
+@RequiredArgsConstructor
+public class AssoFunctionModuleService extends ServiceImpl<AssoFunctionModuleMapper, AssoFunctionModule> {
+
+    /**
+     * 新增
+     */
+    public Records add(List<AssoFunctionModuleDTO> assoFunctionModuleDTOS) {
+        Records records = new Records();
+        List<Integer> ids = new ArrayList<>();
+        List<AssoFunctionModule> assoFunctionModules = new ArrayList<>();
+        for (AssoFunctionModuleDTO assoFunctionModuleDTO : assoFunctionModuleDTOS) {
+            AssoFunctionModule assoFunctionModule = new AssoFunctionModule();
+            BeanUtils.copyProperties(assoFunctionModuleDTO, assoFunctionModule);
+            assoFunctionModule.setFunctionId(assoFunctionModuleDTO.getFunctionId());
+            assoFunctionModule.setCode(assoFunctionModuleDTO.getCode());
+            assoFunctionModules.add(assoFunctionModule);
+        }
+        if (!assoFunctionModules.isEmpty()) {
+            this.saveBatch(assoFunctionModules);
+            ids = assoFunctionModules.stream().map(AssoFunctionModule::getId).collect(Collectors.toList());
+        }
+        records.setRecords(ids);
+        return records;
+    }
+
+    /**
+     * 更新
+     */
+    public Records update(AssoFunctionModuleUpdateDTO updateDTO) {
+        Records records = new Records();
+        AssoFunctionModule assoFunctionModule = this.getById(updateDTO.getId());
+        BeanUtils.copyProperties(updateDTO, assoFunctionModule);
+        assoFunctionModule.updateById();
+        records.setRecords(assoFunctionModule.getId());
+        return records;
+    }
+
+    public Records queryAssoFunctionModules(QueryAssoFunctionModuleDTO queryDTO) {
+        Records records = new Records();
+        Long current = queryDTO.getPageNum();
+        Long size = queryDTO.getPageSize();
+        records.setCurrent(current);
+        records.setSize(size);
+        return records;
+    }
+
+
+
+    public void delete(List<Integer> ids){
+        this.removeByIds(ids);
+    }
+
+}

+ 67 - 67
PCS/src/main/java/cn/cslg/permission/service/impl/TenantVipTypeService.java

@@ -4,14 +4,11 @@ import cn.cslg.permission.common.JsonPage;
 import cn.cslg.permission.common.model.dto.PageDTO2;
 import cn.cslg.permission.common.model.dto.TenantVipTypeFunctionAddNewDTO;
 import cn.cslg.permission.common.model.dto.TenantVipTypeFunctionUpdateDTO;
-import cn.cslg.permission.common.model.vo.FunctionVO2;
-import cn.cslg.permission.common.model.vo.TenantVO;
 import cn.cslg.permission.common.model.vo.TenantVipTypeFunctionVO;
 import cn.cslg.permission.common.utils.ThrowException;
 import cn.cslg.permission.domain.AssoTenantVipTypeAndFunction;
 import cn.cslg.permission.domain.FunctionIdPathNameDescription;
 import cn.cslg.permission.domain.TenantVipType;
-import cn.cslg.permission.exception.XiaoShiException;
 import cn.cslg.permission.mapper.AssoTenantVipTypeFunctionMapper;
 import cn.cslg.permission.mapper.FunctionMapper;
 import cn.cslg.permission.mapper.TenantMapper;
@@ -53,7 +50,7 @@ public class TenantVipTypeService extends ServiceImpl<TenantVipTypeMapper, Tenan
      * @param tenantVipTypeFunctionAddNewDTO 租户会员类型和功能数据对象
      */
     @Override
-    public void addNew(TenantVipTypeFunctionAddNewDTO tenantVipTypeFunctionAddNewDTO) {
+    public Integer addNew(TenantVipTypeFunctionAddNewDTO tenantVipTypeFunctionAddNewDTO) {
         log.info("开始处理【新增租户会员类型】的业务,参数为:{}", tenantVipTypeFunctionAddNewDTO);
 
         //检查会员名称是否已存在
@@ -82,39 +79,40 @@ public class TenantVipTypeService extends ServiceImpl<TenantVipTypeMapper, Tenan
         ArrayList<AssoTenantVipTypeAndFunction> assoTenantVipTypeAndFunctions = new ArrayList<>();
         //从DTO中取出功能组件权限路径集合,遍历集合给会员和功能关联表实体类赋值
         List<String> functionModifyPaths = tenantVipTypeFunctionAddNewDTO.getFunctionModifyPaths();
-        for (String functionModifyPath : functionModifyPaths) {
-            //从功能组件树路径中提取出功能id
-            //仁杰的方法:int functionId = Integer.parseInt(functionModifyPath.split(",")[functionModifyPath.split(",").length - 1])
-            int functionId = Integer.parseInt(functionModifyPath.substring(functionModifyPath.lastIndexOf(",") + 1));
-            //租户会员类型tenantVipTypeId、功能functionId、功能组件树路径functionModifyPath赋值给租户会员类型和功能关联表实体类
-            AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction = new AssoTenantVipTypeAndFunction()
-                    .setTenantVipTypeId(tenantVipTypeId)
-                    .setFunctionId(functionId)
-                    .setFunctionModifyPath(functionModifyPath);
-            assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction);
-//            //根据当前功能id查询其下未展示的子级功能
-//            List<FunctionVO2> functionVO2s = functionMapper.selectNotShowChildrenById(functionId);
-//            for (FunctionVO2 functionVO2 : functionVO2s) {
-//                String path = functionVO2.getPath();
-//                Integer notShowChidlrenFunctionId = functionVO2.getId();
-//                Integer applicationId = functionVO2.getApplicationId();
-//                String notShowChildrenFunctionModifyPath = applicationId + "," + path.substring(path.indexOf(",") + 1) + "," + notShowChidlrenFunctionId;
-//                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction2 = new AssoTenantVipTypeAndFunction()
-//                        .setTenantVipTypeId(tenantVipTypeId)
-//                        .setFunctionId(notShowChidlrenFunctionId)
-//                        .setFunctionModifyPath(notShowChildrenFunctionModifyPath);
-//                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction2);
-//            }
-        }
-        //数据入会员和功能关联表
-        log.info("数据插入租户会员类型和功能关联表");
-        rows = assoTenantVipTypeFunctionMapper.insertBatch(assoTenantVipTypeAndFunctions);
-        if (rows != assoTenantVipTypeAndFunctions.size()) {
-            ThrowException.throwXiaoShiException("新增租户会员类型失败,数据入会员和功能关联表失败,服务器忙请稍后再试");
+        if (functionModifyPaths != null && !functionModifyPaths.isEmpty()) {
+            for (String functionModifyPath : functionModifyPaths) {
+                //从功能组件树路径中提取出功能id
+                //仁杰的方法:int functionId = Integer.parseInt(functionModifyPath.split(",")[functionModifyPath.split(",").length - 1])
+                int functionId = Integer.parseInt(functionModifyPath.substring(functionModifyPath.lastIndexOf(",") + 1));
+                //租户会员类型tenantVipTypeId、功能functionId、功能组件树路径functionModifyPath赋值给租户会员类型和功能关联表实体类
+                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction = new AssoTenantVipTypeAndFunction()
+                        .setTenantVipTypeId(tenantVipTypeId)
+                        .setFunctionId(functionId)
+                        .setFunctionModifyPath(functionModifyPath);
+                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction);
+    //            //根据当前功能id查询其下未展示的子级功能
+    //            List<FunctionVO2> functionVO2s = functionMapper.selectNotShowChildrenById(functionId);
+    //            for (FunctionVO2 functionVO2 : functionVO2s) {
+    //                String path = functionVO2.getPath();
+    //                Integer notShowChidlrenFunctionId = functionVO2.getId();
+    //                Integer applicationId = functionVO2.getApplicationId();
+    //                String notShowChildrenFunctionModifyPath = applicationId + "," + path.substring(path.indexOf(",") + 1) + "," + notShowChidlrenFunctionId;
+    //                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction2 = new AssoTenantVipTypeAndFunction()
+    //                        .setTenantVipTypeId(tenantVipTypeId)
+    //                        .setFunctionId(notShowChidlrenFunctionId)
+    //                        .setFunctionModifyPath(notShowChildrenFunctionModifyPath);
+    //                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction2);
+    //            }
+            }
+            //数据入会员和功能关联表
+            log.info("数据插入租户会员类型和功能关联表");
+            rows = assoTenantVipTypeFunctionMapper.insertBatch(assoTenantVipTypeAndFunctions);
+            if (rows != assoTenantVipTypeAndFunctions.size()) {
+                ThrowException.throwXiaoShiException("新增租户会员类型失败,数据入会员和功能关联表失败,服务器忙请稍后再试");
+            }
         }
-
         log.info("新增租户会员类型完成");
-
+        return tenantVipTypeId;
     }
 
     /**
@@ -210,39 +208,40 @@ public class TenantVipTypeService extends ServiceImpl<TenantVipTypeMapper, Tenan
         //新数据入会员和功能关联表
         List<AssoTenantVipTypeAndFunction> assoTenantVipTypeAndFunctions = new ArrayList<>();
         List<String> functionModifyPaths = tenantVipTypeFunctionUpdateDTO.getFunctionModifyPaths();
-        for (String functionModifyPath : functionModifyPaths) {
-            //按逗号拆分路径,取拆分后的String[]中最后一个元素,将该元素转换为Integer类型
-            //我的方法:↓
-            //String functionStringId = functionModifyPath.substring(functionModifyPath.lastIndexOf(",") + 1);
-            //int functionId = Integer.parseInt(functionStringId);
-            //仁杰方法:↓
-            String functionStringId = functionModifyPath.split(",")[functionModifyPath.split(",").length - 1];
-            int functionId = Integer.parseInt(functionStringId);
-            AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction = new AssoTenantVipTypeAndFunction()
-                    .setTenantVipTypeId(tenantVipTypeId)
-                    .setFunctionId(functionId)
-                    .setFunctionModifyPath(functionModifyPath);
-            assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction);
-//            //根据当前功能id查询其下未展示的子级功能
-//            List<FunctionVO2> functionVO2s = functionMapper.selectNotShowChildrenById(functionId);
-//            for (FunctionVO2 functionVO2 : functionVO2s) {
-//                String path = functionVO2.getPath();
-//                Integer notShowChidlrenFunctionId = functionVO2.getId();
-//                Integer applicationId = functionVO2.getApplicationId();
-//                String notShowChildrenFunctionModifyPath = applicationId + "," + path.substring(path.indexOf(",") + 1) + "," + notShowChidlrenFunctionId;
-//                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction2 = new AssoTenantVipTypeAndFunction()
-//                        .setTenantVipTypeId(tenantVipTypeId)
-//                        .setFunctionId(notShowChidlrenFunctionId)
-//                        .setFunctionModifyPath(notShowChildrenFunctionModifyPath);
-//                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction2);
-//            }
-        }
-        log.info("新数据入会员和功能关联表");
-        rows = assoTenantVipTypeFunctionMapper.insertBatch(assoTenantVipTypeAndFunctions);
-        if (rows != functionModifyPaths.size()) {
-            ThrowException.throwXiaoShiException("修改失败,新数据入会员和功能关联表失败,服务器忙请稍后再试");
+        if (functionModifyPaths != null && !functionModifyPaths.isEmpty()) {
+            for (String functionModifyPath : functionModifyPaths) {
+                //按逗号拆分路径,取拆分后的String[]中最后一个元素,将该元素转换为Integer类型
+                //我的方法:↓
+                //String functionStringId = functionModifyPath.substring(functionModifyPath.lastIndexOf(",") + 1);
+                //int functionId = Integer.parseInt(functionStringId);
+                //仁杰方法:↓
+                String functionStringId = functionModifyPath.split(",")[functionModifyPath.split(",").length - 1];
+                int functionId = Integer.parseInt(functionStringId);
+                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction = new AssoTenantVipTypeAndFunction()
+                        .setTenantVipTypeId(tenantVipTypeId)
+                        .setFunctionId(functionId)
+                        .setFunctionModifyPath(functionModifyPath);
+                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction);
+    //            //根据当前功能id查询其下未展示的子级功能
+    //            List<FunctionVO2> functionVO2s = functionMapper.selectNotShowChildrenById(functionId);
+    //            for (FunctionVO2 functionVO2 : functionVO2s) {
+    //                String path = functionVO2.getPath();
+    //                Integer notShowChidlrenFunctionId = functionVO2.getId();
+    //                Integer applicationId = functionVO2.getApplicationId();
+    //                String notShowChildrenFunctionModifyPath = applicationId + "," + path.substring(path.indexOf(",") + 1) + "," + notShowChidlrenFunctionId;
+    //                AssoTenantVipTypeAndFunction assoTenantVipTypeAndFunction2 = new AssoTenantVipTypeAndFunction()
+    //                        .setTenantVipTypeId(tenantVipTypeId)
+    //                        .setFunctionId(notShowChidlrenFunctionId)
+    //                        .setFunctionModifyPath(notShowChildrenFunctionModifyPath);
+    //                assoTenantVipTypeAndFunctions.add(assoTenantVipTypeAndFunction2);
+    //            }
+            }
+            log.info("新数据入会员和功能关联表");
+            rows = assoTenantVipTypeFunctionMapper.insertBatch(assoTenantVipTypeAndFunctions);
+            if (rows != functionModifyPaths.size()) {
+                ThrowException.throwXiaoShiException("修改失败,新数据入会员和功能关联表失败,服务器忙请稍后再试");
+            }
         }
-
         log.info("修改租户会员类型完成");
 
     }
@@ -283,4 +282,5 @@ public class TenantVipTypeService extends ServiceImpl<TenantVipTypeMapper, Tenan
 
     }
 
+
 }

+ 110 - 0
PCS/src/main/java/cn/cslg/permission/service/qiaobi/AppVipTypeService.java

@@ -1,12 +1,22 @@
 package cn.cslg.permission.service.qiaobi;
 
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.AppVipTypeDTO;
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
+import cn.cslg.permission.common.model.dto.TenantVipTypeFunctionAddNewDTO;
+import cn.cslg.permission.common.model.dto.TenantVipTypeFunctionUpdateDTO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVIPTypeVO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVipTypeDTO;
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
+import cn.cslg.permission.domain.TenantVipType;
 import cn.cslg.permission.domain.qiaobi.AppVipType;
 import cn.cslg.permission.mapper.qiaobi.AppVipTypeMapper;
+import cn.cslg.permission.service.impl.TenantVipTypeService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -17,7 +27,10 @@ import java.util.List;
  * @createDate 2024-10-31 14:42:32
  */
 @Service
+@RequiredArgsConstructor
 public class AppVipTypeService extends ServiceImpl<AppVipTypeMapper, AppVipType> {
+    private final TenantVipTypeService tenantVipTypeService;
+    private final AppVipTypeMapper appVipTypeMapper;
 
     public List<QiaoBiVIPTypeVO> qiaoBiVIPTypeVOList(QiaoBiVipTypeDTO qiaoBiVipTypeDTO) {
         qiaoBiVipTypeDTO.setAppCode("4e95e3d926a2a4befa5d913acc0aa9f5");
@@ -30,6 +43,103 @@ public class AppVipTypeService extends ServiceImpl<AppVipTypeMapper, AppVipType>
         AppVipType appVipType =this.getOne(queryWrapper);
         return appVipType;
     }
+
+    /**
+     * 新增
+     */
+    public Records add(AppVipTypeDTO appVipTypeDTO) {
+        Records records = new Records();
+        Integer id = null;
+        try {
+            TenantVipTypeFunctionAddNewDTO addNewDTO = new TenantVipTypeFunctionAddNewDTO();
+            addNewDTO.setTenantVipName(appVipTypeDTO.getTenantVipName());
+            addNewDTO.setRemark(appVipTypeDTO.getRemark());
+            addNewDTO.setEnable(appVipTypeDTO.getEnable());
+            addNewDTO.setCreatePersonId(1);
+            addNewDTO.setCreatePersonName("管理员");
+            addNewDTO.setUseType(1);
+            Integer tenantVipTypeId = tenantVipTypeService.addNew(addNewDTO);
+            if (tenantVipTypeId != null) {
+                AppVipType appVipType = new AppVipType();
+                appVipType.setTenantVipTypeId(tenantVipTypeId);
+                appVipType.setLastTime(appVipTypeDTO.getLastTime());
+                appVipType.setApplicationCode("4e95e3d926a2a4befa5d913acc0aa9f5");
+                appVipType.insert();
+                id = appVipType.getId();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        records.setRecords(id);
+        return records;
+    }
+
+    /**
+     * 更新
+     */
+    public Records update(AppVipTypeDTO appVipTypeDTO) {
+        Records records = new Records();
+        Integer id = appVipTypeDTO.getId();
+        try {
+            if (id != null) {
+                AppVipType appVipType = this.getById(id);
+                Integer tenantVipTypeId = appVipType.getTenantVipTypeId();
+                appVipType.setLastTime(appVipTypeDTO.getLastTime());
+                appVipType.updateById();
+                TenantVipTypeFunctionUpdateDTO updateDTO = new TenantVipTypeFunctionUpdateDTO();
+                BeanUtils.copyProperties(appVipTypeDTO, updateDTO);
+                updateDTO.setId(tenantVipTypeId);
+                tenantVipTypeService.update(updateDTO);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        records.setRecords(id);
+        return records;
+    }
+
+    public Records queryAppVipType(QueryVipDTO queryVipDTO) {
+        Records records = new Records();
+        Long current = queryVipDTO.getPageNum();
+        Long size = queryVipDTO.getPageSize();
+        List<AppVipTypeVO> appVipTypeVOS = appVipTypeMapper.queryAppVipType(queryVipDTO);
+        records.setRecords(appVipTypeVOS);
+        records.setCurrent(current);
+        records.setSize(size);
+        records.setTotal((long) appVipTypeVOS.size());
+        return records;
+    }
+
+    public Records getVipById(Integer id){
+        Records records = new Records();
+        AppVipTypeVO appVipTypeVO = new AppVipTypeVO();
+        AppVipType appVipType = this.getById(id);
+        if (appVipType != null) {
+            Integer tenantVipTypeId = appVipType.getTenantVipTypeId();
+            TenantVipType tenantVipType = tenantVipTypeService.getById(tenantVipTypeId);
+            BeanUtils.copyProperties(appVipType, appVipTypeVO);
+            appVipTypeVO.setTenantVipName(tenantVipType.getTenantVipName());
+            appVipTypeVO.setCreatePersonId(tenantVipType.getCreatePersonId());
+            appVipTypeVO.setCreatePersonName(tenantVipType.getCreatePersonName());
+            appVipTypeVO.setCreateTime(tenantVipType.getCreateTime());
+            appVipTypeVO.setRemark(tenantVipType.getRemark());
+        }
+        records.setRecords(appVipTypeVO);
+        return records;
+    }
+
+    public void delete(List<Integer> ids){
+        //首先,删除关联的tenantVipType
+        for (Integer id : ids) {
+            AppVipType appVipType = this.getById(id);
+            Integer tenantTypeId = appVipType.getTenantVipTypeId();
+            if (tenantTypeId != null) {
+                tenantVipTypeService.delete(tenantTypeId);
+                this.removeById(id);
+            }
+        }
+
+    }
 }
 
 

+ 28 - 0
PCS/src/main/resources/mapper/AppVipTypeMapper.xml

@@ -15,4 +15,32 @@
             </if>
         </where>
     </select>
+
+    <select id="queryAppVipType" resultMap="queryAppVipTypeMap">
+        SELECT A.ID as APP_ID,
+               A.APPLICATION_CODE,
+               A.LAST_TIME,
+               B.ID AS TENANT_VIP_TYPE_ID,
+               B.TENANT_VIP_NAME,
+               B.REMARK,
+               B.CREATE_PERSON_ID,
+               B.CREATE_PERSON_NAME,
+               B.CREATE_TIME
+        FROM APP_VIP_TYPE A
+        LEFT JOIN TENANT_VIP_TYPE B
+        ON A.TENANT_VIP_TYPE_ID = B.ID
+        LIMIT #{pageSize}
+    </select>
+
+    <resultMap id="queryAppVipTypeMap" type="cn.cslg.permission.common.model.vo.AppVipTypeVO">
+        <id column="APP_ID" property="id"/>
+        <result column="APPLICATION_CODE" property="applicationCode"/>
+        <result column="LAST_TIME" property="lastTime"/>
+        <result column="TENANT_VIP_TYPE_ID" property="tenantVipTypeId"/>
+        <result column="REMARK" property="remark"/>
+        <result column="CREATE_PERSON_ID" property="createPersonId"/>
+        <result column="CREATE_PERSON_NAME" property="createPersonName"/>
+        <result column="CREATE_TIME" property="createTime"/>
+    </resultMap>
+
 </mapper>

+ 7 - 3
PCS/src/main/resources/mapper/TenantVipTypeMapper.xml

@@ -7,8 +7,8 @@
     <!--插入数据-->
     <!--int insert(TenantVipType tenantVipType);-->
     <insert id="insert" useGeneratedKeys="true" keyProperty="id">
-        insert into TENANT_VIP_TYPE (TENANT_VIP_NAME, REMARK, ENABLE, CREATE_TIME, CREATE_PERSON_ID, CREATE_PERSON_NAME)
-        VALUES (#{tenantVipName}, #{remark}, #{enable}, #{createTime}, #{createPersonId}, #{createPersonName})
+        insert into TENANT_VIP_TYPE (TENANT_VIP_NAME, REMARK, ENABLE, CREATE_TIME, CREATE_PERSON_ID, CREATE_PERSON_NAME, USE_TYPE)
+        VALUES (#{tenantVipName}, #{remark}, #{enable}, #{createTime}, #{createPersonId}, #{createPersonName}, #{useType})
     </insert>
 
     <!--根据名称统计数量-->
@@ -27,7 +27,8 @@
         REMARK,
         CREATE_PERSON_ID,
         CREATE_PERSON_NAME,
-        CREATE_TIME
+        CREATE_TIME,
+        USE_TYPE
         from TENANT_VIP_TYPE
         <where>
             USE_TYPE is null
@@ -95,6 +96,9 @@
             <if test="createPersonName != null">
                 CREATE_PERSON_NAME = #{createPersonName},
             </if>
+            <if test="useType != null">
+               USE_TYPE = #{useType},
+            </if>
         </set>
         where ID = #{id}
     </update>

TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/Application.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/GlobalException.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/AsyncExceptionHandler.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/AsyncTaskPoolConfig.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/InnerInterceptor/LizzMybatisIntercepts.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/MailConstants.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/MybatisPlusConfig.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/SaTokenConfigure.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/config/SpringDocConfig.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/annotation/AnnotationParse.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/annotation/LoggerAspect.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/annotation/Permission.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/Constants$1.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/Constants.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/DocFlag.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/EStatus.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/RedisConf.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/base/RequestHolder.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/exception/BaseException.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/exception/CustomException.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/core/exception/PermissionException.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/AreaAddressDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/ClassNumberDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/CommonData.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/CustomFieldDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/PageDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/ProjectFieldOrderDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/TaskWebSocketDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/TenantDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/dto/UploadFileDTO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/LoginVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/SysDictVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/UserVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoDepartRolVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoPerRolVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoUserGroupPersonnelVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/model/vo/associate/AssoUserGroupRoleVO.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/BackupUtils$Backup.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/BackupUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/DataUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/DateUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/ExcelUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/FileUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/FormatUtil.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$1.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$2.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils$3.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/JsonUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/RequestDataHelper.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/Response.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/SecurityUtils/SecurityUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/ServletUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/SoMap.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/SpringContextUtil.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/SpringUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/StringUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/TestUtils.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/WebSocketServer.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/auth/AuthAop.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/common/utils/auth/checkAuth.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/ApplicationController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/DataController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/FunctionController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/LoginController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/PositionController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/RoleController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/SysDictController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/SystemController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/TenantController.class


TEMPAT SAMPAH
PCS/target/classes/cn/cslg/permission/controller/UserGroupController.class


+ 0 - 0
PCS/target/classes/cn/cslg/permission/domain/System.class


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini