小程序一些功能更新
This commit is contained in:
22
internal/controller/app_config.go
Normal file
22
internal/controller/app_config.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
userv1 "tool-api/api/user/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 应用配置控制器(迭代-2026-09-30):C 端界面级配置下发
|
||||
// ============================================================================
|
||||
|
||||
// cAppConfig 用户端应用配置接口(需用户登录,挂 UserAuth 组)
|
||||
type cAppConfig struct{}
|
||||
|
||||
// AppConfig 用户端应用配置对象
|
||||
var AppConfig = &cAppConfig{}
|
||||
|
||||
func (c *cAppConfig) AppConfig(ctx context.Context, req *userv1.AppConfigReq) (res *userv1.AppConfigRes, err error) {
|
||||
return logic.AppConfig(ctx)
|
||||
}
|
||||
32
internal/controller/attachment.go
Normal file
32
internal/controller/attachment.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
adminv1 "tool-api/api/admin/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 附件管理控制器(迭代-2026-09-29):管理端上传 / 列表 / 删除
|
||||
// ============================================================================
|
||||
|
||||
// cAdminAttachment 管理端附件接口(需管理员登录)
|
||||
type cAdminAttachment struct{}
|
||||
|
||||
// AdminAttachment 管理端附件对象(挂 AdminAuth 组)
|
||||
var AdminAttachment = &cAdminAttachment{}
|
||||
|
||||
// Upload 管理端上传(multipart):scene=cover|attachment,文件字段名 file。
|
||||
// GoFrame 已把 multipart 表单绑定进 req(含 scene 字段校验 in:cover,attachment)。
|
||||
func (c *cAdminAttachment) Upload(ctx context.Context, req *adminv1.AdminUploadReq) (res *adminv1.AdminUploadRes, err error) {
|
||||
return logic.AdminUploadFromRequest(ctx, req.Scene)
|
||||
}
|
||||
|
||||
func (c *cAdminAttachment) AttachmentList(ctx context.Context, req *adminv1.AdminAttachmentListReq) (res *adminv1.AdminAttachmentListRes, err error) {
|
||||
return logic.AdminAttachmentList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminAttachment) AttachmentDelete(ctx context.Context, req *adminv1.AdminAttachmentDeleteReq) (res *adminv1.AdminAttachmentDeleteRes, err error) {
|
||||
return logic.AdminAttachmentDelete(ctx, req.Id)
|
||||
}
|
||||
53
internal/controller/goods.go
Normal file
53
internal/controller/goods.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
adminv1 "tool-api/api/admin/v1"
|
||||
userv1 "tool-api/api/user/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 软件开发服务控制器(迭代-2026-09-29)
|
||||
//
|
||||
// 拆成两个对象分别挂到 UserAuth / AdminAuth 两组(与优惠码同款拆分,
|
||||
// ⚠️ 同一 controller 对象不能同时 Bind 到两组,见 controller/promo.go 的说明):
|
||||
// - Goods 用户端(list / detail,需用户登录)
|
||||
// - AdminGoods 管理端(list / detail / save / delete)
|
||||
// ============================================================================
|
||||
|
||||
// cGoods 用户端服务接口(需用户登录)
|
||||
type cGoods struct{}
|
||||
|
||||
// cAdminGoods 管理端服务接口(需管理员登录)
|
||||
type cAdminGoods struct{}
|
||||
|
||||
var (
|
||||
Goods = &cGoods{}
|
||||
AdminGoods = &cAdminGoods{}
|
||||
)
|
||||
|
||||
func (c *cGoods) GoodsList(ctx context.Context, req *userv1.GoodsListReq) (res *userv1.GoodsListRes, err error) {
|
||||
return logic.GoodsList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cGoods) GoodsDetail(ctx context.Context, req *userv1.GoodsDetailReq) (res *userv1.GoodsDetailRes, err error) {
|
||||
return logic.GoodsDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminGoods) GoodsList(ctx context.Context, req *adminv1.AdminGoodsListReq) (res *adminv1.AdminGoodsListRes, err error) {
|
||||
return logic.AdminGoodsList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminGoods) GoodsDetail(ctx context.Context, req *adminv1.AdminGoodsDetailReq) (res *adminv1.AdminGoodsDetailRes, err error) {
|
||||
return logic.AdminGoodsDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminGoods) GoodsSave(ctx context.Context, req *adminv1.AdminGoodsSaveReq) (res *adminv1.AdminGoodsSaveRes, err error) {
|
||||
return logic.AdminGoodsSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminGoods) GoodsDelete(ctx context.Context, req *adminv1.AdminGoodsDeleteReq) (res *adminv1.AdminGoodsDeleteRes, err error) {
|
||||
return logic.AdminGoodsDelete(ctx, req.Id)
|
||||
}
|
||||
@@ -43,7 +43,7 @@ func (c *cMember) MemberOrderCheck(ctx context.Context, req *v1.MemberOrderCheck
|
||||
}
|
||||
|
||||
func (c *cMember) MemberOrders(ctx context.Context, req *v1.MemberOrdersReq) (res *v1.MemberOrdersRes, err error) {
|
||||
return logic.MemberOrders(ctx, req.Limit)
|
||||
return logic.MemberOrders(ctx, req.Limit, req.Tab)
|
||||
}
|
||||
|
||||
// PayNotify 虚拟支付「发货推送」回调(平台调用,无 token,需在 MP 后台配置该 URL)。
|
||||
|
||||
137
internal/controller/project.go
Normal file
137
internal/controller/project.go
Normal file
@@ -0,0 +1,137 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
adminv1 "tool-api/api/admin/v1"
|
||||
userv1 "tool-api/api/user/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 开发项目控制器(迭代-2026-09-30 三期)
|
||||
//
|
||||
// - ServiceProject 用户端(绑定 / 我的项目 / 详情)
|
||||
// - AdminServiceProject 管理端(建单 / 码图 / 阶段 / 节点 / 交付物)
|
||||
// ============================================================================
|
||||
|
||||
type cServiceProject struct{}
|
||||
|
||||
type cAdminServiceProject struct{}
|
||||
|
||||
var (
|
||||
ServiceProject = &cServiceProject{}
|
||||
AdminServiceProject = &cAdminServiceProject{}
|
||||
)
|
||||
|
||||
// ---- 用户端 ----
|
||||
|
||||
func (c *cServiceProject) ProjectMine(ctx context.Context, req *userv1.ProjectMineReq) (res *userv1.ProjectMineRes, err error) {
|
||||
return logic.ProjectMine(ctx)
|
||||
}
|
||||
|
||||
func (c *cServiceProject) ProjectDetail(ctx context.Context, req *userv1.ProjectDetailReq) (res *userv1.ProjectDetailRes, err error) {
|
||||
return logic.ProjectDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cServiceProject) ProjectBind(ctx context.Context, req *userv1.ProjectBindReq) (res *userv1.ProjectBindRes, err error) {
|
||||
return logic.ProjectBind(ctx, req.Token)
|
||||
}
|
||||
|
||||
func (c *cServiceProject) ProjectAccept(ctx context.Context, req *userv1.ProjectAcceptReq) (res *userv1.ProjectAcceptRes, err error) {
|
||||
return logic.ProjectAccept(ctx, req.Id)
|
||||
}
|
||||
|
||||
// ---- 管理端 ----
|
||||
|
||||
func (c *cAdminServiceProject) ProjectList(ctx context.Context, req *adminv1.AdminProjectListReq) (res *adminv1.AdminProjectListRes, err error) {
|
||||
return logic.AdminProjectList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectSave(ctx context.Context, req *adminv1.AdminProjectSaveReq) (res *adminv1.AdminProjectSaveRes, err error) {
|
||||
return logic.AdminProjectSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectDelete(ctx context.Context, req *adminv1.AdminProjectDeleteReq) (res *adminv1.AdminProjectDeleteRes, err error) {
|
||||
return logic.AdminProjectDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectDetail(ctx context.Context, req *adminv1.AdminProjectDetailReq) (res *adminv1.AdminProjectDetailRes, err error) {
|
||||
return logic.AdminProjectDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectQrcode(ctx context.Context, req *adminv1.AdminProjectQrcodeReq) (res *adminv1.AdminProjectQrcodeRes, err error) {
|
||||
return logic.AdminProjectQrcode(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectStageSave(ctx context.Context, req *adminv1.AdminProjectStageSaveReq) (res *adminv1.AdminProjectStageSaveRes, err error) {
|
||||
return logic.AdminProjectStageSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectStageDelete(ctx context.Context, req *adminv1.AdminProjectStageDeleteReq) (res *adminv1.AdminProjectStageDeleteRes, err error) {
|
||||
return logic.AdminProjectStageDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectNodeSave(ctx context.Context, req *adminv1.AdminProjectNodeSaveReq) (res *adminv1.AdminProjectNodeSaveRes, err error) {
|
||||
return logic.AdminProjectNodeSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectNodeDelete(ctx context.Context, req *adminv1.AdminProjectNodeDeleteReq) (res *adminv1.AdminProjectNodeDeleteRes, err error) {
|
||||
return logic.AdminProjectNodeDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectFileAdd(ctx context.Context, req *adminv1.AdminProjectFileAddReq) (res *adminv1.AdminProjectFileAddRes, err error) {
|
||||
return logic.AdminProjectFileAdd(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectFileDelete(ctx context.Context, req *adminv1.AdminProjectFileDeleteReq) (res *adminv1.AdminProjectFileDeleteRes, err error) {
|
||||
return logic.AdminProjectFileDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) MaintainPlanList(ctx context.Context, req *adminv1.AdminMaintainPlanListReq) (res *adminv1.AdminMaintainPlanListRes, err error) {
|
||||
return logic.AdminMaintainPlanList(ctx)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) MaintainPlanSave(ctx context.Context, req *adminv1.AdminMaintainPlanSaveReq) (res *adminv1.AdminMaintainPlanSaveRes, err error) {
|
||||
return logic.AdminMaintainPlanSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) MaintainPlanDelete(ctx context.Context, req *adminv1.AdminMaintainPlanDeleteReq) (res *adminv1.AdminMaintainPlanDeleteRes, err error) {
|
||||
return logic.AdminMaintainPlanDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) PayPlanList(ctx context.Context, req *adminv1.AdminPayPlanListReq) (res *adminv1.AdminPayPlanListRes, err error) {
|
||||
return logic.AdminPayPlanList(ctx)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) PayPlanSave(ctx context.Context, req *adminv1.AdminPayPlanSaveReq) (res *adminv1.AdminPayPlanSaveRes, err error) {
|
||||
return logic.AdminPayPlanSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) PayPlanDelete(ctx context.Context, req *adminv1.AdminPayPlanDeleteReq) (res *adminv1.AdminPayPlanDeleteRes, err error) {
|
||||
return logic.AdminPayPlanDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectPayMark(ctx context.Context, req *adminv1.AdminProjectPayMarkReq) (res *adminv1.AdminProjectPayMarkRes, err error) {
|
||||
return logic.AdminProjectPayMark(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectPayUnmark(ctx context.Context, req *adminv1.AdminProjectPayUnmarkReq) (res *adminv1.AdminProjectPayUnmarkRes, err error) {
|
||||
return logic.AdminProjectPayUnmark(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectMaintainRenew(ctx context.Context, req *adminv1.AdminProjectMaintainRenewReq) (res *adminv1.AdminProjectMaintainRenewRes, err error) {
|
||||
return logic.AdminProjectMaintainRenew(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) ProjectMaintainAdjust(ctx context.Context, req *adminv1.AdminProjectMaintainAdjustReq) (res *adminv1.AdminProjectMaintainAdjustRes, err error) {
|
||||
return logic.AdminProjectMaintainAdjust(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) MaintainRemindGet(ctx context.Context, req *adminv1.AdminMaintainRemindGetReq) (res *adminv1.AdminMaintainRemindGetRes, err error) {
|
||||
return logic.AdminMaintainRemindGet(ctx)
|
||||
}
|
||||
|
||||
func (c *cAdminServiceProject) MaintainRemindSave(ctx context.Context, req *adminv1.AdminMaintainRemindSaveReq) (res *adminv1.AdminMaintainRemindSaveRes, err error) {
|
||||
return logic.AdminMaintainRemindSave(ctx, req)
|
||||
}
|
||||
108
internal/controller/service.go
Normal file
108
internal/controller/service.go
Normal file
@@ -0,0 +1,108 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
adminv1 "tool-api/api/admin/v1"
|
||||
userv1 "tool-api/api/user/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 软件开发服务二期控制器(迭代-2026-09-30)
|
||||
//
|
||||
// 与 goods 同款拆分(同一 controller 对象不能同时 Bind 到 UserAuth / AdminAuth 两组):
|
||||
// - Service 用户端(介绍页 / 作品 / 报价 / 站内信,需用户登录)
|
||||
// - AdminService 管理端(模块 / 作品 / 报价处理)
|
||||
// ============================================================================
|
||||
|
||||
// cService 用户端软件开发服务接口
|
||||
type cService struct{}
|
||||
|
||||
// cAdminService 管理端软件开发服务接口
|
||||
type cAdminService struct{}
|
||||
|
||||
var (
|
||||
Service = &cService{}
|
||||
AdminService = &cAdminService{}
|
||||
)
|
||||
|
||||
// ---- 用户端:介绍页 / 作品 ----
|
||||
|
||||
func (c *cService) ServicePage(ctx context.Context, req *userv1.ServicePageReq) (res *userv1.ServicePageRes, err error) {
|
||||
return logic.ServicePage(ctx)
|
||||
}
|
||||
|
||||
func (c *cService) WorksList(ctx context.Context, req *userv1.WorksListReq) (res *userv1.WorksListRes, err error) {
|
||||
return logic.ServiceWorks(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cService) WorkDetail(ctx context.Context, req *userv1.WorkDetailReq) (res *userv1.WorkDetailRes, err error) {
|
||||
return logic.ServiceWorkDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
// ---- 用户端:报价申请 ----
|
||||
|
||||
func (c *cService) QuoteSubmit(ctx context.Context, req *userv1.QuoteSubmitReq) (res *userv1.QuoteSubmitRes, err error) {
|
||||
return logic.ServiceQuoteSubmit(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cService) QuoteMine(ctx context.Context, req *userv1.QuoteMineReq) (res *userv1.QuoteMineRes, err error) {
|
||||
return logic.ServiceQuoteMine(ctx, req.Limit)
|
||||
}
|
||||
|
||||
// ---- 用户端:站内信 ----
|
||||
|
||||
func (c *cService) MessageList(ctx context.Context, req *userv1.MessageListReq) (res *userv1.MessageListRes, err error) {
|
||||
return logic.MessageList(ctx, req.Limit)
|
||||
}
|
||||
|
||||
func (c *cService) MessageUnread(ctx context.Context, req *userv1.MessageUnreadReq) (res *userv1.MessageUnreadRes, err error) {
|
||||
return logic.MessageUnreadCount(ctx)
|
||||
}
|
||||
|
||||
func (c *cService) MessageRead(ctx context.Context, req *userv1.MessageReadReq) (res *userv1.MessageReadRes, err error) {
|
||||
return logic.MessageMarkRead(ctx, req.Id)
|
||||
}
|
||||
|
||||
// ---- 管理端:介绍页模块 ----
|
||||
|
||||
func (c *cAdminService) BlockList(ctx context.Context, req *adminv1.AdminServiceBlockListReq) (res *adminv1.AdminServiceBlockListRes, err error) {
|
||||
return logic.AdminServiceBlockList(ctx)
|
||||
}
|
||||
|
||||
func (c *cAdminService) BlockSave(ctx context.Context, req *adminv1.AdminServiceBlockSaveReq) (res *adminv1.AdminServiceBlockSaveRes, err error) {
|
||||
return logic.AdminServiceBlockSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminService) BlockDelete(ctx context.Context, req *adminv1.AdminServiceBlockDeleteReq) (res *adminv1.AdminServiceBlockDeleteRes, err error) {
|
||||
return logic.AdminServiceBlockDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
// ---- 管理端:作品案例 ----
|
||||
|
||||
func (c *cAdminService) WorkList(ctx context.Context, req *adminv1.AdminServiceWorkListReq) (res *adminv1.AdminServiceWorkListRes, err error) {
|
||||
return logic.AdminServiceWorkList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminService) WorkDetail(ctx context.Context, req *adminv1.AdminServiceWorkDetailReq) (res *adminv1.AdminServiceWorkDetailRes, err error) {
|
||||
return logic.AdminServiceWorkDetail(ctx, req.Id)
|
||||
}
|
||||
|
||||
func (c *cAdminService) WorkSave(ctx context.Context, req *adminv1.AdminServiceWorkSaveReq) (res *adminv1.AdminServiceWorkSaveRes, err error) {
|
||||
return logic.AdminServiceWorkSave(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminService) WorkDelete(ctx context.Context, req *adminv1.AdminServiceWorkDeleteReq) (res *adminv1.AdminServiceWorkDeleteRes, err error) {
|
||||
return logic.AdminServiceWorkDelete(ctx, req.Id)
|
||||
}
|
||||
|
||||
// ---- 管理端:报价申请 ----
|
||||
|
||||
func (c *cAdminService) QuoteList(ctx context.Context, req *adminv1.AdminServiceQuoteListReq) (res *adminv1.AdminServiceQuoteListRes, err error) {
|
||||
return logic.AdminServiceQuoteList(ctx, req)
|
||||
}
|
||||
|
||||
func (c *cAdminService) QuoteHandle(ctx context.Context, req *adminv1.AdminServiceQuoteHandleReq) (res *adminv1.AdminServiceQuoteHandleRes, err error) {
|
||||
return logic.AdminServiceQuoteHandle(ctx, req)
|
||||
}
|
||||
26
internal/controller/setting.go
Normal file
26
internal/controller/setting.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
adminv1 "tool-api/api/admin/v1"
|
||||
"tool-api/internal/logic"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
// 系统配置控制器(迭代-2026-09-29):白名单键的读取 / 保存
|
||||
// ============================================================================
|
||||
|
||||
// cAdminSetting 管理端系统配置接口(需管理员登录;读写都归 admin:manage,仅超管)
|
||||
type cAdminSetting struct{}
|
||||
|
||||
// AdminSetting 管理端系统配置对象(挂 AdminAuth 组)
|
||||
var AdminSetting = &cAdminSetting{}
|
||||
|
||||
func (c *cAdminSetting) SettingGet(ctx context.Context, req *adminv1.AdminSettingGetReq) (res *adminv1.AdminSettingGetRes, err error) {
|
||||
return logic.AdminSettingGet(ctx)
|
||||
}
|
||||
|
||||
func (c *cAdminSetting) SettingSave(ctx context.Context, req *adminv1.AdminSettingSaveReq) (res *adminv1.AdminSettingSaveRes, err error) {
|
||||
return logic.AdminSettingSave(ctx, req.Key, req.Value)
|
||||
}
|
||||
Reference in New Issue
Block a user