api/v1/salesLeads.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
docs/docs.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
docs/swagger.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
docs/swagger.yaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
model/request/client.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
model/request/salesLeads.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
model/salesLeads.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pkg/ecode/code.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
router/salesLeads.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/salesLeads.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/v1/salesLeads.go
@@ -1,164 +1,187 @@ package v1 import ( "aps_crm/constvar" "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "github.com/gin-gonic/gin" ) type SalesLeadsApi struct{} // Add // // @Tags SalesLeads // @Summary 添加销售线索 // @Produce application/json // @Param object body request.AddSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/add [post] func (s *SalesLeadsApi) Add(c *gin.Context) { var params request.AddSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesLeads := checkSalesLeadsParams(params.SalesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = salesLeadsService.AddSalesLeads(&salesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags SalesLeads // @Summary 删除销售线索 // @Produce application/json // @Param object body request.DeleteSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/delete [delete] func (s *SalesLeadsApi) Delete(c *gin.Context) { var params request.DeleteSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode := salesLeadsService.DeleteSalesLeads(params.Ids) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags SalesLeads // @Summary 更新销售线索 // @Produce application/json // @Param object body request.UpdateSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/update [put] func (s *SalesLeadsApi) Update(c *gin.Context) { var params request.UpdateSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesLeads := checkSalesLeadsParams(params.SalesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } salesLeads.Id = params.Id errCode = salesLeadsService.UpdateSalesLeads(&salesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } func checkSalesLeadsParams(params request.SalesLeads) (errCode int, salesLeads model.SalesLeads) { //if params.Name == "" { // return ecode.InvalidParams, salesLeads //} // //if params.Number == "" { // return ecode.InvalidParams, salesLeads //} // //if params.SalesSourcesId == 0 { // return ecode.InvalidParams, salesLeads //} // //if params.MemberId == 0 { // return ecode.InvalidParams, salesLeads //} salesLeads = model.SalesLeads{ Name: params.Name, Number: params.Number, ContactName: params.ContactName, ContactPhone: params.ContactPhone, ContactPosition: params.ContactPosition, SalesStatus: constvar.SalesStatusNew, SalesSourcesId: params.SalesSourcesId, MemberId: params.MemberId, Desc: params.Desc, Address: model.Address{ ProvinceId: params.ProvinceId, CityId: params.CityId, RegionId: params.RegionId, CountryId: params.CountryId, }, } return ecode.OK, salesLeads } // List // // @Tags SalesLeads // @Summary 销售线索列表 // @Produce application/json // @Param object body request.GetSalesLeadsList true "参数" // @Success 200 {object} contextx.Response{data=response.SalesLeadsResponse} // @Router /api/salesLeads/list [post] func (s *SalesLeadsApi) List(c *gin.Context) { var params request.GetSalesLeadsList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } salesLeadss, total, errCode := salesLeadsService.GetSalesLeadsList(params.Page, params.PageSize, params.Keyword) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesLeadsResponse{ List: salesLeadss, Count: int(total), }) } package v1 import ( "aps_crm/constvar" "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "github.com/gin-gonic/gin" ) type SalesLeadsApi struct{} // Add // // @Tags SalesLeads // @Summary 添加销售线索 // @Produce application/json // @Param object body request.AddSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/add [post] func (s *SalesLeadsApi) Add(c *gin.Context) { var params request.AddSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesLeads := checkSalesLeadsParams(params.SalesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = salesLeadsService.AddSalesLeads(&salesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags SalesLeads // @Summary 删除销售线索 // @Produce application/json // @Param object body request.DeleteSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/delete [delete] func (s *SalesLeadsApi) Delete(c *gin.Context) { var params request.DeleteSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode := salesLeadsService.DeleteSalesLeads(params.Ids) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags SalesLeads // @Summary 更新销售线索 // @Produce application/json // @Param object body request.UpdateSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/update [put] func (s *SalesLeadsApi) Update(c *gin.Context) { var params request.UpdateSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesLeads := checkSalesLeadsParams(params.SalesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } salesLeads.Id = params.Id errCode = salesLeadsService.UpdateSalesLeads(&salesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } func checkSalesLeadsParams(params request.SalesLeads) (errCode int, salesLeads model.SalesLeads) { //if params.Name == "" { // return ecode.InvalidParams, salesLeads //} // //if params.Number == "" { // return ecode.InvalidParams, salesLeads //} // //if params.SalesSourcesId == 0 { // return ecode.InvalidParams, salesLeads //} // //if params.MemberId == 0 { // return ecode.InvalidParams, salesLeads //} salesLeads = model.SalesLeads{ Name: params.Name, Number: params.Number, ContactName: params.ContactName, ContactPhone: params.ContactPhone, ContactPosition: params.ContactPosition, SalesStatus: constvar.SalesStatusNew, SalesSourcesId: params.SalesSourcesId, MemberId: params.MemberId, Desc: params.Desc, Address: model.Address{ ProvinceId: params.ProvinceId, CityId: params.CityId, RegionId: params.RegionId, CountryId: params.CountryId, }, } return ecode.OK, salesLeads } // List // // @Tags SalesLeads // @Summary 销售线索列表 // @Produce application/json // @Param object body request.GetSalesLeadsList true "参数" // @Success 200 {object} contextx.Response{data=response.SalesLeadsResponse} // @Router /api/salesLeads/list [post] func (s *SalesLeadsApi) List(c *gin.Context) { var params request.GetSalesLeadsList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } salesLeadss, total, errCode := salesLeadsService.GetSalesLeadsList(params.Page, params.PageSize, params.Keyword) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesLeadsResponse{ List: salesLeadss, Count: int(total), }) } // Push // // @Tags SalesLeads // @Summary 推进销售线索 // @Produce application/json // @Param object body request.PushSalesLeads true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesLeads/push [post] func (s *SalesLeadsApi) Push(c *gin.Context) { var params request.PushSalesLeads ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode := salesLeadsService.PushSalesLeads(params.Id, params.Step, params.Reason) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } docs/docs.go
@@ -6682,6 +6682,36 @@ } } }, "/api/salesLeads/push": { "post": { "produces": [ "application/json" ], "tags": [ "SalesLeads" ], "summary": "推进销售线索", "parameters": [ { "description": "查询参数", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/request.PushSalesLeads" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/contextx.Response" } } } } }, "/api/salesLeads/update": { "put": { "produces": [ @@ -11124,6 +11154,9 @@ "province_id": { "type": "integer" }, "reason": { "type": "string" }, "region": { "$ref": "#/definitions/model.Region" }, @@ -13539,6 +13572,7 @@ "type": "integer" }, "search_map": { "description": "搜索条件: map[string]interface{}{\"name\": \"xxx\"}; \"not_contact\": 超过15天未联系; \"public_sea\": 公海客户", "type": "object", "additionalProperties": true } @@ -13907,6 +13941,25 @@ } } }, "request.PushSalesLeads": { "type": "object", "properties": { "id": { "type": "integer" }, "reason": { "type": "string" }, "step": { "description": "商机状态: 1: 跟进中; -1:失败", "allOf": [ { "$ref": "#/definitions/constvar.SalesStatus" } ] } } }, "request.Register": { "type": "object", "properties": { docs/swagger.json
@@ -6670,6 +6670,36 @@ } } }, "/api/salesLeads/push": { "post": { "produces": [ "application/json" ], "tags": [ "SalesLeads" ], "summary": "推进销售线索", "parameters": [ { "description": "查询参数", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/request.PushSalesLeads" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/contextx.Response" } } } } }, "/api/salesLeads/update": { "put": { "produces": [ @@ -11112,6 +11142,9 @@ "province_id": { "type": "integer" }, "reason": { "type": "string" }, "region": { "$ref": "#/definitions/model.Region" }, @@ -13527,6 +13560,7 @@ "type": "integer" }, "search_map": { "description": "搜索条件: map[string]interface{}{\"name\": \"xxx\"}; \"not_contact\": 超过15天未联系; \"public_sea\": 公海客户", "type": "object", "additionalProperties": true } @@ -13895,6 +13929,25 @@ } } }, "request.PushSalesLeads": { "type": "object", "properties": { "id": { "type": "integer" }, "reason": { "type": "string" }, "step": { "description": "商机状态: 1: 跟进中; -1:失败", "allOf": [ { "$ref": "#/definitions/constvar.SalesStatus" } ] } } }, "request.Register": { "type": "object", "properties": { docs/swagger.yaml
@@ -1189,6 +1189,8 @@ $ref: '#/definitions/model.Province' province_id: type: integer reason: type: string region: $ref: '#/definitions/model.Region' region_id: @@ -2826,6 +2828,8 @@ type: integer search_map: additionalProperties: true description: '搜索条件: map[string]interface{}{"name": "xxx"}; "not_contact": 超过15天未联系; "public_sea": 公海客户' type: object type: object request.GetContactList: @@ -3076,6 +3080,17 @@ type: string subOrderId: type: integer type: object request.PushSalesLeads: properties: id: type: integer reason: type: string step: allOf: - $ref: '#/definitions/constvar.SalesStatus' description: '商机状态: 1: 跟进中; -1:失败' type: object request.Register: properties: @@ -9369,6 +9384,25 @@ summary: 销售线索列表 tags: - SalesLeads /api/salesLeads/push: post: parameters: - description: 查询参数 in: body name: object required: true schema: $ref: '#/definitions/request.PushSalesLeads' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/contextx.Response' summary: 推进销售线索 tags: - SalesLeads /api/salesLeads/update: put: parameters: model/request/client.go
@@ -1,38 +1,38 @@ package request type AddClient struct { Client } type Client struct { Name string `json:"name"` // 公司名称 Number string `json:"number"` // 公司编号 ClientStatusId int `json:"client_status_id"` // 客户状态ID ClientTypeId int `json:"client_type_id"` // 客户类型ID ClientOriginId int `json:"client_origin_id"` // 客户来源ID ClientLevelId int `json:"client_level_id"` // 客户等级ID MemberId int `json:"member_id"` // 销售负责人ID ServiceMemberId int `json:"service_member_id"` // 服务负责人ID DetailAddress string `json:"detail_address"` // 详细地址 Remark string `json:"remark"` // 备注 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 } type UpdateClient struct { Id int `json:"id"` Client } type GetClientList struct { PageInfo SearchMap map[string]interface{} `json:"search_map"` } type DeleteClient struct { Ids []int `json:"ids"` } package request type AddClient struct { Client } type Client struct { Name string `json:"name"` // 公司名称 Number string `json:"number"` // 公司编号 ClientStatusId int `json:"client_status_id"` // 客户状态ID ClientTypeId int `json:"client_type_id"` // 客户类型ID ClientOriginId int `json:"client_origin_id"` // 客户来源ID ClientLevelId int `json:"client_level_id"` // 客户等级ID MemberId int `json:"member_id"` // 销售负责人ID ServiceMemberId int `json:"service_member_id"` // 服务负责人ID DetailAddress string `json:"detail_address"` // 详细地址 Remark string `json:"remark"` // 备注 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 } type UpdateClient struct { Id int `json:"id"` Client } type GetClientList struct { PageInfo SearchMap map[string]interface{} `json:"search_map"` // 搜索条件: map[string]interface{}{"name": "xxx"}; "not_contact": 超过15天未联系; "public_sea": 公海客户 } type DeleteClient struct { Ids []int `json:"ids"` } model/request/salesLeads.go
@@ -1,31 +1,40 @@ package request type AddSalesLeads struct { SalesLeads } type SalesLeads struct { Name string `json:"name"` // 公司名称 Number string `json:"number"` // 销售线索编号 ContactName string `json:"contact_name"` // 联系人姓名 ContactPhone string `json:"contact_phone"` // 联系人电话 ContactPosition string `json:"contact_position"` // 联系人职位 SalesSourcesId int `json:"sales_sources_id"` // 商机来源ID MemberId int `json:"member_id"` // 销售负责人ID Desc string `json:"desc"` // 备注 Address } type UpdateSalesLeads struct { Id int `json:"id"` SalesLeads } type GetSalesLeadsList struct { PageInfo Keyword string `json:"keyword"` } type DeleteSalesLeads struct { Ids []int `json:"ids"` } package request import "aps_crm/constvar" type AddSalesLeads struct { SalesLeads } type SalesLeads struct { Name string `json:"name"` // 公司名称 Number string `json:"number"` // 销售线索编号 ContactName string `json:"contact_name"` // 联系人姓名 ContactPhone string `json:"contact_phone"` // 联系人电话 ContactPosition string `json:"contact_position"` // 联系人职位 SalesSourcesId int `json:"sales_sources_id"` // 商机来源ID MemberId int `json:"member_id"` // 销售负责人ID Desc string `json:"desc"` // 备注 Address } type UpdateSalesLeads struct { Id int `json:"id"` SalesLeads } type GetSalesLeadsList struct { PageInfo Keyword string `json:"keyword"` } type DeleteSalesLeads struct { Ids []int `json:"ids"` } // swagger:model PushSalesLeads type PushSalesLeads struct { Id int `json:"id"` Step constvar.SalesStatus `json:"step"` // 商机状态: 1: 跟进中; -1:失败 Reason string `json:"reason"` } model/salesLeads.go
@@ -1,173 +1,174 @@ package model import ( "aps_crm/constvar" "aps_crm/pkg/mysqlx" "gorm.io/gorm" ) type ( SalesLeads struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` Name string `json:"name" gorm:"column:name;unique;type:varchar(255);comment:公司名称"` Number string `json:"number" gorm:"column:number;type:varchar(255);comment:销售线索编号"` ContactName string `json:"contact_name" gorm:"column:contact_name;type:varchar(255);comment:联系人姓名"` ContactPhone string `json:"contact_phone" gorm:"column:contact_phone;type:varchar(255);comment:联系人电话"` ContactPosition string `json:"contact_position" gorm:"column:contact_position;type:varchar(255);comment:联系人职位"` SalesSourcesId int `json:"sales_sources_id" gorm:"column:sales_sources_id;type:int(11);comment:商机来源ID"` MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:销售负责人ID"` SalesStatus constvar.SalesStatus `json:"sales_status" gorm:"column:sales_status;type:int(11);comment:销售状态"` Desc string `json:"desc" gorm:"column:desc;type:varchar(255);comment:备注"` FollowRecord []FollowRecord `gorm:"foreignKey:SalesLeadsId"` Address gorm.Model `json:"-"` } SalesLeadsSearch struct { SalesLeads Orm *gorm.DB Keyword string OrderBy string PageNum int PageSize int } ) func (SalesLeads) TableName() string { return "sales_leads" } func NewSalesLeadsSearch(db *gorm.DB) *SalesLeadsSearch { if db == nil { db = mysqlx.GetDB() } return &SalesLeadsSearch{ Orm: db, } } func (slf *SalesLeadsSearch) build() *gorm.DB { var db = slf.Orm.Model(&SalesLeads{}) if slf.Keyword != "" { db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") } if slf.Keyword != "" { db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") } if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } if slf.Name != "" { db = db.Where("name = ?", slf.Name) } if slf.Number != "" { db = db.Where("number = ?", slf.Number) } if slf.ContactName != "" { db = db.Where("contact_name = ?", slf.ContactName) } if slf.ContactPhone != "" { db = db.Where("contact_phone = ?", slf.ContactPhone) } if slf.ContactPosition != "" { db = db.Where("contact_position = ?", slf.ContactPosition) } if slf.SalesSourcesId != 0 { db = db.Where("sales_sources_id = ?", slf.SalesSourcesId) } if slf.MemberId != 0 { db = db.Where("member_id = ?", slf.MemberId) } return db } func (slf *SalesLeadsSearch) Create(record *SalesLeads) error { var db = slf.build() return db.Create(record).Error } func (slf *SalesLeadsSearch) Update(record *SalesLeads) error { var db = slf.build() return db.Updates(record).Error } func (slf *SalesLeadsSearch) Delete() error { var db = slf.build() return db.Delete(&SalesLeads{}).Error } func (slf *SalesLeadsSearch) Find() (result []SalesLeads, err error) { var db = slf.build() err = db.Find(&result).Error return } func (slf *SalesLeadsSearch) FindOne() (result SalesLeads, err error) { var db = slf.build() err = db.First(&result).Error return } func (slf *SalesLeadsSearch) FindAll() ([]*SalesLeads, int64, error) { var db = slf.build() var records = make([]*SalesLeads, 0) var total int64 if err := db.Count(&total).Error; err != nil { return records, total, err } if slf.PageNum > 0 && slf.PageSize > 0 { db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) } err := db.Preload("FollowRecord").Find(&records).Error return records, total, err } func (slf *SalesLeadsSearch) SetId(id int) *SalesLeadsSearch { slf.Id = id return slf } func (slf *SalesLeadsSearch) SetName(name string) *SalesLeadsSearch { slf.Name = name return slf } func (slf *SalesLeadsSearch) First() (result SalesLeads, err error) { var db = slf.build() err = db.First(&result).Error return } func (slf *SalesLeadsSearch) SetKeyword(keyword string) *SalesLeadsSearch { slf.Keyword = keyword return slf } func (slf *SalesLeadsSearch) SetPage(page, size int) *SalesLeadsSearch { slf.PageNum, slf.PageSize = page, size return slf } func (slf *SalesLeadsSearch) SetOrder(order string) *SalesLeadsSearch { slf.OrderBy = order return slf } func (slf *SalesLeadsSearch) UpdateMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error } func (slf *SalesLeadsSearch) SetIds(ids []int) *SalesLeadsSearch { slf.Orm = slf.Orm.Where("id in (?)", ids) return slf } package model import ( "aps_crm/constvar" "aps_crm/pkg/mysqlx" "gorm.io/gorm" ) type ( SalesLeads struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` Name string `json:"name" gorm:"column:name;unique;type:varchar(255);comment:公司名称"` Number string `json:"number" gorm:"column:number;type:varchar(255);comment:销售线索编号"` ContactName string `json:"contact_name" gorm:"column:contact_name;type:varchar(255);comment:联系人姓名"` ContactPhone string `json:"contact_phone" gorm:"column:contact_phone;type:varchar(255);comment:联系人电话"` ContactPosition string `json:"contact_position" gorm:"column:contact_position;type:varchar(255);comment:联系人职位"` SalesSourcesId int `json:"sales_sources_id" gorm:"column:sales_sources_id;type:int(11);comment:商机来源ID"` MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:销售负责人ID"` SalesStatus constvar.SalesStatus `json:"sales_status" gorm:"column:sales_status;type:int(11);comment:销售状态"` Desc string `json:"desc" gorm:"column:desc;type:varchar(255);comment:备注"` Reason string `json:"reason" gorm:"column:reason;type:text;comment:失败原因"` FollowRecord []FollowRecord `gorm:"foreignKey:SalesLeadsId"` Address gorm.Model `json:"-"` } SalesLeadsSearch struct { SalesLeads Orm *gorm.DB Keyword string OrderBy string PageNum int PageSize int } ) func (SalesLeads) TableName() string { return "sales_leads" } func NewSalesLeadsSearch(db *gorm.DB) *SalesLeadsSearch { if db == nil { db = mysqlx.GetDB() } return &SalesLeadsSearch{ Orm: db, } } func (slf *SalesLeadsSearch) build() *gorm.DB { var db = slf.Orm.Model(&SalesLeads{}) if slf.Keyword != "" { db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") } if slf.Keyword != "" { db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") } if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } if slf.Name != "" { db = db.Where("name = ?", slf.Name) } if slf.Number != "" { db = db.Where("number = ?", slf.Number) } if slf.ContactName != "" { db = db.Where("contact_name = ?", slf.ContactName) } if slf.ContactPhone != "" { db = db.Where("contact_phone = ?", slf.ContactPhone) } if slf.ContactPosition != "" { db = db.Where("contact_position = ?", slf.ContactPosition) } if slf.SalesSourcesId != 0 { db = db.Where("sales_sources_id = ?", slf.SalesSourcesId) } if slf.MemberId != 0 { db = db.Where("member_id = ?", slf.MemberId) } return db } func (slf *SalesLeadsSearch) Create(record *SalesLeads) error { var db = slf.build() return db.Create(record).Error } func (slf *SalesLeadsSearch) Update(record *SalesLeads) error { var db = slf.build() return db.Updates(record).Error } func (slf *SalesLeadsSearch) Delete() error { var db = slf.build() return db.Delete(&SalesLeads{}).Error } func (slf *SalesLeadsSearch) Find() (result []SalesLeads, err error) { var db = slf.build() err = db.Find(&result).Error return } func (slf *SalesLeadsSearch) FindOne() (result SalesLeads, err error) { var db = slf.build() err = db.First(&result).Error return } func (slf *SalesLeadsSearch) FindAll() ([]*SalesLeads, int64, error) { var db = slf.build() var records = make([]*SalesLeads, 0) var total int64 if err := db.Count(&total).Error; err != nil { return records, total, err } if slf.PageNum > 0 && slf.PageSize > 0 { db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) } err := db.Preload("FollowRecord").Find(&records).Error return records, total, err } func (slf *SalesLeadsSearch) SetId(id int) *SalesLeadsSearch { slf.Id = id return slf } func (slf *SalesLeadsSearch) SetName(name string) *SalesLeadsSearch { slf.Name = name return slf } func (slf *SalesLeadsSearch) First() (result SalesLeads, err error) { var db = slf.build() err = db.First(&result).Error return } func (slf *SalesLeadsSearch) SetKeyword(keyword string) *SalesLeadsSearch { slf.Keyword = keyword return slf } func (slf *SalesLeadsSearch) SetPage(page, size int) *SalesLeadsSearch { slf.PageNum, slf.PageSize = page, size return slf } func (slf *SalesLeadsSearch) SetOrder(order string) *SalesLeadsSearch { slf.OrderBy = order return slf } func (slf *SalesLeadsSearch) UpdateMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error } func (slf *SalesLeadsSearch) SetIds(ids []int) *SalesLeadsSearch { slf.Orm = slf.Orm.Where("id in (?)", ids) return slf } pkg/ecode/code.go
@@ -1,393 +1,393 @@ package ecode const ( OK = 200 UnknownErr = 2001 // 未知错误 DBErr = 2002 // db错误 RedisErr = 2003 // redis错误 ParamsErr = 2004 // 请求参数错误 UserNotExist = 2005 // 用户不存在 PasswordErr = 2006 // 密码错误 UserForbidden = 2007 // 用户被禁用 CaptchaGenerateFailed = 2008 // 验证码生成失败 CaptchaErr = 2009 // 验证码错误 CreateTokenErr = 2010 // 创建token失败 JWTInBlackList = 2011 // JWT在白名单 JWTDisabled = 2012 // JWT失效 JWTEmpty = 2013 // JWT为空 JWTExpire = 2014 // JWT过期 JWTParseErr = 2015 // JWT解析失败 UserNameExistErr = 2016 // 用户名已存在 ChildrenExistErr = 2017 // 存在子菜单 MenuNotExist = 2018 // 菜单不存在 MenuNameExistErr = 2019 // 菜单名已存在 DeviceIPExistErr = 2020 // 该设备IP已存在 DeviceInstallRancherErr = 2021 // 安装rancher失败 ClusterNameExistErr = 2022 // 該集群已經存在 CreateDatabaseErr = 2023 // 创建数据库错误 CreateDatabaseUserErr = 2024 // 创建数据库用户错误 CreateClusterErr = 2025 // 创建集群失败 GetClusterErr = 2026 // 获取集群失败 GetClusterKubeConfigErr = 2027 // 获取kube config失败 ClusterInstallDockerErr = 2028 // 安装docker失败 ClusterInstallKubectlErr = 2029 // 安装kubectl失败 ClusterDeployKubernetesRolesErr = 2030 // 部署kubernetes角色失败 ClusterGetNodeCommandErr = 2031 // 获取node command失败 UserHasCluster = 2032 // 删除用户失败,该用户下存在集群 NoPowerErr = 2033 // 没有权限 UploadImageErr = 2034 // 上传图像失败 InvalidParams = 100001 // 请求参数错误 CountryExist = 200001 // 国家已存在 CountryNotExist = 200002 // 国家不存在 CountryGetListErr = 200003 // 获取国家列表失败 ProvinceExist = 300001 // 省份已存在 ProvinceNotExist = 300002 // 省份不存在 ProvinceGetListErr = 300003 // 获取省份列表失败 ProvinceSetErr = 300004 // 设置省份失败 CityExist = 400001 // 城市已存在 CityNotExist = 400002 // 城市不存在 CityListErr = 400003 // 获取城市列表失败 CitySetErr = 400004 // 设置城市失败 CityDeleteErr = 400005 // 删除城市失败 RegionExist = 500001 // 区县已存在 RegionNotExist = 500002 // 区县不存在 RegionListErr = 500003 // 获取区县列表失败 RegionSetErr = 500004 // 设置区县失败 ContactExist = 600001 // 联系人已存在 ContactNotExist = 600002 // 联系人不存在 ContactListErr = 600003 // 获取联系人列表失败 ContactDeleteErr = 600004 // 删除联系人失败 ContactUpdateErr = 600005 // 更新联系人失败 ContactAssignErr = 600006 // 分配联系人失败 ClientExist = 700001 // 客户已存在 ClientNotExist = 700002 // 客户不存在 ClientListErr = 700003 // 获取客户列表失败 ClientDeleteErr = 700004 // 删除客户失败 ClientUpdateErr = 700005 // 更新客户失败 ClientStatusExist = 800001 // 客户状态已存在 ClientStatusNotExist = 800002 // 客户状态不存在 ClientStatusListErr = 800003 // 获取客户状态列表失败 ClientStatusSetErr = 800004 // 设置客户状态失败 ClientTypeExist = 900001 // 客户类型已存在 ClientTypeNotExist = 900002 // 客户类型不存在 ClientTypeListErr = 900003 // 获取客户类型列表失败 ClientTypeSetErr = 900004 // 设置客户类型失败 ClientOriginExist = 1000001 // 客户来源已存在 ClientOriginNotExist = 1000002 // 客户来源不存在 ClientOriginListErr = 1000003 // 获取客户来源列表失败 ClientOriginSetErr = 1000004 // 设置客户来源失败 ClientLevelExist = 1100001 // 客户级别已存在 ClientLevelNotExist = 1100002 // 客户级别不存在 ClientLevelListErr = 1100003 // 获取客户级别列表失败 ClientLevelSetErr = 1100004 // 设置客户级别失败 ClientLevelUpdateErr = 1100005 // 更新客户级别失败 IndustryExist = 1200001 // 行业已存在 IndustryNotExist = 1200002 // 行业不存在 IndustryListErr = 1200003 // 获取行业列表失败 IndustrySetErr = 1200004 // 设置行业失败 IndustryUpdateErr = 1200005 // 更新行业失败 EnterpriseNatureExist = 1300001 // 企业性质已存在 EnterpriseNatureNotExist = 1300002 // 企业性质不存在 EnterpriseNatureListErr = 1300003 // 获取企业性质列表失败 EnterpriseNatureSetErr = 1300004 // 设置企业性质失败 EnterpriseNatureUpdateErr = 1300005 // 更新企业性质失败 RegisteredCapitalExist = 1400001 // 注册资本已存在 RegisteredCapitalNotExist = 1400002 // 注册资本不存在 RegisteredCapitalListErr = 1400003 // 获取注册资本列表失败 RegisteredCapitalSetErr = 1400004 // 设置注册资本失败 RegisteredCapitalUpdateErr = 1400005 // 更新注册资本失败 EnterpriseScaleExist = 1500001 // 企业规模已存在 EnterpriseScaleNotExist = 1500002 // 企业规模不存在 EnterpriseScaleListErr = 1500003 // 获取企业规模列表失败 EnterpriseScaleSetErr = 1500004 // 设置企业规模失败 EnterpriseScaleUpdateErr = 1500005 // 更新企业规模失败 SalesLeadsExist = 1600001 // 销售线索已存在 SalesLeadsNotExist = 1600002 // 销售线索不存在 SalesLeadsListErr = 1600003 // 获取销售线索列表失败 SalesLeadsSetErr = 1600004 // 设置销售线索失败 SalesLeadsUpdateErr = 1600005 // 更新销售线索失败 SalesLeadsDeleteErr = 1600006 // 删除销售线索失败 SalesSourceExist = 1700001 // 销售线索来源已存在 SalesSourceNotExist = 1700002 // 销售线索来源不存在 SalesSourceListErr = 1700003 // 获取销售线索来源列表失败 SalesSourceSetErr = 1700004 // 设置销售线索来源失败 SalesSourceUpdateErr = 1700005 // 更新销售线索来源失败 FollowRecordExist = 1800001 // 跟进记录已存在 FollowRecordNotExist = 1800002 // 跟进记录不存在 FollowRecordListErr = 1800003 // 获取跟进记录列表失败 FollowRecordSetErr = 1800004 // 设置跟进记录失败 FollowRecordUpdateErr = 1800005 // 更新跟进记录失败 FollowRecordDeleteErr = 1800006 // 删除跟进记录失败 FollowRecordAssignErr = 1800007 // 分配跟进记录失败 SaleChanceExist = 1900001 // 销售机会已存在 SaleChanceNotExist = 1900002 // 销售机会不存在 SaleChanceListErr = 1900003 // 获取销售机会列表失败 SaleChanceSetErr = 1900004 // 设置销售机会失败 SaleChanceUpdateErr = 1900005 // 更新销售机会失败 SaleChanceDeleteErr = 1900006 // 删除销售机会失败 SaleStageExist = 2000001 // 销售阶段已存在 SaleStageNotExist = 2000002 // 销售阶段不存在 SaleStageListErr = 2000003 // 获取销售阶段列表失败 SaleStageSetErr = 2000004 // 设置销售阶段失败 SaleTypeExist = 2100001 // 销售类型已存在 SaleTypeNotExist = 2100002 // 销售类型不存在 SaleTypeListErr = 2100003 // 获取销售类型列表失败 SaleTypeSetErr = 2100004 // 设置销售类型失败 SaleTypeUpdateErr = 2100005 // 更新销售类型失败 SaleTypeDeleteErr = 2100006 // 删除销售类型失败 RegularCustomersExist = 2200001 // 固定客户已存在 RegularCustomersNotExist = 2200002 // 固定客户不存在 RegularCustomersListErr = 2200003 // 获取固定客户列表失败 RegularCustomersSetErr = 2200004 // 设置固定客户失败 RegularCustomersUpdateErr = 2200005 // 更新固定客户失败 RegularCustomersDeleteErr = 2200006 // 删除固定客户失败 PossibilityExist = 2300001 // 销售机会可能性已存在 PossibilityNotExist = 2300002 // 销售机会可能性不存在 PossibilityListErr = 2300003 // 获取销售机会可能性列表失败 PossibilitySetErr = 2300004 // 设置销售机会可能性失败 PossibilityUpdateErr = 2300005 // 更新销售机会可能性失败 PossibilityDeleteErr = 2300006 // 删除销售机会可能性失败 StatusExist = 2400001 // 销售机会状态已存在 StatusNotExist = 2400002 // 销售机会状态不存在 StatusListErr = 2400003 // 获取销售机会状态列表失败 StatusSetErr = 2400004 // 设置销售机会状态失败 StatusUpdateErr = 2400005 // 更新销售机会状态失败 StatusDeleteErr = 2400006 // 删除销售机会状态失败 QuotationExist = 2500001 // 报价单已存在 QuotationNotExist = 2500002 // 报价单不存在 QuotationListErr = 2500003 // 获取报价单列表失败 QuotationSetErr = 2500004 // 设置报价单失败 QuotationUpdateErr = 2500005 // 更新报价单失败 QuotationDeleteErr = 2500006 // 删除报价单失败 MasterOrderExist = 2600001 // 主订单已存在 MasterOrderNotExist = 2600002 // 主订单不存在 MasterOrderListErr = 2600003 // 获取主订单列表失败 MasterOrderSetErr = 2600004 // 设置主订单失败 MasterOrderUpdateErr = 2600005 // 更新主订单失败 MasterOrderDeleteErr = 2600006 // 删除主订单失败 SubOrderExist = 2700001 // 子订单已存在 SubOrderNotExist = 2700002 // 子订单不存在 SubOrderListErr = 2700003 // 获取子订单列表失败 SubOrderSetErr = 2700004 // 设置子订单失败 SubOrderUpdateErr = 2700005 // 更新子订单失败 SubOrderDeleteErr = 2700006 // 删除子订单失败 SalesDetailsExist = 2800001 // 销售明细已存在 SalesDetailsNotExist = 2800002 // 销售明细不存在 SalesDetailsListErr = 2800003 // 获取销售明细列表失败 SalesDetailsSetErr = 2800004 // 设置销售明细失败 SalesDetailsUpdateErr = 2800005 // 更新销售明细失败 SalesDetailsDeleteErr = 2800006 // 删除销售明细失败 SalesReturnExist = 2900001 // 销售退货单已存在 SalesReturnNotExist = 2900002 // 销售退货单不存在 SalesReturnListErr = 2900003 // 获取销售退货单列表失败 SalesReturnSetErr = 2900004 // 设置销售退货单失败 SalesReturnUpdateErr = 2900005 // 更新销售退货单失败 SalesReturnDeleteErr = 2900006 // 删除销售退货单失败 SalesRefundExist = 3000001 // 销售退款单已存在 SalesRefundNotExist = 3000002 // 销售退款单不存在 SalesRefundListErr = 3000003 // 获取销售退款单列表失败 SalesRefundSetErr = 3000004 // 设置销售退款单失败 SalesRefundUpdateErr = 3000005 // 更新销售退款单失败 SalesRefundDeleteErr = 3000006 // 删除销售退款单失败 ContractExist = 3100001 // 合同已存在 ContractNotExist = 3100002 // 合同不存在 ContractListErr = 3100003 // 获取合同列表失败 ContractSetErr = 3100004 // 设置合同失败 ContractUpdateErr = 3100005 // 更新合同失败 ContractDeleteErr = 3100006 // 删除合同失败 PlanExist = 3200001 // 计划已存在 PlanNotExist = 3200002 // 计划不存在 PlanListErr = 3200003 // 获取计划列表失败 PlanSetErr = 3200004 // 设置计划失败 PlanUpdateErr = 3200005 // 更新计划失败 PlanDeleteErr = 3200006 // 删除计划失败 SContractExist = 3300001 // 服务合同已存在 SContractNotExist = 3300002 // 服务合同不存在 SContractListErr = 3300003 // 获取服务合同列表失败 SContractSetErr = 3300004 // 设置服务合同失败 SContractUpdateErr = 3300005 // 更新服务合同失败 SContractDeleteErr = 3300006 // 删除服务合同失败 OrderManageExist = 3400001 // 订单管理已存在 OrderManageNotExist = 3400002 // 订单管理不存在 OrderManageListErr = 3400003 // 获取订单管理列表失败 OrderManageSetErr = 3400004 // 设置订单管理失败 OrderManageUpdateErr = 3400005 // 更新订单管理失败 OrderManageDeleteErr = 3400006 // 删除订单管理失败 ServiceFollowupExist = 3500001 // 服务跟进已存在 ServiceFollowupNotExist = 3500002 // 服务跟进不存在 ServiceFollowupListErr = 3500003 // 获取服务跟进列表失败 ServiceFollowupSetErr = 3500004 // 设置服务跟进失败 ServiceFollowupUpdateErr = 3500005 // 更新服务跟进失败 ServiceFollowupDeleteErr = 3500006 // 删除服务跟进失败 CustomerServiceSheetExist = 3600001 // 客服单已存在 CustomerServiceSheetNotExist = 3600002 // 客服单不存在 CustomerServiceSheetListErr = 3600003 // 获取客服单列表失败 CustomerServiceSheetSetErr = 3600004 // 设置客服单失败 CustomerServiceSheetUpdateErr = 3600005 // 更新客服单失败 CustomerServiceSheetDeleteErr = 3600006 // 删除客服单失败 ServiceFeeManageExist = 3700001 // 服务费管理已存在 ServiceFeeManageNotExist = 3700002 // 服务费管理不存在 ServiceFeeManageListErr = 3700003 // 获取服务费管理列表失败 ServiceFeeManageSetErr = 3700004 // 设置服务费管理失败 ServiceFeeManageUpdateErr = 3700005 // 更新服务费管理失败 ServiceFeeManageDeleteErr = 3700006 // 删除服务费管理失败 RoleExist = 3800001 // 角色已存在 RoleNotExist = 3800002 // 角色不存在 RoleListErr = 3800003 // 获取角色列表失败 RoleSetErr = 3800004 // 设置角色失败 RoleUpdateErr = 3800005 // 更新角色失败 RoleDeleteErr = 3800006 // 删除角色失败 RoleDeleteErr1 = 3800007 // 该角色下存在用户,无法删除 MenuListErr = 3900001 // 获取菜单列表失败 SetMenuAuthorityErr = 3900002 // 设置菜单权限失败 DepartmentExist = 4000001 // 部门已存在 DepartmentNotExist = 4000002 // 部门不存在 DepartmentListErr = 4000003 // 获取部门列表失败 DepartmentSetErr = 4000004 // 设置部门失败 DepartmentUpdateErr = 4000005 // 更新部门失败 DepartmentDeleteErr = 4000006 // 删除部门失败 DepartmentDeleteErr1 = 4000007 // 该部门下存在用户,无法删除 VettingExist = 4100001 // 审批已存在 VettingNotExist = 4100002 // 审批不存在 VettingListErr = 4100003 // 获取审批列表失败 VettingSetErr = 4100004 // 设置审批失败 VettingNotBelongToUser = 4100005 // 审批不属于当前用户 SatisfactionExist = 4200001 // 满意度已存在 SatisfactionNotExist = 4200002 // 满意度不存在 SatisfactionListErr = 4200003 // 获取满意度列表失败 SatisfactionSetErr = 4200004 // 设置满意度失败 SatisfactionUpdateErr = 4200005 // 更新满意度失败 TimelyRateExist = 4300001 // 及时率已存在 TimelyRateNotExist = 4300002 // 及时率不存在 TimelyRateListErr = 4300003 // 获取及时率列表失败 TimelyRateSetErr = 4300004 // 设置及时率失败 TimelyRateUpdateErr = 4300005 // 更新及时率失败 SolveRateExist = 4400001 // 解决率已存在 SolveRateNotExist = 4400002 // 解决率不存在 SolveRateListErr = 4400003 // 获取解决率列表失败 SolveRateSetErr = 4400004 // 设置解决率失败 SolveRateUpdateErr = 4400005 // 更新解决率失败 IsVisitExist = 4500001 // 服务人员是否来过已存在 IsVisitNotExist = 4500002 // 服务人员是否来过不存在 IsVisitListErr = 4500003 // 获取服务人员是否来过列表失败 IsVisitSetErr = 4500004 // 设置服务人员是否来过失败 IsVisitUpdateErr = 4500005 // 更新服务人员是否来过失败 ReportSourceExist = 4600001 // 报表来源已存在 ReportSourceNotExist = 4600002 // 报表来源不存在 ReportSourceListErr = 4600003 // 获取报表来源列表失败 ReportSourceSetErr = 4600004 // 设置报表来源失败 ReportSourceUpdateErr = 4600005 // 更新报表来源失败 OrderTypeExist = 4700001 // 工单类型已存在 OrderTypeNotExist = 4700002 // 工单类型不存在 OrderTypeListErr = 4700003 // 获取工单类型列表失败 OrderTypeSetErr = 4700004 // 设置工单类型失败 OrderTypeUpdateErr = 4700005 // 更新工单类型失败 ServiceContractStatusExist = 4800001 // 服务合同状态已存在 ServiceContractStatusNotExist = 4400002 // 服务合同状态不存在 ServiceContractStatusListErr = 4800003 // 获取服务合同状态列表失败 ServiceContractStatusSetErr = 4800004 // 设置服务合同状态失败 ServiceContractStatusUpdateErr = 4800005 // 更新服务合同状态失败 ServiceContractTypeExist = 4900001 // 服务合同类型已存在 ServiceContractTypeNotExist = 4900002 // 服务合同类型不存在 ServiceContractTypeListErr = 4900003 // 获取服务合同类型列表失败 ServiceContractTypeSetErr = 4900004 // 设置服务合同类型失败 ServiceContractTypeUpdateErr = 4900005 // 更新服务合同类型失败 RefundMethodExist = 5000001 // 退款方式已存在 RefundMethodNotExist = 5000002 // 退款方式不存在 RefundMethodListErr = 5000003 // 获取退款方式列表失败 RefundMethodSetErr = 5000004 // 设置退款方式失败 RefundMethodUpdateErr = 5000005 // 更新退款方式失败 IsInvoiceExist = 5100001 // 是否开票已存在 IsInvoiceNotExist = 5100002 // 是否开票不存在 IsInvoiceListErr = 5100003 // 获取是否开票列表失败 IsInvoiceSetErr = 5100004 // 设置是否开票失败 IsInvoiceUpdateErr = 5100005 // 更新是否开票失败 AccountIdExist = 5200001 // 账户已存在 AccountIdNotExist = 5200002 // 账户不存在 AccountIdListErr = 5200003 // 获取账户列表失败 AccountIdSetErr = 5200004 // 设置账户失败 AccountIdUpdateErr = 5200005 // 更新账户失败 SalesReturnStatusExist = 5300001 // 退货单状态已存在 SalesReturnStatusNotExist = 5300002 // 退货单状态不存在 SalesReturnStatusListErr = 5300003 // 获取退货单状态列表失败 SalesReturnStatusSetErr = 5300004 // 设置退货单状态失败 SalesReturnStatusUpdateErr = 5300005 // 更新退货单状态失败 RepositoryExist = 5400001 // 退货仓库已存在 RepositoryNotExist = 5400002 // 退货仓库不存在 RepositoryListErr = 5400003 // 获取退货仓库列表失败 RepositorySetErr = 5400004 // 设置退货仓库失败 RepositoryUpdateErr = 5400005 // 更新退货仓库失败 QuotationStatusExist = 5500001 // 报价单状态已存在 QuotationStatusNotExist = 5500002 // 报价单状态不存在 QuotationStatusListErr = 5500003 // 获取报价单状态列表失败 QuotationStatusSetErr = 5500004 // 设置报价单状态失败 QuotationStatusUpdateErr = 5500005 // 更新报价单状态失败 CurrencyExist = 5600001 // 币种已存在 CurrencyNotExist = 5600002 // 币种不存在 CurrencyListErr = 5600003 // 获取币种列表失败 CurrencySetErr = 5600004 // 设置币种失败 CurrencyUpdateErr = 5600005 // 更新币种失败 AssignErr = 5700001 // 分配失败 AssignWrongMemberId = 5700002 // 分配失败,分配人为空 AssignWrongId = 5700003 // 分配失败,分配对象为空 AssignWrongModelType = 5700004 // 分配失败,分配对象类型为空 ) package ecode const ( OK = 200 UnknownErr = 2001 // 未知错误 DBErr = 2002 // db错误 RedisErr = 2003 // redis错误 ParamsErr = 2004 // 请求参数错误 UserNotExist = 2005 // 用户不存在 PasswordErr = 2006 // 密码错误 UserForbidden = 2007 // 用户被禁用 CaptchaGenerateFailed = 2008 // 验证码生成失败 CaptchaErr = 2009 // 验证码错误 CreateTokenErr = 2010 // 创建token失败 JWTInBlackList = 2011 // JWT在白名单 JWTDisabled = 2012 // JWT失效 JWTEmpty = 2013 // JWT为空 JWTExpire = 2014 // JWT过期 JWTParseErr = 2015 // JWT解析失败 UserNameExistErr = 2016 // 用户名已存在 ChildrenExistErr = 2017 // 存在子菜单 MenuNotExist = 2018 // 菜单不存在 MenuNameExistErr = 2019 // 菜单名已存在 DeviceIPExistErr = 2020 // 该设备IP已存在 DeviceInstallRancherErr = 2021 // 安装rancher失败 ClusterNameExistErr = 2022 // 該集群已經存在 CreateDatabaseErr = 2023 // 创建数据库错误 CreateDatabaseUserErr = 2024 // 创建数据库用户错误 CreateClusterErr = 2025 // 创建集群失败 GetClusterErr = 2026 // 获取集群失败 GetClusterKubeConfigErr = 2027 // 获取kube config失败 ClusterInstallDockerErr = 2028 // 安装docker失败 ClusterInstallKubectlErr = 2029 // 安装kubectl失败 ClusterDeployKubernetesRolesErr = 2030 // 部署kubernetes角色失败 ClusterGetNodeCommandErr = 2031 // 获取node command失败 UserHasCluster = 2032 // 删除用户失败,该用户下存在集群 NoPowerErr = 2033 // 没有权限 UploadImageErr = 2034 // 上传图像失败 InvalidParams = 100001 // 请求参数错误 CountryExist = 200001 // 国家已存在 CountryNotExist = 200002 // 国家不存在 CountryGetListErr = 200003 // 获取国家列表失败 ProvinceExist = 300001 // 省份已存在 ProvinceNotExist = 300002 // 省份不存在 ProvinceGetListErr = 300003 // 获取省份列表失败 ProvinceSetErr = 300004 // 设置省份失败 CityExist = 400001 // 城市已存在 CityNotExist = 400002 // 城市不存在 CityListErr = 400003 // 获取城市列表失败 CitySetErr = 400004 // 设置城市失败 CityDeleteErr = 400005 // 删除城市失败 RegionExist = 500001 // 区县已存在 RegionNotExist = 500002 // 区县不存在 RegionListErr = 500003 // 获取区县列表失败 RegionSetErr = 500004 // 设置区县失败 ContactExist = 600001 // 联系人已存在 ContactNotExist = 600002 // 联系人不存在 ContactListErr = 600003 // 获取联系人列表失败 ContactDeleteErr = 600004 // 删除联系人失败 ContactUpdateErr = 600005 // 更新联系人失败 ContactAssignErr = 600006 // 分配联系人失败 ClientExist = 700001 // 客户已存在 ClientNotExist = 700002 // 客户不存在 ClientListErr = 700003 // 获取客户列表失败 ClientDeleteErr = 700004 // 删除客户失败 ClientUpdateErr = 700005 // 更新客户失败 ClientStatusExist = 800001 // 客户状态已存在 ClientStatusNotExist = 800002 // 客户状态不存在 ClientStatusListErr = 800003 // 获取客户状态列表失败 ClientStatusSetErr = 800004 // 设置客户状态失败 ClientTypeExist = 900001 // 客户类型已存在 ClientTypeNotExist = 900002 // 客户类型不存在 ClientTypeListErr = 900003 // 获取客户类型列表失败 ClientTypeSetErr = 900004 // 设置客户类型失败 ClientOriginExist = 1000001 // 客户来源已存在 ClientOriginNotExist = 1000002 // 客户来源不存在 ClientOriginListErr = 1000003 // 获取客户来源列表失败 ClientOriginSetErr = 1000004 // 设置客户来源失败 ClientLevelExist = 1100001 // 客户级别已存在 ClientLevelNotExist = 1100002 // 客户级别不存在 ClientLevelListErr = 1100003 // 获取客户级别列表失败 ClientLevelSetErr = 1100004 // 设置客户级别失败 ClientLevelUpdateErr = 1100005 // 更新客户级别失败 IndustryExist = 1200001 // 行业已存在 IndustryNotExist = 1200002 // 行业不存在 IndustryListErr = 1200003 // 获取行业列表失败 IndustrySetErr = 1200004 // 设置行业失败 IndustryUpdateErr = 1200005 // 更新行业失败 EnterpriseNatureExist = 1300001 // 企业性质已存在 EnterpriseNatureNotExist = 1300002 // 企业性质不存在 EnterpriseNatureListErr = 1300003 // 获取企业性质列表失败 EnterpriseNatureSetErr = 1300004 // 设置企业性质失败 EnterpriseNatureUpdateErr = 1300005 // 更新企业性质失败 RegisteredCapitalExist = 1400001 // 注册资本已存在 RegisteredCapitalNotExist = 1400002 // 注册资本不存在 RegisteredCapitalListErr = 1400003 // 获取注册资本列表失败 RegisteredCapitalSetErr = 1400004 // 设置注册资本失败 RegisteredCapitalUpdateErr = 1400005 // 更新注册资本失败 EnterpriseScaleExist = 1500001 // 企业规模已存在 EnterpriseScaleNotExist = 1500002 // 企业规模不存在 EnterpriseScaleListErr = 1500003 // 获取企业规模列表失败 EnterpriseScaleSetErr = 1500004 // 设置企业规模失败 EnterpriseScaleUpdateErr = 1500005 // 更新企业规模失败 SalesLeadsExist = 1600001 // 销售线索已存在 SalesLeadsNotExist = 1600002 // 销售线索不存在 SalesLeadsListErr = 1600003 // 获取销售线索列表失败 SalesLeadsStatusErr = 1600004 // 销售线索状态错误 SalesLeadsUpdateErr = 1600005 // 更新销售线索失败 SalesLeadsDeleteErr = 1600006 // 删除销售线索失败 SalesSourceExist = 1700001 // 销售线索来源已存在 SalesSourceNotExist = 1700002 // 销售线索来源不存在 SalesSourceListErr = 1700003 // 获取销售线索来源列表失败 SalesSourceSetErr = 1700004 // 设置销售线索来源失败 SalesSourceUpdateErr = 1700005 // 更新销售线索来源失败 FollowRecordExist = 1800001 // 跟进记录已存在 FollowRecordNotExist = 1800002 // 跟进记录不存在 FollowRecordListErr = 1800003 // 获取跟进记录列表失败 FollowRecordSetErr = 1800004 // 设置跟进记录失败 FollowRecordUpdateErr = 1800005 // 更新跟进记录失败 FollowRecordDeleteErr = 1800006 // 删除跟进记录失败 FollowRecordAssignErr = 1800007 // 分配跟进记录失败 SaleChanceExist = 1900001 // 销售机会已存在 SaleChanceNotExist = 1900002 // 销售机会不存在 SaleChanceListErr = 1900003 // 获取销售机会列表失败 SaleChanceSetErr = 1900004 // 设置销售机会失败 SaleChanceUpdateErr = 1900005 // 更新销售机会失败 SaleChanceDeleteErr = 1900006 // 删除销售机会失败 SaleStageExist = 2000001 // 销售阶段已存在 SaleStageNotExist = 2000002 // 销售阶段不存在 SaleStageListErr = 2000003 // 获取销售阶段列表失败 SaleStageSetErr = 2000004 // 设置销售阶段失败 SaleTypeExist = 2100001 // 销售类型已存在 SaleTypeNotExist = 2100002 // 销售类型不存在 SaleTypeListErr = 2100003 // 获取销售类型列表失败 SaleTypeSetErr = 2100004 // 设置销售类型失败 SaleTypeUpdateErr = 2100005 // 更新销售类型失败 SaleTypeDeleteErr = 2100006 // 删除销售类型失败 RegularCustomersExist = 2200001 // 固定客户已存在 RegularCustomersNotExist = 2200002 // 固定客户不存在 RegularCustomersListErr = 2200003 // 获取固定客户列表失败 RegularCustomersSetErr = 2200004 // 设置固定客户失败 RegularCustomersUpdateErr = 2200005 // 更新固定客户失败 RegularCustomersDeleteErr = 2200006 // 删除固定客户失败 PossibilityExist = 2300001 // 销售机会可能性已存在 PossibilityNotExist = 2300002 // 销售机会可能性不存在 PossibilityListErr = 2300003 // 获取销售机会可能性列表失败 PossibilitySetErr = 2300004 // 设置销售机会可能性失败 PossibilityUpdateErr = 2300005 // 更新销售机会可能性失败 PossibilityDeleteErr = 2300006 // 删除销售机会可能性失败 StatusExist = 2400001 // 销售机会状态已存在 StatusNotExist = 2400002 // 销售机会状态不存在 StatusListErr = 2400003 // 获取销售机会状态列表失败 StatusSetErr = 2400004 // 设置销售机会状态失败 StatusUpdateErr = 2400005 // 更新销售机会状态失败 StatusDeleteErr = 2400006 // 删除销售机会状态失败 QuotationExist = 2500001 // 报价单已存在 QuotationNotExist = 2500002 // 报价单不存在 QuotationListErr = 2500003 // 获取报价单列表失败 QuotationSetErr = 2500004 // 设置报价单失败 QuotationUpdateErr = 2500005 // 更新报价单失败 QuotationDeleteErr = 2500006 // 删除报价单失败 MasterOrderExist = 2600001 // 主订单已存在 MasterOrderNotExist = 2600002 // 主订单不存在 MasterOrderListErr = 2600003 // 获取主订单列表失败 MasterOrderSetErr = 2600004 // 设置主订单失败 MasterOrderUpdateErr = 2600005 // 更新主订单失败 MasterOrderDeleteErr = 2600006 // 删除主订单失败 SubOrderExist = 2700001 // 子订单已存在 SubOrderNotExist = 2700002 // 子订单不存在 SubOrderListErr = 2700003 // 获取子订单列表失败 SubOrderSetErr = 2700004 // 设置子订单失败 SubOrderUpdateErr = 2700005 // 更新子订单失败 SubOrderDeleteErr = 2700006 // 删除子订单失败 SalesDetailsExist = 2800001 // 销售明细已存在 SalesDetailsNotExist = 2800002 // 销售明细不存在 SalesDetailsListErr = 2800003 // 获取销售明细列表失败 SalesDetailsSetErr = 2800004 // 设置销售明细失败 SalesDetailsUpdateErr = 2800005 // 更新销售明细失败 SalesDetailsDeleteErr = 2800006 // 删除销售明细失败 SalesReturnExist = 2900001 // 销售退货单已存在 SalesReturnNotExist = 2900002 // 销售退货单不存在 SalesReturnListErr = 2900003 // 获取销售退货单列表失败 SalesReturnSetErr = 2900004 // 设置销售退货单失败 SalesReturnUpdateErr = 2900005 // 更新销售退货单失败 SalesReturnDeleteErr = 2900006 // 删除销售退货单失败 SalesRefundExist = 3000001 // 销售退款单已存在 SalesRefundNotExist = 3000002 // 销售退款单不存在 SalesRefundListErr = 3000003 // 获取销售退款单列表失败 SalesRefundSetErr = 3000004 // 设置销售退款单失败 SalesRefundUpdateErr = 3000005 // 更新销售退款单失败 SalesRefundDeleteErr = 3000006 // 删除销售退款单失败 ContractExist = 3100001 // 合同已存在 ContractNotExist = 3100002 // 合同不存在 ContractListErr = 3100003 // 获取合同列表失败 ContractSetErr = 3100004 // 设置合同失败 ContractUpdateErr = 3100005 // 更新合同失败 ContractDeleteErr = 3100006 // 删除合同失败 PlanExist = 3200001 // 计划已存在 PlanNotExist = 3200002 // 计划不存在 PlanListErr = 3200003 // 获取计划列表失败 PlanSetErr = 3200004 // 设置计划失败 PlanUpdateErr = 3200005 // 更新计划失败 PlanDeleteErr = 3200006 // 删除计划失败 SContractExist = 3300001 // 服务合同已存在 SContractNotExist = 3300002 // 服务合同不存在 SContractListErr = 3300003 // 获取服务合同列表失败 SContractSetErr = 3300004 // 设置服务合同失败 SContractUpdateErr = 3300005 // 更新服务合同失败 SContractDeleteErr = 3300006 // 删除服务合同失败 OrderManageExist = 3400001 // 订单管理已存在 OrderManageNotExist = 3400002 // 订单管理不存在 OrderManageListErr = 3400003 // 获取订单管理列表失败 OrderManageSetErr = 3400004 // 设置订单管理失败 OrderManageUpdateErr = 3400005 // 更新订单管理失败 OrderManageDeleteErr = 3400006 // 删除订单管理失败 ServiceFollowupExist = 3500001 // 服务跟进已存在 ServiceFollowupNotExist = 3500002 // 服务跟进不存在 ServiceFollowupListErr = 3500003 // 获取服务跟进列表失败 ServiceFollowupSetErr = 3500004 // 设置服务跟进失败 ServiceFollowupUpdateErr = 3500005 // 更新服务跟进失败 ServiceFollowupDeleteErr = 3500006 // 删除服务跟进失败 CustomerServiceSheetExist = 3600001 // 客服单已存在 CustomerServiceSheetNotExist = 3600002 // 客服单不存在 CustomerServiceSheetListErr = 3600003 // 获取客服单列表失败 CustomerServiceSheetSetErr = 3600004 // 设置客服单失败 CustomerServiceSheetUpdateErr = 3600005 // 更新客服单失败 CustomerServiceSheetDeleteErr = 3600006 // 删除客服单失败 ServiceFeeManageExist = 3700001 // 服务费管理已存在 ServiceFeeManageNotExist = 3700002 // 服务费管理不存在 ServiceFeeManageListErr = 3700003 // 获取服务费管理列表失败 ServiceFeeManageSetErr = 3700004 // 设置服务费管理失败 ServiceFeeManageUpdateErr = 3700005 // 更新服务费管理失败 ServiceFeeManageDeleteErr = 3700006 // 删除服务费管理失败 RoleExist = 3800001 // 角色已存在 RoleNotExist = 3800002 // 角色不存在 RoleListErr = 3800003 // 获取角色列表失败 RoleSetErr = 3800004 // 设置角色失败 RoleUpdateErr = 3800005 // 更新角色失败 RoleDeleteErr = 3800006 // 删除角色失败 RoleDeleteErr1 = 3800007 // 该角色下存在用户,无法删除 MenuListErr = 3900001 // 获取菜单列表失败 SetMenuAuthorityErr = 3900002 // 设置菜单权限失败 DepartmentExist = 4000001 // 部门已存在 DepartmentNotExist = 4000002 // 部门不存在 DepartmentListErr = 4000003 // 获取部门列表失败 DepartmentSetErr = 4000004 // 设置部门失败 DepartmentUpdateErr = 4000005 // 更新部门失败 DepartmentDeleteErr = 4000006 // 删除部门失败 DepartmentDeleteErr1 = 4000007 // 该部门下存在用户,无法删除 VettingExist = 4100001 // 审批已存在 VettingNotExist = 4100002 // 审批不存在 VettingListErr = 4100003 // 获取审批列表失败 VettingSetErr = 4100004 // 设置审批失败 VettingNotBelongToUser = 4100005 // 审批不属于当前用户 SatisfactionExist = 4200001 // 满意度已存在 SatisfactionNotExist = 4200002 // 满意度不存在 SatisfactionListErr = 4200003 // 获取满意度列表失败 SatisfactionSetErr = 4200004 // 设置满意度失败 SatisfactionUpdateErr = 4200005 // 更新满意度失败 TimelyRateExist = 4300001 // 及时率已存在 TimelyRateNotExist = 4300002 // 及时率不存在 TimelyRateListErr = 4300003 // 获取及时率列表失败 TimelyRateSetErr = 4300004 // 设置及时率失败 TimelyRateUpdateErr = 4300005 // 更新及时率失败 SolveRateExist = 4400001 // 解决率已存在 SolveRateNotExist = 4400002 // 解决率不存在 SolveRateListErr = 4400003 // 获取解决率列表失败 SolveRateSetErr = 4400004 // 设置解决率失败 SolveRateUpdateErr = 4400005 // 更新解决率失败 IsVisitExist = 4500001 // 服务人员是否来过已存在 IsVisitNotExist = 4500002 // 服务人员是否来过不存在 IsVisitListErr = 4500003 // 获取服务人员是否来过列表失败 IsVisitSetErr = 4500004 // 设置服务人员是否来过失败 IsVisitUpdateErr = 4500005 // 更新服务人员是否来过失败 ReportSourceExist = 4600001 // 报表来源已存在 ReportSourceNotExist = 4600002 // 报表来源不存在 ReportSourceListErr = 4600003 // 获取报表来源列表失败 ReportSourceSetErr = 4600004 // 设置报表来源失败 ReportSourceUpdateErr = 4600005 // 更新报表来源失败 OrderTypeExist = 4700001 // 工单类型已存在 OrderTypeNotExist = 4700002 // 工单类型不存在 OrderTypeListErr = 4700003 // 获取工单类型列表失败 OrderTypeSetErr = 4700004 // 设置工单类型失败 OrderTypeUpdateErr = 4700005 // 更新工单类型失败 ServiceContractStatusExist = 4800001 // 服务合同状态已存在 ServiceContractStatusNotExist = 4400002 // 服务合同状态不存在 ServiceContractStatusListErr = 4800003 // 获取服务合同状态列表失败 ServiceContractStatusSetErr = 4800004 // 设置服务合同状态失败 ServiceContractStatusUpdateErr = 4800005 // 更新服务合同状态失败 ServiceContractTypeExist = 4900001 // 服务合同类型已存在 ServiceContractTypeNotExist = 4900002 // 服务合同类型不存在 ServiceContractTypeListErr = 4900003 // 获取服务合同类型列表失败 ServiceContractTypeSetErr = 4900004 // 设置服务合同类型失败 ServiceContractTypeUpdateErr = 4900005 // 更新服务合同类型失败 RefundMethodExist = 5000001 // 退款方式已存在 RefundMethodNotExist = 5000002 // 退款方式不存在 RefundMethodListErr = 5000003 // 获取退款方式列表失败 RefundMethodSetErr = 5000004 // 设置退款方式失败 RefundMethodUpdateErr = 5000005 // 更新退款方式失败 IsInvoiceExist = 5100001 // 是否开票已存在 IsInvoiceNotExist = 5100002 // 是否开票不存在 IsInvoiceListErr = 5100003 // 获取是否开票列表失败 IsInvoiceSetErr = 5100004 // 设置是否开票失败 IsInvoiceUpdateErr = 5100005 // 更新是否开票失败 AccountIdExist = 5200001 // 账户已存在 AccountIdNotExist = 5200002 // 账户不存在 AccountIdListErr = 5200003 // 获取账户列表失败 AccountIdSetErr = 5200004 // 设置账户失败 AccountIdUpdateErr = 5200005 // 更新账户失败 SalesReturnStatusExist = 5300001 // 退货单状态已存在 SalesReturnStatusNotExist = 5300002 // 退货单状态不存在 SalesReturnStatusListErr = 5300003 // 获取退货单状态列表失败 SalesReturnStatusSetErr = 5300004 // 设置退货单状态失败 SalesReturnStatusUpdateErr = 5300005 // 更新退货单状态失败 RepositoryExist = 5400001 // 退货仓库已存在 RepositoryNotExist = 5400002 // 退货仓库不存在 RepositoryListErr = 5400003 // 获取退货仓库列表失败 RepositorySetErr = 5400004 // 设置退货仓库失败 RepositoryUpdateErr = 5400005 // 更新退货仓库失败 QuotationStatusExist = 5500001 // 报价单状态已存在 QuotationStatusNotExist = 5500002 // 报价单状态不存在 QuotationStatusListErr = 5500003 // 获取报价单状态列表失败 QuotationStatusSetErr = 5500004 // 设置报价单状态失败 QuotationStatusUpdateErr = 5500005 // 更新报价单状态失败 CurrencyExist = 5600001 // 币种已存在 CurrencyNotExist = 5600002 // 币种不存在 CurrencyListErr = 5600003 // 获取币种列表失败 CurrencySetErr = 5600004 // 设置币种失败 CurrencyUpdateErr = 5600005 // 更新币种失败 AssignErr = 5700001 // 分配失败 AssignWrongMemberId = 5700002 // 分配失败,分配人为空 AssignWrongId = 5700003 // 分配失败,分配对象为空 AssignWrongModelType = 5700004 // 分配失败,分配对象类型为空 ) router/salesLeads.go
@@ -1,19 +1,20 @@ package router import ( v1 "aps_crm/api/v1" "github.com/gin-gonic/gin" ) type SalesLeadsRouter struct{} func (s *SalesLeadsRouter) InitSalesLeadsRouter(router *gin.RouterGroup) { salesLeadsRouter := router.Group("salesLeads") salesLeadsApi := v1.ApiGroup.SalesLeadsApi { salesLeadsRouter.POST("add", salesLeadsApi.Add) // 添加销售线索 salesLeadsRouter.DELETE("delete", salesLeadsApi.Delete) // 删除销售线索 salesLeadsRouter.PUT("update", salesLeadsApi.Update) // 更新销售线索 salesLeadsRouter.POST("list", salesLeadsApi.List) // 获取销售线索列表 } } package router import ( v1 "aps_crm/api/v1" "github.com/gin-gonic/gin" ) type SalesLeadsRouter struct{} func (s *SalesLeadsRouter) InitSalesLeadsRouter(router *gin.RouterGroup) { salesLeadsRouter := router.Group("salesLeads") salesLeadsApi := v1.ApiGroup.SalesLeadsApi { salesLeadsRouter.POST("add", salesLeadsApi.Add) // 添加销售线索 salesLeadsRouter.DELETE("delete", salesLeadsApi.Delete) // 删除销售线索 salesLeadsRouter.PUT("update", salesLeadsApi.Update) // 更新销售线索 salesLeadsRouter.POST("list", salesLeadsApi.List) // 获取销售线索列表 salesLeadsRouter.POST("push", salesLeadsApi.Push) // 推进销售线索 } } service/salesLeads.go
@@ -1,76 +1,108 @@ package service import ( "aps_crm/model" "aps_crm/pkg/ecode" ) type SalesLeadsService struct{} func (SalesLeadsService) AddSalesLeads(salesLeads *model.SalesLeads) int { err := model.NewSalesLeadsSearch(nil).Create(salesLeads) if err != nil { return ecode.SalesLeadsExist } return ecode.OK } func (SalesLeadsService) UpdateSalesLeads(salesLeads *model.SalesLeads) int { // update salesLeads err := model.NewSalesLeadsSearch(nil).SetId(salesLeads.Id).Update(salesLeads) if err != nil { return ecode.SalesLeadsUpdateErr } return ecode.OK } // CheckSalesLeadsExist check salesLeads exist func CheckSalesLeadsExist(id int) int { tmp, err := model.NewSalesLeadsSearch(nil).SetId(id).Find() if err != nil { return ecode.SalesLeadsNotExist } if len(tmp) == 0 { return ecode.SalesLeadsNotExist } return ecode.OK } func (SalesLeadsService) GetSalesLeadsList(page, pageSize int, keyword string) ([]*model.SalesLeads, int64, int) { // get contact list contacts, total, err := model.NewSalesLeadsSearch(nil).SetKeyword(keyword).SetPage(page, pageSize).FindAll() if err != nil { return nil, 0, ecode.SalesLeadsListErr } return contacts, total, ecode.OK } func (SalesLeadsService) Assign(ids []int, memberId int) int { // check salesLeads exist //errCode := CheckSalesLeadsExist(id) //if errCode != ecode.OK { // return errCode //} // update salesLeads err := model.NewSalesLeadsSearch(nil).SetIds(ids).UpdateMap(map[string]interface{}{ "member_id": memberId, }) if err != nil { return ecode.SalesLeadsUpdateErr } return ecode.OK } func (SalesLeadsService) DeleteSalesLeads(ids []int) int { // delete client err := model.NewSalesLeadsSearch(nil).SetIds(ids).Delete() if err != nil { return ecode.SalesLeadsDeleteErr } return ecode.OK } package service import ( "aps_crm/constvar" "aps_crm/model" "aps_crm/pkg/ecode" ) type SalesLeadsService struct{} func (SalesLeadsService) AddSalesLeads(salesLeads *model.SalesLeads) int { err := model.NewSalesLeadsSearch(nil).Create(salesLeads) if err != nil { return ecode.SalesLeadsExist } return ecode.OK } func (SalesLeadsService) UpdateSalesLeads(salesLeads *model.SalesLeads) int { // update salesLeads err := model.NewSalesLeadsSearch(nil).SetId(salesLeads.Id).Update(salesLeads) if err != nil { return ecode.SalesLeadsUpdateErr } return ecode.OK } // CheckSalesLeadsExist check salesLeads exist func CheckSalesLeadsExist(id int) int { tmp, err := model.NewSalesLeadsSearch(nil).SetId(id).Find() if err != nil { return ecode.SalesLeadsNotExist } if len(tmp) == 0 { return ecode.SalesLeadsNotExist } return ecode.OK } func (SalesLeadsService) GetSalesLeadsList(page, pageSize int, keyword string) ([]*model.SalesLeads, int64, int) { // get contact list contacts, total, err := model.NewSalesLeadsSearch(nil).SetKeyword(keyword).SetPage(page, pageSize).FindAll() if err != nil { return nil, 0, ecode.SalesLeadsListErr } return contacts, total, ecode.OK } func (SalesLeadsService) Assign(ids []int, memberId int) int { // check salesLeads exist //errCode := CheckSalesLeadsExist(id) //if errCode != ecode.OK { // return errCode //} // update salesLeads err := model.NewSalesLeadsSearch(nil).SetIds(ids).UpdateMap(map[string]interface{}{ "member_id": memberId, }) if err != nil { return ecode.SalesLeadsUpdateErr } return ecode.OK } func (SalesLeadsService) DeleteSalesLeads(ids []int) int { // delete client err := model.NewSalesLeadsSearch(nil).SetIds(ids).Delete() if err != nil { return ecode.SalesLeadsDeleteErr } return ecode.OK } func (SalesLeadsService) PushSalesLeads(id int, step constvar.SalesStatus, txt string) int { // check salesLeads exist errCode := CheckSalesLeadsExist(id) if errCode != ecode.OK { return errCode } switch step { case constvar.SalesStatusFail: err := model.NewSalesLeadsSearch(nil).SetId(id).UpdateMap(map[string]interface{}{ "sales_status": constvar.SalesStatusFail, "reason": txt, }) if err != nil { return ecode.SalesLeadsUpdateErr } case constvar.SalesStatusIng: err := model.NewSalesLeadsSearch(nil).SetId(id).UpdateMap(map[string]interface{}{ "sales_status": constvar.SalesStatusIng, }) if err != nil { return ecode.SalesLeadsUpdateErr } return ecode.OK default: return ecode.SalesLeadsStatusErr } return ecode.OK }