Compare commits

...

2 Commits

Author SHA1 Message Date
19c82817ba 后台面板 2025-06-09 12:34:52 +08:00
89bade9232 1、新增后台面板
2、查询页改三要素
3、佣金冻结
2025-06-09 12:30:13 +08:00
442 changed files with 21821 additions and 13096 deletions

View File

@ -1,54 +0,0 @@
# Air配置文件
root = "."
tmp_dir = "tmp"
[build]
# 入口文件
cmd = "go build -gcflags=-N -gcflags=-l -o ./tmp/main.exe ./app/user/cmd/api/main.go"
# 二进制文件
bin = "./tmp/main.exe"
# 运行时的参数
full_bin = "dlv exec --accept-multiclient --headless --listen=:2345 --api-version=2 ./tmp/main.exe -- $env:ENV='development'"
# 监听以下扩展名的文件变化./
include_ext = ["go", "tpl", "tmpl", "html", "yaml", "yml"]
# 忽略的目录
exclude_dir = ["assets", "tmp", "vendor", "testdata", ".git", ".idea", "data"]
# 构建延迟
delay = 1000
# 停止延迟
kill_delay = "2s"
# 日志文件
log = "build-errors.log"
# 出错时停止
stop_on_error = true
# 发送中断信号
send_interrupt = true
[color]
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"
[log]
# 启用时间戳
time = true
# 启用详细日志
main_only = false
silent = false
[misc]
# 清理屏幕
clean_on_exit = false
[proxy]
app_port = 0
enabled = false
proxy_port = 0
[screen]
clear_on_rebuild = false
keep_scroll = true

View File

@ -1,54 +0,0 @@
# Air配置文件
root = "."
tmp_dir = "tmp"
[build]
# 入口文件
cmd = "go build -o ./tmp/main.exe ./app/user/cmd/api/main.go"
# 二进制文件
bin = "$env:ENV = 'development' && ./tmp/main.exe"
# 运行时的参数
full_bin = "./tmp/main.exe -- $env:ENV='development'"
# 监听以下扩展名的文件变化./
include_ext = ["go", "tpl", "tmpl", "html", "yaml", "yml"]
# 忽略的目录
exclude_dir = ["assets", "tmp", "vendor", "testdata", ".git", ".idea", "data"]
# 构建延迟
delay = 1000
# 停止延迟
kill_delay = "2s"
# 日志文件
log = "build-errors.log"
# 出错时停止
stop_on_error = true
# 发送中断信号
send_interrupt = true
[color]
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"
[log]
# 启用时间戳
time = true
# 启用详细日志
main_only = false
silent = false
[misc]
# 清理屏幕
clean_on_exit = false
[proxy]
app_port = 0
enabled = false
proxy_port = 0
[screen]
clear_on_rebuild = false
keep_scroll = true

View File

