Compare commits
1 Commits
v2-db-revi
...
pigx_ishar
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f270a972e |
280
DATABASE_DESIGN.md
Normal file
280
DATABASE_DESIGN.md
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
# iShare (AiShare) 数据库设计文档
|
||||||
|
|
||||||
|
> 模块: `as-app-server` — iShare 项目新增的核心业务模块(pigx-5.2 原版中不存在)
|
||||||
|
>
|
||||||
|
> 生成日期: 2026-02-16
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、数据库表清单
|
||||||
|
|
||||||
|
### 1. 核心业务表(as_* — iShare 新增)
|
||||||
|
|
||||||
|
| 表名 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| `as_platform` | 流媒体平台(Netflix、Spotify 等) |
|
||||||
|
| `as_platform_type` | 平台分类(视频、音乐等) |
|
||||||
|
| `as_sub_plan` | 订阅计划(如 Netflix 标准版、高级版) |
|
||||||
|
| `as_sub_payroll` | 付费方案(月付/季付/年付 + 价格) |
|
||||||
|
| `as_sub_account` | 订阅账号(实际的平台登录凭据) |
|
||||||
|
| `as_sub_product` | 订阅产品(面向用户的合租商品) |
|
||||||
|
| `as_sub_product_comment` | 产品评价 |
|
||||||
|
| `as_user_sub` | 用户订阅关系(用户参与的合租) |
|
||||||
|
|
||||||
|
### 2. App 基础表(app_* — 来自 pigx-app 模板,SQL 中有建表语句)
|
||||||
|
|
||||||
|
| 表名 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| `app_user` | App 用户 |
|
||||||
|
| `app_role` | App 角色 |
|
||||||
|
| `app_user_role` | 用户-角色关联 |
|
||||||
|
| `app_social_details` | 社交登录配置(微信小程序等) |
|
||||||
|
| `app_article` | 文章资讯 |
|
||||||
|
| `app_article_category` | 文章分类 |
|
||||||
|
| `app_article_collect` | 文章收藏 |
|
||||||
|
| `app_page` | 页面装修(首页/个人中心 JSON 配置) |
|
||||||
|
| `app_tabbar` | 底部导航栏 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、核心业务表详细结构
|
||||||
|
|
||||||
|
### 2.1 `as_platform` — 流媒体平台
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `platform_name` | varchar | 平台名称 |
|
||||||
|
| `platform_type` | int | 平台类型(关联 as_platform_type),0=全部 |
|
||||||
|
| `icon` | varchar | 应用图标 URL |
|
||||||
|
| `company` | varchar | 所属公司 |
|
||||||
|
| `website` | varchar | 平台官网 |
|
||||||
|
| `sort_order` | varchar | 排序 |
|
||||||
|
| `product_code` | varchar | 产品编码(格式: 类型_名称_id) |
|
||||||
|
|
||||||
|
### 2.2 `as_platform_type` — 平台类型
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `name` | varchar | 类型名称(如:视频、音乐、AI) |
|
||||||
|
| `platform_type` | int | 类型编号,0=全部 |
|
||||||
|
| `sort_order` | varchar | 排序 |
|
||||||
|
|
||||||
|
### 2.3 `as_sub_plan` — 订阅计划
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 计划 ID |
|
||||||
|
| `name` | varchar | 计划名称(如:标准版、高级版) |
|
||||||
|
| `platform_id` | varchar | 所属平台 ID |
|
||||||
|
| `capacity` | varchar | 用户容量(可共享席位数) |
|
||||||
|
| `remark` | varchar | 备注 |
|
||||||
|
| `sort_order` | varchar | 排序 |
|
||||||
|
|
||||||
|
### 2.4 `as_sub_payroll` — 付费方案
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `sub_plans` | bigint | 关联的订阅计划 ID |
|
||||||
|
| `platform_id` | int | 平台 ID |
|
||||||
|
| `payroll` | int | 付费周期:1=月付, 2=季付, 3=年付 |
|
||||||
|
| `price` | decimal | 价格 |
|
||||||
|
| `currency` | varchar | 货币(CNY/USD 等) |
|
||||||
|
| `region` | varchar | 地区 |
|
||||||
|
| `product_code` | varchar | 产品编码 |
|
||||||
|
|
||||||
|
### 2.5 `as_sub_account` — 订阅账号
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `product_id` | bigint | 关联产品 ID |
|
||||||
|
| `sub_plan_id` | int | 订阅计划 ID |
|
||||||
|
| `user_id` | int | 账号持有者(主用户) |
|
||||||
|
| `sub_payroll_id` | int | 付费方案 ID |
|
||||||
|
| `region` | varchar | 地区 |
|
||||||
|
| `share_type` | int | 分享类型 |
|
||||||
|
| `account_type` | int | 账号类型 |
|
||||||
|
| `renew_date` | datetime | 续费日期 |
|
||||||
|
| `platform_id` | int | 平台 ID |
|
||||||
|
| `account_name` | varchar | 平台登录用户名 |
|
||||||
|
| `account_passwd` | varchar | 平台登录密码 |
|
||||||
|
| `passwd_salt` | int | 密码盐值 |
|
||||||
|
|
||||||
|
### 2.6 `as_sub_product` — 订阅产品(合租商品)
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `star` | int | 综合评分 |
|
||||||
|
| `title` | varchar | 产品标题 |
|
||||||
|
| `description` | varchar | 描述 |
|
||||||
|
| `tags` | varchar | 标签(逗号分隔) |
|
||||||
|
| `sub_plan_ids` | varchar | 关联的订阅计划 ID 列表 |
|
||||||
|
| `amount` | decimal | 总价 |
|
||||||
|
| `user_id` | bigint | 发布者用户 ID |
|
||||||
|
| `product_type` | bigint | 产品类型:1=自营, 2=个人 |
|
||||||
|
| `create_time` | datetime | 创建时间 |
|
||||||
|
| `update_time` | datetime | 更新时间 |
|
||||||
|
| `product_code` | varchar | 产品编码(类型_名称_id) |
|
||||||
|
| `sub_type` | bigint | 订阅类型:1=单品, 2=多品(组合) |
|
||||||
|
|
||||||
|
### 2.7 `as_sub_product_comment` — 产品评价
|
||||||
|
|
||||||
|
> 注: 实体类 `@TableName` 误标为 `as_sub_product`,实际应为 `as_sub_product_comment`
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `star` | int | 评分 |
|
||||||
|
| `comment` | varchar | 评价内容 |
|
||||||
|
| `user_id` | bigint | 评价用户 |
|
||||||
|
| `product_id` | bigint | 关联产品 ID |
|
||||||
|
| `create_time` | datetime | 创建时间 |
|
||||||
|
| `update_time` | datetime | 更新时间 |
|
||||||
|
|
||||||
|
### 2.8 `as_user_sub` — 用户订阅关系
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `id` | bigint (PK, ASSIGN_ID) | 主键 |
|
||||||
|
| `platform_id` | int | 平台 ID |
|
||||||
|
| `capacity` | int | 总容量(席位数) |
|
||||||
|
| `capacity_loaded` | int | 已占用容量 |
|
||||||
|
| `plan_id` | int | 订阅计划 ID |
|
||||||
|
| `user_id` | int | 用户 ID |
|
||||||
|
| `main_account` | int | 主账号 ID(关联 as_sub_account) |
|
||||||
|
| `region` | varchar | 地区 |
|
||||||
|
| `target_ip` | varchar | 目标 IP(用于区域限制) |
|
||||||
|
| `remark` | int | 备注 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、App 基础表详细结构
|
||||||
|
|
||||||
|
### 3.1 `app_user` — App 用户
|
||||||
|
|
||||||
|
| 字段 | 类型 | 约束 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| `user_id` | bigint | PK | 用户 ID |
|
||||||
|
| `username` | varchar(255) | | 用户名 |
|
||||||
|
| `password` | varchar(255) | | 密码(BCrypt) |
|
||||||
|
| `salt` | varchar(255) | | 盐值 |
|
||||||
|
| `phone` | varchar(20) | | 手机号 |
|
||||||
|
| `avatar` | varchar(255) | | 头像 |
|
||||||
|
| `nickname` | varchar(64) | | 昵称 |
|
||||||
|
| `name` | varchar(64) | | 姓名 |
|
||||||
|
| `email` | varchar(128) | | 邮箱 |
|
||||||
|
| `wx_openid` | varchar(32) | | 微信 OpenID |
|
||||||
|
| `lock_flag` | char(1) | 默认 '0' | 锁定状态 |
|
||||||
|
| `del_flag` | char(1) | 默认 '0' | 删除标志 |
|
||||||
|
| `tenant_id` | bigint | NOT NULL | 租户 ID |
|
||||||
|
| `create_by/update_by` | varchar(64) | | 操作人 |
|
||||||
|
| `create_time/update_time` | datetime | | 时间戳 |
|
||||||
|
| `last_modified_time` | datetime | | 最后密码修改时间 |
|
||||||
|
|
||||||
|
### 3.2 `app_role` — 角色表
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `role_id` | bigint (PK) | 角色 ID |
|
||||||
|
| `role_name` | varchar(64) | 角色名 |
|
||||||
|
| `role_code` | varchar(64) | 角色编码(如 APP_USER) |
|
||||||
|
| `role_desc` | varchar(255) | 描述 |
|
||||||
|
| `tenant_id` | bigint | 租户 ID |
|
||||||
|
|
||||||
|
### 3.3 `app_user_role` — 用户角色关联
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `user_id` | bigint (PK) | 用户 ID |
|
||||||
|
| `role_id` | bigint (PK) | 角色 ID |
|
||||||
|
|
||||||
|
### 3.4 其他 App 表
|
||||||
|
|
||||||
|
- **`app_social_details`**: 社交登录配置(type/app_id/app_secret/redirect_url)
|
||||||
|
- **`app_article`**: 文章(title/intro/content/author/visit/sort/cid→分类)
|
||||||
|
- **`app_article_category`**: 文章分类(name/sort/is_show)
|
||||||
|
- **`app_article_collect`**: 文章收藏(user_id/article_id)
|
||||||
|
- **`app_page`**: 页面装修(page_type/page_name/page_data JSON)
|
||||||
|
- **`app_tabbar`**: 底部导航(name/selected/unselected 图标/link JSON)
|
||||||
|
|
||||||
|
所有 app_* 表均包含 `del_flag`, `create_by`, `update_by`, `create_time`, `update_time`, `tenant_id` 公共字段。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、ER 关系
|
||||||
|
|
||||||
|
```
|
||||||
|
as_platform_type (1) ──< (N) as_platform [platform_type]
|
||||||
|
as_platform (1) ──< (N) as_sub_plan [platform_id]
|
||||||
|
as_sub_plan (1) ──< (N) as_sub_payroll [sub_plans]
|
||||||
|
as_sub_plan (N) >──< (N) as_sub_product [sub_plan_ids, 逗号分隔]
|
||||||
|
as_sub_product (1) ──< (N) as_sub_product_comment [product_id]
|
||||||
|
as_sub_product (1) ──< (N) as_sub_account [product_id]
|
||||||
|
as_sub_plan (1) ──< (N) as_sub_account [sub_plan_id]
|
||||||
|
as_sub_payroll (1) ──< (N) as_sub_account [sub_payroll_id]
|
||||||
|
as_sub_plan (1) ──< (N) as_user_sub [plan_id]
|
||||||
|
as_sub_account (1) ──< (N) as_user_sub [main_account]
|
||||||
|
|
||||||
|
app_user (1) ──< (N) as_sub_product [user_id — 产品发布者]
|
||||||
|
app_user (1) ──< (N) as_sub_account [user_id — 账号持有者]
|
||||||
|
app_user (1) ──< (N) as_user_sub [user_id — 订阅参与者]
|
||||||
|
app_user (1) ──< (N) as_sub_product_comment [user_id]
|
||||||
|
|
||||||
|
app_user (N) >──< (N) app_role [通过 app_user_role]
|
||||||
|
app_article_category (1) ──< (N) app_article [cid]
|
||||||
|
app_user (1) ──< (N) app_article_collect [user_id]
|
||||||
|
app_article (1) ──< (N) app_article_collect [article_id]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、核心业务模型总结
|
||||||
|
|
||||||
|
iShare 是一个 **流媒体账号合租平台**,核心业务流程:
|
||||||
|
|
||||||
|
```
|
||||||
|
平台类型 (as_platform_type)
|
||||||
|
└── 平台 (as_platform): Netflix, Spotify, ChatGPT...
|
||||||
|
└── 订阅计划 (as_sub_plan): 标准版、高级版(含容量/席位数)
|
||||||
|
└── 付费方案 (as_sub_payroll): 月/季/年付 + 价格
|
||||||
|
└── 订阅账号 (as_sub_account): 实际登录凭据
|
||||||
|
|
||||||
|
订阅产品 (as_sub_product): 面向用户的合租商品
|
||||||
|
├── 关联多个订阅计划 (sub_plan_ids)
|
||||||
|
├── 产品类型: 自营(1) / 个人(2)
|
||||||
|
├── 订阅类型: 单品(1) / 多品组合(2)
|
||||||
|
└── 产品评价 (as_sub_product_comment)
|
||||||
|
|
||||||
|
用户订阅 (as_user_sub): 用户参与合租
|
||||||
|
├── 关联平台、计划、主账号
|
||||||
|
└── 容量管理 (capacity / capacity_loaded)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 关键业务概念
|
||||||
|
|
||||||
|
1. **平台 (Platform)**: 流媒体服务商,按类型分类
|
||||||
|
2. **订阅计划 (SubPlan)**: 平台的会员等级,定义席位容量
|
||||||
|
3. **付费方案 (SubPayroll)**: 计划的定价策略(支持多地区多货币)
|
||||||
|
4. **订阅账号 (SubAccount)**: 实际的平台账号密码,由主用户持有
|
||||||
|
5. **订阅产品 (SubProduct)**: 合租商品,可组合多个计划,支持自营/个人发布
|
||||||
|
6. **用户订阅 (UserSub)**: 用户加入合租的记录,跟踪席位占用
|
||||||
|
7. **产品评价 (SubProductComment)**: 用户对合租产品的评分和评论
|
||||||
|
|
||||||
|
### 代码注意事项
|
||||||
|
|
||||||
|
⚠️ `AsSubProductComment` 实体类的 `@TableName("as_sub_product")` 可能是 bug,应为 `as_sub_product_comment`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、SQL 建表语句
|
||||||
|
|
||||||
|
核心业务表(as_*)**没有在 SQL 脚本中找到建表语句**,仅在 Java 实体类中定义。这些表可能通过以下方式创建:
|
||||||
|
- MyBatis-Plus 自动建表
|
||||||
|
- 手动在数据库中创建
|
||||||
|
- 尚未提交的 migration 脚本
|
||||||
|
|
||||||
|
App 基础表的完整建表语句见: `db/999pigxx_app.sql`
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
|
||||||
|
协议和授权
|
||||||
|
pigX并非一个开源软件,作者保留全部的权利。
|
||||||
|
擅自窃用,即属严重侵权行为,与盗窃无异。产生的一切任何后果责任由侵权者自负。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
🌹权益
|
||||||
|
个人学习、毕设
|
||||||
|
|
||||||
|
|
||||||
|
🚫禁止
|
||||||
|
将本项目的部分或全部代码和资源进行任何形式的再发行(尤其上传GitHub、Gitee )
|
||||||
|
利用本项目的部分或全部代码和资源进行任何商业行为
|
||||||
|
|
||||||
|
免责声明
|
||||||
|
|
||||||
|
PigX 未对任何组织、团队,书面授权商业使用。如若出现任何商业后果、纠纷和本人无关,特此声明
|
||||||
|
|
||||||
|
Author: lengleng (wangiegie@gmail.com)
|
||||||
37
as-app-server/as-app-server-api/pom.xml
Normal file
37
as-app-server/as-app-server-api/pom.xml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||||
|
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>as-app-server</artifactId>
|
||||||
|
<version>5.2.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>as-app-server-api</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!--core 工具类-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--mybatis plus extension,包含了mybatis plus core-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-extension</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--feign 工具类-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-feign</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- excel 导入导出 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-excel</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "APP用户传输对象")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class AppUserDTO extends AppUser {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "角色id集合")
|
||||||
|
private List<Long> role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新密码
|
||||||
|
*/
|
||||||
|
@Schema(description = "新密码")
|
||||||
|
private String newpassword1;
|
||||||
|
|
||||||
|
@Schema(description = "验证码")
|
||||||
|
private String mobileCode;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2017/11/11
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "用户信息")
|
||||||
|
public class AppUserInfo implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户基本信息
|
||||||
|
*/
|
||||||
|
@Schema(description = "用户基本信息")
|
||||||
|
private AppUser appUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限标识集合
|
||||||
|
*/
|
||||||
|
@Schema(description = "权限标识集合")
|
||||||
|
private String[] permissions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色集合
|
||||||
|
*/
|
||||||
|
@Schema(description = "角色标识集合")
|
||||||
|
private Long[] roles;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ami
|
||||||
|
* @date 2023/10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AppUserInfoDto implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "userId")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@Schema(description = "用户名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号 -> 加密&模糊梳理
|
||||||
|
*/
|
||||||
|
// @Schema(description = "手机号")
|
||||||
|
// private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
@Schema(description = "头像")
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱 -> 加密&模糊梳理
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:邮箱")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属租户
|
||||||
|
*/
|
||||||
|
// @Schema(description = "所属租户", hidden = true)
|
||||||
|
// private Long tenantId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubProduct;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "网站首页数据传输对象")
|
||||||
|
public class AsInitDTO {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//合租产品信息
|
||||||
|
//title price desc icon orderType/自营/个人
|
||||||
|
|
||||||
|
private List<AsSubProduct> products;
|
||||||
|
private List<SubOrderDTO> orders;
|
||||||
|
|
||||||
|
|
||||||
|
//合租订单展示
|
||||||
|
//title desc price
|
||||||
|
//用户评价
|
||||||
|
//用户名 头像 使用时常(上车时间) 评论时间 评分?
|
||||||
|
|
||||||
|
//最近订单?ws推送
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "订阅统计数据传输对象")
|
||||||
|
public class AsUserSubDTO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅数量
|
||||||
|
*/
|
||||||
|
private Integer subCount;
|
||||||
|
/**
|
||||||
|
* 平台id
|
||||||
|
*/
|
||||||
|
private Integer platformId;
|
||||||
|
/**
|
||||||
|
* 平台名称
|
||||||
|
*/
|
||||||
|
private String platformName;
|
||||||
|
private String subPrice;
|
||||||
|
private String title;
|
||||||
|
private List<SubComment> comments;//object
|
||||||
|
private List<RealTimeOrder> realTimeOrders;//object
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页实时订单
|
||||||
|
*/
|
||||||
|
public class RealTimeOrder {
|
||||||
|
|
||||||
|
//order time
|
||||||
|
|
||||||
|
//platform id
|
||||||
|
|
||||||
|
//subtype id
|
||||||
|
|
||||||
|
//user id
|
||||||
|
|
||||||
|
//avatar
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅评价
|
||||||
|
*/
|
||||||
|
public class SubComment {
|
||||||
|
|
||||||
|
//comment time
|
||||||
|
|
||||||
|
//comment
|
||||||
|
|
||||||
|
//id
|
||||||
|
|
||||||
|
//avatar
|
||||||
|
|
||||||
|
//name
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅订单DTO
|
||||||
|
*/
|
||||||
|
public class SubOrderDTO {
|
||||||
|
|
||||||
|
//order time
|
||||||
|
|
||||||
|
//platform id
|
||||||
|
|
||||||
|
//subtype id
|
||||||
|
|
||||||
|
//user id
|
||||||
|
|
||||||
|
//avatar
|
||||||
|
|
||||||
|
//comment
|
||||||
|
|
||||||
|
//star
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.dto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅产品DTO
|
||||||
|
*/
|
||||||
|
public class SubProductDTO {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章分类表
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:28:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_article_category")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "文章分类表")
|
||||||
|
public class AppArticleCategoryEntity extends Model<AppArticleCategoryEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名称
|
||||||
|
*/
|
||||||
|
@Schema(description = "名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
@Schema(description = "排序")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否显示: 0=否, 1=是
|
||||||
|
*/
|
||||||
|
@Schema(description = "是否显示: 0=否, 1=是")
|
||||||
|
private Integer isShow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除: 0=否, 1=是
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "是否删除: 0=否, 1=是")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章收藏表
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-16 14:33:41
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_article_collect")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "文章收藏表")
|
||||||
|
public class AppArticleCollectEntity extends Model<AppArticleCollectEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "用户ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "文章ID")
|
||||||
|
private Long articleId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章标题
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "是否删除")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.FieldNameConstants;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章资讯
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:32:35
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@FieldNameConstants
|
||||||
|
@TableName("app_article")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "文章资讯")
|
||||||
|
public class AppArticleEntity extends Model<AppArticleEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分类
|
||||||
|
*/
|
||||||
|
@Schema(description = "分类")
|
||||||
|
private Long cid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
@Schema(description = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简介
|
||||||
|
*/
|
||||||
|
@Schema(description = "简介")
|
||||||
|
private String intro;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 摘要
|
||||||
|
*/
|
||||||
|
@Schema(description = "摘要")
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封面
|
||||||
|
*/
|
||||||
|
@Schema(description = "封面")
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内容
|
||||||
|
*/
|
||||||
|
@Schema(description = "内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者
|
||||||
|
*/
|
||||||
|
@Schema(description = "作者")
|
||||||
|
private String author;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 浏览
|
||||||
|
*/
|
||||||
|
@Schema(description = "浏览")
|
||||||
|
private Integer visit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
@Schema(description = "排序")
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除时间
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "删除标志")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前用户是否已收藏
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private boolean collect;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分类名称
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String cname;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2023-06-08 11:19:23
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_page")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "页面")
|
||||||
|
public class AppPageEntity extends Model<AppPageEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面类型
|
||||||
|
*/
|
||||||
|
@Schema(description = "页面类型")
|
||||||
|
private Integer pageType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面名称
|
||||||
|
*/
|
||||||
|
@Schema(description = "页面名称")
|
||||||
|
private String pageName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面数据
|
||||||
|
*/
|
||||||
|
@Schema(description = "页面数据")
|
||||||
|
private String pageData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "修改人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "修改时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标记
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "删除标记")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_role")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "app角色表")
|
||||||
|
public class AppRole extends Model<AppRole> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleId
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "roleId")
|
||||||
|
private Long roleId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleName
|
||||||
|
*/
|
||||||
|
@Schema(description = "roleName")
|
||||||
|
private String roleName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleCode
|
||||||
|
*/
|
||||||
|
@Schema(description = "roleCode")
|
||||||
|
private String roleCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleDesc
|
||||||
|
*/
|
||||||
|
@Schema(description = "roleDesc")
|
||||||
|
private String roleDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人
|
||||||
|
*/
|
||||||
|
@Schema(description = "修改人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* createTime
|
||||||
|
*/
|
||||||
|
@Schema(description = "createTime")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* updateTime
|
||||||
|
*/
|
||||||
|
@Schema(description = "updateTime")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delFlag
|
||||||
|
*/
|
||||||
|
@Schema(description = "delFlag")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tenantId
|
||||||
|
*/
|
||||||
|
@Schema(description = "tenantId", hidden = true)
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.pig4cloud.pigx.common.core.sensitive.Sensitive;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.ValidGroup;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app 社交账号登录
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "第三方账号信息")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class AppSocialDetails extends Model<AppSocialDetails> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主鍵
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "类型不能为空")
|
||||||
|
@Schema(description = "账号类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
@Schema(description = "描述")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* appid
|
||||||
|
*/
|
||||||
|
@Sensitive(prefixNoMaskLen = 4, suffixNoMaskLen = 4)
|
||||||
|
@NotBlank(message = "账号不能为空")
|
||||||
|
@Schema(description = "appId")
|
||||||
|
private String appId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app_secret
|
||||||
|
*/
|
||||||
|
@Sensitive(prefixNoMaskLen = 4, suffixNoMaskLen = 4)
|
||||||
|
@NotBlank(message = "密钥不能为空", groups = { ValidGroup.Insert.class })
|
||||||
|
@Schema(description = "app secret")
|
||||||
|
private String appSecret;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回调地址
|
||||||
|
*/
|
||||||
|
@Schema(description = "回调地址")
|
||||||
|
private String redirectUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拓展字段
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段")
|
||||||
|
private String ext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.UPDATE)
|
||||||
|
@Schema(description = "修改人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
@TableField(fill = FieldFill.UPDATE)
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标记
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "删除标记,1:已删除,0:正常")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonRawValue;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导航栏
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2023-06-08 11:18:46
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_tabbar")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "导航栏")
|
||||||
|
public class AppTabbarEntity extends Model<AppTabbarEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导航名称
|
||||||
|
*/
|
||||||
|
@Schema(description = "导航名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 未选图标
|
||||||
|
*/
|
||||||
|
@Schema(description = "未选图标")
|
||||||
|
private String selected;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已选图标
|
||||||
|
*/
|
||||||
|
@Schema(description = "已选图标")
|
||||||
|
private String unselected;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 链接地址
|
||||||
|
*/
|
||||||
|
@Schema(description = "链接地址")
|
||||||
|
@JsonRawValue
|
||||||
|
@JsonDeserialize()
|
||||||
|
private String link;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新人")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标记
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@Schema(description = "删除标记")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app用户表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_user")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "app用户表")
|
||||||
|
public class AppUser extends Model<AppUser> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* userId
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "userId")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@Schema(description = "用户名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
|
@Schema(description = "密码")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 随机盐
|
||||||
|
*/
|
||||||
|
@JsonIgnore
|
||||||
|
@Schema(description = "随机盐")
|
||||||
|
private String salt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@Schema(description = "手机号")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
@Schema(description = "头像")
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:姓名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:邮箱")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建人")
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人
|
||||||
|
*/
|
||||||
|
@Schema(description = "修改人")
|
||||||
|
@TableField(fill = FieldFill.UPDATE)
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "修改时间")
|
||||||
|
@TableField(fill = FieldFill.UPDATE)
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标记
|
||||||
|
*/
|
||||||
|
@Schema(description = "删除标记,1:已删除,0:正常")
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@TableLogic
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属租户
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属租户", hidden = true)
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后一次密码修改时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "最后一次密码修改时间")
|
||||||
|
private LocalDateTime lastModifiedTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 锁定标记
|
||||||
|
*/
|
||||||
|
@Schema(description = "锁定标记")
|
||||||
|
private String lockFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信小程序登录openId
|
||||||
|
*/
|
||||||
|
@Schema(description = "微信小程序登录openId")
|
||||||
|
private String wxOpenid;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("app_user_role")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "用户角色表")
|
||||||
|
public class AppUserRole extends Model<AppUserRole> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "用户ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "角色ID")
|
||||||
|
private Long roleId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_platform")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "媒体平台表")
|
||||||
|
public class AsPlatform extends Model<AsPlatform> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "平台名称")
|
||||||
|
private String platformName;
|
||||||
|
@Schema(description = "平台类型 0:全部")
|
||||||
|
private Integer platformType;
|
||||||
|
@Schema(description = "应用图标")
|
||||||
|
private String icon;
|
||||||
|
@Schema(description = "公司")
|
||||||
|
private String company;
|
||||||
|
@Schema(description = "平台网站")
|
||||||
|
private String website;
|
||||||
|
@Schema(description = "sort")
|
||||||
|
private String sortOrder;
|
||||||
|
|
||||||
|
@Schema(description = "产品code: 类型_名称_id")
|
||||||
|
private String productCode;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 平台类型表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_platform_type")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "平台类型表")
|
||||||
|
public class AsPlatformType extends Model<AsPlatformType> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "名称")
|
||||||
|
private String name;
|
||||||
|
@Schema(description = "平台类型 0:全部")
|
||||||
|
private Integer platformType;
|
||||||
|
@Schema(description = "平台类型")
|
||||||
|
private String sortOrder;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流媒体订阅账号
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-08
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_sub_account")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "as流媒体订阅账号")
|
||||||
|
public class AsSubAccount extends Model<AsSubAccount> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品id
|
||||||
|
*/
|
||||||
|
@Schema(description = "product_id")
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅计划id
|
||||||
|
*/
|
||||||
|
@Schema(description = "sub_plan_id")
|
||||||
|
private Integer subPlanId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* main user
|
||||||
|
*/
|
||||||
|
@Schema(description = "user_id")
|
||||||
|
private Integer userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费计划id
|
||||||
|
*/
|
||||||
|
@Schema(description = "sub_payroll_id")
|
||||||
|
private Integer subPayrollId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地区
|
||||||
|
*/
|
||||||
|
@Schema(description = "region")
|
||||||
|
private String region;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分享类型
|
||||||
|
*/
|
||||||
|
@Schema(description = "share_type")
|
||||||
|
private Integer shareType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账号类型
|
||||||
|
*/
|
||||||
|
@Schema(description = "account_type")
|
||||||
|
private Integer accountType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 续费日期
|
||||||
|
*/
|
||||||
|
@Schema(description = "renew_date")
|
||||||
|
private LocalDateTime renewDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 平台id
|
||||||
|
*/
|
||||||
|
@Schema(description = "platform_id")
|
||||||
|
private Integer platformId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@Schema(description = "account_name")
|
||||||
|
private String accountName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户密码
|
||||||
|
*/
|
||||||
|
@Schema(description = "account_passwd")
|
||||||
|
private String accountPasswd;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码salt
|
||||||
|
*/
|
||||||
|
@Schema(description = "passwd_salt")
|
||||||
|
private Integer passwdSalt;
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费计划表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_sub_payroll")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "as付费计划")
|
||||||
|
public class AsSubPayroll extends Model<AsSubPayroll> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "ID")
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 订阅计划id +=,
|
||||||
|
*/
|
||||||
|
@Schema(description = "sub_plans")
|
||||||
|
private Long subPlans;
|
||||||
|
@Schema(description = "platform_id")
|
||||||
|
private Integer platformId;
|
||||||
|
/**
|
||||||
|
* 付费方式 月/季/年 - 1/2/3
|
||||||
|
*/
|
||||||
|
@Schema(description = "payroll")
|
||||||
|
private Integer payroll;
|
||||||
|
|
||||||
|
@Schema(description = "price")
|
||||||
|
private BigDecimal price;
|
||||||
|
@Schema(description = "currency")
|
||||||
|
private String currency;
|
||||||
|
@Schema(description = "region")
|
||||||
|
private String region;
|
||||||
|
@Schema(description = "产品code")
|
||||||
|
private String productCode;
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流媒体订阅计划表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_sub_plan")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "as订阅计划")
|
||||||
|
public class AsSubPlan extends Model<AsSubPlan> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "订阅计划ID")
|
||||||
|
private Long id;
|
||||||
|
@Schema(description = "订阅名称")
|
||||||
|
private String name;
|
||||||
|
@Schema(description = "平台id")
|
||||||
|
private String platformId;
|
||||||
|
@Schema(description = "用户容量")
|
||||||
|
private String capacity;
|
||||||
|
@Schema(description = "备注")
|
||||||
|
private String remark;
|
||||||
|
@Schema(description = "排序")
|
||||||
|
private String sortOrder;
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@TableName("as_sub_product")
|
||||||
|
@Schema(description = "订阅产品")
|
||||||
|
public class AsSubProduct {
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "综合评分")
|
||||||
|
private Integer star;
|
||||||
|
@Schema(description = "标题")
|
||||||
|
private String title;
|
||||||
|
@Schema(description = "描述")
|
||||||
|
private String description;
|
||||||
|
@Schema(description = "标签s")
|
||||||
|
private String Tags;
|
||||||
|
@Schema(description = "订阅ids")
|
||||||
|
private String subPlanIds;
|
||||||
|
@Schema(description = "总价")
|
||||||
|
private BigDecimal amount;
|
||||||
|
@Schema(description = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
@Schema(description = "产品类型 1自营 2个人")
|
||||||
|
private Long productType;
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
@Schema(description = "产品code: 类型_名称_id")
|
||||||
|
private String productCode;
|
||||||
|
@Schema(description = "订阅类型 1单品 2多品")
|
||||||
|
private Long subType;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@TableName("as_sub_product_comment")
|
||||||
|
@Schema(description = "订阅产品评价")
|
||||||
|
public class AsSubProductComment {
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "id")
|
||||||
|
private Long id;
|
||||||
|
@Schema(description = "评分")
|
||||||
|
private Integer star;
|
||||||
|
@Schema(description = "评价")
|
||||||
|
private String comment;
|
||||||
|
@Schema(description = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
@Schema(description = "产品id")
|
||||||
|
private Long productId;
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
@Schema(description = "更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.entity.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流媒体订阅计划表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("as_user_sub")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Schema(description = "账号订阅表")
|
||||||
|
public class AsUserSub extends Model<AsUserSub> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@Schema(description = "ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "platformId")
|
||||||
|
private Integer platformId;
|
||||||
|
|
||||||
|
@Schema(description = "capacity")
|
||||||
|
private Integer capacity;
|
||||||
|
|
||||||
|
@Schema(description = "capacity_loaded")
|
||||||
|
private Integer capacityLoaded;
|
||||||
|
|
||||||
|
@Schema(description = "plan_id")
|
||||||
|
private Integer planId;
|
||||||
|
@Schema(description = "user_id")
|
||||||
|
private Integer userId;
|
||||||
|
@Schema(description = "main_account")
|
||||||
|
private Integer mainAccount;
|
||||||
|
@Schema(description = "region")
|
||||||
|
private String region;
|
||||||
|
@Schema(description = "target_ip")
|
||||||
|
private String targetIp;
|
||||||
|
@Schema(description = "remark")
|
||||||
|
private Integer remark;
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.feign;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.SecurityConstants;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.ServiceNameConstants;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/6/22
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteAppUserService", value = ServiceNameConstants.APP_SERVER)
|
||||||
|
public interface RemoteAppUserService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过用户名查询用户、角色信息
|
||||||
|
* @param username 用户名
|
||||||
|
* @param from 调用标志
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@GetMapping("/appuser/info/{username}")
|
||||||
|
R<AppUserInfo> info(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM) String from);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过社交账号或手机号查询用户、角色信息
|
||||||
|
* @param inStr appid@code
|
||||||
|
* @param from 调用标志
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/appsocial/info/{inStr}")
|
||||||
|
R<AppUserInfo> social(@PathVariable("inStr") String inStr, @RequestHeader(SecurityConstants.FROM) String from);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 锁定用户
|
||||||
|
* @param username 用户名
|
||||||
|
* @param from 调用标识
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PutMapping("/appuser/lock/{username}")
|
||||||
|
R<Boolean> lockUser(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM) String from);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ExcelLine;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2020/2/10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "前端角色展示对象")
|
||||||
|
@ColumnWidth(30)
|
||||||
|
public class AppRoleExcelVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入时候回显行号
|
||||||
|
*/
|
||||||
|
@ExcelLine
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long lineNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleName
|
||||||
|
*/
|
||||||
|
@ExcelProperty("角色名称")
|
||||||
|
private String roleName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleCode
|
||||||
|
*/
|
||||||
|
@ExcelProperty("角色标识")
|
||||||
|
private String roleCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roleDesc
|
||||||
|
*/
|
||||||
|
@ExcelProperty("角色描述")
|
||||||
|
private String roleDesc;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.api.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2020/2/10
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "前端角色展示对象")
|
||||||
|
public class AppRoleVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色id
|
||||||
|
*/
|
||||||
|
private Long roleId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单列表
|
||||||
|
*/
|
||||||
|
private String menuIds;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ExcelLine;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ColumnWidth(30)
|
||||||
|
public class AppUserExcelVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入时候回显行号
|
||||||
|
*/
|
||||||
|
@ExcelLine
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long lineNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty("用户编号")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "用户名不能为空")
|
||||||
|
@ExcelProperty("用户名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "手机号不能为空")
|
||||||
|
@ExcelProperty("手机号")
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "昵称不能为空")
|
||||||
|
@ExcelProperty("昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "姓名不能为空")
|
||||||
|
@ExcelProperty("姓名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "邮箱不能为空")
|
||||||
|
@ExcelProperty("邮箱")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色列表
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "角色不能为空")
|
||||||
|
@ExcelProperty("角色")
|
||||||
|
private String roleNameList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 锁定标记
|
||||||
|
*/
|
||||||
|
@ExcelProperty("锁定标记,0:正常,9:已锁定")
|
||||||
|
private String lockFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package com.pig4cloud.pigx.app.api.vo;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppRole;
|
||||||
|
import com.pig4cloud.pigx.common.core.sensitive.Sensitive;
|
||||||
|
import com.pig4cloud.pigx.common.core.sensitive.SensitiveTypeEnum;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppUserVO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@Schema(description = "用户名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
|
@Schema(description = "密码")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@Schema(description = "手机号")
|
||||||
|
@Sensitive(type = SensitiveTypeEnum.MOBILE_PHONE)
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
@Schema(description = "头像")
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:姓名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱
|
||||||
|
*/
|
||||||
|
@Schema(description = "拓展字段:邮箱")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标记
|
||||||
|
*/
|
||||||
|
@Schema(description = "删除标记,1:已删除,0:正常")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属租户
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属租户")
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后一次密码修改时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "最后一次密码修改时间")
|
||||||
|
private LocalDateTime lastModifiedTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 锁定标记
|
||||||
|
*/
|
||||||
|
@Schema(description = "锁定标记")
|
||||||
|
private String lockFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色列表
|
||||||
|
*/
|
||||||
|
@Schema(description = "拥有的角色列表")
|
||||||
|
private List<AppRole> roleList;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
com.pig4cloud.pigx.common.feign.PigxFeignAutoConfiguration=\
|
||||||
|
com.pig4cloud.pigx.app.api.feign.RemoteAppUserService
|
||||||
18
as-app-server/as-app-server-biz/Dockerfile
Normal file
18
as-app-server/as-app-server-biz/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
FROM pig4cloud/java:8-jre
|
||||||
|
|
||||||
|
MAINTAINER wangiegie@gmail.com
|
||||||
|
|
||||||
|
ENV TZ=Asia/Shanghai
|
||||||
|
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
|
||||||
|
|
||||||
|
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
RUN mkdir -p /as-app-server
|
||||||
|
|
||||||
|
WORKDIR /as-app-server
|
||||||
|
|
||||||
|
EXPOSE 7060
|
||||||
|
|
||||||
|
ADD ./target/as-app-server-biz.jar ./
|
||||||
|
|
||||||
|
CMD sleep 60;java $JAVA_OPTS -jar as-app-server-biz.jar
|
||||||
105
as-app-server/as-app-server-biz/pom.xml
Normal file
105
as-app-server/as-app-server-biz/pom.xml
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||||
|
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>as-app-server</artifactId>
|
||||||
|
<version>5.2.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>as-app-server-biz</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!--必备: undertow容器-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-undertow</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: spring boot web-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: 注册中心客户端-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: 配置中心客户端-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: 操作数据源相关-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-data</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备:pigx安全模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-security</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备:xss 过滤模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-xss</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: sentinel 依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-sentinel</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: feign 依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-feign</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: 依赖api模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>as-app-server-api</artifactId>
|
||||||
|
<version>5.2.0</version>
|
||||||
|
</dependency>
|
||||||
|
<!--必备: log 依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-log</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--选配: mybatis 依赖 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--选配: druid 连接池 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--选配: mysql 数据库驱动 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--选配: swagger文档-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.pig4cloud</groupId>
|
||||||
|
<artifactId>pigx-common-swagger</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>io.fabric8</groupId>
|
||||||
|
<artifactId>docker-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.pig4cloud.pigx.app;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.common.feign.annotation.EnablePigxFeignClients;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer;
|
||||||
|
import com.pig4cloud.pigx.common.swagger.annotation.EnableOpenApi;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author pigx archetype
|
||||||
|
* <p>
|
||||||
|
* 项目启动类
|
||||||
|
*/
|
||||||
|
@EnableOpenApi("app")
|
||||||
|
@EnablePigxFeignClients
|
||||||
|
@EnableDiscoveryClient
|
||||||
|
@EnablePigxResourceServer
|
||||||
|
@SpringBootApplication
|
||||||
|
public class AsAppApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(AsAppApplication.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCategoryEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppArticleCategoryService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springdoc.api.annotations.ParameterObject;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章分类表
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:28:03
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appArticleCategory")
|
||||||
|
@Tag(description = "appArticleCategory", name = "文章分类表管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppArticleCategoryController {
|
||||||
|
|
||||||
|
private final AppArticleCategoryService appArticleCategoryService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appArticleCategory 文章分类表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@GetMapping("/page")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_view')")
|
||||||
|
public R getAppArticleCategoryPage(@ParameterObject Page page,
|
||||||
|
@ParameterObject AppArticleCategoryEntity appArticleCategory) {
|
||||||
|
LambdaQueryWrapper<AppArticleCategoryEntity> wrapper = Wrappers.lambdaQuery();
|
||||||
|
wrapper.like(StrUtil.isNotBlank(appArticleCategory.getName()), AppArticleCategoryEntity::getName,
|
||||||
|
appArticleCategory.getName());
|
||||||
|
return R.ok(appArticleCategoryService.page(page, wrapper));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询文章分类表
|
||||||
|
* @param id id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_view')")
|
||||||
|
public R getById(@PathVariable("id") Long id) {
|
||||||
|
return R.ok(appArticleCategoryService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过查询文章分类
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "查询文章分类", description = "查询文章分类")
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/list")
|
||||||
|
public R list() {
|
||||||
|
return R.ok(appArticleCategoryService.list());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增文章分类表
|
||||||
|
* @param appArticleCategory 文章分类表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增文章分类表", description = "新增文章分类表")
|
||||||
|
@SysLog("新增文章分类表")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_add')")
|
||||||
|
public R save(@RequestBody AppArticleCategoryEntity appArticleCategory) {
|
||||||
|
return R.ok(appArticleCategoryService.save(appArticleCategory));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改文章分类表
|
||||||
|
* @param appArticleCategory 文章分类表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改文章分类表", description = "修改文章分类表")
|
||||||
|
@SysLog("修改文章分类表")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_edit')")
|
||||||
|
public R updateById(@RequestBody AppArticleCategoryEntity appArticleCategory) {
|
||||||
|
return R.ok(appArticleCategoryService.updateById(appArticleCategory));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除文章分类表
|
||||||
|
* @param ids id列表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id删除文章分类表", description = "通过id删除文章分类表")
|
||||||
|
@SysLog("通过id删除文章分类表")
|
||||||
|
@DeleteMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_del')")
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appArticleCategoryService.removeBatchByIds(CollUtil.toList(ids)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appArticleCategory 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticleCategory_export')")
|
||||||
|
public List<AppArticleCategoryEntity> export(AppArticleCategoryEntity appArticleCategory) {
|
||||||
|
return appArticleCategoryService.list(Wrappers.query(appArticleCategory));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCollectEntity;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppArticleCollectService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springdoc.api.annotations.ParameterObject;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章收藏表
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-16 14:33:41
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/collect")
|
||||||
|
@Tag(description = "collect", name = "文章收藏表管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppArticleCollectController {
|
||||||
|
|
||||||
|
private final AppArticleCollectService appArticleCollectService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appArticleCollect 文章收藏表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public R getAppArticleCollectPage(@ParameterObject Page page) {
|
||||||
|
MPJLambdaWrapper<AppArticleCollectEntity> wrapper = new MPJLambdaWrapper<AppArticleCollectEntity>()
|
||||||
|
.selectAll(AppArticleCollectEntity.class).select(AppArticleEntity::getTitle)
|
||||||
|
.leftJoin(AppArticleEntity.class, AppArticleEntity::getId, AppArticleCollectEntity::getArticleId)
|
||||||
|
.eq(AppArticleCollectEntity::getUserId, SecurityUtils.getUser().getId());
|
||||||
|
return R.ok(appArticleCollectService.selectJoinListPage(page, AppArticleCollectEntity.class, wrapper));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询文章收藏表
|
||||||
|
* @param id id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R getById(@PathVariable("id") Long id) {
|
||||||
|
return R.ok(appArticleCollectService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增文章收藏表
|
||||||
|
* @param appArticleCollect 文章收藏表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增文章收藏表", description = "新增文章收藏表")
|
||||||
|
@SysLog("新增文章收藏表")
|
||||||
|
@PostMapping
|
||||||
|
public R save(@RequestBody AppArticleCollectEntity appArticleCollect) {
|
||||||
|
return R.ok(appArticleCollectService.saveArticleCollect(appArticleCollect));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改文章收藏表
|
||||||
|
* @param appArticleCollect 文章收藏表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改文章收藏表", description = "修改文章收藏表")
|
||||||
|
@SysLog("修改文章收藏表")
|
||||||
|
@PutMapping
|
||||||
|
public R updateById(@RequestBody AppArticleCollectEntity appArticleCollect) {
|
||||||
|
return R.ok(appArticleCollectService.updateById(appArticleCollect));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除文章收藏表
|
||||||
|
* @param ids id列表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id删除文章收藏表", description = "通过id删除文章收藏表")
|
||||||
|
@SysLog("通过id删除文章收藏表")
|
||||||
|
@DeleteMapping
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appArticleCollectService.removeBatchByIds(CollUtil.toList(ids)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "通过文章id删除文章收藏表", description = "通过文章id删除文章收藏表")
|
||||||
|
@SysLog("通过文章id删除文章收藏表")
|
||||||
|
@DeleteMapping("/{articleId}")
|
||||||
|
public R removeByArticleId(@PathVariable String articleId) {
|
||||||
|
Long id = SecurityUtils.getUser().getId();
|
||||||
|
return R.ok(appArticleCollectService.remove(Wrappers.<AppArticleCollectEntity>lambdaQuery()
|
||||||
|
.eq(AppArticleCollectEntity::getUserId, id).eq(AppArticleCollectEntity::getArticleId, articleId)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appArticleCollect 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_collect_export')")
|
||||||
|
public List<AppArticleCollectEntity> export(AppArticleCollectEntity appArticleCollect) {
|
||||||
|
return appArticleCollectService.list(Wrappers.query(appArticleCollect));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppArticleService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springdoc.api.annotations.ParameterObject;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文章资讯
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:32:35
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appArticle")
|
||||||
|
@Tag(description = "appArticle", name = "文章资讯管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppArticleController {
|
||||||
|
|
||||||
|
private final AppArticleService appArticleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appArticle 文章资讯
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/page")
|
||||||
|
public R getAppArticlePage(@ParameterObject Page page, @ParameterObject AppArticleEntity appArticle) {
|
||||||
|
return R.ok(appArticleService.pageAndCname(page, appArticle));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询文章资讯
|
||||||
|
* @param id id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/details/{id}/{userId}")
|
||||||
|
public R getById(@PathVariable("id") Long id, @PathVariable(required = false) Long userId) {
|
||||||
|
return R.ok(appArticleService.getArticleAndIncrById(id, userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增文章资讯
|
||||||
|
* @param appArticle 文章资讯
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增文章资讯", description = "新增文章资讯")
|
||||||
|
@SysLog("新增文章资讯")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticle_add')")
|
||||||
|
public R save(@RequestBody AppArticleEntity appArticle) {
|
||||||
|
return R.ok(appArticleService.save(appArticle));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改文章资讯
|
||||||
|
* @param appArticle 文章资讯
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改文章资讯", description = "修改文章资讯")
|
||||||
|
@SysLog("修改文章资讯")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticle_edit')")
|
||||||
|
public R updateById(@RequestBody AppArticleEntity appArticle) {
|
||||||
|
return R.ok(appArticleService.updateById(appArticle));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除文章资讯
|
||||||
|
* @param ids id列表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id删除文章资讯", description = "通过id删除文章资讯")
|
||||||
|
@SysLog("通过id删除文章资讯")
|
||||||
|
@DeleteMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticle_del')")
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appArticleService.removeBatchByIds(CollUtil.toList(ids)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appArticle 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appArticle_export')")
|
||||||
|
public List<AppArticleEntity> export(AppArticleEntity appArticle) {
|
||||||
|
return appArticleService.list(Wrappers.query(appArticle));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppPageEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppIndexService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app 首页控制
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2023/6/8
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/index")
|
||||||
|
@Tag(description = "App 页面控制", name = "app index")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppIndexController {
|
||||||
|
|
||||||
|
private final AppIndexService indexService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/index")
|
||||||
|
public R index() {
|
||||||
|
Map<String, Object> detail = indexService.index();
|
||||||
|
return R.ok(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/config")
|
||||||
|
public R config() {
|
||||||
|
Map<String, Object> map = indexService.config();
|
||||||
|
return R.ok(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/decorate")
|
||||||
|
public R decorate(@Validated @RequestParam("id") Integer id) {
|
||||||
|
AppPageEntity detail = indexService.decorate(id);
|
||||||
|
return R.ok(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.AppMobileService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/11/14
|
||||||
|
* <p>
|
||||||
|
* 手机验证码
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RequestMapping("/appmobile")
|
||||||
|
@Tag(description = "mobile", name = "手机管理模块")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppMobileController {
|
||||||
|
|
||||||
|
private final AppMobileService appMobileService;
|
||||||
|
|
||||||
|
@Inner(value = false)
|
||||||
|
@GetMapping("/{mobile}")
|
||||||
|
public R sendSmsCode(@PathVariable String mobile) {
|
||||||
|
return appMobileService.sendSmsCode(mobile);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppPageEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppPageService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面管理
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:32:35
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appPage")
|
||||||
|
@Tag(description = "appPage", name = "页面管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppPageController {
|
||||||
|
|
||||||
|
private final AppPageService pageService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询文章资讯
|
||||||
|
* @param id id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R getById(@PathVariable("id") Long id) {
|
||||||
|
return R.ok(pageService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "更新页面", description = "更新页面")
|
||||||
|
@PutMapping
|
||||||
|
public R update(@RequestBody AppPageEntity page) {
|
||||||
|
return R.ok(pageService.updateById(page));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppRole;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppRoleExcelVO;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppRoleService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.RequestExcel;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/approle")
|
||||||
|
@Tag(description = "approle", name = "app角色表管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppRoleController {
|
||||||
|
|
||||||
|
private final AppRoleService appRoleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appRole app角色表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public R getAppRolePage(Page page, AppRole appRole) {
|
||||||
|
return R.ok(appRoleService.page(page, Wrappers.<AppRole>lambdaQuery()
|
||||||
|
.like(StrUtil.isNotBlank(appRole.getRoleName()), AppRole::getRoleName, appRole.getRoleName())));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询全部角色
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "查询全部", description = "查询全部")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public R list() {
|
||||||
|
return R.ok(appRoleService.list(Wrappers.emptyWrapper()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询app角色表
|
||||||
|
* @param roleId id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/{roleId}")
|
||||||
|
public R getById(@PathVariable("roleId") Long roleId) {
|
||||||
|
return R.ok(appRoleService.getById(roleId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过roleName查询app角色表
|
||||||
|
* @param roleName roleName
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/details/{roleName}")
|
||||||
|
public R getByUserName(@PathVariable("roleName") String roleName) {
|
||||||
|
return R.ok(appRoleService.getOne(Wrappers.<AppRole>lambdaQuery().eq(AppRole::getRoleName, roleName)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过roleCode查询app角色表
|
||||||
|
* @param roleCode roleCode
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过roleCode查询", description = "通过roleCode查询")
|
||||||
|
@GetMapping("/detailsByCode/{roleCode}")
|
||||||
|
public R getByPhone(@PathVariable("roleCode") String roleCode) {
|
||||||
|
return R.ok(appRoleService.getOne(Wrappers.<AppRole>lambdaQuery().eq(AppRole::getRoleCode, roleCode)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增app角色表
|
||||||
|
* @param appRole app角色表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增app角色表", description = "新增app角色表")
|
||||||
|
@SysLog("新增app角色表")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_approle_add')")
|
||||||
|
public R save(@RequestBody AppRole appRole) {
|
||||||
|
return R.ok(appRoleService.save(appRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改app角色表
|
||||||
|
* @param appRole app角色表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改app角色表", description = "修改app角色表")
|
||||||
|
@SysLog("修改app角色表")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_approle_edit')")
|
||||||
|
public R updateById(@RequestBody AppRole appRole) {
|
||||||
|
return R.ok(appRoleService.updateById(appRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过ids批量删除app角色表
|
||||||
|
* @param ids roleIds
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过ids批量删除app角色表", description = "通过ids批量删除app角色表")
|
||||||
|
@SysLog("通过ids批量删除app角色表")
|
||||||
|
@DeleteMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_approle_del')")
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appRoleService.deleteRoleByIds(ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appRole 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_approle_export')")
|
||||||
|
public List<AppRole> export(AppRole appRole) {
|
||||||
|
return appRoleService.list(Wrappers.query(appRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入角色
|
||||||
|
* @param excelVOList 角色列表
|
||||||
|
* @param bindingResult 错误信息列表
|
||||||
|
* @return ok fail
|
||||||
|
*/
|
||||||
|
@PostMapping("/import")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_approle_export')")
|
||||||
|
public R importRole(@RequestExcel List<AppRoleExcelVO> excelVOList, BindingResult bindingResult) {
|
||||||
|
return appRoleService.importRole(excelVOList, bindingResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppSocialDetails;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppSocialDetailsService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.ValidGroup;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/appsocial")
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Tag(description = "social", name = "三方账号管理模块")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppSocialDetailsController {
|
||||||
|
|
||||||
|
private final AppSocialDetailsService appSocialDetailsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社交登录账户简单分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appSocialDetails 社交登录
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/page")
|
||||||
|
public R getSocialDetailsPage(Page page, AppSocialDetails appSocialDetails) {
|
||||||
|
return R.ok(appSocialDetailsService.page(page, Wrappers.query(appSocialDetails)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 信息
|
||||||
|
* @param id id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R getinfo(@PathVariable("id") Long id) {
|
||||||
|
return R.ok(appSocialDetailsService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
* @param appSocialDetails
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@SysLog("保存三方信息")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_social_details_add')")
|
||||||
|
public R save(@Valid @RequestBody AppSocialDetails appSocialDetails) {
|
||||||
|
return R.ok(appSocialDetailsService.save(appSocialDetails));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
* @param appSocialDetails
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@SysLog("修改三方信息")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_social_details_edit')")
|
||||||
|
public R updateById(@Validated({ ValidGroup.Update.class }) @RequestBody AppSocialDetails appSocialDetails) {
|
||||||
|
appSocialDetailsService.updateById(appSocialDetails);
|
||||||
|
return R.ok(Boolean.TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
* @param ids
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@SysLog("删除三方信息")
|
||||||
|
@DeleteMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_social_details_del')")
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appSocialDetailsService.removeBatchByIds(CollUtil.toList(ids)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过社交账号、手机号查询用户、角色信息
|
||||||
|
* @param inStr appid@code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Inner
|
||||||
|
@GetMapping("/info/{inStr}")
|
||||||
|
public R getUserInfo(@PathVariable String inStr) {
|
||||||
|
return R.ok(appSocialDetailsService.getUserInfo(inStr));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定社交账号
|
||||||
|
* @param state 类型
|
||||||
|
* @param code code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/bind")
|
||||||
|
public R bindSocial(String state, String code) {
|
||||||
|
return R.ok(appSocialDetailsService.bindSocial(state, code));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出
|
||||||
|
*/
|
||||||
|
@GetMapping("/export")
|
||||||
|
@ResponseExcel
|
||||||
|
public List<AppSocialDetails> export(AppSocialDetails appSocialDetails) {
|
||||||
|
return appSocialDetailsService.list(Wrappers.query(appSocialDetails));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppTabbarEntity;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppTabbarService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 底部导航
|
||||||
|
*
|
||||||
|
* @author pig
|
||||||
|
* @date 2023-06-07 16:32:35
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appTabbar")
|
||||||
|
@Tag(description = "appTabbar", name = "底部导航")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppTabbarController {
|
||||||
|
|
||||||
|
private final AppTabbarService tabbarService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询导航列表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "查询导航列表", description = "查询导航列表")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public R list() {
|
||||||
|
return R.ok(tabbarService.list());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "更新导航", description = "更新导航")
|
||||||
|
@PutMapping
|
||||||
|
public R update(@RequestBody List<AppTabbarEntity> tabbarEntityList) {
|
||||||
|
// 删除不在新增范围的导航菜单
|
||||||
|
List<Long> idList = tabbarService.list().stream().map(AppTabbarEntity::getId).collect(Collectors.toList());
|
||||||
|
List<Long> newIdList = tabbarEntityList.stream().map(AppTabbarEntity::getId).collect(Collectors.toList());
|
||||||
|
tabbarService.removeBatchByIds(CollUtil.subtractToList(idList, newIdList));
|
||||||
|
return R.ok(tabbarService.saveOrUpdateBatch(tabbarEntityList));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,208 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserDTO;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppUserService;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.enums.UserTypeEnum;
|
||||||
|
import com.pig4cloud.pigx.common.core.exception.ErrorCodes;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.MsgUtils;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.RequestExcel;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app用户表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appuser")
|
||||||
|
@Tag(description = "appuser", name = "app用户表管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppUserController {
|
||||||
|
|
||||||
|
private final AppUserService appUserService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册用户
|
||||||
|
* @param userDto 用户信息
|
||||||
|
* @return success/false
|
||||||
|
*/
|
||||||
|
@Operation(summary = "注册用户", description = "注册用户")
|
||||||
|
@Inner(value = false)
|
||||||
|
@SysLog("注册用户")
|
||||||
|
@PostMapping("/regUser")
|
||||||
|
public R<Boolean> registerUser(@RequestBody AppUserDTO userDto) {
|
||||||
|
// 判断用户名是否存在
|
||||||
|
AppUser user = appUserService.getOne(Wrappers.<AppUser>query()
|
||||||
|
.lambda().eq(AppUser::getUsername, userDto.getUsername()));
|
||||||
|
if (user != null) {
|
||||||
|
String message = MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, userDto.getUsername());
|
||||||
|
return R.failed(message);
|
||||||
|
}
|
||||||
|
return R.ok(appUserService.regUser(userDto));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inner
|
||||||
|
@GetMapping("/info/{username}")
|
||||||
|
public R info(@PathVariable String username) {
|
||||||
|
AppUser user = appUserService.getOne(Wrappers.<AppUser>query().lambda().eq(AppUser::getUsername, username).or()
|
||||||
|
.eq(AppUser::getPhone, username));
|
||||||
|
if (user == null) {
|
||||||
|
return R.failed(MsgUtils.getMessage(ErrorCodes.APP_USER_USERINFO_EMPTY, username));
|
||||||
|
}
|
||||||
|
return R.ok(appUserService.findUserInfo(user));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前用户全部信息
|
||||||
|
* @return 用户信息
|
||||||
|
*/
|
||||||
|
@GetMapping(value = { "/info" })
|
||||||
|
public R info() {
|
||||||
|
String username = SecurityUtils.getUser().getUsername();
|
||||||
|
AppUser user = appUserService.getOne(Wrappers.<AppUser>query().lambda().eq(AppUser::getUsername, username));
|
||||||
|
if (user == null) {
|
||||||
|
return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_QUERY_ERROR));
|
||||||
|
}
|
||||||
|
return R.ok(appUserService.findUserInfo(user));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appUserDTO app用户表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public R getAppUserPage(Page page, AppUserDTO appUserDTO) {
|
||||||
|
return R.ok(appUserService.getUsersWithRolePage(page, appUserDTO));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询app用户表
|
||||||
|
* @param userId id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/details/{userId}")
|
||||||
|
public R getById(@PathVariable("userId") Long userId) {
|
||||||
|
return R.ok(appUserService.selectUserVoById(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过userName查询", description = "通过userName查询")
|
||||||
|
@GetMapping("/details")
|
||||||
|
public R getByUserName(AppUser user) {
|
||||||
|
AppUser one = appUserService.getOne(Wrappers.query(user), false);
|
||||||
|
return R.ok(one == null ? null : CommonConstants.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增app用户表
|
||||||
|
* @param appUser app用户表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增app用户表", description = "新增app用户表")
|
||||||
|
@SysLog("新增app用户表")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuser_add')")
|
||||||
|
public R save(@RequestBody AppUserDTO appUser) {
|
||||||
|
appUserService.saveUser(appUser);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改app用户表
|
||||||
|
* @param appUser app用户表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改app用户表", description = "修改app用户表")
|
||||||
|
@SysLog("修改app用户表")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuser_edit')")
|
||||||
|
public R updateById(@RequestBody AppUserDTO appUser) {
|
||||||
|
return R.ok(appUserService.updateUser(appUser));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除app用户表
|
||||||
|
* @param ids userIds
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过ids删除app用户表", description = "通过ids删除app用户表")
|
||||||
|
@SysLog("通过id删除app用户表")
|
||||||
|
@DeleteMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuser_del')")
|
||||||
|
public R removeById(@RequestBody Long[] ids) {
|
||||||
|
return R.ok(appUserService.deleteAppUserByIds(ids));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appUser 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuser_export')")
|
||||||
|
public List<AppUserExcelVO> export(AppUserDTO appUser) {
|
||||||
|
return appUserService.listUser(appUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SysLog("修改个人信息")
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public R updateUserInfo(@Valid @RequestBody AppUserDTO userDto) {
|
||||||
|
if (UserTypeEnum.TOC.getStatus().equals(SecurityUtils.getUser().getUserType())) {
|
||||||
|
userDto.setUserId(SecurityUtils.getUser().getId());
|
||||||
|
// TOC 以手机号为key
|
||||||
|
userDto.setUsername(SecurityUtils.getUser().getUsername());
|
||||||
|
}
|
||||||
|
return appUserService.updateUserInfo(userDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入用户
|
||||||
|
* @param excelVOList 用户列表
|
||||||
|
* @param bindingResult 错误信息列表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@PostMapping("/import")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuser_export')")
|
||||||
|
public R importUser(@RequestExcel List<AppUserExcelVO> excelVOList, BindingResult bindingResult) {
|
||||||
|
return appUserService.importUser(excelVOList, bindingResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "注册app用户表", description = "注册app用户表")
|
||||||
|
@SysLog("注册app用户表")
|
||||||
|
@Inner(value = false)
|
||||||
|
@PostMapping("/register")
|
||||||
|
public R register(@RequestBody AppUserDTO appUser) {
|
||||||
|
return appUserService.registerAppUser(appUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUserRole;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppUserRoleService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/appuserrole")
|
||||||
|
@Tag(description = "appuserrole", name = "用户角色表管理")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AppUserRoleController {
|
||||||
|
|
||||||
|
private final AppUserRoleService appUserRoleService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param page 分页对象
|
||||||
|
* @param appUserRole 用户角色表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "分页查询", description = "分页查询")
|
||||||
|
@GetMapping("/page")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_view')")
|
||||||
|
public R getAppUserRolePage(Page page, AppUserRole appUserRole) {
|
||||||
|
return R.ok(appUserRoleService.page(page, Wrappers.query(appUserRole)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询用户角色表
|
||||||
|
* @param userId id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||||
|
@GetMapping("/{userId}")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_view')")
|
||||||
|
public R getById(@PathVariable("userId") Long userId) {
|
||||||
|
return R.ok(appUserRoleService.getById(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户角色表
|
||||||
|
* @param appUserRole 用户角色表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增用户角色表", description = "新增用户角色表")
|
||||||
|
@SysLog("新增用户角色表")
|
||||||
|
@PostMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_add')")
|
||||||
|
public R save(@RequestBody AppUserRole appUserRole) {
|
||||||
|
return R.ok(appUserRoleService.save(appUserRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户角色表
|
||||||
|
* @param appUserRole 用户角色表
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "修改用户角色表", description = "修改用户角色表")
|
||||||
|
@SysLog("修改用户角色表")
|
||||||
|
@PutMapping
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_edit')")
|
||||||
|
public R updateById(@RequestBody AppUserRole appUserRole) {
|
||||||
|
return R.ok(appUserRoleService.updateById(appUserRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除用户角色表
|
||||||
|
* @param userId id
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@Operation(summary = "通过id删除用户角色表", description = "通过id删除用户角色表")
|
||||||
|
@SysLog("通过id删除用户角色表")
|
||||||
|
@DeleteMapping("/{userId}")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_del')")
|
||||||
|
public R removeById(@PathVariable Long userId) {
|
||||||
|
return R.ok(appUserRoleService.removeById(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel 表格
|
||||||
|
* @param appUserRole 查询条件
|
||||||
|
* @return excel 文件流
|
||||||
|
*/
|
||||||
|
@ResponseExcel
|
||||||
|
@GetMapping("/export")
|
||||||
|
@PreAuthorize("@pms.hasPermission('app_appuserrole_export')")
|
||||||
|
public List<AppUserRole> export(AppUserRole appUserRole) {
|
||||||
|
return appUserRoleService.list(Wrappers.query(appUserRole));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsPlatformService;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubPayrollService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AS 公用API
|
||||||
|
* 注:不需要访问权限
|
||||||
|
* 注2:限制请求频次
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-8
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asApi")
|
||||||
|
@Tag(description = "AS-public-api", name = "AS-公用API")
|
||||||
|
//@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsApi {
|
||||||
|
|
||||||
|
//传参二进制加密?
|
||||||
|
|
||||||
|
private final AsPlatformService asPlatformService;
|
||||||
|
private final AsSubPayrollService asSubPayrollService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取首页产品、用户订单、评价等 展示信息
|
||||||
|
* todo 静态缓存,限流
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "首页产品、订单信息", description = "首页产品、订单信息")
|
||||||
|
@GetMapping("/indexInfo")
|
||||||
|
public R indexInfo(){
|
||||||
|
|
||||||
|
// asPlatformService.getById();
|
||||||
|
// AsSubPayroll byId = asSubPayrollService.getById();
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//首页信息
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatform;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsPlatformService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-7
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asPlatform")
|
||||||
|
@Tag(description = "AS platform manage", name = "AS-流媒体平台")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsPlatformController {
|
||||||
|
|
||||||
|
private final AsPlatformService asPlatformService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增媒体平台
|
||||||
|
* @param asPlatform 媒体平台
|
||||||
|
* @return success/false
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增媒体平台", description = "新增媒体平台")
|
||||||
|
@PostMapping("/save")
|
||||||
|
public R save(@Valid @RequestBody AsPlatform asPlatform) {
|
||||||
|
asPlatformService.save(asPlatform);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回媒体平台集合
|
||||||
|
* @param platType 媒体平台
|
||||||
|
* @return 媒体平台集合
|
||||||
|
* get -> post
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "查询媒体平台", description = "查询媒体平台 0:全部")
|
||||||
|
@GetMapping("/getPlatform")
|
||||||
|
public R getPlatform(Integer platType) {
|
||||||
|
return R.ok(asPlatformService.listAsPlatformByType(platType));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新媒体平台
|
||||||
|
* @param asPlatform
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@SysLog("更新媒体平台")
|
||||||
|
@Operation(summary = "更新媒体平台", description = "更新媒体平台")
|
||||||
|
@PutMapping("/update")
|
||||||
|
public R update(@Valid @RequestBody AsPlatform asPlatform) {
|
||||||
|
return R.ok(asPlatformService.updateById(asPlatform));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatformType;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsPlatformTypeService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.log.annotation.SysLog;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 平台类型
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-7
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asPlatformType")
|
||||||
|
@Tag(description = "AS-platformType-manage", name = "AS-平台类型")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsPlatformTypeController {
|
||||||
|
|
||||||
|
private final AsPlatformTypeService asPlatformTypeService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订阅计划
|
||||||
|
* @param asPlatformType 订阅计划
|
||||||
|
* @return success/false
|
||||||
|
*/
|
||||||
|
@SysLog("新增平台类型")
|
||||||
|
@Operation(summary = "新增平台类型", description = "新增平台类型")
|
||||||
|
@PostMapping("/save")
|
||||||
|
// @PreAuthorize("@pms.hasPermission('as_subplan_add')")
|
||||||
|
public R save(@Valid @RequestBody AsPlatformType asPlatformType) {
|
||||||
|
asPlatformTypeService.save(asPlatformType);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回平台类型集合
|
||||||
|
* @param platType 平台类型
|
||||||
|
* @return 平台类型集合
|
||||||
|
* get -> post
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "查询平台类型", description = "查询平台类型 0:全部")
|
||||||
|
@GetMapping("/getPlatformType")
|
||||||
|
public R getPlatformType(Integer platType) {
|
||||||
|
return R.ok(asPlatformTypeService.listAsPlatformTypeByType(platType));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新平台类型
|
||||||
|
* @param asPlatformType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@SysLog("更新平台类型")
|
||||||
|
@Operation(summary = "更新平台类型", description = "更新平台类型")
|
||||||
|
@PutMapping("/update")
|
||||||
|
public R update(@Valid @RequestBody AsPlatformType asPlatformType) {
|
||||||
|
return R.ok(asPlatformTypeService.updateById(asPlatformType));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubAccountService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 订阅账号表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-8
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asSubAccount")
|
||||||
|
@Tag(description = "AS-subAccount-manage", name = "AS-流媒体账号")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsSubAccountController {
|
||||||
|
|
||||||
|
private final AsSubAccountService asSubAccountService;
|
||||||
|
|
||||||
|
//get by userid (前台) 其他条件 平台、订阅付费计划、 时间、
|
||||||
|
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "获取订阅账号", description = "获取订阅账号")
|
||||||
|
@GetMapping("/getSubAccountBy")
|
||||||
|
public R getSubAccountBy() {
|
||||||
|
// return R.ok(asSubAccountService.getOne());
|
||||||
|
// return R.ok(asSubAccountService.listByMap());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubPayrollService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 订阅付费计划
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-8
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asSubPayroll")
|
||||||
|
@Tag(description = "AS-subPayroll-manage", name = "AS-订阅付费计划")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsSubPayrollController {
|
||||||
|
|
||||||
|
private final AsSubPayrollService asSubPayrollService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回订阅计划集合
|
||||||
|
* @param platId 平台id
|
||||||
|
* @return 订阅计划集合
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "获取订阅计划", description = "获取订阅计划")
|
||||||
|
@GetMapping("/getSubPayrollBy")
|
||||||
|
public R getSubPayrollBy(Long platId,String region) {
|
||||||
|
return R.ok(asSubPayrollService.listByPlatId(platId,region));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubPlan;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubPlanService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 订阅计划表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-7
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asSubPlan")
|
||||||
|
@Tag(description = "AS-subPlan-manage", name = "AS-流媒体订阅计划")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsSubPlanController {
|
||||||
|
|
||||||
|
private final AsSubPlanService asSubPlanService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订阅计划
|
||||||
|
* @param subPlan 订阅计划
|
||||||
|
* @return success/false
|
||||||
|
*/
|
||||||
|
@Operation(summary = "新增订阅计划", description = "新增订阅计划")
|
||||||
|
@PostMapping("/save")
|
||||||
|
// @PreAuthorize("@pms.hasPermission('as_subplan_add')")
|
||||||
|
public R save(@Valid @RequestBody AsSubPlan subPlan) {
|
||||||
|
asSubPlanService.save(subPlan);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回订阅计划集合
|
||||||
|
* @param platId 平台id
|
||||||
|
* @return 订阅计划集合
|
||||||
|
*/
|
||||||
|
@Operation(summary = "获取订阅计划", description = "获取订阅计划")
|
||||||
|
@GetMapping("/getSubPlan")
|
||||||
|
public R getSubPlan(Long platId) {
|
||||||
|
return R.ok(asSubPlanService.listSubPlanByPlatId(platId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新订阅计划
|
||||||
|
* @param subPlan
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "更新订阅计划", description = "更新订阅计划")
|
||||||
|
@PutMapping("/update")
|
||||||
|
public R update(@Valid @RequestBody AsSubPlan subPlan) {
|
||||||
|
return R.ok(asSubPlanService.updateById(subPlan));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubProductCmtService;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 订阅产品评价
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-9
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asSubProductCmt")
|
||||||
|
@Tag(description = "AS-sub-product-comment", name = "AS-订阅产品评价")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsSubProductCmtController {
|
||||||
|
|
||||||
|
private final AsSubProductCmtService asSubProductCmtService;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsSubProductService;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 订阅产品
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-9
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asSubProduct")
|
||||||
|
@Tag(description = "AS-sub-product", name = "AS-订阅产品")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsSubProductController {
|
||||||
|
|
||||||
|
private final AsSubProductService asSubProductService;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.pig4cloud.pigx.app.controller.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsUserSubService;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import com.pig4cloud.pigx.common.security.annotation.Inner;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 用户订阅
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-7
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/asUserSub")
|
||||||
|
@Tag(description = "AS-sub-manage", name = "AS-订阅")
|
||||||
|
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
|
||||||
|
public class AsUserSubController {
|
||||||
|
|
||||||
|
//init first page ?
|
||||||
|
|
||||||
|
private final AsUserSubService asUserSubService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取订阅人数
|
||||||
|
* 根据平台类型查询总订阅人数 、 新增至redis
|
||||||
|
*/
|
||||||
|
@Inner(value = false)
|
||||||
|
@Operation(summary = "获取订阅人数", description = "获取订阅人数")
|
||||||
|
@GetMapping("/getSubCount")
|
||||||
|
public R getSubCount(){
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.handler;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/11/18
|
||||||
|
*/
|
||||||
|
public abstract class AbstractLoginHandler implements LoginHandler {
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 数据合法性校验
|
||||||
|
* @param loginStr 通过用户传入获取唯一标识
|
||||||
|
* @return 默认不校验
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean check(String loginStr) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理方法
|
||||||
|
* @param loginStr 登录参数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppUserInfo handle(String loginStr) {
|
||||||
|
if (!check(loginStr)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String identify = identify(loginStr);
|
||||||
|
return info(identify);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.handler;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/11/18
|
||||||
|
* <p>
|
||||||
|
* 登录处理器
|
||||||
|
*/
|
||||||
|
public interface LoginHandler {
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 数据合法性校验
|
||||||
|
* @param loginStr 通过用户传入获取唯一标识
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean check(String loginStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过用户传入获取唯一标识
|
||||||
|
* @param loginStr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String identify(String loginStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过openId 获取用户信息
|
||||||
|
* @param identify
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AppUserInfo info(String identify);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理方法
|
||||||
|
* @param loginStr 登录参数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AppUserInfo handle(String loginStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定逻辑
|
||||||
|
* @param user 用户实体
|
||||||
|
* @param identify 渠道返回唯一标识
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
default Boolean bind(AppUser user, String identify) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.handler;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppSocialDetails;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import com.pig4cloud.pigx.app.mapper.AppSocialDetailsMapper;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppUserService;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.SecurityConstants;
|
||||||
|
import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2019年11月02日
|
||||||
|
* <p>
|
||||||
|
* 微信小程序
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component("APP-MINI")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MiniAppLoginHandler extends AbstractLoginHandler {
|
||||||
|
|
||||||
|
private final AppUserService appUserService;
|
||||||
|
|
||||||
|
private final AppSocialDetailsMapper appSocialDetailsMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序登录传入code
|
||||||
|
* <p>
|
||||||
|
* 通过code 调用qq 获取唯一标识
|
||||||
|
* @param code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String identify(String code) {
|
||||||
|
AppSocialDetails condition = new AppSocialDetails();
|
||||||
|
condition.setType(LoginTypeEnum.MINI_APP.getType());
|
||||||
|
AppSocialDetails socialDetails = appSocialDetailsMapper.selectOne(new QueryWrapper<>(condition));
|
||||||
|
|
||||||
|
String url = String.format(SecurityConstants.MINI_APP_AUTHORIZATION_CODE_URL, socialDetails.getAppId(),
|
||||||
|
socialDetails.getAppSecret(), code);
|
||||||
|
String result = HttpUtil.get(url);
|
||||||
|
log.debug("微信小程序响应报文:{}", result);
|
||||||
|
|
||||||
|
Object obj = JSONUtil.parseObj(result).get("openid");
|
||||||
|
return obj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* openId 获取用户信息
|
||||||
|
* @param openId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppUserInfo info(String openId) {
|
||||||
|
AppUser user = appUserService.getOne(Wrappers.<AppUser>query().lambda().eq(AppUser::getWxOpenid, openId));
|
||||||
|
|
||||||
|
if (user == null) {
|
||||||
|
log.info("微信小程序未绑定:{},创建新的用户", openId);
|
||||||
|
return createAndSaveAppUserInfo(openId);
|
||||||
|
}
|
||||||
|
return appUserService.findUserInfo(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定逻辑
|
||||||
|
* @param user 用户实体
|
||||||
|
* @param identify 渠道返回唯一标识
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean bind(AppUser user, String identify) {
|
||||||
|
user.setWxOpenid(identify);
|
||||||
|
appUserService.updateById(user);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AppUserInfo createAndSaveAppUserInfo(String openId) {
|
||||||
|
AppUser appUser = new AppUser();
|
||||||
|
appUser.setWxOpenid(openId);
|
||||||
|
appUser.setUsername(openId);
|
||||||
|
appUserService.saveOrUpdate(appUser, Wrappers.<AppUser>lambdaQuery().eq(AppUser::getUsername, openId));
|
||||||
|
|
||||||
|
AppUserInfo appUserDTO = new AppUserInfo();
|
||||||
|
appUserDTO.setAppUser(appUser);
|
||||||
|
return appUserDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.handler;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import com.pig4cloud.pigx.app.service.AppUserService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/11/18
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component("APP-SMS")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmsLoginHandler extends AbstractLoginHandler {
|
||||||
|
|
||||||
|
private final AppUserService appUserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码登录传入为手机号 不用不处理
|
||||||
|
* @param mobile
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String identify(String mobile) {
|
||||||
|
return mobile;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过mobile 获取用户信息
|
||||||
|
* @param identify
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AppUserInfo info(String identify) {
|
||||||
|
AppUser user = appUserService.getOne(Wrappers.<AppUser>query().lambda().eq(AppUser::getPhone, identify));
|
||||||
|
|
||||||
|
if (user == null) {
|
||||||
|
log.info("手机号未注册:{}", identify);
|
||||||
|
return createAndSaveAppUserInfo(identify);
|
||||||
|
}
|
||||||
|
return appUserService.findUserInfo(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建并插入用户
|
||||||
|
* @param identify
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private AppUserInfo createAndSaveAppUserInfo(String phone) {
|
||||||
|
AppUser appUser = new AppUser();
|
||||||
|
appUser.setUsername(phone);
|
||||||
|
appUser.setPhone(phone);
|
||||||
|
appUserService.saveOrUpdate(appUser, Wrappers.<AppUser>lambdaQuery().eq(AppUser::getPhone, phone));
|
||||||
|
|
||||||
|
AppUserInfo appUserDTO = new AppUserInfo();
|
||||||
|
appUserDTO.setAppUser(appUser);
|
||||||
|
return appUserDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定逻辑
|
||||||
|
* @param user 用户实体
|
||||||
|
* @param identify 渠道返回唯一标识
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean bind(AppUser user, String identify) {
|
||||||
|
user.setPhone(identify);
|
||||||
|
appUserService.updateById(user);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCategoryEntity;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AppArticleCategoryMapper extends PigxBaseMapper<AppArticleCategoryEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCollectEntity;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AppArticleCollectMapper extends PigxBaseMapper<AppArticleCollectEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleEntity;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AppArticleMapper extends PigxBaseMapper<AppArticleEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppPageEntity;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AppPageMapper extends PigxBaseMapper<AppPageEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppRole;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AppRoleMapper extends PigxBaseMapper<AppRole> {
|
||||||
|
|
||||||
|
List<AppRole> listRolesByUserId(Long userId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppSocialDetails;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统社交登录账号表
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018-08-16 21:30:41
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AppSocialDetailsMapper extends PigxBaseMapper<AppSocialDetails> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppTabbarEntity;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AppTabbarMapper extends PigxBaseMapper<AppTabbarEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserDTO;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppUserVO;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app用户表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AppUserMapper extends PigxBaseMapper<AppUser> {
|
||||||
|
|
||||||
|
IPage<AppUserVO> getUserVosPage(Page page, @Param("query") AppUserDTO appUserDTO);
|
||||||
|
|
||||||
|
AppUserVO getUserVoById(Long userId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.mapper;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUserRole;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AppUserRoleMapper extends PigxBaseMapper<AppUserRole> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatform;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsPlatformMapper extends PigxBaseMapper<AsPlatform> {
|
||||||
|
List<AsPlatform> listAsPlatformByType(Integer platformType);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatformType;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 平台类型
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsPlatformTypeMapper extends PigxBaseMapper<AsPlatformType> {
|
||||||
|
List<AsPlatformType> listAsPlatformTypeByType(Integer platformType);
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubAccount;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅计划
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-08
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsSubAccountMapper extends PigxBaseMapper<AsSubAccount> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubPayroll;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅付费计划
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-08
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsSubPayrollMapper extends PigxBaseMapper<AsSubPayroll> {
|
||||||
|
List<AsSubPayroll> listByPlatId(@Param("platId")Long platId, @Param("region")String region);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubPlan;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅计划
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsSubPlanMapper extends PigxBaseMapper<AsSubPlan> {
|
||||||
|
List<AsSubPlan> listSubPlanByPlatId(Long platId);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubProductComment;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-09
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsSubProductCommentMapper extends PigxBaseMapper<AsSubProductComment> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubProduct;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-09
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsSubProductMapper extends PigxBaseMapper<AsSubProduct> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.mapper.as;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsUserSub;
|
||||||
|
import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户订阅
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface AsUserSubMapper extends PigxBaseMapper<AsUserSub> {
|
||||||
|
List<AsUserSub> listSubPlanById(Long id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCategoryEntity;
|
||||||
|
|
||||||
|
public interface AppArticleCategoryService extends IService<AppArticleCategoryEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.github.yulichang.base.MPJBaseService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleCollectEntity;
|
||||||
|
|
||||||
|
public interface AppArticleCollectService extends MPJBaseService<AppArticleCollectEntity> {
|
||||||
|
|
||||||
|
Boolean saveArticleCollect(AppArticleCollectEntity appArticleCollect);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppArticleEntity;
|
||||||
|
|
||||||
|
public interface AppArticleService extends IService<AppArticleEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文章并使阅读数+1
|
||||||
|
* @param id id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AppArticleEntity getArticleAndIncrById(Long id, Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询文章列表 包含分类名称
|
||||||
|
* @param page 分页参数
|
||||||
|
* @param appArticle 文章查询条件
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Page pageAndCname(Page page, AppArticleEntity appArticle);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppPageEntity;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app 页面控制
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2023/6/8
|
||||||
|
*/
|
||||||
|
public interface AppIndexService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页
|
||||||
|
*/
|
||||||
|
Map<String, Object> index();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> config();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 装修
|
||||||
|
* @param id 装修ID
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
AppPageEntity decorate(Integer id);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018/11/14
|
||||||
|
*/
|
||||||
|
public interface AppMobileService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送手机验证码
|
||||||
|
* @param mobile mobile
|
||||||
|
* @return code
|
||||||
|
*/
|
||||||
|
R<Boolean> sendSmsCode(String mobile);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppPageEntity;
|
||||||
|
|
||||||
|
public interface AppPageService extends IService<AppPageEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppRole;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppRoleExcelVO;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
public interface AppRoleService extends IService<AppRole> {
|
||||||
|
|
||||||
|
List<AppRole> findRolesByUserId(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户的同时,把role_menu关系删除
|
||||||
|
* @param ids RoleIds
|
||||||
|
*/
|
||||||
|
Boolean deleteRoleByIds(Long[] ids);
|
||||||
|
|
||||||
|
R importRole(List<AppRoleExcelVO> excelVOList, BindingResult bindingResult);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppSocialDetails;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统社交登录账号表
|
||||||
|
*
|
||||||
|
* @author lengleng
|
||||||
|
* @date 2018-08-16 21:30:41
|
||||||
|
*/
|
||||||
|
public interface AppSocialDetailsService extends IService<AppSocialDetails> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定社交账号
|
||||||
|
* @param state 类型
|
||||||
|
* @param code code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean bindSocial(String state, String code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据入参查询用户信息
|
||||||
|
* @param inStr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AppUserInfo getUserInfo(String inStr);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppTabbarEntity;
|
||||||
|
|
||||||
|
public interface AppTabbarService extends IService<AppTabbarEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: lengleng (wangiegie@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUserRole;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户角色表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
public interface AppUserRoleService extends IService<AppUserRole> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserDTO;
|
||||||
|
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.AppUser;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO;
|
||||||
|
import com.pig4cloud.pigx.app.api.vo.AppUserVO;
|
||||||
|
import com.pig4cloud.pigx.common.core.util.R;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app用户表
|
||||||
|
*
|
||||||
|
* @author aeizzz
|
||||||
|
* @date 2022-12-07 09:52:03
|
||||||
|
*/
|
||||||
|
public interface AppUserService extends IService<AppUser> {
|
||||||
|
|
||||||
|
Boolean regUser(AppUserDTO appUser);
|
||||||
|
|
||||||
|
Boolean updateUser(AppUserDTO appUser);
|
||||||
|
|
||||||
|
Boolean saveUser(AppUserDTO appUser);
|
||||||
|
|
||||||
|
List<AppUserExcelVO> listUser(AppUserDTO appUser);
|
||||||
|
|
||||||
|
IPage getUsersWithRolePage(Page page, AppUserDTO appUserDTO);
|
||||||
|
|
||||||
|
AppUserInfo findUserInfo(AppUser user);
|
||||||
|
|
||||||
|
R updateUserInfo(AppUserDTO userDto);
|
||||||
|
|
||||||
|
AppUserVO selectUserVoById(Long userId);
|
||||||
|
|
||||||
|
Boolean deleteAppUserByIds(Long[] ids);
|
||||||
|
|
||||||
|
R importUser(List<AppUserExcelVO> excelVOList, BindingResult bindingResult);
|
||||||
|
|
||||||
|
R registerAppUser(AppUserDTO appUser);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatform;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* As 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
public interface AsPlatformService extends IService<AsPlatform> {
|
||||||
|
|
||||||
|
List<AsPlatform> listAsPlatformByType(Integer platformType);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatformType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* As 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
public interface AsPlatformTypeService extends IService<AsPlatformType> {
|
||||||
|
|
||||||
|
List<AsPlatformType> listAsPlatformTypeByType(Integer platformType);
|
||||||
|
|
||||||
|
// R removePlatformTypeById(Long id);
|
||||||
|
|
||||||
|
// Boolean updatePlatformTypeById(AsPlatformType asPlatformType);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubAccount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅账号表
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-08
|
||||||
|
*/
|
||||||
|
public interface AsSubAccountService extends IService<AsSubAccount> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubPayroll;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订阅付费计划
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-08
|
||||||
|
*/
|
||||||
|
public interface AsSubPayrollService extends IService<AsSubPayroll> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过平台Id查询订阅列表
|
||||||
|
* @param platId 平台ID
|
||||||
|
* @return 订阅列表
|
||||||
|
*/
|
||||||
|
List<AsSubPayroll> listByPlatId(Long platId, String region);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubPlan;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AsSubPlan
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
public interface AsSubPlanService extends IService<AsSubPlan> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过平台Id查询订阅列表
|
||||||
|
* @param platId 平台ID
|
||||||
|
* @return 订阅列表
|
||||||
|
*/
|
||||||
|
List<AsSubPlan> listSubPlanByPlatId(Long platId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 级联删除订阅
|
||||||
|
* @param id 订阅ID
|
||||||
|
* @return 成功、失败
|
||||||
|
*/
|
||||||
|
// R removeSubPlanById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新订阅信息
|
||||||
|
* @param subPlan 订阅信息
|
||||||
|
* @return 成功、失败
|
||||||
|
*/
|
||||||
|
// Boolean updateSubPlanById(AsSubPlan subPlan);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建树
|
||||||
|
* @param parentId 父节点ID
|
||||||
|
* @param subPlanName 订阅名称
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// List<Tree<Long>> treeSubPlan(Long parentId, String subPlanName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订阅
|
||||||
|
* @param voSet
|
||||||
|
* @param parentId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// List<Tree<Long>> filterSubPlan(Set<AsSubPlan> voSet, String type, Long parentId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubProductComment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-09
|
||||||
|
*/
|
||||||
|
public interface AsSubProductCmtService extends IService<AsSubProductComment> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsSubProduct;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-09
|
||||||
|
*/
|
||||||
|
public interface AsSubProductService extends IService<AsSubProduct> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsUserSub;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AsSubPlan
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
public interface AsUserSubService extends IService<AsUserSub> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过平台Id查询订阅列表
|
||||||
|
* @param id 平台ID
|
||||||
|
* @return 订阅列表
|
||||||
|
*/
|
||||||
|
List<AsUserSub> listSubPlanById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 级联删除订阅
|
||||||
|
* @param id 订阅ID
|
||||||
|
* @return 成功、失败
|
||||||
|
*/
|
||||||
|
// R removeSubPlanById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新订阅信息
|
||||||
|
* @param subPlan 订阅信息
|
||||||
|
* @return 成功、失败
|
||||||
|
*/
|
||||||
|
// Boolean updateSubPlanById(AsSubPlan subPlan);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建树
|
||||||
|
* @param parentId 父节点ID
|
||||||
|
* @param subPlanName 订阅名称
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// List<Tree<Long>> treeSubPlan(Long parentId, String subPlanName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订阅
|
||||||
|
* @param voSet
|
||||||
|
* @param parentId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
// List<Tree<Long>> filterSubPlan(Set<AsSubPlan> voSet, String type, Long parentId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatform;
|
||||||
|
import com.pig4cloud.pigx.app.mapper.as.AsPlatformMapper;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsPlatformService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 媒体平台
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class AsPlatformServiceImpl extends ServiceImpl<AsPlatformMapper, AsPlatform> implements AsPlatformService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AsPlatform> listAsPlatformByType(Integer platformType) {
|
||||||
|
return baseMapper.listAsPlatformByType(platformType);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.pig4cloud.pigx.app.service.as.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.pig4cloud.pigx.app.api.entity.as.AsPlatformType;
|
||||||
|
import com.pig4cloud.pigx.app.mapper.as.AsPlatformTypeMapper;
|
||||||
|
import com.pig4cloud.pigx.app.service.as.AsPlatformTypeService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* as 平台类型
|
||||||
|
*
|
||||||
|
* @author amigo
|
||||||
|
* @date 2023-07
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class AsPlatformTypeServiceImpl extends ServiceImpl<AsPlatformTypeMapper, AsPlatformType> implements AsPlatformTypeService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AsPlatformType> listAsPlatformTypeByType(Integer platformType) {
|
||||||
|
return baseMapper.listAsPlatformTypeByType(platformType);
|
||||||
|
}
|
||||||
|
|
||||||
|
// R removePlatformTypeById(Long id);
|
||||||
|
|
||||||
|
// Boolean updatePlatformTypeById(AsPlatformType asPlatformType);
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user