forked from GrgChain/baasmanager
-
Notifications
You must be signed in to change notification settings - Fork 1
/
channel_service.go
110 lines (88 loc) · 2.38 KB
/
channel_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package service
import (
"gitee.com/jonluo/baasmanager/apimanager/entity"
"github.com/go-xorm/xorm"
"gitee.com/jonluo/baasmanager/apimanager/model"
"encoding/json"
"time"
)
type ChannelService struct {
DbEngine *xorm.Engine
FabircService *FabricService
}
func (l *ChannelService) Add(channel *entity.Channel) (bool, string) {
i, err := l.DbEngine.Insert(channel)
if err != nil {
logger.Error(err.Error())
}
if i > 0 {
return true, "add success"
}
return false, "add fail"
}
func (l *ChannelService) Update(channel *entity.Channel) (bool, string) {
i, err := l.DbEngine.Where("id = ?", channel.Id).Update(channel)
if err != nil {
logger.Error(err.Error())
}
if i > 0 {
return true, "update success"
}
return false, "update fail"
}
func (l *ChannelService) Delete(id int) (bool, string) {
i, err := l.DbEngine.Where("id = ?", id).Delete(&entity.Channel{})
if err != nil {
logger.Error(err.Error())
}
if i > 0 {
return true, "delete success"
}
return false, "delete fail"
}
func (l *ChannelService) GetByChannel(channel *entity.Channel) (bool, *entity.Channel) {
has, err := l.DbEngine.Get(channel)
if err != nil {
logger.Error(err.Error())
}
return has, channel
}
func (l *ChannelService) GetList(channel *entity.Channel, page, size int) (bool, []*entity.Channel) {
channels := make([]*entity.Channel, 0)
values := make([]interface{}, 0)
where := "1=1"
err := l.DbEngine.Where(where, values...).Limit(size, page).Find(&channels)
if err != nil {
logger.Error(err.Error())
}
return true, channels
}
func (l *ChannelService) GetAllList(chainId int) (bool, []*entity.Channel) {
channels := make([]*entity.Channel, 0)
err := l.DbEngine.Where("chain_id = ?", chainId).Find(&channels)
if err != nil {
logger.Error(err.Error())
}
return true, channels
}
func (l *ChannelService) AddChannel(chain *entity.Chain, channel *entity.Channel) (bool, string) {
fc := entity.ParseFabircChainAndChannel(chain, channel)
resp := l.FabircService.DefChannel(fc)
var ret model.RespData
err := json.Unmarshal(resp, &ret)
if err != nil {
return false, "add fail"
}
if ret.Code == 0 {
channel.Created = time.Now().Unix()
return l.Add(channel)
} else {
return false, "add fail"
}
}
func NewChannelService(engine *xorm.Engine, fabircService *FabricService) *ChannelService {
return &ChannelService{
DbEngine: engine,
FabircService: fabircService,
}
}