小程序一些功能更新

This commit is contained in:
李琦
2026-09-30 17:01:18 +08:00
parent 75499ba85c
commit 6f51d99a78
46 changed files with 5280 additions and 37 deletions

View 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)
}

View 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)
}

View 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)
}

View File

@@ -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)。

View 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)
}

View 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)
}

View 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)
}