Ver código fonte

xiexiang 11/27

xiexiang 10 meses atrás
pai
commit
55fb85657c
22 arquivos alterados com 796 adições e 75 exclusões
  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. 38 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/AssoFunctionModuleDTO.java
  4. 35 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVersionDTO.java
  5. 29 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/QueryVipDTO.java
  6. 1 1
      PCS/src/main/java/cn/cslg/permission/common/model/dto/TenantVipTypeFunctionAddNewDTO.java
  7. 32 0
      PCS/src/main/java/cn/cslg/permission/common/model/dto/VersionDTO.java
  8. 53 0
      PCS/src/main/java/cn/cslg/permission/common/model/vo/AppVipTypeVO.java
  9. 32 0
      PCS/src/main/java/cn/cslg/permission/common/model/vo/VersionVO.java
  10. 67 0
      PCS/src/main/java/cn/cslg/permission/controller/AppVipTypeController.java
  11. 3 2
      PCS/src/main/java/cn/cslg/permission/controller/TenantVipTypeController.java
  12. 68 0
      PCS/src/main/java/cn/cslg/permission/controller/VersionController.java
  13. 4 1
      PCS/src/main/java/cn/cslg/permission/domain/TenantVipType.java
  14. 45 0
      PCS/src/main/java/cn/cslg/permission/domain/Version.java
  15. 13 0
      PCS/src/main/java/cn/cslg/permission/mapper/VersionMapper.java
  16. 4 0
      PCS/src/main/java/cn/cslg/permission/mapper/qiaobi/AppVipTypeMapper.java
  17. 1 1
      PCS/src/main/java/cn/cslg/permission/service/ITenantVipTypeService.java
  18. 88 0
      PCS/src/main/java/cn/cslg/permission/service/VersionService.java
  19. 67 67
      PCS/src/main/java/cn/cslg/permission/service/impl/TenantVipTypeService.java
  20. 110 0
      PCS/src/main/java/cn/cslg/permission/service/qiaobi/AppVipTypeService.java
  21. 28 0
      PCS/src/main/resources/mapper/AppVipTypeMapper.xml
  22. 7 3
      PCS/src/main/resources/mapper/TenantVipTypeMapper.xml

+ 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;
+}

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

@@ -0,0 +1,38 @@
+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 id;
+
+    private List<AssoFunctionCodeDTO> assoFunctionCodeDTOS;
+
+    /**
+     * 创建人id
+     */
+    private Integer createUser;
+
+    /**
+     * 是否删除(1是 0否)
+     */
+    private Boolean isDelete;
+
+    /**
+     * 是否授权(1未授权 2授权)
+     */
+    private Integer authType;
+
+    private String versionNum;
+
+    private Integer appVipTypeId;
+}

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

@@ -0,0 +1,35 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/20
+ */
+@Data
+public class QueryVersionDTO {
+    /**
+     * 版本号
+     */
+    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;
 }

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

@@ -0,0 +1,32 @@
+package cn.cslg.permission.common.model.dto;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+public class VersionDTO {
+    private Integer id;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 版本文件
+     */
+    private String versionFile;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 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;
+}

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

@@ -0,0 +1,32 @@
+package cn.cslg.permission.common.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Data
+public class VersionVO {
+    private Integer id;
+
+    /**
+     * 版本名称
+     */
+    private String versionName;
+
+    /**
+     * 版本号
+     */
+    private String versionNum;
+
+    /**
+     * 版本文件
+     */
+    private String versionFile;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 67 - 0
PCS/src/main/java/cn/cslg/permission/controller/AppVipTypeController.java

@@ -0,0 +1,67 @@
+package cn.cslg.permission.controller;
+
+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.utils.Response;
+import cn.cslg.permission.service.qiaobi.AppVipTypeService;
+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.*;
+
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Slf4j
+@RestController
+@RequestMapping(Constants.PERMISSION_API + "/appVipType")
+public class AppVipTypeController {
+    @Autowired
+    private AppVipTypeService appVipTypeService;
+
+    @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("删除失败");
+    }
+}

+ 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();
     }

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

@@ -0,0 +1,68 @@
+package cn.cslg.permission.controller;
+
+import cn.cslg.permission.common.core.base.Constants;
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.QueryVersionDTO;
+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.*;
+
+import java.util.List;
+
+/**
+ * @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("/query")
+    public String query(@RequestBody QueryVersionDTO queryVersionDTO){
+        Records records = versionService.query(queryVersionDTO);
+        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");
+//    }
+}

+ 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;
 }

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

@@ -0,0 +1,45 @@
+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 versionFile;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String createId;
+
+    private Date createTime;
+}

+ 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);
 
     /**
      * 分页查询租户会员类型(包含对应的功能权限)列表

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

@@ -0,0 +1,88 @@
+package cn.cslg.permission.service;
+
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.QueryVersionDTO;
+import cn.cslg.permission.common.model.dto.VersionDTO;
+import cn.cslg.permission.common.model.vo.VersionVO;
+import cn.cslg.permission.domain.Version;
+import cn.cslg.permission.mapper.VersionMapper;
+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.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2024/11/19
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class VersionService extends ServiceImpl<VersionMapper, Version> {
+    /**
+     * 新增
+     */
+    public Records add(VersionDTO versionDTO) {
+        Records records = new Records();
+        Version version = new Version();
+        BeanUtils.copyProperties(versionDTO, version);
+        version.setCreateId("328");
+        version.insert();
+        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 query(QueryVersionDTO queryVersionDTO){
+        Records records = new Records();
+        Long current = queryVersionDTO.getPageNum();
+        Long size = queryVersionDTO.getPageSize();
+        String versionName = queryVersionDTO.getVersionName();
+        String versionNum = queryVersionDTO.getVersionNum();
+
+        LambdaQueryWrapper<Version> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.orderByDesc(Version::getCreateTime);
+        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 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;
+    }
+}

+ 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>