| | |
| | | package v1
|
| | |
|
| | | import (
|
| | | "aps_crm/model/request"
|
| | | "aps_crm/pkg/contextx"
|
| | | "aps_crm/pkg/ecode"
|
| | | "github.com/gin-gonic/gin"
|
| | | )
|
| | |
|
| | | type AssignApi struct{}
|
| | |
|
| | | // Assign
|
| | | //
|
| | | // @Tags Assign
|
| | | // @Summary 分配
|
| | | // @Produce application/json
|
| | | // @Param object body request.Assign true "查询参数"
|
| | | // @Success 200 {object} contextx.Response{}
|
| | | // @Router /api/assign/assign [post]
|
| | | func (au *AssignApi) Assign(c *gin.Context) {
|
| | | var params request.Assign
|
| | | ctx, ok := contextx.NewContext(c, ¶ms)
|
| | | if !ok {
|
| | | return
|
| | | }
|
| | |
|
| | | if params.MemberId == 0 {
|
| | | ctx.Fail(ecode.AssignWrongMemberId)
|
| | | return
|
| | | }
|
| | |
|
| | | if len(params.Ids) == 0 {
|
| | | ctx.Fail(ecode.AssignWrongId)
|
| | | return
|
| | | }
|
| | |
|
| | | if params.Type == "" {
|
| | | ctx.Fail(ecode.AssignWrongModelType)
|
| | | return
|
| | | }
|
| | |
|
| | | errCode := assignService.Assign(params.MemberId, params.Ids, params.Type)
|
| | | if errCode != ecode.OK {
|
| | | ctx.Fail(errCode)
|
| | | return
|
| | | }
|
| | |
|
| | | ctx.Ok()
|
| | | }
|
| | | package v1 |
| | | |
| | | import ( |
| | | "aps_crm/model/request" |
| | | "aps_crm/pkg/contextx" |
| | | "aps_crm/pkg/ecode" |
| | | "github.com/gin-gonic/gin" |
| | | ) |
| | | |
| | | type AssignApi struct{} |
| | | |
| | | // Assign |
| | | // |
| | | // @Tags Assign |
| | | // @Summary 分配 |
| | | // @Produce application/json |
| | | // @Param object body request.Assign true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/assign/assign [post] |
| | | func (au *AssignApi) Assign(c *gin.Context) { |
| | | var params request.Assign |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | if len(params.Ids) == 0 { |
| | | ctx.Fail(ecode.AssignWrongId) |
| | | return |
| | | } |
| | | |
| | | if params.Type == "" { |
| | | ctx.Fail(ecode.AssignWrongModelType) |
| | | return |
| | | } |
| | | |
| | | errCode := assignService.Assign(params.MemberId, params.Ids, params.Type) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | |
| | | return |
| | | } |
| | | |
| | | if params.MemberId == 0 { |
| | | userInfo := utils.GetUserInfo(c) |
| | | if userInfo.UserType == constvar.UserTypeSub { |
| | | params.MemberId = userInfo.CrmUserId |
| | | } |
| | | } |
| | | |
| | | errCode, client := checkClientParams(params.Client) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | |
| | | client.Business.IndustryId = params.IndustryId |
| | | client.Business.EnterpriseNatureId = params.EnterpriseNatureId |
| | | client.Business.EnterpriseScaleId = params.EnterpriseScaleId |
| | | //销售负责人为空时为公海客户 |
| | | if params.MemberId == 0 { |
| | | client.MemberId = 1 |
| | | } else { |
| | | client.MemberId = params.MemberId |
| | | } |
| | | client.MemberId = params.MemberId |
| | | client.CodeStandID = params.CodeStandID |
| | | |
| | | //if params.Contact.Name != "" { |
| | |
| | | return |
| | | } |
| | | |
| | | userInfo := utils.GetUserInfo(c) |
| | | if userInfo.UserType == constvar.UserTypeSub { |
| | | if params.SearchMap == nil { |
| | | params.SearchMap = make(map[string]interface{}, 0) |
| | | var isPublic bool |
| | | if params.SearchMap != nil && params.SearchMap["is_public"] != nil { |
| | | if v, ok := params.SearchMap["is_public"].(bool); ok { |
| | | isPublic = v |
| | | } |
| | | params.SearchMap["member_ids"] = userInfo.SubUserIds |
| | | } |
| | | if !isPublic { |
| | | userInfo := utils.GetUserInfo(c) |
| | | if userInfo.UserType == constvar.UserTypeSub { |
| | | if params.SearchMap == nil { |
| | | params.SearchMap = make(map[string]interface{}, 0) |
| | | } |
| | | params.SearchMap["member_ids"] = userInfo.SubUserIds |
| | | } |
| | | } |
| | | |
| | | clients, total, errCode := clientService.GetClientList(params.Page, params.PageSize, params.SearchMap) |
| | |
| | | UserTypeSub // 子账户 |
| | | ) |
| | | |
| | | type NotAdmin int |
| | | |
| | | const ( |
| | | NotAdminAll NotAdmin = iota // 公海 |
| | | NotAdminYes // 我的客户 |
| | | ) |
| | | |
| | | type SalesStatus int |
| | | |
| | | const ( |
| | |
| | | db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%") |
| | | } |
| | | |
| | | case int, uint, int64, float64: |
| | | case int, uint, int64, float64, bool: |
| | | if key == "id" || key == "client_type_id" || key == "client_status_id" || key == "member_id" { |
| | | db = db.Where(key+" = ?", v) |
| | | } |
| | | |
| | | if key == "not_admin" { |
| | | if v == float64(constvar.NotAdminYes) { |
| | | db = db.Where("clients.member_id != ?", constvar.UserTypeSuper) |
| | | } else { |
| | | db = db.Where("clients.member_id = ?", constvar.UserTypeSuper) |
| | | if key == "is_public" { |
| | | if val, ok := v.(bool); ok { |
| | | if val { |
| | | db = db.Where("clients.member_id = ?", 0) |
| | | } |
| | | } |
| | | } |
| | | case []int: |
| | |
| | | package service
|
| | |
|
| | | import (
|
| | | "aps_crm/model"
|
| | | "aps_crm/pkg/ecode"
|
| | | )
|
| | |
|
| | | type AssignService struct{}
|
| | |
|
| | | type Assign interface {
|
| | | Assign(id int) error
|
| | | }
|
| | |
|
| | | func (AssignService) Assign(memberId int, ids []int, modelType string) int {
|
| | | // check member exist
|
| | | _, err := model.NewUserSearch(nil).SetUserId(memberId).First()
|
| | | if err != nil {
|
| | | return ecode.UserNotExist
|
| | | }
|
| | |
|
| | | var errCode int
|
| | | switch modelType {
|
| | | case "client":
|
| | | errCode = ClientService{}.Assign(ids, memberId)
|
| | | case "salesLead":
|
| | | errCode = SalesLeadsService{}.Assign(ids, memberId)
|
| | | case "contact":
|
| | | errCode = ContactService{}.Assign(ids, memberId)
|
| | | case "followRecord":
|
| | | errCode = FollowRecordService{}.Assign(ids, memberId)
|
| | |
|
| | | default:
|
| | | errCode = ecode.AssignWrongModelType
|
| | | }
|
| | |
|
| | | if errCode != ecode.OK {
|
| | | return errCode
|
| | | }
|
| | |
|
| | | return ecode.OK
|
| | | }
|
| | | package service |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/pkg/ecode" |
| | | ) |
| | | |
| | | type AssignService struct{} |
| | | |
| | | type Assign interface { |
| | | Assign(id int) error |
| | | } |
| | | |
| | | func (AssignService) Assign(memberId int, ids []int, modelType string) int { |
| | | // check member exist |
| | | if memberId != 0 { |
| | | _, err := model.NewUserSearch(nil).SetUserId(memberId).First() |
| | | if err != nil { |
| | | return ecode.UserNotExist |
| | | } |
| | | } |
| | | |
| | | var errCode int |
| | | switch modelType { |
| | | case "client": |
| | | errCode = ClientService{}.Assign(ids, memberId) |
| | | case "salesLead": |
| | | errCode = SalesLeadsService{}.Assign(ids, memberId) |
| | | case "contact": |
| | | errCode = ContactService{}.Assign(ids, memberId) |
| | | case "followRecord": |
| | | errCode = FollowRecordService{}.Assign(ids, memberId) |
| | | |
| | | default: |
| | | errCode = ecode.AssignWrongModelType |
| | | } |
| | | |
| | | if errCode != ecode.OK { |
| | | return errCode |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |