liujiandao
2023-10-17 d4bf53dd19a45ef09a367babcf7a2ac04ae1d08f
api/v1/client.go
@@ -1,11 +1,13 @@
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"
   "aps_crm/utils"
   "github.com/gin-gonic/gin"
)
@@ -26,16 +28,38 @@
      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)
      return
   }
   //CreatorId, b := c.Get("claims")
   //if !b {
   //   ctx.Fail(ecode.JWTParseErr)
   //   return
   //}
   //
   //client.CreatorId = CreatorId.(int)
   errCode = clientService.AddClient(client, params.SalesLeadsId)
   if errCode != ecode.OK {
      ctx.Fail(errCode)
      return
   }
   if params.CodeRule.Method == 1 {
      autoCode := model.GetAutoCode(client.Id, &params.CodeRule)
      m := map[string]interface{}{
         "number": autoCode,
      }
      _ = model.NewClientSearch(nil).SetId(client.Id).UpdateByMap(m)
   }
   ctx.Ok()
@@ -57,7 +81,6 @@
   //if params.MemberId == 0 {
   //   return ecode.InvalidParams, nil
   //}
   client.MemberId = params.MemberId
   t, err := checkTimeFormat(params.NextVisitTime)
   if err != nil {
@@ -84,6 +107,7 @@
   client.ClientOriginId = params.ClientOriginId
   client.ClientLevelId = params.ClientLevelId
   client.DetailAddress = params.DetailAddress
   client.ClientStatusId = params.ClientStatusId
   client.Remark = params.Remark
   client.Number = params.Number
   client.ServiceMemberId = params.ServiceMemberId
@@ -97,17 +121,24 @@
   client.Business.IndustryId = params.IndustryId
   client.Business.EnterpriseNatureId = params.EnterpriseNatureId
   client.Business.EnterpriseScaleId = params.EnterpriseScaleId
   if params.Contact.Name != "" {
      // assign the client's member id to contact when adding
      params.Contact.MemberId = params.MemberId
      errCode, contact := checkContactParams(params.Contact)
      if errCode != ecode.OK {
         return errCode, nil
      }
      client.Contacts = []model.Contact{contact}
   //销售负责人为空时为公海客户
   if params.MemberId == 0 {
      client.MemberId = 1
   } else {
      client.MemberId = params.MemberId
   }
   client.CodeStandID = params.CodeStandID
   //if params.Contact.Name != "" {
   // assign the client's member id to contact when adding
   params.Contact.MemberId = params.MemberId
   errCode, contact := checkContactParams(params.Contact)
   if errCode != ecode.OK {
      return errCode, nil
   }
   client.Contacts = []model.Contact{contact}
   //}
   return ecode.OK, client
}
@@ -165,7 +196,7 @@
   client.Id = params.Id
   errCode = clientService.UpdateClient(client)
   errCode = clientService.UpdateClient(client, params.ContactId)
   if errCode != ecode.OK {
      ctx.Fail(errCode)
      return
@@ -189,6 +220,14 @@
      return
   }
   userInfo := utils.GetUserInfo(c)
   if userInfo.UserType == constvar.UserTypeSub {
      if params.SearchMap == nil {
         params.SearchMap = make(map[string]interface{}, 0)
      }
      params.SearchMap["member_id"] = userInfo.CrmUserId
   }
   clients, total, errCode := clientService.GetClientList(params.Page, params.PageSize, params.SearchMap)
   if errCode != ecode.OK {
      ctx.Fail(errCode)
@@ -200,3 +239,27 @@
      Count: int(total),
   })
}
// CheckName
//
//   @Tags      Client
//   @Summary   检查客户名称是否重复
//   @Produce   application/json
//   @Param      object   body      request.CheckClientName   true   "参数"
//   @Success   200      {object}   contextx.Response{}
//   @Router      /api/client/checkName [post]
func (cli *ClientApi) CheckName(c *gin.Context) {
   var params request.CheckClientName
   ctx, ok := contextx.NewContext(c, &params)
   if !ok {
      return
   }
   errCode := clientService.CheckName(params.Name)
   if errCode != ecode.OK {
      ctx.Fail(errCode)
      return
   }
   ctx.Ok()
}