package v1 import ( "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "github.com/gin-gonic/gin" "strconv" ) type ContactApi struct{} // Add // // @Tags Contact // @Summary 添加联系人 // @Produce application/json // @Param object body request.AddContact true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/contact/add [post] func (con *ContactApi) Add(c *gin.Context) { var params request.AddContact ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, contact := checkContactParams(params.Contact) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = contactService.AddContact(&contact) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags Contact // @Summary 删除联系人 // @Produce application/json // @Param id path int true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/contact/delete/{id} [delete] func (con *ContactApi) Delete(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } id, _ := strconv.Atoi(c.Param("id")) errCode := contactService.DeleteContact(id) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // List // // @Tags Contact // @Summary 联系人列表 // @Produce application/json // @Success 200 {object} contextx.Response{data=response.ContactResponse} // @Router /api/contact/list [get] func (con *ContactApi) List(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } contacts, errCode := contactService.GetContactList() if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.ContactResponse{ List: contacts, }) } // Update // // @Tags Contact // @Summary 更新联系人 // @Produce application/json // @Param object body request.UpdateContact true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/contact/update [put] func (con *ContactApi) Update(c *gin.Context) { var params request.UpdateContact ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } // check id if params.Id == 0 { ctx.Fail(ecode.InvalidParams) return } errCode, contact := checkContactParams(params.Contact) if errCode != ecode.OK { ctx.Fail(errCode) return } contact.Id = params.Id errCode = contactService.UpdateContact(&contact) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } func checkContactParams(params request.Contact) (int, model.Contact) { var contact model.Contact // name not empty if params.Name == "" { return ecode.InvalidParams, contact } contact.Name = params.Name contact.Phone = params.Phone contact.Email = params.Email // check member id not -1 if params.MemberId == 0 { return ecode.InvalidParams, contact } contact.MemberId = params.MemberId contact.ProvinceId = params.ProvinceId contact.CityId = params.CityId contact.CountryId = params.CountryId contact.RegionId = params.RegionId contact.Position = params.Position contact.ClientId = params.ClientId contact.Desc = params.Desc // check number not empty if params.Number == "" { return ecode.InvalidParams, contact } contact.Number = params.Number t, err := checkTimeFormat(params.Birthday) if err != nil { return ecode.InvalidParams, contact } contact.Birthday = t contact.Wechat = params.Wechat contact.IsFirst = params.IsFirst return ecode.OK, contact }