add
add the method advancement of salesLead
| | |
| | | return |
| | | } |
| | | |
| | | // check member exist |
| | | |
| | | errCode = clientService.AddClient(client) |
| | | errCode = clientService.AddClient(client, params.SalesLeadsId) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | type SalesStatus int |
| | | |
| | | const ( |
| | | SalesStatusNew SalesStatus = iota + 1 |
| | | SalesStatusIng // 进行中 |
| | | SalesStatusSuccess // 成功 |
| | | SalesStatusFail // 失败 |
| | | SalesStatusLevelUptoClient // 升级为客户 |
| | | SalesStatusLevelUptoClientAndSalesChance // 升级为客户并且有销售机会 |
| | | |
| | | SalesStatusFail SalesStatus = -1 // 失败 |
| | | SalesStatusNew SalesStatus = iota // 新建 |
| | | SalesStatusIng // 进行中 |
| | | SalesStatusSuccess // 成功 |
| | | SalesStatusLevelUptoClient // 升级为客户 |
| | | SalesStatusLevelUptoClientAndSalesChance // 升级为客户并且有销售机会 |
| | | ) |
| | | |
| | | type CurrencyType int |
| | |
| | | "constvar.SalesStatus": { |
| | | "type": "integer", |
| | | "enum": [ |
| | | -1, |
| | | 1, |
| | | 2, |
| | | 3, |
| | | 4, |
| | | 5, |
| | | 6 |
| | | 5 |
| | | ], |
| | | "x-enum-comments": { |
| | | "SalesStatusFail": "失败", |
| | | "SalesStatusIng": "进行中", |
| | | "SalesStatusLevelUptoClient": "升级为客户", |
| | | "SalesStatusLevelUptoClientAndSalesChance": "升级为客户并且有销售机会", |
| | | "SalesStatusNew": "新建", |
| | | "SalesStatusSuccess": "成功" |
| | | }, |
| | | "x-enum-varnames": [ |
| | | "SalesStatusFail", |
| | | "SalesStatusNew", |
| | | "SalesStatusIng", |
| | | "SalesStatusSuccess", |
| | | "SalesStatusFail", |
| | | "SalesStatusLevelUptoClient", |
| | | "SalesStatusLevelUptoClientAndSalesChance" |
| | | ] |
| | |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | | "type": "integer" |
| | |
| | | "representative": { |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | |
| | | "representative": { |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | | "type": "integer" |
| | |
| | | "constvar.SalesStatus": { |
| | | "type": "integer", |
| | | "enum": [ |
| | | -1, |
| | | 1, |
| | | 2, |
| | | 3, |
| | | 4, |
| | | 5, |
| | | 6 |
| | | 5 |
| | | ], |
| | | "x-enum-comments": { |
| | | "SalesStatusFail": "失败", |
| | | "SalesStatusIng": "进行中", |
| | | "SalesStatusLevelUptoClient": "升级为客户", |
| | | "SalesStatusLevelUptoClientAndSalesChance": "升级为客户并且有销售机会", |
| | | "SalesStatusNew": "新建", |
| | | "SalesStatusSuccess": "成功" |
| | | }, |
| | | "x-enum-varnames": [ |
| | | "SalesStatusFail", |
| | | "SalesStatusNew", |
| | | "SalesStatusIng", |
| | | "SalesStatusSuccess", |
| | | "SalesStatusFail", |
| | | "SalesStatusLevelUptoClient", |
| | | "SalesStatusLevelUptoClientAndSalesChance" |
| | | ] |
| | |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | | "type": "integer" |
| | |
| | | "representative": { |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | |
| | | "representative": { |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | |
| | | "description": "法人代表", |
| | | "type": "string" |
| | | }, |
| | | "sales_leads_id": { |
| | | "description": "销售线索ID", |
| | | "type": "integer" |
| | | }, |
| | | "service_member_id": { |
| | | "description": "服务负责人ID", |
| | | "type": "integer" |
| | |
| | | definitions: |
| | | constvar.SalesStatus: |
| | | enum: |
| | | - -1 |
| | | - 1 |
| | | - 2 |
| | | - 3 |
| | | - 4 |
| | | - 5 |
| | | - 6 |
| | | type: integer |
| | | x-enum-comments: |
| | | SalesStatusFail: 失败 |
| | | SalesStatusIng: 进行中 |
| | | SalesStatusLevelUptoClient: 升级为客户 |
| | | SalesStatusLevelUptoClientAndSalesChance: 升级为客户并且有销售机会 |
| | | SalesStatusNew: 新建 |
| | | SalesStatusSuccess: 成功 |
| | | x-enum-varnames: |
| | | - SalesStatusFail |
| | | - SalesStatusNew |
| | | - SalesStatusIng |
| | | - SalesStatusSuccess |
| | | - SalesStatusFail |
| | | - SalesStatusLevelUptoClient |
| | | - SalesStatusLevelUptoClientAndSalesChance |
| | | constvar.UserType: |
| | |
| | | representative: |
| | | description: 法人代表 |
| | | type: string |
| | | sales_leads_id: |
| | | description: 销售线索ID |
| | | type: integer |
| | | service_member_id: |
| | | description: 服务负责人ID |
| | | type: integer |
| | |
| | | representative: |
| | | description: 法人代表 |
| | | type: string |
| | | sales_leads_id: |
| | | description: 销售线索ID |
| | | type: integer |
| | | service_member_id: |
| | | description: 服务负责人ID |
| | | type: integer |
| | |
| | | representative: |
| | | description: 法人代表 |
| | | type: string |
| | | sales_leads_id: |
| | | description: 销售线索ID |
| | | type: integer |
| | | service_member_id: |
| | | description: 服务负责人ID |
| | | type: integer |
| | |
| | | representative: |
| | | description: 法人代表 |
| | | type: string |
| | | sales_leads_id: |
| | | description: 销售线索ID |
| | | type: integer |
| | | service_member_id: |
| | | description: 服务负责人ID |
| | | type: integer |
| | |
| | | NextVisitTime string `json:"next_visit_time"` // 下次回访时间 |
| | | LatestServiceTime string `json:"latest_service_time"` // 最晚服务时间 |
| | | Contact Contact `json:"contact"` |
| | | SalesLeadsId int `json:"sales_leads_id"` // 销售线索ID |
| | | Address |
| | | Business |
| | | } |
| | |
| | | return "sales_leads" |
| | | } |
| | | |
| | | func NewSalesLeadsSearch() *SalesLeadsSearch { |
| | | func NewSalesLeadsSearch(db *gorm.DB) *SalesLeadsSearch { |
| | | if db == nil { |
| | | db = mysqlx.GetDB() |
| | | } |
| | | |
| | | return &SalesLeadsSearch{ |
| | | Orm: mysqlx.GetDB(), |
| | | Orm: db, |
| | | } |
| | | } |
| | | |
| | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/pkg/ecode" |
| | | "aps_crm/pkg/mysqlx" |
| | | ) |
| | | |
| | | type ClientService struct{} |
| | | |
| | | func (ClientService) AddClient(client *model.Client) int { |
| | | err := model.NewClientSearch(nil).Create(client) |
| | | if err != nil { |
| | | return ecode.ClientExist |
| | | func (ClientService) AddClient(client *model.Client, sId int) int { |
| | | if sId == 0 { |
| | | err := model.NewClientSearch(nil).Create(client) |
| | | if err != nil { |
| | | return ecode.ClientExist |
| | | } |
| | | } else { |
| | | tx := mysqlx.GetDB().Begin() |
| | | err := model.NewClientSearch(tx).Create(client) |
| | | if err != nil { |
| | | tx.Rollback() |
| | | return ecode.ClientExist |
| | | } |
| | | |
| | | err = model.NewSalesLeadsSearch(tx).SetId(sId).Delete() |
| | | if err != nil { |
| | | tx.Rollback() |
| | | return ecode.ClientExist |
| | | } |
| | | tx.Commit() |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | |
| | | type SalesLeadsService struct{} |
| | | |
| | | func (SalesLeadsService) AddSalesLeads(salesLeads *model.SalesLeads) int { |
| | | err := model.NewSalesLeadsSearch().Create(salesLeads) |
| | | err := model.NewSalesLeadsSearch(nil).Create(salesLeads) |
| | | if err != nil { |
| | | return ecode.SalesLeadsExist |
| | | } |
| | |
| | | |
| | | func (SalesLeadsService) UpdateSalesLeads(salesLeads *model.SalesLeads) int { |
| | | // update salesLeads |
| | | err := model.NewSalesLeadsSearch().SetId(salesLeads.Id).Update(salesLeads) |
| | | err := model.NewSalesLeadsSearch(nil).SetId(salesLeads.Id).Update(salesLeads) |
| | | if err != nil { |
| | | return ecode.SalesLeadsUpdateErr |
| | | } |
| | |
| | | |
| | | // CheckSalesLeadsExist check salesLeads exist |
| | | func CheckSalesLeadsExist(id int) int { |
| | | tmp, err := model.NewSalesLeadsSearch().SetId(id).Find() |
| | | tmp, err := model.NewSalesLeadsSearch(nil).SetId(id).Find() |
| | | if err != nil { |
| | | return ecode.SalesLeadsNotExist |
| | | } |
| | |
| | | |
| | | func (SalesLeadsService) GetSalesLeadsList(page, pageSize int, keyword string) ([]*model.SalesLeads, int64, int) { |
| | | // get contact list |
| | | contacts, total, err := model.NewSalesLeadsSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll() |
| | | contacts, total, err := model.NewSalesLeadsSearch(nil).SetKeyword(keyword).SetPage(page, pageSize).FindAll() |
| | | if err != nil { |
| | | return nil, 0, ecode.SalesLeadsListErr |
| | | } |
| | |
| | | //} |
| | | |
| | | // update salesLeads |
| | | err := model.NewSalesLeadsSearch().SetIds(ids).UpdateMap(map[string]interface{}{ |
| | | err := model.NewSalesLeadsSearch(nil).SetIds(ids).UpdateMap(map[string]interface{}{ |
| | | "member_id": memberId, |
| | | }) |
| | | if err != nil { |
| | |
| | | |
| | | func (SalesLeadsService) DeleteSalesLeads(ids []int) int { |
| | | // delete client |
| | | err := model.NewSalesLeadsSearch().SetIds(ids).Delete() |
| | | err := model.NewSalesLeadsSearch(nil).SetIds(ids).Delete() |
| | | if err != nil { |
| | | return ecode.SalesLeadsDeleteErr |
| | | } |