@ -53,7 +53,7 @@ qnc-server/ # 项目根目录
```
目录作用说明:
1. app/user/cmd/api/API服务目录
1. app/main/api/API服务目录
- desc/API接口定义包含各模块的API文件
- main.api主API文件导入所有模块API并定义路由
- user/user.api用户模块的请求响应参数定义
@ -69,7 +69,7 @@ qnc-server/ # 项目根目录
- svc/服务上下文管理服务依赖如DB、Cache等
- types/请求响应的结构体定义由goctl根据API文件生成(不允许自己修改)
2. app/user/model/:数据库模型层
2. app/main/model/:数据库模型层
- userModel.go用户表模型定义及CRUD方法
- userModel_gen.gogoctl工具生成的基础数据库操作代码(不允许自己修改)
- vars.go定义数据库相关变量和常量
@ -103,12 +103,12 @@ qnc-server/ # 项目根目录
使用goctl生成API服务的步骤
1. 首先确保API定义目录存在
```bash
mkdir -p app/user/cmd/api/desc/user
mkdir -p app/main/api/desc/user
```
2. API文件组织结构单体服务模式
```
app/user/cmd/api/desc/
app/main/api/desc/
├── user/
│ └── user.api # 用户模块的请求响应参数定义
├── order/
@ -116,7 +116,7 @@ qnc-server/ # 项目根目录
└── main.api # 主API文件集中管理所有模块的API定义
```
3. 在app/user/cmd/api/desc/main.api中集中管理所有API
3. 在app/main/api/desc/main.api中集中管理所有API
```
syntax = "v1"
@ -143,7 +143,7 @@ qnc-server/ # 项目根目录
}
```
4. 各模块在下一层定义类型例如在app/user/cmd/api/desc/user/user.api中只定义用户模块的接口的类型
4. 各模块在下一层定义类型例如在app/main/api/desc/user/user.api中只定义用户模块的接口的类型
```
type (
LoginReq {
@ -160,13 +160,13 @@ qnc-server/ # 项目根目录
5. 使用goctl生成API代码始终使用main.api
```bash
goctl api go -api app/user/cmd/api/desc/main.api -dir app/user/cmd/api --home ./deploy/template
goctl api go -api app/main/api/desc/main.api -dir app/main/api --home ./deploy/template
```
注意无论修改哪个模块的API文件都需要执行main.api来生成代码因为这是单体服务模式。
6. goctl生成的文件和目录结构
```
app/user/cmd/api/
app/main/api/
├── desc/ # API接口定义目录已存在
├── etc/ # 配置文件目录
│ └── main.yaml # 服务配置文件
@ -189,9 +189,9 @@ qnc-server/ # 项目根目录
```
7. 生成代码后,才能够实现具体的业务逻辑,例如:
- user.api中的`mobileLogin`接口生成的逻辑文件在`app/user/cmd/api/internal/logic/user/mobile_login_logic.go`
- user.api中的`wxMiniAuth`接口生成的逻辑文件在`app/user/cmd/api/internal/logic/user/wx_mini_auth_logic.go`
- query.api中的`queryService`接口生成的逻辑文件在`app/user/cmd/api/internal/logic/query/query_service_logic.go`
- user.api中的`mobileLogin`接口生成的逻辑文件在`app/main/api/internal/logic/user/mobile_login_logic.go`
- user.api中的`wxMiniAuth`接口生成的逻辑文件在`app/main/api/internal/logic/user/wx_mini_auth_logic.go`
- query.api中的`queryService`接口生成的逻辑文件在`app/main/api/internal/logic/query/query_service_logic.go`
生成的逻辑文件中需要实现`Logic`结构体的`XXX`方法(方法名与接口名对应),这是业务逻辑的核心部分。

10
.vscode/launch.json vendored
View File

@ -1,20 +1,12 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"args": []
},
{
"name": "调试API服务",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/app/user/cmd/api/main.go",
"program": "${workspaceFolder}/app/main/api/main.go",
"args": ["-f", "etc/main.dev.yaml"],
"env": {
"ENV": "development"

2
.vscode/tasks.json vendored
View File

@ -4,7 +4,7 @@
{
"label": "Run Go-Zero API (无调试)",
"type": "shell",
"command": "go run ${workspaceFolder}/app/user/cmd/api/main.go -f ${workspaceFolder}/app/user/cmd/api/etc/main.dev.yaml",
"command": "go run ${workspaceFolder}/app/main/api/main.go -f ${workspaceFolder}/app/main/api/etc/main.dev.yaml",
"group": {
"kind": "build",
"isDefault": true

View File

@ -14,8 +14,8 @@ ADD go.mod .
ADD go.sum .
RUN go mod download
COPY . .
COPY app/user/cmd/api/etc /app/etc
RUN go build -ldflags="-s -w" -o /app/user app/user/cmd/api/main.go
COPY app/main/api/etc /app/etc
RUN go build -ldflags="-s -w" -o /app/main app/main//api/main.go
FROM scratch
@ -25,7 +25,7 @@ COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/S
ENV TZ Asia/Shanghai
WORKDIR /app
COPY --from=builder /app/user /app/user
COPY --from=builder /app/main /app/user
COPY --from=builder /app/etc /app/etc
CMD ["./user", "-f", "etc/main.yaml"]

View File

@ -0,0 +1,385 @@
syntax = "v1"
info (
title: "后台代理管理服务"
desc: "后台代理相关接口"
author: "team"
version: "v1"
)
// 代理管理接口
@server(
prefix: /api/v1/admin/agent
group: admin_agent
)
service main {
// 代理分页查询
@handler AdminGetAgentList
get /list (AdminGetAgentListReq) returns (AdminGetAgentListResp)
// 代理推广链接分页查询
@handler AdminGetAgentLinkList
get /agent-link/list (AdminGetAgentLinkListReq) returns (AdminGetAgentLinkListResp)
// 代理佣金分页查询
@handler AdminGetAgentCommissionList
get /agent-commission/list (AdminGetAgentCommissionListReq) returns (AdminGetAgentCommissionListResp)
// 代理奖励分页查询
@handler AdminGetAgentRewardList
get /agent-reward/list (AdminGetAgentRewardListReq) returns (AdminGetAgentRewardListResp)
// 代理提现分页查询
@handler AdminGetAgentWithdrawalList
get /agent-withdrawal/list (AdminGetAgentWithdrawalListReq) returns (AdminGetAgentWithdrawalListResp)
// 代理上级抽佣分页查询
@handler AdminGetAgentCommissionDeductionList
get /agent-commission-deduction/list (AdminGetAgentCommissionDeductionListReq) returns (AdminGetAgentCommissionDeductionListResp)
// 平台抽佣分页查询
@handler AdminGetAgentPlatformDeductionList
get /agent-platform-deduction/list (AdminGetAgentPlatformDeductionListReq) returns (AdminGetAgentPlatformDeductionListResp)
// 代理产品配置分页查询
@handler AdminGetAgentProductionConfigList
get /agent-production-config/list (AdminGetAgentProductionConfigListReq) returns (AdminGetAgentProductionConfigListResp)
// 代理产品配置编辑
@handler AdminUpdateAgentProductionConfig
post /agent-production-config/update (AdminUpdateAgentProductionConfigReq) returns (AdminUpdateAgentProductionConfigResp)
// 代理会员充值订单分页查询
@handler AdminGetAgentMembershipRechargeOrderList
get /agent-membership-recharge-order/list (AdminGetAgentMembershipRechargeOrderListReq) returns (AdminGetAgentMembershipRechargeOrderListResp)
// 代理会员配置分页查询
@handler AdminGetAgentMembershipConfigList
get /agent-membership-config/list (AdminGetAgentMembershipConfigListReq) returns (AdminGetAgentMembershipConfigListResp)
// 代理会员配置编辑
@handler AdminUpdateAgentMembershipConfig
post /agent-membership-config/update (AdminUpdateAgentMembershipConfigReq) returns (AdminUpdateAgentMembershipConfigResp)
}
type (
// 代理分页查询请求
AdminGetAgentListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
Mobile *string `form:"mobile,optional"` // 手机号(可选)
Region *string `form:"region,optional"` // 区域(可选)
ParentAgentId *int64 `form:"parent_agent_id,optional"` // 上级代理ID可选
}
// 代理列表项
AgentListItem {
Id int64 `json:"id"` // 主键
UserId int64 `json:"user_id"` // 用户ID
ParentAgentId int64 `json:"parent_agent_id"` // 上级代理ID
LevelName string `json:"level_name"` // 等级名称
Region string `json:"region"` // 区域
Mobile string `json:"mobile"` // 手机号
MembershipExpiryTime string `json:"membership_expiry_time"` // 会员到期时间
Balance float64 `json:"balance"` // 钱包余额
TotalEarnings float64 `json:"total_earnings"` // 累计收益
FrozenBalance float64 `json:"frozen_balance"` // 冻结余额
WithdrawnAmount float64 `json:"withdrawn_amount"` // 提现总额
CreateTime string `json:"create_time"` // 创建时间
IsRealNameVerified bool `json:"is_real_name_verified"` // 是否已实名认证
RealName string `json:"real_name"` // 实名姓名
IdCard string `json:"id_card"` // 身份证号
RealNameStatus string `json:"real_name_status"` // 实名状态pending/approved/rejected
}
// 代理分页查询响应
AdminGetAgentListResp {
Total int64 `json:"total"` // 总数
Items []AgentListItem `json:"items"` // 列表数据
}
// 代理推广链接分页查询请求
AdminGetAgentLinkListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
ProductName *string `form:"product_name,optional"` // 产品名(可选)
LinkIdentifier *string `form:"link_identifier,optional"` // 推广码(可选)
}
// 代理推广链接列表项
AgentLinkListItem {
AgentId int64 `json:"agent_id"` // 代理ID
ProductName string `json:"product_name"` // 产品名
Price float64 `json:"price"` // 价格
LinkIdentifier string `json:"link_identifier"` // 推广码
CreateTime string `json:"create_time"` // 创建时间
}
// 代理推广链接分页查询响应
AdminGetAgentLinkListResp {
Total int64 `json:"total"` // 总数
Items []AgentLinkListItem `json:"items"` // 列表数据
}
// 代理佣金分页查询请求
AdminGetAgentCommissionListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
ProductName *string `form:"product_name,optional"` // 产品名(可选)
Status *int64 `form:"status,optional"` // 状态(可选)
}
// 代理佣金列表项
AgentCommissionListItem {
Id int64 `json:"id"` // 主键
AgentId int64 `json:"agent_id"` // 代理ID
OrderId int64 `json:"order_id"` // 订单ID
Amount float64 `json:"amount"` // 金额
ProductName string `json:"product_name"` // 产品名
Status int64 `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
}
// 代理佣金分页查询响应
AdminGetAgentCommissionListResp {
Total int64 `json:"total"` // 总数
Items []AgentCommissionListItem `json:"items"` // 列表数据
}
// 代理奖励分页查询请求
AdminGetAgentRewardListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
RelationAgentId *int64 `form:"relation_agent_id,optional"` // 关联代理ID可选
Type *string `form:"type,optional"` // 奖励类型(可选)
}
// 代理奖励列表项
AgentRewardListItem {
Id int64 `json:"id"` // 主键
AgentId int64 `json:"agent_id"` // 代理ID
RelationAgentId int64 `json:"relation_agent_id"` // 关联代理ID
Amount float64 `json:"amount"` // 金额
Type string `json:"type"` // 奖励类型
CreateTime string `json:"create_time"` // 创建时间
}
// 代理奖励分页查询响应
AdminGetAgentRewardListResp {
Total int64 `json:"total"` // 总数
Items []AgentRewardListItem `json:"items"` // 列表数据
}
// 代理提现分页查询请求
AdminGetAgentWithdrawalListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
Status *int64 `form:"status,optional"` // 状态(可选)
WithdrawNo *string `form:"withdraw_no,optional"` // 提现单号(可选)
}
// 代理提现列表项
AgentWithdrawalListItem {
Id int64 `json:"id"` // 主键
AgentId int64 `json:"agent_id"` // 代理ID
WithdrawNo string `json:"withdraw_no"` // 提现单号
Amount float64 `json:"amount"` // 金额
Status int64 `json:"status"` // 状态
PayeeAccount string `json:"payee_account"` // 收款账户
Remark string `json:"remark"` // 备注
CreateTime string `json:"create_time"` // 创建时间
}
// 代理提现分页查询响应
AdminGetAgentWithdrawalListResp {
Total int64 `json:"total"` // 总数
Items []AgentWithdrawalListItem `json:"items"` // 列表数据
}
// 代理抽佣分页查询请求
AdminGetAgentCommissionDeductionListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
ProductName *string `form:"product_name,optional"` // 产品名(可选)
Type *string `form:"type,optional"` // 类型cost/pricing可选
Status *int64 `form:"status,optional"` // 状态(可选)
}
// 代理抽佣列表项
AgentCommissionDeductionListItem {
Id int64 `json:"id"` // 主键
AgentId int64 `json:"agent_id"` // 代理ID
DeductedAgentId int64 `json:"deducted_agent_id"` // 被扣代理ID
Amount float64 `json:"amount"` // 金额
ProductName string `json:"product_name"` // 产品名
Type string `json:"type"` // 类型cost/pricing
Status int64 `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
}
// 代理抽佣分页查询响应
AdminGetAgentCommissionDeductionListResp {
Total int64 `json:"total"` // 总数
Items []AgentCommissionDeductionListItem `json:"items"` // 列表数据
}
// 平台抽佣分页查询请求
AdminGetAgentPlatformDeductionListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
Type *string `form:"type,optional"` // 类型cost/pricing可选
Status *int64 `form:"status,optional"` // 状态(可选)
}
// 平台抽佣列表项
AgentPlatformDeductionListItem {
Id int64 `json:"id"` // 主键
AgentId int64 `json:"agent_id"` // 代理ID
Amount float64 `json:"amount"` // 金额
Type string `json:"type"` // 类型cost/pricing
Status int64 `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
}
// 平台抽佣分页查询响应
AdminGetAgentPlatformDeductionListResp {
Total int64 `json:"total"` // 总数
Items []AgentPlatformDeductionListItem `json:"items"` // 列表数据
}
// 代理产品配置分页查询请求
AdminGetAgentProductionConfigListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
ProductName *string `form:"product_name,optional"` // 产品名(可选)
Id *int64 `form:"id,optional"` // 配置ID可选
}
// 代理产品配置分页查询响应
AdminGetAgentProductionConfigListResp {
Total int64 `json:"total"` // 总数
Items []AgentProductionConfigItem `json:"items"` // 列表数据
}
// 代理产品配置列表项
AgentProductionConfigItem {
Id int64 `json:"id"` // 主键
ProductName string `json:"product_name"` // 产品名
CostPrice float64 `json:"cost_price"` // 成本
PriceRangeMin float64 `json:"price_range_min"` // 最低定价
PriceRangeMax float64 `json:"price_range_max"` // 最高定价
PricingStandard float64 `json:"pricing_standard"` // 定价标准
OverpricingRatio float64 `json:"overpricing_ratio"` // 超价比例
CreateTime string `json:"create_time"` // 创建时间
}
// 代理产品配置编辑请求
AdminUpdateAgentProductionConfigReq {
Id int64 `json:"id"` // 主键
CostPrice float64 `json:"cost_price"` // 成本
PriceRangeMin float64 `json:"price_range_min"` // 最低定价
PriceRangeMax float64 `json:"price_range_max"` // 最高定价
PricingStandard float64 `json:"pricing_standard"` // 定价标准
OverpricingRatio float64 `json:"overpricing_ratio"` // 超价比例
}
// 代理产品配置编辑响应
AdminUpdateAgentProductionConfigResp {
Success bool `json:"success"` // 是否成功
}
// 代理会员充值订单分页查询请求
AdminGetAgentMembershipRechargeOrderListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
UserId *int64 `form:"user_id,optional"` // 用户ID可选
AgentId *int64 `form:"agent_id,optional"` // 代理ID可选
OrderNo *string `form:"order_no,optional"` // 订单号(可选)
PlatformOrderId *string `form:"platform_order_id,optional"` // 平台订单号(可选)
Status *string `form:"status,optional"` // 状态(可选)
PaymentMethod *string `form:"payment_method,optional"` // 支付方式(可选)
}
// 代理会员充值订单列表项
AgentMembershipRechargeOrderListItem {
Id int64 `json:"id"` // 主键
UserId int64 `json:"user_id"` // 用户ID
AgentId int64 `json:"agent_id"` // 代理ID
LevelName string `json:"level_name"` // 等级名称
Amount float64 `json:"amount"` // 金额
PaymentMethod string `json:"payment_method"` // 支付方式
OrderNo string `json:"order_no"` // 订单号
PlatformOrderId string `json:"platform_order_id"` // 平台订单号
Status string `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
}
// 代理会员充值订单分页查询响应
AdminGetAgentMembershipRechargeOrderListResp {
Total int64 `json:"total"` // 总数
Items []AgentMembershipRechargeOrderListItem `json:"items"` // 列表数据
}
// 代理会员配置分页查询请求
AdminGetAgentMembershipConfigListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
LevelName *string `form:"level_name,optional"` // 会员级别名称(可选)
}
// 代理会员配置分页查询响应
AdminGetAgentMembershipConfigListResp {
Total int64 `json:"total"` // 总数
Items []AgentMembershipConfigListItem `json:"items"` // 列表数据
}
// 代理会员配置列表项
AgentMembershipConfigListItem {
Id int64 `json:"id"` // 主键
LevelName string `json:"level_name"` // 会员级别名称
Price *float64 `json:"price"` // 会员年费
ReportCommission *float64 `json:"report_commission"` // 直推报告收益
LowerActivityReward *float64 `json:"lower_activity_reward"` // 下级活跃奖励金额
NewActivityReward *float64 `json:"new_activity_reward"` // 新增活跃奖励金额
LowerStandardCount *int64 `json:"lower_standard_count"` // 活跃下级达标个数
NewLowerStandardCount *int64 `json:"new_lower_standard_count"` // 新增活跃下级达标个数
LowerWithdrawRewardRatio *float64 `json:"lower_withdraw_reward_ratio"` // 下级提现奖励比例
LowerConvertVipReward *float64 `json:"lower_convert_vip_reward"` // 下级转化VIP奖励
LowerConvertSvipReward *float64 `json:"lower_convert_svip_reward"` // 下级转化SVIP奖励
ExemptionAmount *float64 `json:"exemption_amount"` // 免责金额
PriceIncreaseMax *float64 `json:"price_increase_max"` // 提价最高金额
PriceRatio *float64 `json:"price_ratio"` // 提价区间收取比例
PriceIncreaseAmount *float64 `json:"price_increase_amount"` // 在原本成本上加价的金额
CreateTime string `json:"create_time"` // 创建时间
}
// 代理会员配置编辑请求
AdminUpdateAgentMembershipConfigReq {
Id int64 `json:"id"` // 主键
LevelName string `json:"level_name"` // 会员级别名称
Price float64 `json:"price"` // 会员年费
ReportCommission float64 `json:"report_commission"` // 直推报告收益
LowerActivityReward *float64 `json:"lower_activity_reward,optional,omitempty"` // 下级活跃奖励金额
NewActivityReward *float64 `json:"new_activity_reward,optional,omitempty"` // 新增活跃奖励金额
LowerStandardCount *int64 `json:"lower_standard_count,optional,omitempty"` // 活跃下级达标个数
NewLowerStandardCount *int64 `json:"new_lower_standard_count,optional,omitempty"` // 新增活跃下级达标个数
LowerWithdrawRewardRatio *float64 `json:"lower_withdraw_reward_ratio,optional,omitempty"` // 下级提现奖励比例
LowerConvertVipReward *float64 `json:"lower_convert_vip_reward,optional,omitempty"` // 下级转化VIP奖励
LowerConvertSvipReward *float64 `json:"lower_convert_svip_reward,optional,omitempty"` // 下级转化SVIP奖励
ExemptionAmount *float64 `json:"exemption_amount,optional,omitempty"` // 免责金额
PriceIncreaseMax *float64 `json:"price_increase_max,optional,omitempty"` // 提价最高金额
PriceRatio *float64 `json:"price_ratio,optional,omitempty"` // 提价区间收取比例
PriceIncreaseAmount *float64 `json:"price_increase_amount,optional,omitempty"` // 在原本成本上加价的金额
}
// 代理会员配置编辑响应
AdminUpdateAgentMembershipConfigResp {
Success bool `json:"success"` // 是否成功
}
)

