Parcourir la source

wip:开发中

fuwencai il y a 4 mois
Parent
commit
60a8319a22

+ 1 - 0
api/activity/activity.go

@@ -14,5 +14,6 @@ type IActivityV1 interface {
 	Create(ctx context.Context, req *v1.CreateReq) (res *v1.CreateRes, err error)
 	Update(ctx context.Context, req *v1.UpdateReq) (res *v1.UpdateRes, err error)
 	GetList(ctx context.Context, req *v1.GetListReq) (res *v1.GetListRes, err error)
+	GetOne(ctx context.Context, req *v1.GetOneReq) (res *v1.GetOneRes, err error)
 	GetActivityConfig(ctx context.Context, req *v1.GetActivityConfigReq) (res *v1.GetActivityConfigRes, err error)
 }

+ 7 - 0
api/activity/v1/activity.go

@@ -101,6 +101,13 @@ type GetListRes struct {
 	List  []*entity.ActivityInfo `json:"list" dc:"Activity list"`
 	Total int                    `json:"total" dc:"Activity list total"`
 }
+type GetOneReq struct {
+	g.Meta `path:"/activity/:id" method:"get" tags:"Activity" summary:"Get Activity"`
+	Id     int
+}
+type GetOneRes struct {
+	entity.ActivityInfo `dc:"Activity "`
+}
 type GetActivityConfigReq struct {
 	g.Meta `path:"/activity-config" method:"get" tags:"ActivityConfig" summary:"Get Activitys config"`
 }

+ 3 - 0
api/equity_info/v1/equity_info.go

