切换导航条
此项目
正在载入...
登录
mmm-go
/
partnermg
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
陈志颖
4 years ago
提交
c249f9de918075c727a4ff9fb634dbc37ad10645
1 个父辈
a4256d2b
test:修改订单同步测试
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
220 行增加
和
10 行删除
pkg/infrastructure/pg/models/order_bestshop.go
pkg/infrastructure/repository/pg_order_bestshop_repository.go
pkg/port/consumer/handles/xiangmi.go
test/integration/consumer/sync_order/configs/config.go
test/integration/consumer/sync_order/sync_bestshop_test.go
test/integration/consumer/sync_order/sync_order_suite_test.go
pkg/infrastructure/pg/models/order_bestshop.go
查看文件 @
c249f9d
...
...
@@ -21,7 +21,7 @@ type OrderBestshop struct {
BuyerAddress
string
//买家备注
BuyerRemark
string
//
//
买家id
BuyerId
int64
//订单总数
OrderCount
int
...
...
@@ -31,9 +31,14 @@ type OrderBestshop struct {
DeliveryTime
string
//创建时间
CreateTime
time
.
Time
PartnerId
int64
//合伙人id
PartnerId
int64
//是否将数据同步到 order_base ,order_good
IsCopy
bool
`pg:",use_zero"`
IsCopy
bool
`pg:",use_zero"`
//公司id
CompanyId
int64
//订单区域
OrderArea
string
//微信小程序id
WxAppletId
string
}
...
...
pkg/infrastructure/repository/pg_order_bestshop_repository.go
查看文件 @
c249f9d
...
...
@@ -44,6 +44,7 @@ func (respository OrderBestshopRepository) transformPgModelToDomainModel(orderMo
IsCopy
:
orderModel
.
IsCopy
,
CompanyId
:
orderModel
.
CompanyId
,
OrderArea
:
orderModel
.
OrderArea
,
WxAppletId
:
orderModel
.
WxAppletId
,
},
nil
}
...
...
@@ -67,6 +68,7 @@ func (respository OrderBestshopRepository) Add(order *domain.OrderBestShop) erro
IsCopy
:
order
.
IsCopy
,
CompanyId
:
order
.
CompanyId
,
OrderArea
:
order
.
OrderArea
,
WxAppletId
:
order
.
WxAppletId
,
}
_
,
err
:=
tx
.
Model
(
&
m
)
.
Insert
()
order
.
Id
=
m
.
Id
...
...
@@ -94,6 +96,7 @@ func (respository OrderBestshopRepository) Edit(order *domain.OrderBestShop) err
IsCopy
:
order
.
IsCopy
,
CompanyId
:
order
.
CompanyId
,
OrderArea
:
order
.
OrderArea
,
WxAppletId
:
order
.
WxAppletId
,
}
_
,
err
:=
tx
.
Model
(
&
m
)
.
Where
(
"id=?"
,
order
.
Id
)
.
Update
()
order
.
Id
=
m
.
Id
...
...
pkg/port/consumer/handles/xiangmi.go
查看文件 @
c249f9d
...
...
@@ -27,13 +27,13 @@ func DataFromXiangMi(message *sarama.ConsumerMessage) error {
// TODO 使用小程序id作为module
dataAction
:=
msgData
.
Module
+
"/"
+
msgData
.
Action
switch
dataAction
{
case
"xiangmi.order/ship"
:
err
=
syncBestshopOrder
(
msgData
.
Data
)
if
err
!=
nil
{
e
:=
fmt
.
Errorf
(
"[Consumer][SyncBestshopOrder] %s"
,
err
)
return
e
}
// TODO 统一操作小程序订单
//case "xiangmi.order/ship":
// err = syncBestshopOrder(msgData.Data)
// if err != nil {
// e := fmt.Errorf("[Consumer][SyncBestshopOrder] %s", err)
// return e
// }
// TODO 统一操作小程序订单
case
"wxapplet.order/ship"
:
err
=
syncBestshopOrder
(
msgData
.
Data
)
if
err
!=
nil
{
...
...
test/integration/consumer/sync_order/configs/config.go
0 → 100644
查看文件 @
c249f9d
/**
@author: stevechan
@date: 2021/3/11
@note:
**/
package
configs
type
MqConfig
struct
{
Topics
[]
string
`json:"topics"`
Servers
[]
string
`json:"servers"`
ConsumerId
string
`json:"consumerGroup"`
}
var
Cfg
=
MqConfig
{
Topics
:
[]
string
{
"xiangmi_project_dev"
},
Servers
:
[]
string
{
"127.0.0.1:9092"
},
ConsumerId
:
"test"
,
}
...
...
test/integration/consumer/sync_order/sync_bestshop_test.go
0 → 100644
查看文件 @
c249f9d
/**
@author: stevechan
@date: 2021/3/11
@note:
**/
package
sync_order
import
(
"encoding/json"
"fmt"
"github.com/Shopify/sarama"
"github.com/gavv/httpexpect"
"github.com/go-pg/pg"
pg2
"github.com/go-pg/pg/v10"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
pG
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/test/integration/consumer/sync_order/configs"
"net/http"
"strconv"
"time"
)
var
(
cfg
*
configs
.
MqConfig
producer
sarama
.
SyncProducer
)
func
produce
(
topic
string
,
key
string
,
content
interface
{})
error
{
data
,
_
:=
json
.
Marshal
(
content
)
msg
:=
&
sarama
.
ProducerMessage
{
Topic
:
topic
,
Key
:
sarama
.
StringEncoder
(
key
),
Value
:
sarama
.
ByteEncoder
(
data
),
Timestamp
:
time
.
Now
(),
}
_
,
_
,
err2
:=
producer
.
SendMessage
(
msg
)
if
err2
!=
nil
{
msg1
:=
fmt
.
Sprintf
(
"Send Error topic: %v. key: %v. content: %v"
,
topic
,
key
,
content
)
fmt
.
Println
(
msg1
)
return
err2
}
fmt
.
Printf
(
"Send OK topic:%s key:%s value:%s
\n
"
,
topic
,
key
,
content
)
return
nil
}
var
_
=
Describe
(
"同步小程序订单"
,
func
()
{
var
companyId
int64
var
partnerId
int64
BeforeEach
(
func
()
{
fmt
.
Print
(
"init kafka producer, it may take a few seconds to init the connection
\n
"
)
var
err
error
cfg
=
&
configs
.
Cfg
mqConfig
:=
sarama
.
NewConfig
()
mqConfig
.
Producer
.
Return
.
Successes
=
true
mqConfig
.
Version
=
sarama
.
V0_10_2_1
if
err
=
mqConfig
.
Validate
();
err
!=
nil
{
msg
:=
fmt
.
Sprintf
(
"Kafka producer config invalidate. config: %v. err: %v"
,
*
cfg
,
err
)
fmt
.
Println
(
msg
)
panic
(
msg
)
}
producer
,
err
=
sarama
.
NewSyncProducer
(
cfg
.
Servers
,
mqConfig
)
if
err
!=
nil
{
msg
:=
fmt
.
Sprintf
(
"Kafak producer create fail. err: %v"
,
err
)
fmt
.
Println
(
msg
)
panic
(
msg
)
}
// 新增公司
_
,
err2
:=
pG
.
DB
.
QueryOne
(
pg
.
Scan
(
&
companyId
),
"INSERT INTO company (name, phone, logo, admin_company, status, create_at, update_at, delete_at, remarks, enable, abbreviation, applets) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id"
,
"测试公司"
,
"13162672794"
,
"http://suplus-file-dev.fjmaimaimai.com/upload/image/2020091709304822611.jpg"
,
431
,
Default
,
"2020-09-17 09:30:05.588579+08"
,
"2020-09-17 09:30:05.588579+08"
,
pg2
.
NullTime
{},
""
,
"测试"
,
1
,
"公司"
,
[]
map
[
string
]
interface
{}{{
"id"
:
"gh_18eb644002fb"
,
"url"
:
"pages/index/index"
,
"name"
:
"海鲜干货啦啦啦啦啦"
,
"imageUrl"
:
""
}})
Expect
(
err2
)
.
NotTo
(
HaveOccurred
())
// 新增合伙人
_
,
err3
:=
pG
.
DB
.
QueryOne
(
pg
.
Scan
(
&
partnerId
),
"INSERT INTO partner_info (partner_name, account, password, status, partner_category, region_info, cooperate_time, create_at, update_at, salesman, partner_category_infos, company_id, remark) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id"
,
"test_partner"
,
"19121619631"
,
"7c4a8d09ca3762af61e59520943dc26494f8941b"
,
1
,
1
,
map
[
string
]
interface
{}{
"regionName"
:
"123"
},
"2020-09-01 00:00:00+08"
,
"2020-09-01 00:00:00+08"
,
"2020-09-01 00:00:00+08"
,
[]
map
[
string
]
interface
{}{{
"name"
:
"123"
,
"telephone"
:
"13322223333"
}},
[]
map
[
string
]
interface
{}{{
"id"
:
2
,
"code"
:
"001"
}},
1
,
"测试合伙人"
)
Expect
(
err3
)
.
NotTo
(
HaveOccurred
())
key
:=
strconv
.
FormatInt
(
time
.
Now
()
.
UTC
()
.
UnixNano
(),
10
)
value
:=
map
[
string
]
interface
{}{
"module"
:
"wxapplet.order"
,
"action"
:
"ship"
,
"data"
:
map
[
string
]
interface
{}{
"orderCode"
:
"1234567895"
,
"orderCount"
:
1
,
"orderAmount"
:
2
,
"orderTime"
:
"2021-03-05 12:01:54"
,
"orderState"
:
1
,
"deliveryState"
:
1
,
"buyerName"
:
"陈志颖"
,
"buyerPhone"
:
"19121619631"
,
"buyerAddress"
:
"福建省 福州市 仓山区"
,
"buyerRemark"
:
"不辣"
,
"buyerId"
:
123
,
"partnerId"
:
partnerId
,
"goods"
:
[]
map
[
string
]
interface
{}{
{
"sn"
:
"wertyuf"
,
"id"
:
1
,
"bn"
:
"a;slkdjgaj"
,
"name"
:
"地瓜"
,
"price"
:
2
,
"nums"
:
1
,
"amount"
:
2
,
},
},
"companyId"
:
companyId
,
"deliveryTime"
:
"2021-03-05 12:01:54"
,
"orderArea"
:
"福建省 福州市 台江区"
,
"wxAppletId"
:
"gh_18eb644002fb"
,
},
}
err4
:=
produce
(
cfg
.
Topics
[
0
],
key
,
value
)
Expect
(
err4
)
.
NotTo
(
HaveOccurred
())
})
Describe
(
"提交小程序订单消息"
,
func
()
{
Context
(
"提交正确的小程序订单"
,
func
()
{
It
(
"返回正确的订单数据"
,
func
()
{
httpExpect
:=
httpexpect
.
New
(
GinkgoT
(),
server
.
URL
)
httpExpect
.
GET
(
""
)
.
Expect
()
.
Status
(
http
.
StatusOK
)
.
JSON
()
.
Object
()
.
ContainsKey
(
"code"
)
.
ValueEqual
(
"code"
,
0
)
})
})
})
AfterEach
(
func
()
{
_
,
err1
:=
pG
.
DB
.
Exec
(
"DELETE FROM order_bestshop WHERE true"
)
Expect
(
err1
)
.
NotTo
(
HaveOccurred
())
_
,
err2
:=
pG
.
DB
.
Exec
(
"DELETE FROM company WHERE true"
)
Expect
(
err2
)
.
NotTo
(
HaveOccurred
())
_
,
err3
:=
pG
.
DB
.
Exec
(
"DELETE FROM partner_info WHERE true"
)
Expect
(
err3
)
.
NotTo
(
HaveOccurred
())
})
})
...
...
test/integration/consumer/sync_order/sync_order_suite_test.go
0 → 100644
查看文件 @
c249f9d
/**
@author: stevechan
@date: 2021/3/11
@note:
**/
package
sync_order
import
(
"github.com/astaxie/beego"
"net/http"
"net/http/httptest"
"testing"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
_
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg"
_
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/beego"
)
func
TestColumnSetting
(
t
*
testing
.
T
)
{
RegisterFailHandler
(
Fail
)
RunSpecs
(
t
,
"Kafka Consumer Sync Order Correlations Test Case Suite"
)
}
var
handler
http
.
Handler
var
server
*
httptest
.
Server
// 初始化kafka
var
_
=
BeforeSuite
(
func
()
{
handler
=
beego
.
BeeApp
.
Handlers
server
=
httptest
.
NewServer
(
handler
)
})
var
_
=
AfterSuite
(
func
()
{
server
.
Close
()
})
...
...
请
注册
或
登录
后发表评论