-
Notifications
You must be signed in to change notification settings - Fork 0
/
sale_tag.go
93 lines (82 loc) · 1.93 KB
/
sale_tag.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
/**
* Copyright 2015 @ z3q.net.
* name : sale_tag
* author : jarryliu
* date : -- :
* description :
* history :
*/
package sale
import (
"go2o/src/core/domain/interface/sale"
"go2o/src/core/domain/interface/valueobject"
)
var _ sale.ISaleTag = new(SaleTag)
type SaleTag struct {
_rep sale.ISaleTagRep
_partnerId int
_value *sale.ValueSaleTag
}
func NewSaleTag(partnerId int, value *sale.ValueSaleTag,
rep sale.ISaleTagRep) sale.ISaleTag {
return &SaleTag{
_rep: rep,
_partnerId: partnerId,
_value: value,
}
}
func (this *SaleTag) GetDomainId() int {
if this._value != nil {
return this._value.Id
}
return 0
}
func (this *SaleTag) GetValue() *sale.ValueSaleTag {
return this._value
}
// 是否为系统内置
func (this *SaleTag) System() bool {
return this._value.IsInternal == 1
}
// 设置值
func (this *SaleTag) SetValue(v *sale.ValueSaleTag) error {
if v != nil {
// 如果为系统内置,不能修改名称
if !this.System() {
this._value.Enabled = v.Enabled
this._value.TagCode = v.TagCode
}
this._value.TagName = v.TagName
this._value.GoodsImage = v.GoodsImage
if len(v.TagCode) == 0 {
this._value.TagCode = v.TagCode
}
}
return nil
}
func (this *SaleTag) Save() (int, error) {
this._value.PartnerId = this._partnerId
return this._rep.SaveSaleTag(this._partnerId, this._value)
}
// 获取标签下的商品
func (this *SaleTag) GetValueGoods(sortBy string, begin, end int) []*valueobject.Goods {
if begin < 0 || begin > end {
begin = 0
}
if end <= 0 {
end = 5
}
return this._rep.GetValueGoodsBySaleTag(this._partnerId,
this._value.Id, sortBy, begin, end)
}
// 获取标签下的分页商品
func (this *SaleTag) GetPagedValueGoods(sortBy string, begin, end int) (int, []*valueobject.Goods) {
if begin < 0 || begin > end {
begin = 0
}
if end <= 0 {
end = 5
}
return this._rep.GetPagedValueGoodsBySaleTag(this._partnerId,
this.GetDomainId(), sortBy, begin, end)
}