邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

57 lines
1.5 KiB
Go

package app
import (
"encoding/json"
"bindbox-game/internal/pkg/core"
"bindbox-game/internal/pkg/logger"
"bindbox-game/internal/repository/mysql"
"bindbox-game/internal/repository/mysql/dao"
cfgsvc "bindbox-game/internal/service/sysconfig"
)
type noticeHandler struct {
logger logger.CustomLogger
readDB *dao.Query
cfg cfgsvc.Service
}
func NewNotice(l logger.CustomLogger, db mysql.Repo) *noticeHandler {
return &noticeHandler{logger: l, readDB: dao.Use(db.GetDbR()), cfg: cfgsvc.New(l, db)}
}
type appNoticeItem struct {
Content string `json:"content"`
}
type listAppNoticesResponse struct {
List []appNoticeItem `json:"list"`
}
func (h *noticeHandler) ListNoticesForApp() core.HandlerFunc {
return func(ctx core.Context) {
rsp := new(listAppNoticesResponse)
conf, err := h.cfg.GetByKey(ctx.RequestContext(), "app_notice")
if err != nil {
rsp.List = []appNoticeItem{}
ctx.Payload(rsp)
return
}
val := conf.ConfigValue
var arr []string
if err := json.Unmarshal([]byte(val), &arr); err == nil {
items := make([]appNoticeItem, 0, len(arr))
for _, s := range arr { items = append(items, appNoticeItem{Content: s}) }
rsp.List = items
ctx.Payload(rsp)
return
}
if val == "" {
rsp.List = []appNoticeItem{}
ctx.Payload(rsp)
return
}
rsp.List = []appNoticeItem{{Content: val}}
ctx.Payload(rsp)
}
}