@@ -36,12 +36,15 @@ type GetListReq struct {
 	g.Meta   `path:"/equity_info" method:"get" tags:"equity_info" summary:"Get equity_info"`
 	ActiveId *int `description:"关联活动id"` // 关联活动id
 	PrizeId  *int `dc:"lottery_prize_info---id"`
+	Offset   int  `d:"0" dc:"分页开始条数"`
+	Limit    int  `d:"10" dc:"每页条数"`
 }
 type EquityInfoCount struct {
 	Name      string      `dc:"权益名称"`            // 权益名称
 	ExEndTime *gtime.Time `dc:"兑换截止时间"`          // 兑换截止时间
 	ActiveId  *int        `description:"关联活动id"` // 关联活动id
 	PrizeId   *int        `dc:"lottery_prize_info---id"`
+	Total     *int        `dc:"lottery_prize_info---id"`
 }
 type GetListRes struct {
 	List  []*EquityInfoCount `json:"list" dc:"equity_info list"`

+ 1 - 1
api/product_rule/v1/product_rule.go

@@ -17,7 +17,7 @@ type CreateRes struct {
 }
 
 type UpdateReq struct {
-	g.Meta        `path:"/product_rule/{id}" method:"put" tags:"Activity" summary:"Update activity"`
+	g.Meta        `path:"/product_rule/{id}" method:"put" tags:"product_rule" summary:"Update product_rule"`
 	Id            *int `v:"required" dc:"赠送规则id"`
 	ActiviteId    *int ` dc:"活动id"`
 	ProductInfoId *int ` dc:"活动奖励对应的剑鱼产品id product_info的id"`

+ 2 - 0
internal/cmd/cmd.go

@@ -8,6 +8,7 @@ import (
 	"demo/internal/controller/prize_base_info"
 	"demo/internal/controller/product_info"
 	"demo/internal/controller/product_rule"
+	"demo/internal/middleware"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/net/ghttp"
 	"github.com/gogf/gf/v2/os/gcmd"
@@ -24,6 +25,7 @@ var (
 			s := g.Server()
 			s.Group("/admin", func(group *ghttp.RouterGroup) {
 				//group.Middleware(middleware.HandlerAuth) // todo 到时候看还用不用管理后台现在的这一套权限判断
+				group.Middleware(middleware.MiddlewareCORS)
 				group.Middleware(ghttp.MiddlewareHandlerResponse)
 				group.Bind(
 					hello.NewV1(),

+ 1 - 4
internal/controller/activity/activity_v1_get_list.go

@@ -14,7 +14,7 @@ func (c *ControllerV1) GetList(ctx context.Context, req *v1.GetListReq) (res *v1
 	if req.Name != "" {
 		orm = orm.WhereLike(dao.ActivityInfo.Columns().Name, "%"+req.Name+"%")
 	}
-	err = orm.Where(do.ActivityInfo{
+	err = orm.Fields("id,name,start_time,end_time").Where(do.ActivityInfo{
 		Id:        req.Id,
 		Name:      req.Name,
 		StartTime: req.StartTime,
@@ -25,8 +25,5 @@ func (c *ControllerV1) GetList(ctx context.Context, req *v1.GetListReq) (res *v1
 	if err != nil {
 		return nil, err
 	}
-	if err != nil {
-		return nil, err
-	}
 	return
 }

+ 21 - 0
internal/controller/activity/activity_v1_get_one.go

@@ -0,0 +1,21 @@
+package activity
+
+import (
+	"context"
+	"demo/internal/dao"
+	"demo/internal/model/do"
+
+	"demo/api/activity/v1"
+)
+
+func (c *ControllerV1) GetOne(ctx context.Context, req *v1.GetOneReq) (res *v1.GetOneRes, err error) {
+	res = &v1.GetOneRes{}
+
+	err = dao.ActivityInfo.Ctx(ctx).Where(do.ActivityInfo{
+		Id: req.Id,
+	}).Scan(&res)
+	if err != nil {
+		return nil, err
+	}
+	return res, err
+}

+ 3 - 3
internal/controller/equity_info/equity_info_v1_get_list.go

@@ -2,10 +2,10 @@ package equity_info
 
 import (
 	"context"
+	"demo/api/equity_info/v1"
 	"demo/internal/dao"
 	"github.com/gogf/gf/v2/frame/g"
-
-	"demo/api/equity_info/v1"
+	"github.com/gogf/gf/v2/os/gtime"
 )
 
 func (c *ControllerV1) GetList(ctx context.Context, req *v1.GetListReq) (res *v1.GetListRes, err error) {
@@ -16,7 +16,7 @@ func (c *ControllerV1) GetList(ctx context.Context, req *v1.GetListReq) (res *v1
 			columns.ActiveId: req.ActiveId,
 			columns.PrizeId:  req.PrizeId,
 			columns.State:    0,
-		}).OmitEmpty().Group(columns.ActiveId, columns.PrizeId, columns.Name, columns.ExEndTime).OrderDesc(columns.ActiveId).ScanAndCount(&res.List, &res.Total, false)
+		}).WhereGT(columns.ExEndTime, gtime.Now()).OmitEmpty().Group(columns.ActiveId, columns.PrizeId, columns.Name, columns.ExEndTime).OrderDesc(columns.ActiveId).Limit(req.Offset, req.Limit).ScanAndCount(&res.List, &res.Total, false)
 	if err != nil {
 		return nil, err
 	}

+ 1 - 1
internal/middleware/middleware_auth.go

@@ -35,7 +35,7 @@ func HandlerAuth(r *ghttp.Request) {
 	adminReq := entity.AdminRequest{}
 	// todo 因为这是 restful风格的接口 ,和剑鱼后台原有的权限判断不一致,所以在不调整表结构的情况下使用原call字段 充当请求方式字段  在页面是`类型配置`输入框
 	// 后边有时间可以看一下怎么调整一下
-	err = dao.AdminRequest.Ctx(r.Context()).Where(do.AdminRequest{Action: r.URL.Path, Call: r.Method}).Scan(&adminReq)
+	err = dao.AdminRequest.Ctx(r.Context()).Where(do.AdminRequest{Action: r.Router.Uri, Call: r.Method}).Scan(&adminReq)
 	if err != nil {
 		r.Response.WriteStatus(http.StatusBadRequest)
 		return

+ 8 - 0
internal/middleware/middleware_cors.go

@@ -0,0 +1,8 @@
+package middleware
+
+import "github.com/gogf/gf/v2/net/ghttp"
+
+func MiddlewareCORS(r *ghttp.Request) {
+	r.Response.CORSDefault()
+	r.Middleware.Next()
+}

+ 0 - 2
main.go

@@ -6,8 +6,6 @@ import (
 
 	_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
 
-	_ "demo/internal/logic"
-
 	"github.com/gogf/gf/v2/os/gctx"
 
 	"demo/internal/cmd"

+ 3 - 3
manifest/docker/Dockerfile

@@ -4,9 +4,9 @@ FROM loads/alpine:3.8
 #                                INSTALLATION
 ###############################################################################
 
-ENV WORKDIR                 /demo
-ADD resource                $WORKDIR/
-ADD .output/demo_linux      $WORKDIR/main
+ENV WORKDIR           /demo
+ADD demo_linux        $WORKDIR/main
+COPY manifest         $WORKDIR/manifest
 RUN chmod +x $WORKDIR/main
 
 ###############################################################################

+ 1 - 2
test.http

@@ -61,11 +61,10 @@ Content-Type: application/json
 }
 
 ### 更新活动
-PUT http://127.0.0.1:8000/activity
+PUT http://127.0.0.1:8000/admin/activity/18
 Content-Type: application/json
 
 {
-  "id": 13,
   "EndTime": "2025-10-12 00:00:00"
 }