From 6f157dd921a0541d944ab19bbd02256d31dcd1e0 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Thu, 8 Jun 2023 11:34:58 +0800 Subject: [PATCH] 1 --- ddl/fs_qrcode_set.sql | 17 ++++ model/fsqrcodesetmodel.go | 38 ++++++++ model/fsqrcodesetmodel_gen.go | 94 +++++++++++++++++++ .../handler/getqrcodesetlisthandler.go | 27 ++++++ .../data-transfer/internal/handler/routes.go | 10 +- .../internal/logic/getqrcodesetlistlogic.go | 44 +++++++++ server/data-transfer/internal/types/types.go | 5 + server_api/data-transfer.api | 10 +- server_api/product.api | 2 +- 9 files changed, 243 insertions(+), 4 deletions(-) create mode 100644 ddl/fs_qrcode_set.sql create mode 100755 model/fsqrcodesetmodel.go create mode 100755 model/fsqrcodesetmodel_gen.go create mode 100644 server/data-transfer/internal/handler/getqrcodesetlisthandler.go create mode 100644 server/data-transfer/internal/logic/getqrcodesetlistlogic.go diff --git a/ddl/fs_qrcode_set.sql b/ddl/fs_qrcode_set.sql new file mode 100644 index 00000000..a0022ee9 --- /dev/null +++ b/ddl/fs_qrcode_set.sql @@ -0,0 +1,17 @@ +-- fusentest.fs_qrcode_set definition + +CREATE TABLE `fs_qrcode_set` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `name` varchar(25) NOT NULL DEFAULT '' COMMENT '二维码组件名称', + `size` smallint(6) NOT NULL DEFAULT '0' COMMENT '二维码内容尺寸', + `index_x` smallint(6) NOT NULL DEFAULT '0' COMMENT 'x偏移量', + `index_y` smallint(6) NOT NULL DEFAULT '0' COMMENT 'y偏移量', + `svg_website` text COMMENT 'website d数据', + `svg_instagram` text COMMENT 'svg instagram d数据', + `svg_facebook` text COMMENT 'svg facebook d数据', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态', + `admin_id` int(10) NOT NULL DEFAULT '0' COMMENT '操作人', + `ctime` int(10) NOT NULL DEFAULT '0' COMMENT '添加时间', + `utime` int(10) NOT NULL DEFAULT '0' COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='二维码边框配置表'; \ No newline at end of file diff --git a/model/fsqrcodesetmodel.go b/model/fsqrcodesetmodel.go new file mode 100755 index 00000000..88567ee7 --- /dev/null +++ b/model/fsqrcodesetmodel.go @@ -0,0 +1,38 @@ +package model + +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) + +var _ FsQrcodeSetModel = (*customFsQrcodeSetModel)(nil) + +type ( + // FsQrcodeSetModel is an interface to be customized, add more methods here, + // and implement the added methods in customFsQrcodeSetModel. + FsQrcodeSetModel interface { + fsQrcodeSetModel + GetAll(ctx context.Context) (resp []FsQrcodeSet, err error) + } + + customFsQrcodeSetModel struct { + *defaultFsQrcodeSetModel + } +) + +// NewFsQrcodeSetModel returns a model for the database table. +func NewFsQrcodeSetModel(conn sqlx.SqlConn) FsQrcodeSetModel { + return &customFsQrcodeSetModel{ + defaultFsQrcodeSetModel: newFsQrcodeSetModel(conn), + } +} + +func (m *defaultFsQrcodeSetModel) GetAll(ctx context.Context) (resp []FsQrcodeSet, err error) { + query := fmt.Sprintf("select %s from %s where `status` = ?", fsQrcodeSetRows, m.table) + err = m.conn.QueryRowsCtx(ctx, &resp, query, 1) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsqrcodesetmodel_gen.go b/model/fsqrcodesetmodel_gen.go new file mode 100755 index 00000000..cbeb3ade --- /dev/null +++ b/model/fsqrcodesetmodel_gen.go @@ -0,0 +1,94 @@ +// Code generated by goctl. DO NOT EDIT. + +package model + +import ( + "context" + "database/sql" + "fmt" + "strings" + + "github.com/zeromicro/go-zero/core/stores/builder" + "github.com/zeromicro/go-zero/core/stores/sqlc" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "github.com/zeromicro/go-zero/core/stringx" +) + +var ( + fsQrcodeSetFieldNames = builder.RawFieldNames(&FsQrcodeSet{}) + fsQrcodeSetRows = strings.Join(fsQrcodeSetFieldNames, ",") + fsQrcodeSetRowsExpectAutoSet = strings.Join(stringx.Remove(fsQrcodeSetFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + fsQrcodeSetRowsWithPlaceHolder = strings.Join(stringx.Remove(fsQrcodeSetFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" +) + +type ( + fsQrcodeSetModel interface { + Insert(ctx context.Context, data *FsQrcodeSet) (sql.Result, error) + FindOne(ctx context.Context, id int64) (*FsQrcodeSet, error) + Update(ctx context.Context, data *FsQrcodeSet) error + Delete(ctx context.Context, id int64) error + } + + defaultFsQrcodeSetModel struct { + conn sqlx.SqlConn + table string + } + + FsQrcodeSet struct { + Id int64 `db:"id"` // id + Name string `db:"name"` // 二维码组件名称 + Size int64 `db:"size"` // 二维码内容尺寸 + IndexX int64 `db:"index_x"` // x偏移量 + IndexY int64 `db:"index_y"` // y偏移量 + SvgWebsite sql.NullString `db:"svg_website"` // website d数据 + SvgInstagram sql.NullString `db:"svg_instagram"` // svg instagram d数据 + SvgFacebook sql.NullString `db:"svg_facebook"` // svg facebook d数据 + Status int64 `db:"status"` // 状态 + AdminId int64 `db:"admin_id"` // 操作人 + Ctime int64 `db:"ctime"` // 添加时间 + Utime int64 `db:"utime"` // 更新时间 + } +) + +func newFsQrcodeSetModel(conn sqlx.SqlConn) *defaultFsQrcodeSetModel { + return &defaultFsQrcodeSetModel{ + conn: conn, + table: "`fs_qrcode_set`", + } +} + +func (m *defaultFsQrcodeSetModel) Delete(ctx context.Context, id int64) error { + query := fmt.Sprintf("delete from %s where `id` = ?", m.table) + _, err := m.conn.ExecCtx(ctx, query, id) + return err +} + +func (m *defaultFsQrcodeSetModel) FindOne(ctx context.Context, id int64) (*FsQrcodeSet, error) { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", fsQrcodeSetRows, m.table) + var resp FsQrcodeSet + err := m.conn.QueryRowCtx(ctx, &resp, query, id) + switch err { + case nil: + return &resp, nil + case sqlc.ErrNotFound: + return nil, ErrNotFound + default: + return nil, err + } +} + +func (m *defaultFsQrcodeSetModel) Insert(ctx context.Context, data *FsQrcodeSet) (sql.Result, error) { + query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, fsQrcodeSetRowsExpectAutoSet) + ret, err := m.conn.ExecCtx(ctx, query, data.Name, data.Size, data.IndexX, data.IndexY, data.SvgWebsite, data.SvgInstagram, data.SvgFacebook, data.Status, data.AdminId, data.Ctime, data.Utime) + return ret, err +} + +func (m *defaultFsQrcodeSetModel) Update(ctx context.Context, data *FsQrcodeSet) error { + query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, fsQrcodeSetRowsWithPlaceHolder) + _, err := m.conn.ExecCtx(ctx, query, data.Name, data.Size, data.IndexX, data.IndexY, data.SvgWebsite, data.SvgInstagram, data.SvgFacebook, data.Status, data.AdminId, data.Ctime, data.Utime, data.Id) + return err +} + +func (m *defaultFsQrcodeSetModel) tableName() string { + return m.table +} diff --git a/server/data-transfer/internal/handler/getqrcodesetlisthandler.go b/server/data-transfer/internal/handler/getqrcodesetlisthandler.go new file mode 100644 index 00000000..3e29c21f --- /dev/null +++ b/server/data-transfer/internal/handler/getqrcodesetlisthandler.go @@ -0,0 +1,27 @@ +package handler + +import ( + "errors" + "net/http" + + "github.com/zeromicro/go-zero/core/logx" + "github.com/zeromicro/go-zero/rest/httpx" + + "fusenapi/server/data-transfer/internal/logic" + "fusenapi/server/data-transfer/internal/svc" +) + +// 获取二维码配置列表 +func GetQrCodeSetListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + l := logic.NewGetQrCodeSetListLogic(r.Context(), svcCtx) + resp := l.GetQrCodeSetList() + if resp != nil { + httpx.OkJsonCtx(r.Context(), w, resp) + } else { + err := errors.New("server logic is error, resp must not be nil") + httpx.ErrorCtx(r.Context(), w, err) + logx.Error(err) + } + } +} diff --git a/server/data-transfer/internal/handler/routes.go b/server/data-transfer/internal/handler/routes.go index f06f5e4b..31b39ef0 100644 --- a/server/data-transfer/internal/handler/routes.go +++ b/server/data-transfer/internal/handler/routes.go @@ -2,13 +2,14 @@ package handler import ( - svc2 "fusenapi/server/data-transfer/internal/svc" "net/http" + "fusenapi/server/data-transfer/internal/svc" + "github.com/zeromicro/go-zero/rest" ) -func RegisterHandlers(server *rest.Server, serverCtx *svc2.ServiceContext) { +func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { server.AddRoutes( []rest.Route{ { @@ -16,6 +17,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc2.ServiceContext) { Path: "/standard-logo/list", Handler: GetStandardLogoListHandler(serverCtx), }, + { + Method: http.MethodGet, + Path: "/qrcode-set/list", + Handler: GetQrCodeSetListHandler(serverCtx), + }, }, rest.WithJwt(serverCtx.Config.Auth.AccessSecret), ) diff --git a/server/data-transfer/internal/logic/getqrcodesetlistlogic.go b/server/data-transfer/internal/logic/getqrcodesetlistlogic.go new file mode 100644 index 00000000..3e8c7a32 --- /dev/null +++ b/server/data-transfer/internal/logic/getqrcodesetlistlogic.go @@ -0,0 +1,44 @@ +package logic + +import ( + "context" + "fusenapi/model" + "fusenapi/utils/basic" + + "fusenapi/server/data-transfer/internal/svc" + "fusenapi/server/data-transfer/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetQrCodeSetListLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewGetQrCodeSetListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetQrCodeSetListLogic { + return &GetQrCodeSetListLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +// 获取二维码配置列表 +func (l *GetQrCodeSetListLogic) GetQrCodeSetList() (resp *types.Response) { + qrCodeModel := model.NewFsQrcodeSetModel(l.svcCtx.MysqlConn) + qrCodeList, err := qrCodeModel.GetAll(l.ctx) + if err != nil { + logx.Error(err) + return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get qrcode list") + } + list := make([]types.GetQrCodeSetListRsp, 0, len(qrCodeList)) + for _, v := range qrCodeList { + list = append(list, types.GetQrCodeSetListRsp{ + Id: v.Id, + Name: v.Name, + }) + } + return resp.SetStatusWithMessage(basic.CodeOK, "success", list) +} diff --git a/server/data-transfer/internal/types/types.go b/server/data-transfer/internal/types/types.go index ecd5ec58..cbadaf3a 100644 --- a/server/data-transfer/internal/types/types.go +++ b/server/data-transfer/internal/types/types.go @@ -11,6 +11,11 @@ type GetStandardLogoListRsp struct { Url string `json:"url"` } +type GetQrCodeSetListRsp struct { + Id int64 `json:"id"` + Name string `json:"name"` +} + type Response struct { Code int `json:"code"` Message string `json:"msg"` diff --git a/server_api/data-transfer.api b/server_api/data-transfer.api index fbcb090d..d3e628f9 100644 --- a/server_api/data-transfer.api +++ b/server_api/data-transfer.api @@ -15,7 +15,10 @@ import "basic.api" service data-transfer { //获取标准logo列表 @handler GetStandardLogoListHandler - get /standard-logo/list ( ) returns (response); + get /standard-logo/list returns (response); + //获取二维码设置列表 + @handler GetQrCodeSetListHandler + get /qrcode-set/list returns (response); } //获取标准logo列表 @@ -23,4 +26,9 @@ type GetStandardLogoListRsp { Id int64 `json:"id"` Name string `json:"name"` Url string `json:"url"` +} +//获取二维码设置列表 +type GetQrCodeSetListRsp { + Id int64 `json:"id"` + Name string `json:"name"` } \ No newline at end of file diff --git a/server_api/product.api b/server_api/product.api index af4dc351..815f3283 100644 --- a/server_api/product.api +++ b/server_api/product.api @@ -20,7 +20,7 @@ service product { get /product/success-recommand (GetSuccessRecommandReq) returns (response); //获取分类下的产品以及尺寸 @handler GetSizeByProduct - get /product/get-size-by-product () returns (response); + get /product/get-size-by-product returns (response); } //获取产品列表