add
wangpengfei
2023-07-06 c394edd0b3c3fda6741d09c494cda96606d27501
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
package model
 
import (
    "aps_crm/constvar"
    "aps_crm/pkg/mysqlx"
    "gorm.io/gorm"
    "time"
)
 
type (
    SaleChance struct {
        Id                 int                   `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Name               string                `json:"name" gorm:"column:name;type:varchar(255);comment:公司名称"`
        Number             string                `json:"number" gorm:"column:number;type:varchar(255);comment:销售线索编号"`
        ContactId          int                   `json:"contact_id" gorm:"column:contact_id;type:int(11);comment:联系人ID"`
        ClientId           int                   `json:"client_id" gorm:"column:client_id;type:int(11);comment:客户ID"`
        SalesSourcesId     int                   `json:"sales_sources_id" gorm:"column:sales_sources_id;type:int(11);comment:商机来源ID"`
        SaleTypeId         int                   `json:"sale_type_id" gorm:"column:sale_type_id;type:int(11);comment:商机类型ID"`
        SaleStageId        int                   `json:"sale_stage_id" gorm:"column:sale_stage_id;type:int(11);comment:商机阶段ID"`
        MemberId           int                   `json:"member_id" gorm:"column:member_id;type:int(11);comment:销售负责人ID"`
        RegularCustomersId int                   `json:"regular_customers_id" gorm:"column:regular_customers_id;type:int(11);comment:常客ID"`
        Competitors        string                `json:"competitors" gorm:"column:competitors;type:varchar(255);comment:竞争对手"`
        Possibilities      int                   `json:"possibilities" gorm:"column:possibilities;type:int(11);comment:可能性"`
        Budget             float64               `json:"budget" gorm:"column:budget;type:decimal(10,2);comment:预算"`
        ProjectedAmount    float64               `json:"projected_amount" gorm:"column:projected_amount;type:decimal(10,2);comment:预计金额"`
        Currency           constvar.CurrencyType `json:"currency" gorm:"column:currency;type:int(11);comment:货币类型"`
        ExpectedTime       time.Time             `json:"expected_time" gorm:"column:expected_time;type:datetime;comment:预计成交时间"`
        StatusId           int                   `json:"status_id" gorm:"column:status_id;type:int(11);comment:状态ID"`
        PainPoints         string                `json:"pain_points" gorm:"column:pain_points;type:text;comment:痛点"`
        WhetherEstablished string                `json:"whether_established" gorm:"column:whether_established;type:text;comment:是否成立"`
        CapitalBudget      string                `json:"capital_budget" gorm:"column:capital_budget;type:text;comment:资金预算"`
        KeyMaker           string                `json:"key_maker" gorm:"column:key_maker;type:text;comment:关键人"`
        KeyFactors         string                `json:"key_factors" gorm:"column:key_factors;type:text;comment:关键因素"`
        Process            string                `json:"process" gorm:"column:process;type:text;comment:决策流程"`
        Solutions          string                `json:"solutions" gorm:"column:solutions;type:text;comment:竞争对手解决方案"`
        Advantages         string                `json:"advantages" gorm:"column:advantages;type:text;comment:竞争优势"`
        Disadvantages      string                `json:"disadvantages" gorm:"column:disadvantages;type:text;comment:竞争劣势"`
        Opportunities      string                `json:"opportunities" gorm:"column:opportunities;type:text;comment:竞争机会"`
        Threats            string                `json:"threats" gorm:"column:threats;type:text;comment:竞争威胁"`
        Address
        gorm.Model `json:"-"`
    }
 
    SaleChangeSearch struct {
        SaleChance
        Orm *gorm.DB
    }
)
 
func (SaleChance) TableName() string {
    return "sale_chance"
}
 
func NewSaleChangeSearch() *SaleChangeSearch {
    return &SaleChangeSearch{Orm: mysqlx.GetDB()}
}
 
func (slf *SaleChangeSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&SaleChance{})
    if slf.Id > 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if slf.Name != "" {
        db = db.Where("name = ?", slf.Name)
    }
 
    return db
}
 
func (slf *SaleChangeSearch) Create(record *SaleChance) (err error) {
    var db = slf.build()
    err = db.Create(record).Error
    return
}
 
func (slf *SaleChangeSearch) Update(record *SaleChance) (err error) {
    var db = slf.build()
    err = db.Updates(record).Error
    return
}
 
func (slf *SaleChangeSearch) Delete() (err error) {
    var db = slf.build()
    err = db.Delete(&SaleChance{}).Error
    return
}
 
func (slf *SaleChangeSearch) Find() (record SaleChance, err error) {
    var db = slf.build()
    err = db.First(&record).Error
    return
}
 
func (slf *SaleChangeSearch) FindAll() (record []*SaleChance, err error) {
    var db = slf.build()
    err = db.Find(&record).Error
    return
}
 
func (slf *SaleChangeSearch) SetId(id int) *SaleChangeSearch {
    slf.Id = id
    return slf
}
 
func (slf *SaleChangeSearch) SetName(name string) *SaleChangeSearch {
    slf.Name = name
    return slf
}