View File

@ -0,0 +1,108 @@
syntax = "v1"
info (
title: "后台功能管理服务"
desc: "后台功能管理相关接口"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
// 功能管理接口
@server(
prefix: /api/v1/admin/feature
group: admin_feature
)
service main {
// 创建功能
@handler AdminCreateFeature
post /create (AdminCreateFeatureReq) returns (AdminCreateFeatureResp)
// 更新功能
@handler AdminUpdateFeature
put /update/:id (AdminUpdateFeatureReq) returns (AdminUpdateFeatureResp)
// 删除功能
@handler AdminDeleteFeature
delete /delete/:id (AdminDeleteFeatureReq) returns (AdminDeleteFeatureResp)
// 获取功能列表
@handler AdminGetFeatureList
get /list (AdminGetFeatureListReq) returns (AdminGetFeatureListResp)
// 获取功能详情
@handler AdminGetFeatureDetail
get /detail/:id (AdminGetFeatureDetailReq) returns (AdminGetFeatureDetailResp)
}
type (
// 创建功能请求
AdminCreateFeatureReq {
ApiId string `json:"api_id"` // API标识
Name string `json:"name"` // 描述
}
// 创建功能响应
AdminCreateFeatureResp {
Id int64 `json:"id"` // 功能ID
}
// 更新功能请求
AdminUpdateFeatureReq {
Id int64 `path:"id"` // 功能ID
ApiId *string `json:"api_id,optional"` // API标识
Name *string `json:"name,optional"` // 描述
}
// 更新功能响应
AdminUpdateFeatureResp {
Success bool `json:"success"` // 是否成功
}
// 删除功能请求
AdminDeleteFeatureReq {
Id int64 `path:"id"` // 功能ID
}
// 删除功能响应
AdminDeleteFeatureResp {
Success bool `json:"success"` // 是否成功
}
// 获取功能列表请求
AdminGetFeatureListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
ApiId *string `form:"api_id,optional"` // API标识
Name *string `form:"name,optional"` // 描述
}
// 功能列表项
FeatureListItem {
Id int64 `json:"id"` // 功能ID
ApiId string `json:"api_id"` // API标识
Name string `json:"name"` // 描述
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 获取功能列表响应
AdminGetFeatureListResp {
Total int64 `json:"total"` // 总数
Items []FeatureListItem `json:"items"` // 列表数据
}
// 获取功能详情请求
AdminGetFeatureDetailReq {
Id int64 `path:"id"` // 功能ID
}
// 获取功能详情响应
AdminGetFeatureDetailResp {
Id int64 `json:"id"` // 功能ID
ApiId string `json:"api_id"` // API标识
Name string `json:"name"` // 描述
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
)

View File

@ -0,0 +1,175 @@
syntax = "v1"
info (
title: "后台产品管理服务"
desc: "后台产品管理相关接口"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
// 产品管理接口
@server(
prefix: /api/v1/admin/product
group: admin_product
)
service main {
// 创建产品
@handler AdminCreateProduct
post /create (AdminCreateProductReq) returns (AdminCreateProductResp)
// 更新产品
@handler AdminUpdateProduct
put /update/:id (AdminUpdateProductReq) returns (AdminUpdateProductResp)
// 删除产品
@handler AdminDeleteProduct
delete /delete/:id (AdminDeleteProductReq) returns (AdminDeleteProductResp)
// 获取产品列表
@handler AdminGetProductList
get /list (AdminGetProductListReq) returns (AdminGetProductListResp)
// 获取产品详情
@handler AdminGetProductDetail
get /detail/:id (AdminGetProductDetailReq) returns (AdminGetProductDetailResp)
// 获取产品功能列表
@handler AdminGetProductFeatureList
get /feature/list/:product_id (AdminGetProductFeatureListReq) returns ([]AdminGetProductFeatureListResp)
// 更新产品功能关联(批量)
@handler AdminUpdateProductFeatures
put /feature/update/:product_id (AdminUpdateProductFeaturesReq) returns (AdminUpdateProductFeaturesResp)
}
type (
// 创建产品请求
AdminCreateProductReq {
ProductName string `json:"product_name"` // 服务名
ProductEn string `json:"product_en"` // 英文名
Description string `json:"description"` // 描述
Notes string `json:"notes,optional"` // 备注
CostPrice float64 `json:"cost_price"` // 成本
SellPrice float64 `json:"sell_price"` // 售价
}
// 创建产品响应
AdminCreateProductResp {
Id int64 `json:"id"` // 产品ID
}
// 更新产品请求
AdminUpdateProductReq {
Id int64 `path:"id"` // 产品ID
ProductName *string `json:"product_name,optional"` // 服务名
ProductEn *string `json:"product_en,optional"` // 英文名
Description *string `json:"description,optional"` // 描述
Notes *string `json:"notes,optional"` // 备注
CostPrice *float64 `json:"cost_price,optional"` // 成本
SellPrice *float64 `json:"sell_price,optional"` // 售价
}
// 更新产品响应
AdminUpdateProductResp {
Success bool `json:"success"` // 是否成功
}
// 删除产品请求
AdminDeleteProductReq {
Id int64 `path:"id"` // 产品ID
}
// 删除产品响应
AdminDeleteProductResp {
Success bool `json:"success"` // 是否成功
}
// 获取产品列表请求
AdminGetProductListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
ProductName *string `form:"product_name,optional"` // 服务名
ProductEn *string `form:"product_en,optional"` // 英文名
}
// 产品列表项
ProductListItem {
Id int64 `json:"id"` // 产品ID
ProductName string `json:"product_name"` // 服务名
ProductEn string `json:"product_en"` // 英文名
Description string `json:"description"` // 描述
Notes string `json:"notes"` // 备注
CostPrice float64 `json:"cost_price"` // 成本
SellPrice float64 `json:"sell_price"` // 售价
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 获取产品列表响应
AdminGetProductListResp {
Total int64 `json:"total"` // 总数
Items []ProductListItem `json:"items"` // 列表数据
}
// 获取产品详情请求
AdminGetProductDetailReq {
Id int64 `path:"id"` // 产品ID
}
// 获取产品详情响应
AdminGetProductDetailResp {
Id int64 `json:"id"` // 产品ID
ProductName string `json:"product_name"` // 服务名
ProductEn string `json:"product_en"` // 英文名
Description string `json:"description"` // 描述
Notes string `json:"notes"` // 备注
CostPrice float64 `json:"cost_price"` // 成本
SellPrice float64 `json:"sell_price"` // 售价
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 获取产品功能列表请求
AdminGetProductFeatureListReq {
ProductId int64 `path:"product_id"` // 产品ID
}
// 获取产品功能列表响应Item
AdminGetProductFeatureListResp {
Id int64 `json:"id"` // 关联ID
ProductId int64 `json:"product_id"` // 产品ID
FeatureId int64 `json:"feature_id"` // 功能ID
ApiId string `json:"api_id"` // API标识
Name string `json:"name"` // 功能描述
Sort int64 `json:"sort"` // 排序
Enable int64 `json:"enable"` // 是否启用
IsImportant int64 `json:"is_important"` // 是否重要
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// // 获取产品功能列表响应
// AdminGetProductFeatureListResp {
// Items []ProductFeatureListItem `json:"items"` // 列表数据
// }
// 产品功能关联项
ProductFeatureItem {
FeatureId int64 `json:"feature_id"` // 功能ID
Sort int64 `json:"sort"` // 排序
Enable int64 `json:"enable"` // 是否启用
IsImportant int64 `json:"is_important"` // 是否重要
}
// 更新产品功能关联请求(批量)
AdminUpdateProductFeaturesReq {
ProductId int64 `path:"product_id"` // 产品ID
Features []ProductFeatureItem `json:"features"` // 功能列表
}
// 更新产品功能关联响应
AdminUpdateProductFeaturesResp {
Success bool `json:"success"` // 是否成功
}
)

View File

@ -0,0 +1,135 @@
syntax = "v1"
info (
title: "查询服务"
desc: "查询服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/query
group: admin_query
jwt: JwtAuth
)
service main {
@doc "获取查询详情"
@handler AdminGetQueryDetailByOrderId
get /detail/:order_id (AdminGetQueryDetailByOrderIdReq) returns (AdminGetQueryDetailByOrderIdResp)
@doc "获取清理日志列表"
@handler AdminGetQueryCleanupLogList
get /cleanup/logs (AdminGetQueryCleanupLogListReq) returns (AdminGetQueryCleanupLogListResp)
@doc "获取清理详情列表"
@handler AdminGetQueryCleanupDetailList
get /cleanup/details/:log_id (AdminGetQueryCleanupDetailListReq) returns (AdminGetQueryCleanupDetailListResp)
@doc "获取清理配置列表"
@handler AdminGetQueryCleanupConfigList
get /cleanup/configs (AdminGetQueryCleanupConfigListReq) returns (AdminGetQueryCleanupConfigListResp)
@doc "更新清理配置"
@handler AdminUpdateQueryCleanupConfig
put /cleanup/config (AdminUpdateQueryCleanupConfigReq) returns (AdminUpdateQueryCleanupConfigResp)
}
type AdminGetQueryDetailByOrderIdReq {
OrderId int64 `path:"order_id"`
}
type AdminGetQueryDetailByOrderIdResp {
Id int64 `json:"id"` // 主键ID
OrderId int64 `json:"order_id"` // 订单ID
UserId int64 `json:"user_id"` // 用户ID
ProductName string `json:"product_name"` // 产品ID
QueryParams map[string]interface{} `json:"query_params"`
QueryData []AdminQueryItem `json:"query_data"`
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
QueryState string `json:"query_state"` // 查询状态
}
type AdminQueryItem {
Feature interface{} `json:"feature"`
Data interface{} `json:"data"` // 这里可以是 map 或 具体的 struct
}
// 清理日志相关请求响应定义
type AdminGetQueryCleanupLogListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"page_size,default=20"` // 每页数量
Status int64 `form:"status,optional"` // 状态1-成功2-失败
StartTime string `form:"start_time,optional"` // 开始时间
EndTime string `form:"end_time,optional"` // 结束时间
}
type AdminGetQueryCleanupLogListResp {
Total int64 `json:"total"` // 总数
Items []QueryCleanupLogItem `json:"items"` // 列表
}
type QueryCleanupLogItem {
Id int64 `json:"id"` // 主键ID
CleanupTime string `json:"cleanup_time"` // 清理时间
CleanupBefore string `json:"cleanup_before"` // 清理截止时间
Status int64 `json:"status"` // 状态1-成功2-失败
AffectedRows int64 `json:"affected_rows"` // 影响行数
ErrorMsg string `json:"error_msg"` // 错误信息
Remark string `json:"remark"` // 备注
CreateTime string `json:"create_time"` // 创建时间
}
// 清理详情相关请求响应定义
type AdminGetQueryCleanupDetailListReq {
LogId int64 `path:"log_id"` // 清理日志ID
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"page_size,default=20"` // 每页数量
}
type AdminGetQueryCleanupDetailListResp {
Total int64 `json:"total"` // 总数
Items []QueryCleanupDetailItem `json:"items"` // 列表
}
type QueryCleanupDetailItem {
Id int64 `json:"id"` // 主键ID
CleanupLogId int64 `json:"cleanup_log_id"` // 清理日志ID
QueryId int64 `json:"query_id"` // 查询ID
OrderId int64 `json:"order_id"` // 订单ID
UserId int64 `json:"user_id"` // 用户ID
ProductName string `json:"product_name"` // 产品名称
QueryState string `json:"query_state"` // 查询状态
CreateTimeOld string `json:"create_time_old"` // 原创建时间
CreateTime string `json:"create_time"` // 创建时间
}
// 清理配置相关请求响应定义
type AdminGetQueryCleanupConfigListReq {
Status int64 `form:"status,optional"` // 状态1-启用0-禁用
}
type AdminGetQueryCleanupConfigListResp {
Items []QueryCleanupConfigItem `json:"items"` // 配置列表
}
type QueryCleanupConfigItem {
Id int64 `json:"id"` // 主键ID
ConfigKey string `json:"config_key"` // 配置键
ConfigValue string `json:"config_value"` // 配置值
ConfigDesc string `json:"config_desc"` // 配置描述
Status int64 `json:"status"` // 状态1-启用0-禁用
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
type AdminUpdateQueryCleanupConfigReq {
Id int64 `json:"id"` // 主键ID
ConfigValue string `json:"config_value"` // 配置值
Status int64 `json:"status"` // 状态1-启用0-禁用
}
type AdminUpdateQueryCleanupConfigResp {
Success bool `json:"success"` // 是否成功
}

View File

@ -0,0 +1,131 @@
syntax = "v1"
info (
title: "后台用户中心服务"
desc: "后台用户中心服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/user
group: admin_user
jwt: JwtAuth
)
service main {
@doc "获取用户列表"
@handler AdminGetUserList
get /list (AdminGetUserListReq) returns (AdminGetUserListResp)
@doc "获取用户详情"
@handler AdminGetUserDetail
get /detail/:id (AdminGetUserDetailReq) returns (AdminGetUserDetailResp)
@doc "创建用户"
@handler AdminCreateUser
post /create (AdminCreateUserReq) returns (AdminCreateUserResp)
@doc "更新用户"
@handler AdminUpdateUser
put /update/:id (AdminUpdateUserReq) returns (AdminUpdateUserResp)
@doc "删除用户"
@handler AdminDeleteUser
delete /delete/:id (AdminDeleteUserReq) returns (AdminDeleteUserResp)
@doc "用户信息"
@handler AdminUserInfo
get /info (AdminUserInfoReq) returns (AdminUserInfoResp)
}
type (
// 列表请求
AdminGetUserListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"pageSize,default=20"` // 每页数量
Username string `form:"username,optional"` // 用户名
RealName string `form:"real_name,optional"` // 真实姓名
Status int64 `form:"status,optional,default=-1"` // 状态0-禁用1-启用
}
// 列表响应
AdminGetUserListResp {
Total int64 `json:"total"` // 总数
Items []AdminUserListItem `json:"items"` // 列表
}
// 列表项
AdminUserListItem {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
RealName string `json:"real_name"` // 真实姓名
Status int64 `json:"status"` // 状态0-禁用1-启用
CreateTime string `json:"create_time"` // 创建时间
RoleIds []int64 `json:"role_ids"` // 关联的角色ID列表
}
// 详情请求
AdminGetUserDetailReq {
Id int64 `path:"id"` // 用户ID
}
// 详情响应
AdminGetUserDetailResp {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
RealName string `json:"real_name"` // 真实姓名
Status int64 `json:"status"` // 状态0-禁用1-启用
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
RoleIds []int64 `json:"role_ids"` // 关联的角色ID列表
}
// 创建请求
AdminCreateUserReq {
Username string `json:"username"` // 用户名
RealName string `json:"real_name"` // 真实姓名
Status int64 `json:"status,default=1"` // 状态0-禁用1-启用
RoleIds []int64 `json:"role_ids"` // 关联的角色ID列表
}
// 创建响应
AdminCreateUserResp {
Id int64 `json:"id"` // 用户ID
}
// 更新请求
AdminUpdateUserReq {
Id int64 `path:"id"` // 用户ID
Username *string `json:"username,optional"` // 用户名
RealName *string `json:"real_name,optional"` // 真实姓名
Status *int64 `json:"status,optional"` // 状态0-禁用1-启用
RoleIds []int64 `json:"role_ids,optional"` // 关联的角色ID列表
}
// 更新响应
AdminUpdateUserResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
AdminDeleteUserReq {
Id int64 `path:"id"` // 用户ID
}
// 删除响应
AdminDeleteUserResp {
Success bool `json:"success"` // 是否成功
}
// 用户信息请求
AdminUserInfoReq {
}
// 用户信息响应
AdminUserInfoResp {
Username string `json:"username"` // 用户名
RealName string `json:"real_name"` // 真实姓名
Roles []string `json:"roles"` // 角色编码列表
}
)

View File

@ -0,0 +1,34 @@
syntax = "v1"
info (
title: "认证中心服务"
desc: "认证中心服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/auth
group: admin_auth
)
service main {
@doc "登录"
@handler AdminLogin
post /login (AdminLoginReq) returns (AdminLoginResp)
}
type (
AdminLoginReq {
Username string `json:"username" validate:"required"`
Password string `json:"password" validate:"required"`
Captcha bool `json:"captcha" validate:"required"`
}
AdminLoginResp {
AccessToken string `json:"access_token"`
AccessExpire int64 `json:"access_expire"`
RefreshAfter int64 `json:"refresh_after"`
Roles []string `json:"roles"`
}
)

View File

@ -0,0 +1,149 @@
syntax = "v1"
info (
title: "菜单中心服务"
desc: "菜单中心服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/menu
group: admin_menu
jwt: JwtAuth
)
service main {
@doc "获取菜单列表"
@handler GetMenuList
get /list (GetMenuListReq) returns ([]MenuListItem)
@doc "获取菜单详情"
@handler GetMenuDetail
get /detail/:id (GetMenuDetailReq) returns (GetMenuDetailResp)
@doc "创建菜单"
@handler CreateMenu
post /create (CreateMenuReq) returns (CreateMenuResp)
@doc "更新菜单"
@handler UpdateMenu
put /update/:id (UpdateMenuReq) returns (UpdateMenuResp)
@doc "删除菜单"
@handler DeleteMenu
delete /delete/:id (DeleteMenuReq) returns (DeleteMenuResp)
@doc "获取所有菜单(树形结构)"
@handler GetMenuAll
get /all (GetMenuAllReq) returns ([]GetMenuAllResp)
}
type (
// 列表请求
GetMenuListReq {
Name string `form:"name,optional"` // 菜单名称
Path string `form:"path,optional"` // 路由路径
Status int64 `form:"status,optional,default=-1"` // 状态0-禁用1-启用
Type string `form:"type,optional"` // 类型
}
// 列表项
MenuListItem {
Id int64 `json:"id"` // 菜单ID
Pid int64 `json:"pid"` // 父菜单ID
Name string `json:"name"` // 路由名称
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 组件路径
Redirect string `json:"redirect"` // 重定向路径
Meta map[string]interface{} `json:"meta"` // 路由元数据
Status int64 `json:"status"` // 状态0-禁用1-启用
Type string `json:"type"` // 类型
Sort int64 `json:"sort"` // 排序
CreateTime string `json:"createTime"` // 创建时间
Children []MenuListItem `json:"children"` // 子菜单
}
// 详情请求
GetMenuDetailReq {
Id int64 `path:"id"` // 菜单ID
}
// 详情响应
GetMenuDetailResp {
Id int64 `json:"id"` // 菜单ID
Pid int64 `json:"pid"` // 父菜单ID
Name string `json:"name"` // 路由名称
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 组件路径
Redirect string `json:"redirect"` // 重定向路径
Meta map[string]interface{} `json:"meta"` // 路由元数据
Status int64 `json:"status"` // 状态0-禁用1-启用
Type string `json:"type"` // 类型
Sort int64 `json:"sort"` // 排序
CreateTime string `json:"createTime"` // 创建时间
UpdateTime string `json:"updateTime"` // 更新时间
}
// 创建请求
CreateMenuReq {
Pid int64 `json:"pid,optional"` // 父菜单ID
Name string `json:"name"` // 路由名称
Path string `json:"path,optional"` // 路由路径
Component string `json:"component,optional"` // 组件路径
Redirect string `json:"redirect,optional"` // 重定向路径
Meta map[string]interface{} `json:"meta"` // 路由元数据
Status int64 `json:"status,optional,default=1"` // 状态0-禁用1-启用
Type string `json:"type"` // 类型
Sort int64 `json:"sort,optional"` // 排序
}
// 创建响应
CreateMenuResp {
Id int64 `json:"id"` // 菜单ID
}
// 更新请求
UpdateMenuReq {
Id int64 `path:"id"` // 菜单ID
Pid int64 `json:"pid,optional"` // 父菜单ID
Name string `json:"name"` // 路由名称
Path string `json:"path,optional"` // 路由路径
Component string `json:"component,optional"` // 组件路径
Redirect string `json:"redirect,optional"` // 重定向路径
Meta map[string]interface{} `json:"meta"` // 路由元数据
Status int64 `json:"status,optional"` // 状态0-禁用1-启用
Type string `json:"type"` // 类型
Sort int64 `json:"sort,optional"` // 排序
}
// 更新响应
UpdateMenuResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
DeleteMenuReq {
Id int64 `path:"id"` // 菜单ID
}
// 删除响应
DeleteMenuResp {
Success bool `json:"success"` // 是否成功
}
// 获取所有菜单请求
GetMenuAllReq {
}
// 获取所有菜单响应
GetMenuAllResp {
Name string `json:"name"`
Path string `json:"path"`
Redirect string `json:"redirect,omitempty"`
Component string `json:"component,omitempty"`
Sort int64 `json:"sort"`
Meta map[string]interface{} `json:"meta"`
Children []GetMenuAllResp `json:"children"`
}
)

View File

@ -0,0 +1,127 @@
syntax = "v1"
type (
// 创建通知请求
AdminCreateNotificationReq {
Title string `json:"title"` // 通知标题
NotificationPage string `json:"notification_page"` // 通知页面
Content string `json:"content"` // 通知内容
StartDate string `json:"start_date"` // 生效开始日期yyyy-MM-dd
StartTime string `json:"start_time"` // 生效开始时间HH:mm:ss
EndDate string `json:"end_date"` // 生效结束日期yyyy-MM-dd
EndTime string `json:"end_time"` // 生效结束时间HH:mm:ss
Status int64 `json:"status"` // 状态1-启用0-禁用
}
// 创建通知响应
AdminCreateNotificationResp {
Id int64 `json:"id"` // 通知ID
}
// 更新通知请求
AdminUpdateNotificationReq {
Id int64 `path:"id"` // 通知ID
Title *string `json:"title,optional"` // 通知标题
Content *string `json:"content,optional"` // 通知内容
NotificationPage *string `json:"notification_page,optional"` // 通知页面
StartDate *string `json:"start_date,optional"` // 生效开始日期
StartTime *string `json:"start_time,optional"` // 生效开始时间
EndDate *string `json:"end_date,optional"` // 生效结束日期
EndTime *string `json:"end_time,optional"` // 生效结束时间
Status *int64 `json:"status,optional"` // 状态
}
// 更新通知响应
AdminUpdateNotificationResp {
Success bool `json:"success"` // 是否成功
}
// 删除通知请求
AdminDeleteNotificationReq {
Id int64 `path:"id"` // 通知ID
}
// 删除通知响应
AdminDeleteNotificationResp {
Success bool `json:"success"` // 是否成功
}
// 获取通知详情请求
AdminGetNotificationDetailReq {
Id int64 `path:"id"` // 通知ID
}
// 获取通知详情响应
AdminGetNotificationDetailResp {
Id int64 `json:"id"` // 通知ID
Title string `json:"title"` // 通知标题
Content string `json:"content"` // 通知内容
NotificationPage string `json:"notification_page"` // 通知页面
StartDate string `json:"start_date"` // 生效开始日期
StartTime string `json:"start_time"` // 生效开始时间
EndDate string `json:"end_date"` // 生效结束日期
EndTime string `json:"end_time"` // 生效结束时间
Status int64 `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 获取通知列表请求
AdminGetNotificationListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"pageSize"` // 每页数量
Title *string `form:"title,optional"` // 通知标题(可选)
NotificationPage *string `form:"notification_page,optional"` // 通知页面(可选)
Status *int64 `form:"status,optional"` // 状态(可选)
StartDate *string `form:"start_date,optional"` // 开始日期范围(可选)
EndDate *string `form:"end_date,optional"` // 结束日期范围(可选)
}
// 通知列表项
NotificationListItem {
Id int64 `json:"id"` // 通知ID
Title string `json:"title"` // 通知标题
NotificationPage string `json:"notification_page"` // 通知页面
Content string `json:"content"` // 通知内容
StartDate string `json:"start_date"` // 生效开始日期
StartTime string `json:"start_time"` // 生效开始时间
EndDate string `json:"end_date"` // 生效结束日期
EndTime string `json:"end_time"` // 生效结束时间
Status int64 `json:"status"` // 状态
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 获取通知列表响应
AdminGetNotificationListResp {
Total int64 `json:"total"` // 总数
Items []NotificationListItem `json:"items"` // 列表数据
}
)
// 通知管理接口
@server(
prefix: /api/v1/admin/notification
group: admin_notification
)
service main {
// 创建通知
@handler AdminCreateNotification
post /create (AdminCreateNotificationReq) returns (AdminCreateNotificationResp)
// 更新通知
@handler AdminUpdateNotification
put /update/:id (AdminUpdateNotificationReq) returns (AdminUpdateNotificationResp)
// 删除通知
@handler AdminDeleteNotification
delete /delete/:id (AdminDeleteNotificationReq) returns (AdminDeleteNotificationResp)
// 获取通知详情
@handler AdminGetNotificationDetail
get /detail/:id (AdminGetNotificationDetailReq) returns (AdminGetNotificationDetailResp)
// 获取通知列表
@handler AdminGetNotificationList
get /list (AdminGetNotificationListReq) returns (AdminGetNotificationListResp)
}

View File

@ -0,0 +1,169 @@
syntax = "v1"
info (
title: "订单服务"
desc: "订单服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/order
group: admin_order
jwt: JwtAuth
)
service main {
@doc "获取订单列表"
@handler AdminGetOrderList
get /list (AdminGetOrderListReq) returns (AdminGetOrderListResp)
@doc "获取订单详情"
@handler AdminGetOrderDetail
get /detail/:id (AdminGetOrderDetailReq) returns (AdminGetOrderDetailResp)
@doc "创建订单"
@handler AdminCreateOrder
post /create (AdminCreateOrderReq) returns (AdminCreateOrderResp)
@doc "更新订单"
@handler AdminUpdateOrder
put /update/:id (AdminUpdateOrderReq) returns (AdminUpdateOrderResp)
@doc "删除订单"
@handler AdminDeleteOrder
delete /delete/:id (AdminDeleteOrderReq) returns (AdminDeleteOrderResp)
@doc "订单退款"
@handler AdminRefundOrder
post /refund/:id (AdminRefundOrderReq) returns (AdminRefundOrderResp)
}
type (
// 列表请求
AdminGetOrderListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"pageSize,default=20"` // 每页数量
OrderNo string `form:"order_no,optional"` // 商户订单号
PlatformOrderId string `form:"platform_order_id,optional"` // 支付订单号
ProductName string `form:"product_name,optional"` // 产品名称
PaymentPlatform string `form:"payment_platform,optional"` // 支付方式
PaymentScene string `form:"payment_scene,optional"` // 支付平台
Amount float64 `form:"amount,optional"` // 金额
Status string `form:"status,optional"` // 支付状态pending-待支付paid-已支付refunded-已退款closed-已关闭failed-支付失败
IsPromotion int64 `form:"is_promotion,optional,default=-1"` // 是否推广订单0-否1-是
CreateTimeStart string `form:"create_time_start,optional"` // 创建时间开始
CreateTimeEnd string `form:"create_time_end,optional"` // 创建时间结束
PayTimeStart string `form:"pay_time_start,optional"` // 支付时间开始
PayTimeEnd string `form:"pay_time_end,optional"` // 支付时间结束
RefundTimeStart string `form:"refund_time_start,optional"` // 退款时间开始
RefundTimeEnd string `form:"refund_time_end,optional"` // 退款时间结束
}
// 列表响应
AdminGetOrderListResp {
Total int64 `json:"total"` // 总数
Items []OrderListItem `json:"items"` // 列表
}
// 列表项
OrderListItem {
Id int64 `json:"id"` // 订单ID
OrderNo string `json:"order_no"` // 商户订单号
PlatformOrderId string `json:"platform_order_id"` // 支付订单号
ProductName string `json:"product_name"` // 产品名称
PaymentPlatform string `json:"payment_platform"` // 支付方式
PaymentScene string `json:"payment_scene"` // 支付平台
Amount float64 `json:"amount"` // 金额
Status string `json:"status"` // 支付状态pending-待支付paid-已支付refunded-已退款closed-已关闭failed-支付失败
QueryState string `json:"query_state"` // 查询状态pending-待查询success-查询成功failed-查询失败 processing-查询中
CreateTime string `json:"create_time"` // 创建时间
PayTime string `json:"pay_time"` // 支付时间
RefundTime string `json:"refund_time"` // 退款时间
IsPromotion int64 `json:"is_promotion"` // 是否推广订单0-否1-是
}
// 详情请求
AdminGetOrderDetailReq {
Id int64 `path:"id"` // 订单ID
}
// 详情响应
AdminGetOrderDetailResp {
Id int64 `json:"id"` // 订单ID
OrderNo string `json:"order_no"` // 商户订单号
PlatformOrderId string `json:"platform_order_id"` // 支付订单号
ProductName string `json:"product_name"` // 产品名称
PaymentPlatform string `json:"payment_platform"` // 支付方式
PaymentScene string `json:"payment_scene"` // 支付平台
Amount float64 `json:"amount"` // 金额
Status string `json:"status"` // 支付状态pending-待支付paid-已支付refunded-已退款closed-已关闭failed-支付失败
QueryState string `json:"query_state"` // 查询状态pending-待查询success-查询成功failed-查询失败 processing-查询中
CreateTime string `json:"create_time"` // 创建时间
PayTime string `json:"pay_time"` // 支付时间
RefundTime string `json:"refund_time"` // 退款时间
IsPromotion int64 `json:"is_promotion"` // 是否推广订单0-否1-是
UpdateTime string `json:"update_time"` // 更新时间
}
// 创建请求
AdminCreateOrderReq {
OrderNo string `json:"order_no"` // 商户订单号
PlatformOrderId string `json:"platform_order_id"` // 支付订单号
ProductName string `json:"product_name"` // 产品名称
PaymentPlatform string `json:"payment_platform"` // 支付方式
PaymentScene string `json:"payment_scene"` // 支付平台
Amount float64 `json:"amount"` // 金额
Status string `json:"status,default=pending"` // 支付状态pending-待支付paid-已支付refunded-已退款closed-已关闭failed-支付失败
IsPromotion int64 `json:"is_promotion,default=0"` // 是否推广订单0-否1-是
}
// 创建响应
AdminCreateOrderResp {
Id int64 `json:"id"` // 订单ID
}
// 更新请求
AdminUpdateOrderReq {
Id int64 `path:"id"` // 订单ID
OrderNo *string `json:"order_no,optional"` // 商户订单号
PlatformOrderId *string `json:"platform_order_id,optional"` // 支付订单号
ProductName *string `json:"product_name,optional"` // 产品名称
PaymentPlatform *string `json:"payment_platform,optional"` // 支付方式
PaymentScene *string `json:"payment_scene,optional"` // 支付平台
Amount *float64 `json:"amount,optional"` // 金额
Status *string `json:"status,optional"` // 支付状态pending-待支付paid-已支付refunded-已退款closed-已关闭failed-支付失败
PayTime *string `json:"pay_time,optional"` // 支付时间
RefundTime *string `json:"refund_time,optional"` // 退款时间
IsPromotion *int64 `json:"is_promotion,optional"` // 是否推广订单0-否1-是
}
// 更新响应
AdminUpdateOrderResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
AdminDeleteOrderReq {
Id int64 `path:"id"` // 订单ID
}
// 删除响应
AdminDeleteOrderResp {
Success bool `json:"success"` // 是否成功
}
// 退款请求
AdminRefundOrderReq {
Id int64 `path:"id"` // 订单ID
RefundAmount float64 `json:"refund_amount"` // 退款金额
RefundReason string `json:"refund_reason"` // 退款原因
}
// 退款响应
AdminRefundOrderResp {
Status string `json:"status"` // 退款状态
RefundNo string `json:"refund_no"` // 退款单号
Amount float64 `json:"amount"` // 退款金额
}
)

View File

@ -0,0 +1,124 @@
syntax = "v1"
info (
title: "平台用户管理"
desc: "平台用户管理"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
// 平台用户管理接口
@server(
prefix: /api/v1/admin/platform_user
group: admin_platform_user
jwt: JwtAuth
)
service main {
// 创建平台用户
@handler AdminCreatePlatformUser
post /create (AdminCreatePlatformUserReq) returns (AdminCreatePlatformUserResp)
// 更新平台用户
@handler AdminUpdatePlatformUser
put /update/:id (AdminUpdatePlatformUserReq) returns (AdminUpdatePlatformUserResp)
// 删除平台用户
@handler AdminDeletePlatformUser
delete /delete/:id (AdminDeletePlatformUserReq) returns (AdminDeletePlatformUserResp)
// 获取平台用户分页列表
@handler AdminGetPlatformUserList
get /list (AdminGetPlatformUserListReq) returns (AdminGetPlatformUserListResp)
// 获取平台用户详情
@handler AdminGetPlatformUserDetail
get /detail/:id (AdminGetPlatformUserDetailReq) returns (AdminGetPlatformUserDetailResp)
}
type (
// 分页列表请求
AdminGetPlatformUserListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"pageSize,default=20"` // 每页数量
Mobile string `form:"mobile,optional"` // 手机号
Nickname string `form:"nickname,optional"` // 昵称
Inside int64 `form:"inside,optional"` // 是否内部用户 1-是 0-否
CreateTimeStart string `form:"create_time_start,optional"` // 创建时间开始
CreateTimeEnd string `form:"create_time_end,optional"` // 创建时间结束
OrderBy string `form:"order_by,optional"` // 排序字段
OrderType string `form:"order_type,optional"` // 排序类型
}
// 分页列表响应
AdminGetPlatformUserListResp {
Total int64 `json:"total"` // 总数
Items []PlatformUserListItem `json:"items"` // 列表
}
// 列表项
PlatformUserListItem {
Id int64 `json:"id"` // 用户ID
Mobile string `json:"mobile"` // 手机号
Nickname string `json:"nickname"` // 昵称
Info string `json:"info"` // 备注信息
Inside int64 `json:"inside"` // 是否内部用户 1-是 0-否
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 详情请求
AdminGetPlatformUserDetailReq {
Id int64 `path:"id"` // 用户ID
}
// 详情响应
AdminGetPlatformUserDetailResp {
Id int64 `json:"id"` // 用户ID
Mobile string `json:"mobile"` // 手机号
Nickname string `json:"nickname"` // 昵称
Info string `json:"info"` // 备注信息
Inside int64 `json:"inside"` // 是否内部用户 1-是 0-否
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
// 创建请求
AdminCreatePlatformUserReq {
Mobile string `json:"mobile"` // 手机号
Password string `json:"password"` // 密码
Nickname string `json:"nickname"` // 昵称
Info string `json:"info"` // 备注信息
Inside int64 `json:"inside"` // 是否内部用户 1-是 0-否
}
// 创建响应
AdminCreatePlatformUserResp {
Id int64 `json:"id"` // 用户ID
}
// 更新请求
AdminUpdatePlatformUserReq {
Id int64 `path:"id"` // 用户ID
Mobile *string `json:"mobile,optional"` // 手机号
Password *string `json:"password,optional"` // 密码
Nickname *string `json:"nickname,optional"` // 昵称
Info *string `json:"info,optional"` // 备注信息
Inside *int64 `json:"inside,optional"` // 是否内部用户 1-是 0-否
}
// 更新响应
AdminUpdatePlatformUserResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
AdminDeletePlatformUserReq {
Id int64 `path:"id"` // 用户ID
}
// 删除响应
AdminDeletePlatformUserResp {
Success bool `json:"success"` // 是否成功
}
)

View File

@ -0,0 +1,183 @@
syntax = "v1"
info (
title: "推广服务"
desc: "推广服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/promotion/link
group: admin_promotion
jwt: JwtAuth
)
service main {
@doc "获取推广链接列表"
@handler GetPromotionLinkList
get /list (GetPromotionLinkListReq) returns (GetPromotionLinkListResp)
@doc "获取推广链接详情"
@handler GetPromotionLinkDetail
get /detail/:id (GetPromotionLinkDetailReq) returns (GetPromotionLinkDetailResp)
@doc "创建推广链接"
@handler CreatePromotionLink
post /create (CreatePromotionLinkReq) returns (CreatePromotionLinkResp)
@doc "更新推广链接"
@handler UpdatePromotionLink
put /update/:id (UpdatePromotionLinkReq) returns (UpdatePromotionLinkResp)
@doc "删除推广链接"
@handler DeletePromotionLink
delete /delete/:id (DeletePromotionLinkReq) returns (DeletePromotionLinkResp)
}
type (
// 列表请求
GetPromotionLinkListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"pageSize,default=20"` // 每页数量
Name string `form:"name,optional"` // 链接名称
Url string `form:"url,optional"` // 推广链接URL
}
// 列表响应
GetPromotionLinkListResp {
Total int64 `json:"total"` // 总数
Items []PromotionLinkItem `json:"items"` // 列表
}
// 列表项
PromotionLinkItem {
Id int64 `json:"id"` // 链接ID
Name string `json:"name"` // 链接名称
Url string `json:"url"` // 推广链接URL
ClickCount int64 `json:"click_count"` // 点击数
PayCount int64 `json:"pay_count"` // 付费次数
PayAmount string `json:"pay_amount"` // 付费金额
CreateTime string `json:"create_time"` // 创建时间
LastClickTime string `json:"last_click_time,optional"` // 最后点击时间
LastPayTime string `json:"last_pay_time,optional"` // 最后付费时间
}
// 详情请求
GetPromotionLinkDetailReq {
Id int64 `path:"id"` // 链接ID
}
// 详情响应
GetPromotionLinkDetailResp {
Name string `json:"name"` // 链接名称
Url string `json:"url"` // 推广链接URL
ClickCount int64 `json:"click_count"` // 点击数
PayCount int64 `json:"pay_count"` // 付费次数
PayAmount string `json:"pay_amount"` // 付费金额
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
LastClickTime string `json:"last_click_time,optional"` // 最后点击时间
LastPayTime string `json:"last_pay_time,optional"` // 最后付费时间
}
// 创建请求
CreatePromotionLinkReq {
Name string `json:"name"` // 链接名称
}
// 创建响应
CreatePromotionLinkResp {
Id int64 `json:"id"` // 链接ID
Url string `json:"url"` // 生成的推广链接URL
}
// 更新请求
UpdatePromotionLinkReq {
Id int64 `path:"id"` // 链接ID
Name *string `json:"name,optional"` // 链接名称
}
// 更新响应
UpdatePromotionLinkResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
DeletePromotionLinkReq {
Id int64 `path:"id"` // 链接ID
}
// 删除响应
DeletePromotionLinkResp {
Success bool `json:"success"` // 是否成功
}
)
@server (
prefix: api/v1/admin/promotion/link
group: admin_promotion
)
service main {
@doc "记录链接点击"
@handler RecordLinkClick
get /record/:path (RecordLinkClickReq) returns (RecordLinkClickResp)
}
type (
// 记录链接点击请求
RecordLinkClickReq {
Path string `path:"path"` // 链接路径
}
// 记录链接点击响应
RecordLinkClickResp {
Success bool `json:"success"` // 是否成功
}
)
@server (
prefix: api/v1/admin/promotion/stats
group: admin_promotion
jwt: JwtAuth
)
service main {
@doc "获取推广历史记录"
@handler GetPromotionStatsHistory
get /history (GetPromotionStatsHistoryReq) returns ([]PromotionStatsHistoryItem)
@doc "获取推广总统计"
@handler GetPromotionStatsTotal
get /total (GetPromotionStatsTotalReq) returns (GetPromotionStatsTotalResp)
}
type (
// 获取推广历史记录请求
GetPromotionStatsHistoryReq {
StartDate string `form:"start_date"` // 开始日期格式YYYY-MM-DD
EndDate string `form:"end_date"` // 结束日期格式YYYY-MM-DD
}
// 推广历史记录项
PromotionStatsHistoryItem {
Id int64 `json:"id"` // 记录ID
LinkId int64 `json:"link_id"` // 链接ID
PayAmount float64 `json:"pay_amount"` // 金额
ClickCount int64 `json:"click_count"` // 点击数
PayCount int64 `json:"pay_count"` // 付费次数
StatsDate string `json:"stats_date"` // 统计日期
}
// 获取推广总统计请求
GetPromotionStatsTotalReq {
}
// 获取推广总统计响应
GetPromotionStatsTotalResp {
TodayPayAmount float64 `json:"today_pay_amount"` // 今日金额
TodayClickCount int64 `json:"today_click_count"` // 今日点击数
TodayPayCount int64 `json:"today_pay_count"` // 今日付费次数
TotalPayAmount float64 `json:"total_pay_amount"` // 总金额
TotalClickCount int64 `json:"total_click_count"` // 总点击数
TotalPayCount int64 `json:"total_pay_count"` // 总付费次数
}
)

View File

@ -0,0 +1,124 @@
syntax = "v1"
info (
title: "角色服务"
desc: "角色服务"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
@server (
prefix: api/v1/admin/role
group: admin_role
jwt: JwtAuth
)
service main {
@doc "获取角色列表"
@handler GetRoleList
get /list (GetRoleListReq) returns (GetRoleListResp)
@doc "获取角色详情"
@handler GetRoleDetail
get /detail/:id (GetRoleDetailReq) returns (GetRoleDetailResp)
@doc "创建角色"
@handler CreateRole
post /create (CreateRoleReq) returns (CreateRoleResp)
@doc "更新角色"
@handler UpdateRole
put /update/:id (UpdateRoleReq) returns (UpdateRoleResp)
@doc "删除角色"
@handler DeleteRole
delete /delete/:id (DeleteRoleReq) returns (DeleteRoleResp)
}
type (
// 列表请求
GetRoleListReq {
Page int64 `form:"page,default=1"` // 页码
PageSize int64 `form:"pageSize,default=20"` // 每页数量
Name string `form:"name,optional"` // 角色名称
Code string `form:"code,optional"` // 角色编码
Status int64 `form:"status,optional,default=-1"` // 状态0-禁用1-启用
}
// 列表响应
GetRoleListResp {
Total int64 `json:"total"` // 总数
Items []RoleListItem `json:"items"` // 列表
}
// 列表项
RoleListItem {
Id int64 `json:"id"` // 角色ID
RoleName string `json:"role_name"` // 角色名称
RoleCode string `json:"role_code"` // 角色编码
Description string `json:"description"` // 角色描述
Status int64 `json:"status"` // 状态0-禁用1-启用
Sort int64 `json:"sort"` // 排序
CreateTime string `json:"create_time"` // 创建时间
MenuIds []int64 `json:"menu_ids"` // 关联的菜单ID列表
}
// 详情请求
GetRoleDetailReq {
Id int64 `path:"id"` // 角色ID
}
// 详情响应
GetRoleDetailResp {
Id int64 `json:"id"` // 角色ID
RoleName string `json:"role_name"` // 角色名称
RoleCode string `json:"role_code"` // 角色编码
Description string `json:"description"` // 角色描述
Status int64 `json:"status"` // 状态0-禁用1-启用
Sort int64 `json:"sort"` // 排序
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
MenuIds []int64 `json:"menu_ids"` // 关联的菜单ID列表
}
// 创建请求
CreateRoleReq {
RoleName string `json:"role_name"` // 角色名称
RoleCode string `json:"role_code"` // 角色编码
Description string `json:"description"` // 角色描述
Status int64 `json:"status,default=1"` // 状态0-禁用1-启用
Sort int64 `json:"sort,default=0"` // 排序
MenuIds []int64 `json:"menu_ids"` // 关联的菜单ID列表
}
// 创建响应
CreateRoleResp {
Id int64 `json:"id"` // 角色ID
}
// 更新请求
UpdateRoleReq {
Id int64 `path:"id"` // 角色ID
RoleName *string `json:"role_name,optional"` // 角色名称
RoleCode *string `json:"role_code,optional"` // 角色编码
Description *string `json:"description,optional"` // 角色描述
Status *int64 `json:"status,optional"` // 状态0-禁用1-启用
Sort *int64 `json:"sort,optional"` // 排序
MenuIds []int64 `json:"menu_ids,optional"` // 关联的菜单ID列表
}
// 更新响应
UpdateRoleResp {
Success bool `json:"success"` // 是否成功
}
// 删除请求
DeleteRoleReq {
Id int64 `path:"id"` // 角色ID
}
// 删除响应
DeleteRoleResp {
Success bool `json:"success"` // 是否成功
}
)

View File

@ -0,0 +1,30 @@
syntax = "v1"
info (
title: "单体服务中心"
desc: "单体服务中心"
author: "Liangzai"
email: "2440983361@qq.com"
version: "v1"
)
// 前台
import "./front/user.api"
import "./front/query.api"
import "./front/pay.api"
import "./front/product.api"
import "./front/agent.api"
import "./front/app.api"
// 后台
import "./admin/auth.api"
import "./admin/menu.api"
import "./admin/role.api"
import "./admin/promotion.api"
import "./admin/order.api"
import "./admin/admin_user.api"
import "./admin/platform_user.api"
import "./admin/notification.api"
import "./admin/admin_product.api"
import "./admin/admin_feature.api"
import "./admin/admin_query.api"
import "./admin/admin_agent.api"

View File

@ -72,3 +72,9 @@ CloudAuth:
ReturnUrl: "https://www.quannengcha.com/authorization/result"
Query:
ShareLinkExpire: 604800 # 7天 = 7 * 24 * 60 * 60 = 604800秒
AdminConfig:
AccessSecret: "jK8nP3qR7tV2xZ5aB9cD1eF6gH4iJ0kL8mN5oP6qR7sT"
AccessExpire: 604800
RefreshAfter: 302400
AdminPromotion:
URLDomain: "https://quannengcha.com/p"

View File

@ -73,3 +73,9 @@ CloudAuth:
ReturnUrl: "https://www.quannengcha.com/authorization/result"
Query:
ShareLinkExpire: 604800 # 7天 = 7 * 24 * 60 * 60 = 604800秒
AdminConfig:
AccessSecret: "jK8nP3qR7tV2xZ5aB9cD1eF6gH4iJ0kL8mN5oP6qR7sT"
AccessExpire: 604800
RefreshAfter: 302400
AdminPromotion:
URLDomain: "https://quannengcha.com/p"

View File

@ -22,6 +22,8 @@ type Config struct {
WechatH5 WechatH5Config
CloudAuth CloudAuthConfig
Query QueryConfig
AdminConfig AdminConfig
AdminPromotion AdminPromotion
}
// JwtAuth 用于 JWT 鉴权配置
@ -104,3 +106,12 @@ type CloudAuthConfig struct {
type QueryConfig struct {
ShareLinkExpire int64
}
type AdminConfig struct {
AccessSecret string
AccessExpire int64
RefreshAfter int64
}
type AdminPromotion struct {
URLDomain string
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentCommissionDeductionListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentCommissionDeductionListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentCommissionDeductionListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentCommissionDeductionList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentCommissionListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentCommissionListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentCommissionListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentCommissionList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentLinkListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentLinkListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentLinkListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentLinkList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentMembershipConfigListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentMembershipConfigListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentMembershipConfigListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentMembershipConfigList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentMembershipRechargeOrderListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentMembershipRechargeOrderListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentMembershipRechargeOrderListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentMembershipRechargeOrderList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentPlatformDeductionListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentPlatformDeductionListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentPlatformDeductionListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentPlatformDeductionList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentProductionConfigListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentProductionConfigListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentProductionConfigListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentProductionConfigList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentRewardListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentRewardListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentRewardListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentRewardList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetAgentWithdrawalListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetAgentWithdrawalListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminGetAgentWithdrawalListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetAgentWithdrawalList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateAgentMembershipConfigHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateAgentMembershipConfigReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminUpdateAgentMembershipConfigLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateAgentMembershipConfig(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_agent
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_agent"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateAgentProductionConfigHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateAgentProductionConfigReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_agent.NewAdminUpdateAgentProductionConfigLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateAgentProductionConfig(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_auth
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_auth"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminLoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminLoginReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_auth.NewAdminLoginLogic(r.Context(), svcCtx)
resp, err := l.AdminLogin(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_feature
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_feature"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreateFeatureHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreateFeatureReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_feature.NewAdminCreateFeatureLogic(r.Context(), svcCtx)
resp, err := l.AdminCreateFeature(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_feature
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_feature"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminDeleteFeatureHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminDeleteFeatureReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_feature.NewAdminDeleteFeatureLogic(r.Context(), svcCtx)
resp, err := l.AdminDeleteFeature(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_feature
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_feature"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetFeatureDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetFeatureDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_feature.NewAdminGetFeatureDetailLogic(r.Context(), svcCtx)
resp, err := l.AdminGetFeatureDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_feature
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_feature"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetFeatureListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetFeatureListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_feature.NewAdminGetFeatureListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetFeatureList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_feature
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_feature"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateFeatureHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateFeatureReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_feature.NewAdminUpdateFeatureLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateFeature(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func CreateMenuHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateMenuReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewCreateMenuLogic(r.Context(), svcCtx)
resp, err := l.CreateMenu(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func DeleteMenuHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.DeleteMenuReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewDeleteMenuLogic(r.Context(), svcCtx)
resp, err := l.DeleteMenu(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetMenuAllHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetMenuAllReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewGetMenuAllLogic(r.Context(), svcCtx)
resp, err := l.GetMenuAll(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetMenuDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetMenuDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewGetMenuDetailLogic(r.Context(), svcCtx)
resp, err := l.GetMenuDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetMenuListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetMenuListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewGetMenuListLogic(r.Context(), svcCtx)
resp, err := l.GetMenuList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_menu
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_menu"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func UpdateMenuHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdateMenuReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_menu.NewUpdateMenuLogic(r.Context(), svcCtx)
resp, err := l.UpdateMenu(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_notification
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_notification"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreateNotificationHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreateNotificationReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_notification.NewAdminCreateNotificationLogic(r.Context(), svcCtx)
resp, err := l.AdminCreateNotification(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_notification
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_notification"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminDeleteNotificationHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminDeleteNotificationReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_notification.NewAdminDeleteNotificationLogic(r.Context(), svcCtx)
resp, err := l.AdminDeleteNotification(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_notification
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_notification"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetNotificationDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetNotificationDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_notification.NewAdminGetNotificationDetailLogic(r.Context(), svcCtx)
resp, err := l.AdminGetNotificationDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_notification
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_notification"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetNotificationListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetNotificationListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_notification.NewAdminGetNotificationListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetNotificationList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_notification
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_notification"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateNotificationHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateNotificationReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_notification.NewAdminUpdateNotificationLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateNotification(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreateOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreateOrderReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminCreateOrderLogic(r.Context(), svcCtx)
resp, err := l.AdminCreateOrder(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminDeleteOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminDeleteOrderReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminDeleteOrderLogic(r.Context(), svcCtx)
resp, err := l.AdminDeleteOrder(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetOrderDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetOrderDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminGetOrderDetailLogic(r.Context(), svcCtx)
resp, err := l.AdminGetOrderDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetOrderListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetOrderListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminGetOrderListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetOrderList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminRefundOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminRefundOrderReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminRefundOrderLogic(r.Context(), svcCtx)
resp, err := l.AdminRefundOrder(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_order
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_order"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateOrderReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_order.NewAdminUpdateOrderLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateOrder(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_platform_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_platform_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreatePlatformUserHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreatePlatformUserReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_platform_user.NewAdminCreatePlatformUserLogic(r.Context(), svcCtx)
resp, err := l.AdminCreatePlatformUser(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_platform_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_platform_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminDeletePlatformUserHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminDeletePlatformUserReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_platform_user.NewAdminDeletePlatformUserLogic(r.Context(), svcCtx)
resp, err := l.AdminDeletePlatformUser(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_platform_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_platform_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetPlatformUserDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetPlatformUserDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_platform_user.NewAdminGetPlatformUserDetailLogic(r.Context(), svcCtx)
resp, err := l.AdminGetPlatformUserDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_platform_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_platform_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetPlatformUserListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetPlatformUserListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_platform_user.NewAdminGetPlatformUserListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetPlatformUserList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_platform_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_platform_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdatePlatformUserHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdatePlatformUserReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_platform_user.NewAdminUpdatePlatformUserLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdatePlatformUser(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreateProductHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreateProductReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminCreateProductLogic(r.Context(), svcCtx)
resp, err := l.AdminCreateProduct(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminDeleteProductHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminDeleteProductReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminDeleteProductLogic(r.Context(), svcCtx)
resp, err := l.AdminDeleteProduct(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetProductDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetProductDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminGetProductDetailLogic(r.Context(), svcCtx)
resp, err := l.AdminGetProductDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetProductFeatureListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetProductFeatureListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminGetProductFeatureListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetProductFeatureList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetProductListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetProductListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminGetProductListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetProductList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateProductFeaturesHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateProductFeaturesReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminUpdateProductFeaturesLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateProductFeatures(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_product
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_product"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateProductHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateProductReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_product.NewAdminUpdateProductLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateProduct(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func CreatePromotionLinkHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreatePromotionLinkReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewCreatePromotionLinkLogic(r.Context(), svcCtx)
resp, err := l.CreatePromotionLink(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,30 @@
package admin_promotion
import (
"net/http"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
"github.com/zeromicro/go-zero/rest/httpx"
)
func DeletePromotionLinkHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.DeletePromotionLinkReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewDeletePromotionLinkLogic(r.Context(), svcCtx)
err := l.DeletePromotionLink(&req)
result.HttpResult(r, w, nil, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetPromotionLinkDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetPromotionLinkDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewGetPromotionLinkDetailLogic(r.Context(), svcCtx)
resp, err := l.GetPromotionLinkDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetPromotionLinkListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetPromotionLinkListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewGetPromotionLinkListLogic(r.Context(), svcCtx)
resp, err := l.GetPromotionLinkList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetPromotionStatsHistoryHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetPromotionStatsHistoryReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewGetPromotionStatsHistoryLogic(r.Context(), svcCtx)
resp, err := l.GetPromotionStatsHistory(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetPromotionStatsTotalHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetPromotionStatsTotalReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewGetPromotionStatsTotalLogic(r.Context(), svcCtx)
resp, err := l.GetPromotionStatsTotal(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_promotion
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func RecordLinkClickHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.RecordLinkClickReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewRecordLinkClickLogic(r.Context(), svcCtx)
resp, err := l.RecordLinkClick(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,30 @@
package admin_promotion
import (
"net/http"
"qnc-server/app/main/api/internal/logic/admin_promotion"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
"github.com/zeromicro/go-zero/rest/httpx"
)
func UpdatePromotionLinkHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdatePromotionLinkReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_promotion.NewUpdatePromotionLinkLogic(r.Context(), svcCtx)
err := l.UpdatePromotionLink(&req)
result.HttpResult(r, w, nil, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_query
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_query"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetQueryCleanupConfigListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetQueryCleanupConfigListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_query.NewAdminGetQueryCleanupConfigListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetQueryCleanupConfigList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_query
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_query"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetQueryCleanupDetailListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetQueryCleanupDetailListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_query.NewAdminGetQueryCleanupDetailListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetQueryCleanupDetailList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_query
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_query"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetQueryCleanupLogListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetQueryCleanupLogListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_query.NewAdminGetQueryCleanupLogListLogic(r.Context(), svcCtx)
resp, err := l.AdminGetQueryCleanupLogList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_query
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_query"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminGetQueryDetailByOrderIdHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminGetQueryDetailByOrderIdReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_query.NewAdminGetQueryDetailByOrderIdLogic(r.Context(), svcCtx)
resp, err := l.AdminGetQueryDetailByOrderId(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_query
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_query"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminUpdateQueryCleanupConfigHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminUpdateQueryCleanupConfigReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_query.NewAdminUpdateQueryCleanupConfigLogic(r.Context(), svcCtx)
resp, err := l.AdminUpdateQueryCleanupConfig(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_role
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_role"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func CreateRoleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateRoleReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_role.NewCreateRoleLogic(r.Context(), svcCtx)
resp, err := l.CreateRole(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_role
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_role"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func DeleteRoleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.DeleteRoleReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_role.NewDeleteRoleLogic(r.Context(), svcCtx)
resp, err := l.DeleteRole(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_role
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_role"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetRoleDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetRoleDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_role.NewGetRoleDetailLogic(r.Context(), svcCtx)
resp, err := l.GetRoleDetail(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_role
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_role"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func GetRoleListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetRoleListReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_role.NewGetRoleListLogic(r.Context(), svcCtx)
resp, err := l.GetRoleList(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_role
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_role"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func UpdateRoleHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdateRoleReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_role.NewUpdateRoleLogic(r.Context(), svcCtx)
resp, err := l.UpdateRole(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -0,0 +1,29 @@
package admin_user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"qnc-server/app/main/api/internal/logic/admin_user"
"qnc-server/app/main/api/internal/svc"
"qnc-server/app/main/api/internal/types"
"qnc-server/common/result"
"qnc-server/pkg/lzkit/validator"
)
func AdminCreateUserHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AdminCreateUserReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
l := admin_user.NewAdminCreateUserLogic(r.Context(), svcCtx)
resp, err := l.AdminCreateUser(&req)
result.HttpResult(r, w, resp, err)
}
}

Some files were not shown because too many files have changed in this diff Show More