Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
search_server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
02711508
authored
Jul 03, 2020
by
mushishixian
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
添加多数据库
parent
8c76d498
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
291 additions
and
252 deletions
cmd/course_http_server.go
conf/database.ini
controller/course_controller.go
controller/course_topic_controller.go
dao/course_dao.go
go.mod
pkg/config/config.go
pkg/config/mysql.go
pkg/mysql/mysql.go
service/common_ly_service.go
service/course_service.go
service/course_topic_service.go
test/test.go
cmd/course_http_server.go
View file @
02711508
package
main
import
(
"flag"
"github.com/gin-gonic/gin"
"github.com/micro/go-micro/v2/client/grpc"
"github.com/micro/go-micro/v2/web"
"log"
"search_server/boot"
_
"search_server/controller"
"search_server/framework/gin_"
"search_server/pkg/config"
)
func
main
()
{
var
path
string
flag
.
StringVar
(
&
path
,
"config"
,
"conf/config.ini"
,
"配置文件"
)
flag
.
Parse
()
if
err
:=
boot
.
Boot
(
path
);
err
!=
nil
{
log
.
Println
(
err
)
}
r
:=
gin
.
New
()
gin_
.
BootStrap
(
r
)
c
:=
grpc
.
NewClient
()
r
:=
gin
.
New
()
r
.
Handle
(
"GET"
,
"/test"
,
func
(
ctx
*
gin
.
Context
)
{
news
c
:=
Course
.
NewCourseService
(
"api.jtthink.com.course"
,
c
)
course_rsp
,
_
:=
c
.
ListForTop
(
context
.
Background
(),
&
Course
.
ListRequest
{
Size
:
10
})
ctx
.
JSON
(
200
,
gin
.
H
{
"Result"
:
course_rsp
.
Result
})
})
service
:=
web
.
NewService
(
web
.
Name
(
"api.jtthink.com.http.course"
),
web
.
Handler
(
r
),
)
port
:=
config
.
Get
(
"web.port"
)
.
String
()
//web改成micro 就是grpc,并直接注册到etcd里面
service
:=
web
.
NewService
(
web
.
Name
(
"go.micro.api.http.course"
),
web
.
Handler
(
r
),
web
.
Address
(
":"
+
port
),
)
if
err
:=
service
.
Init
();
err
!=
nil
{
log
.
Println
(
err
)
}
if
err
:=
service
.
Run
();
err
!=
nil
{
log
.
Println
(
err
)
}
//
//
var path string
//
flag.StringVar(&path, "config", "conf/config.ini", "配置文件")
//
flag.Parse()
//
if err := boot.Boot(path); err != nil {
//
log.Println(err)
//
}
//
//
r := gin.New()
//
gin_.BootStrap(r)
//
//
c:=grpc.NewClient()
//
r:=gin.New()
//
r.Handle("GET","/test", func(ctx *gin.Context) {
//
news
//
c:=Course.NewCourseService("api.jtthink.com.course",c)
//
course_rsp,_:=c.ListForTop(context.Background(),&Course.ListRequest{Size:10})
//
ctx.JSON(200,gin.H{"Result":course_rsp.Result})
//
})
//
service:=web.NewService(
//
web.Name("api.jtthink.com.http.course"),
//
web.Handler(r),
//
)
//
//
//
//
port := config.Get("web.port").String()
//
//
web改成micro 就是grpc,并直接注册到etcd里面
//
service := web.NewService(
//
web.Name("go.micro.api.http.course"),
//
web.Handler(r),
//
web.Address(":"+port),
//
)
//
//
if err := service.Init(); err != nil {
//
log.Println(err)
//
}
//
if err := service.Run(); err != nil {
//
log.Println(err)
//
}
}
conf/database.ini
0 → 100644
View file @
02711508
[mysql]
user_name
=
root
password
=
root
host
=
192.168.2.239
database
=
test
table_prefix
=
type
=
mysql
[bom]
user_name
=
root
password
=
root
host
=
192.168.2.250
database
=
test
table_prefix
=
type
=
mysql
\ No newline at end of file
controller/course_controller.go
View file @
02711508
package
controller
import
(
"github.com/gin-gonic/gin"
"search_server/framework/gin_"
"search_server/protopb/course"
"search_server/service"
)
func
init
()
{
courseService
:=
service
.
NewCourseServiceImpl
()
gin_
.
NewBuilder
()
.
WithService
(
courseService
)
.
WithMiddleware
(
Check_Middleware
())
.
WithMiddleware
(
Cors_Middleware
())
.
WithEndpoint
(
Courselist_Endpoint
(
courseService
))
.
WithRequest
(
Courselist_Request
())
.
WithResponse
(
Course_Response
())
.
Build
(
"/course"
,
"GET"
)
gin_
.
NewBuilder
()
.
WithService
(
courseService
)
.
WithMiddleware
(
Check_Middleware
())
.
WithEndpoint
(
Coursedetail_Endpoint
(
courseService
))
.
WithRequest
(
Coursedetail_Request
())
.
WithResponse
(
Course_Response
())
.
Build
(
"/detail/:course_id"
,
"GET"
)
}
//详细相关
func
Coursedetail_Endpoint
(
c
*
service
.
CourseServiceImpl
)
gin_
.
Endpoint
{
return
func
(
context
*
gin
.
Context
,
request
interface
{})
(
response
interface
{},
err
error
)
{
rsp
:=
&
course
.
DetailResponse
{
Course
:
new
(
course
.
CourseModel
),
Counts
:
make
([]
*
course
.
CourseCounts
,
0
)}
err
=
c
.
GetDetail
(
context
,
request
.
(
*
course
.
DetailRequest
),
rsp
)
return
rsp
,
err
}
}
//这个函数的作用是怎么处理请求
func
Coursedetail_Request
()
gin_
.
EncodeRequestFunc
{
return
func
(
context
*
gin
.
Context
)
(
i
interface
{},
e
error
)
{
bReq
:=
&
course
.
DetailRequest
{}
err
:=
context
.
BindUri
(
bReq
)
if
err
!=
nil
{
return
nil
,
err
}
err
=
context
.
BindHeader
(
bReq
)
if
err
!=
nil
{
return
nil
,
err
}
return
bReq
,
nil
}
}
//获取列表相关
func
Courselist_Endpoint
(
c
*
service
.
CourseServiceImpl
)
gin_
.
Endpoint
{
return
func
(
context
*
gin
.
Context
,
request
interface
{})
(
response
interface
{},
err
error
)
{
rsp
:=
&
course
.
ListResponse
{}
err
=
c
.
ListForTop
(
context
,
request
.
(
*
course
.
ListRequest
),
rsp
)
return
rsp
,
err
}
}
//这个函数的作用是怎么处理请求
func
Courselist_Request
()
gin_
.
EncodeRequestFunc
{
return
func
(
context
*
gin
.
Context
)
(
i
interface
{},
e
error
)
{
bReq
:=
&
course
.
ListRequest
{}
err
:=
context
.
BindQuery
(
bReq
)
//使用的是query 参数
if
err
!=
nil
{
return
nil
,
err
}
return
bReq
,
nil
}
}
//这个函数作用是:怎么处理响应结果
func
Course_Response
()
gin_
.
DecodeResponseFunc
{
return
func
(
context
*
gin
.
Context
,
res
interface
{})
error
{
context
.
JSON
(
200
,
res
)
return
nil
}
}
//func init() {
// courseService := service.NewCourseServiceImpl()
// gin_.NewBuilder().WithService(courseService).
// WithMiddleware(Check_Middleware()).
// WithMiddleware(Cors_Middleware()).
// WithEndpoint(Courselist_Endpoint(courseService)).
// WithRequest(Courselist_Request()).
// WithResponse(Course_Response()).Build("/course", "GET")
//
// gin_.NewBuilder().WithService(courseService).
// WithMiddleware(Check_Middleware()).
// WithEndpoint(Coursedetail_Endpoint(courseService)).
// WithRequest(Coursedetail_Request()).
// WithResponse(Course_Response()).Build("/detail/:course_id", "GET")
//
//}
//
////详细相关
//func Coursedetail_Endpoint(c *service.CourseServiceImpl) gin_.Endpoint {
// return func(context *gin.Context, request interface{}) (response interface{}, err error) {
// rsp := &course.DetailResponse{Course: new(course.CourseModel), Counts: make([]*course.CourseCounts, 0)}
// err = c.GetDetail(context, request.(*course.DetailRequest), rsp)
// return rsp, err
// }
//}
//
////这个函数的作用是怎么处理请求
//func Coursedetail_Request() gin_.EncodeRequestFunc {
// return func(context *gin.Context) (i interface{}, e error) {
// bReq := &course.DetailRequest{}
// err := context.BindUri(bReq)
// if err != nil {
// return nil, err
// }
// err = context.BindHeader(bReq)
// if err != nil {
// return nil, err
// }
// return bReq, nil
// }
//}
//
////获取列表相关
//func Courselist_Endpoint(c *service.CourseServiceImpl) gin_.Endpoint {
// return func(context *gin.Context, request interface{}) (response interface{}, err error) {
// rsp := &course.ListResponse{}
// err = c.ListForTop(context, request.(*course.ListRequest), rsp)
// return rsp, err
// }
//}
//
////这个函数的作用是怎么处理请求
//func Courselist_Request() gin_.EncodeRequestFunc {
// return func(context *gin.Context) (i interface{}, e error) {
// bReq := &course.ListRequest{}
// err := context.BindQuery(bReq) //使用的是query 参数
// if err != nil {
// return nil, err
// }
// return bReq, nil
// }
//}
//
////这个函数作用是:怎么处理响应结果
//func Course_Response() gin_.DecodeResponseFunc {
// return func(context *gin.Context, res interface{}) error {
// context.JSON(200, res)
// return nil
// }
//}
controller/course_topic_controller.go
View file @
02711508
package
controller
import
(
"github.com/gin-gonic/gin"
"search_server/framework/gin_"
"search_server/protopb/course"
"search_server/service"
)
func
init
()
{
courseService
:=
service
.
NewCourseTopicServiceImpl
()
gin_
.
NewBuilder
()
.
WithService
(
courseService
)
.
WithMiddleware
(
Check_Middleware
())
.
WithEndpoint
(
CourseTopicList_Endpoint
(
courseService
))
.
WithRequest
(
CourseTopicList_Request
())
.
WithResponse
(
Course_Response
())
.
Build
(
"/topic/:cid"
,
"GET"
)
}
func
CourseTopicList_Endpoint
(
c
*
service
.
CourseTopicServiceImpl
)
gin_
.
Endpoint
{
return
func
(
context
*
gin
.
Context
,
request
interface
{})
(
response
interface
{},
err
error
)
{
rsp
:=&
course
.
TopicResponse
{
Result
:
make
([]
*
course
.
CourseTopic
,
0
)}
err
=
c
.
GetTopic
(
context
,
request
.
(
*
course
.
TopicRequest
),
rsp
)
return
rsp
,
err
}
}
//这个函数的作用是怎么处理请求
func
CourseTopicList_Request
()
gin_
.
EncodeRequestFunc
{
return
func
(
context
*
gin
.
Context
)
(
i
interface
{},
e
error
)
{
bReq
:=&
course
.
TopicRequest
{}
err
:=
context
.
BindUri
(
bReq
)
//使用的是query 参数
if
err
!=
nil
{
return
nil
,
err
}
return
bReq
,
nil
}
}
\ No newline at end of file
//func init() {
// courseService:=service.NewCourseTopicServiceImpl()
// gin_.NewBuilder().WithService(courseService).
// WithMiddleware(Check_Middleware()).
// WithEndpoint(CourseTopicList_Endpoint(courseService)).
// WithRequest(CourseTopicList_Request()).
// WithResponse(Course_Response()).Build("/topic/:cid","GET")
//}
//
//func CourseTopicList_Endpoint(c *service.CourseTopicServiceImpl) gin_.Endpoint {
// return func(context *gin.Context, request interface{}) (response interface{}, err error) {
// rsp:=&course.TopicResponse{Result:make([]*course.CourseTopic,0)}
// err=c.GetTopic(context,request.(*course.TopicRequest),rsp)
// return rsp,err
// }
//}
////这个函数的作用是怎么处理请求
//func CourseTopicList_Request() gin_.EncodeRequestFunc{
// return func(context *gin.Context) (i interface{}, e error) {
// bReq:=&course.TopicRequest{}
// err:=context.BindUri(bReq) //使用的是query 参数
// if err!=nil{
// return nil,err
// }
// return bReq,nil
// }
//}
\ No newline at end of file
dao/course_dao.go
View file @
02711508
package
dao
import
(
"github.com/jinzhu/gorm"
"search_server/pkg/vars"
"search_server/pkg/mysql"
)
func
GetCourseList
()
*
gorm
.
DB
{
return
mysql
.
GetDB
()
.
Table
(
vars
.
Table_CourseMain
)
.
Order
(
"course_id desc"
)
.
Limit
(
3
)
}
const
course_list
=
"select * from course_main order by course_id desc limit ?"
func
GetCourseListBySql
(
args
...
interface
{})
*
gorm
.
DB
{
return
mysql
.
GetDB
()
.
Raw
(
course_list
,
args
...
)
}
func
GetCourseDetail
(
course_id
int
)
*
gorm
.
DB
{
return
mysql
.
GetDB
()
.
Table
(
vars
.
Table_CourseMain
)
.
Where
(
"course_id=?"
,
course_id
)
}
//取计数表
func
GetCourseCounts
(
course_id
int
)
*
gorm
.
DB
{
return
mysql
.
GetDB
()
.
Table
(
vars
.
Table_CourseCounts
)
.
Where
(
"course_id=?"
,
course_id
)
}
//func GetCourseList() *gorm.DB {
// return mysql.GetDB().Table(vars.Table_CourseMain).
// Order("course_id desc").Limit(3)
//}
//
//const course_list = "select * from course_main order by course_id desc limit ?"
//
//func GetCourseListBySql(args ...interface{}) *gorm.DB {
// return mysql.GetDB().Raw(course_list, args...)
//}
//func GetCourseDetail(course_id int) *gorm.DB {
// return mysql.GetDB().Table(vars.Table_CourseMain).Where("course_id=?", course_id)
//}
//
////取计数表
//func GetCourseCounts(course_id int) *gorm.DB {
// return mysql.GetDB().Table(vars.Table_CourseCounts).Where("course_id=?", course_id)
//}
go.mod
View file @
02711508
...
...
@@ -34,6 +34,7 @@ require (
github.com/syyongx/php2go v0.9.4
github.com/tidwall/gjson v1.6.0
github.com/uniplaces/carbon v0.1.6
go.etcd.io/bbolt v1.3.4
go.uber.org/zap v1.14.1 // indirect
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2 // indirect
golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect
...
...
pkg/config/config.go
View file @
02711508
...
...
@@ -11,7 +11,7 @@ var (
func
SetUp
(
path
string
)
(
err
error
)
{
//引入多个文件
Cfg
,
err
=
ini
.
LooseLoad
(
path
+
"/config.ini"
,
path
+
"/search.ini"
,
path
+
"/redis_key.ini"
,
path
+
"/rabmq_key.ini"
)
Cfg
,
err
=
ini
.
LooseLoad
(
path
+
"/config.ini"
,
path
+
"/search.ini"
,
path
+
"/redis_key.ini"
,
path
+
"/rabmq_key.ini"
,
path
+
"/database.ini"
)
return
}
...
...
pkg/config/mysql.go
0 → 100644
View file @
02711508
package
config
type
BaseDatabase
struct
{
UserName
string
Password
string
Host
string
Database
string
MaxIdleCons
int
MaxOpenCons
int
Prefix
string
}
//多数据库配置
func
BuildDatabaseList
()
(
DatabaseList
map
[
string
]
BaseDatabase
)
{
return
map
[
string
]
BaseDatabase
{
"mysql"
:
{
UserName
:
Get
(
"mysql.user_name"
)
.
String
(),
Password
:
Get
(
"mysql.password"
)
.
String
(),
Host
:
Get
(
"mysql.host"
)
.
String
(),
Database
:
Get
(
"mysql.database"
)
.
String
(),
Prefix
:
Get
(
"mysql.prefix"
)
.
String
(),
},
"bom"
:
{
UserName
:
Get
(
"bom.user_name"
)
.
String
(),
Password
:
Get
(
"bom.password"
)
.
String
(),
Host
:
Get
(
"bom.host"
)
.
String
(),
Database
:
Get
(
"bom.database"
)
.
String
(),
Prefix
:
Get
(
"mysql.prefix"
)
.
String
(),
},
}
}
pkg/mysql/mysql.go
View file @
02711508
...
...
@@ -9,28 +9,49 @@ import (
)
//mysql相关
var
mysqlDb
*
gorm
.
DB
var
mysqlDb
,
bomDb
*
gorm
.
DB
var
DatabaseConMap
=
map
[
string
]
*
gorm
.
DB
{
"mysql"
:
mysqlDb
,
"bom"
:
bomDb
,
}
func
Setup
()
error
{
DatabaseList
:=
config
.
BuildDatabaseList
()
var
err
error
userName
:=
config
.
Get
(
"database.user_name"
)
.
String
()
password
:=
config
.
Get
(
"database.password"
)
.
String
()
host
:=
config
.
Get
(
"database.host"
)
.
String
()
database
:=
config
.
Get
(
"database.database"
)
.
String
()
mysqlDb
,
err
=
gorm
.
Open
(
"mysql"
,
fmt
.
Sprintf
(
"%s:%s@tcp(%s:3306)/%s?charset=utf8&parseTime=True&loc=Local"
,
//循环生成数据库链接
for
conName
,
db
:=
range
DatabaseList
{
userName
:=
db
.
UserName
password
:=
db
.
Password
host
:=
db
.
Host
database
:=
db
.
Database
if
db
.
Prefix
!=
""
{
gorm
.
DefaultTableNameHandler
=
func
(
DB
*
gorm
.
DB
,
defaultTableName
string
)
string
{
return
db
.
Prefix
+
defaultTableName
}
}
DatabaseConMap
[
conName
],
err
=
gorm
.
Open
(
"mysql"
,
fmt
.
Sprintf
(
"%s:%s@tcp(%s:3306)/%s?charset=utf8&parseTime=True&loc=Local"
,
userName
,
password
,
host
,
database
))
if
err
!=
nil
{
mysqlDb
=
nil
return
e
.
NewFatalError
(
err
.
Error
())
//这里返回致命异常
}
mysqlDb
.
SingularTable
(
true
)
mysqlDb
.
DB
()
.
SetMaxIdleConns
(
10
)
mysqlDb
.
DB
()
.
SetMaxOpenConns
(
100
)
mysqlDb
.
LogMode
(
true
)
DatabaseConMap
[
conName
]
.
SingularTable
(
true
)
if
db
.
MaxIdleCons
==
0
{
db
.
MaxIdleCons
=
10
}
if
db
.
MaxOpenCons
==
0
{
db
.
MaxOpenCons
=
100
}
DatabaseConMap
[
conName
]
.
DB
()
.
SetMaxIdleConns
(
db
.
MaxIdleCons
)
DatabaseConMap
[
conName
]
.
DB
()
.
SetMaxOpenConns
(
db
.
MaxOpenCons
)
DatabaseConMap
[
conName
]
.
LogMode
(
true
)
}
return
nil
}
func
GetDB
()
*
gorm
.
DB
{
return
mysqlDb
func
GetDB
(
conName
string
)
*
gorm
.
DB
{
return
DatabaseConMap
[
conName
]
}
service/common_ly_service.go
View file @
02711508
package
service
import
(
"fmt"
_
"github.com/tidwall/gjson"
"search_server/model"
"search_server/pkg/gredis"
)
//关键词搜索过期时间
var
supplier_over_time
=
map
[
string
]
int64
{
"arrow"
:
3600
,
"verical"
:
3600
,
"mouser"
:
3600
,
"master"
:
3600
,
"tme"
:
3600
,
"buerklin"
:
3600
,
"arrow"
:
3600
,
"verical"
:
3600
,
"mouser"
:
3600
,
"master"
:
3600
,
"tme"
:
3600
,
"buerklin"
:
3600
,
}
/*
联营公共类
联营大类,包括修改新增 sku es redis ,推送数据到队列让其他go服务更新数据到mysql
@param goods_list 请求联营格式化后的数据
@param supplier_info 供应商商品详情
*/
func
getSkuByGoodsSn
(
goods_list
map
[
string
]
*
model
.
LyClearGoodsList
,
supplier_info
*
model
.
SUPPLIER_REDIS_INFO_
)
map
[
string
]
interface
{}
{
*/
func
getSkuByGoodsSn
(
goods_list
map
[
string
]
*
model
.
LyClearGoodsList
,
supplier_info
*
model
.
SUPPLIER_REDIS_INFO_
)
map
[
string
]
interface
{}
{
//originGoods := make(map[string]interface{},0)
//
...
...
@@ -36,19 +35,23 @@ func getSkuByGoodsSn(goods_list map[string]*model.LyClearGoodsList,supplier_info
//
//fmt.Println(productList)
//return productList
return
nil
}
/*
新增或者更新redis
*/
*/
func
toRedis
()
{
}
/*
推入队列
*/
func
toGoRabmq
()
{
}
/*
更新es
*/
...
...
service/course_service.go
View file @
02711508
package
service
import
(
"context"
"search_server/dao"
.
"search_server/protopb/course"
)
...
...
@@ -12,32 +10,32 @@ func NewCourseModel(id int32, name string) *CourseModel {
type
CourseServiceImpl
struct
{}
func
(
this
*
CourseServiceImpl
)
ListForTop
(
ctx
context
.
Context
,
req
*
ListRequest
,
rsp
*
ListResponse
)
error
{
course
:=
make
([]
*
CourseModel
,
0
)
err
:=
dao
.
GetCourseListBySql
(
req
.
Size
)
.
Find
(
&
course
)
.
Error
if
err
!=
nil
{
return
err
}
rsp
.
Result
=
course
return
nil
}
func
(
this
*
CourseServiceImpl
)
GetDetail
(
ctx
context
.
Context
,
req
*
DetailRequest
,
rsp
*
DetailResponse
)
error
{
//只取课程详细
if
req
.
FetchType
==
0
||
req
.
FetchType
==
1
||
req
.
FetchType
==
3
{
if
err
:=
dao
.
GetCourseDetail
(
int
(
req
.
CourseId
))
.
Find
(
rsp
.
Course
)
.
Error
;
err
!=
nil
{
return
err
}
}
//只取计数表详细
if
req
.
FetchType
==
2
||
req
.
FetchType
==
3
{
if
err
:=
dao
.
GetCourseCounts
(
int
(
req
.
CourseId
))
.
Find
(
&
rsp
.
Counts
)
.
Error
;
err
!=
nil
{
return
err
}
}
return
nil
}
//
func (this *CourseServiceImpl) ListForTop(ctx context.Context, req *ListRequest, rsp *ListResponse) error {
//
course := make([]*CourseModel, 0)
//
err := dao.GetCourseListBySql(req.Size).Find(&course).Error
//
if err != nil {
//
return err
//
}
//
rsp.Result = course
//
return nil
//
}
//
func (this *CourseServiceImpl) GetDetail(ctx context.Context, req *DetailRequest, rsp *DetailResponse) error {
//
//只取课程详细
//
if req.FetchType == 0 || req.FetchType == 1 || req.FetchType == 3 {
//
if err := dao.GetCourseDetail(int(req.CourseId)).Find(rsp.Course).Error; err != nil {
//
return err
//
}
//
}
//
//只取计数表详细
//
if req.FetchType == 2 || req.FetchType == 3 {
//
if err := dao.GetCourseCounts(int(req.CourseId)).Find(&rsp.Counts).Error; err != nil {
//
return err
//
}
//
}
//
//
return nil
//
//
}
func
NewCourseServiceImpl
()
*
CourseServiceImpl
{
return
&
CourseServiceImpl
{}
...
...
service/course_topic_service.go
View file @
02711508
package
service
import
(
"context"
.
"search_server/protopb/course"
"search_server/pkg/mysql"
)
type
CourseTopicServiceImpl
struct
{}
func
(
this
*
CourseTopicServiceImpl
)
GetTopic
(
ctx
context
.
Context
,
in
*
TopicRequest
,
out
*
TopicResponse
)
error
{
if
err
:=
mysql
.
GetDB
()
.
Table
(
"course_topic"
)
.
Find
(
&
out
.
Result
)
.
Error
;
err
!=
nil
{
return
err
}
return
nil
}
func
NewCourseTopicServiceImpl
()
*
CourseTopicServiceImpl
{
return
&
CourseTopicServiceImpl
{}
}
//
func (this *CourseTopicServiceImpl) GetTopic(ctx context.Context, in *TopicRequest, out *TopicResponse) error {
//
if err := mysql.GetDB().Table("course_topic").Find(&out.Result).Error; err != nil {
//
return err
//
}
//
return nil
//
}
//
func NewCourseTopicServiceImpl() *CourseTopicServiceImpl {
//
return &CourseTopicServiceImpl{}
//
}
test/test.go
View file @
02711508
...
...
@@ -5,6 +5,7 @@ import (
"fmt"
"search_server/boot"
"search_server/pkg/config"
"search_server/pkg/mysql"
)
func
main
()
{
...
...
@@ -17,6 +18,8 @@ func main() {
//fmt.Println(model.GetExcludeBrandIds(1))
fmt
.
Println
(
config
.
GetSectionValues
(
"supplier_all"
))
fmt
.
Println
(
config
.
Cfg
.
Section
(
"xxx"
)
.
Key
(
"xxx"
))
res
,
_
:=
mysql
.
GetDB
(
"mysql"
)
.
Exec
(
"SELECT * FROM lie_bin"
)
.
Rows
()
fmt
.
Println
(
res
)
//client := client.
//c := course.NewCourseService("go.micro.api.jtthink.course", client)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment