From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 01 十一月 2023 19:20:21 +0800 Subject: [PATCH] 公海member_id使用0 --- api/v1/followRecord.go | 190 ++++++++++++++++++++++++++++------------------ 1 files changed, 115 insertions(+), 75 deletions(-) diff --git a/api/v1/followRecord.go b/api/v1/followRecord.go index 8000585..666ea35 100644 --- a/api/v1/followRecord.go +++ b/api/v1/followRecord.go @@ -1,14 +1,15 @@ 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/service" + "aps_crm/utils" + "errors" "github.com/gin-gonic/gin" - "strconv" "time" ) @@ -35,6 +36,23 @@ return } + count, err := model.NewFollowRecordSearch().SetNumber(followRecord.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + + if followRecord.MemberId == 0 { + userInfo := utils.GetUserInfo(c) + if userInfo.UserType == constvar.UserTypeSub { + followRecord.MemberId = userInfo.CrmUserId + } + } + errCode = followRecordService.AddFollowRecord(followRecord) if errCode != ecode.OK { ctx.Fail(errCode) @@ -44,46 +62,22 @@ ctx.Ok() } -// List -// -// @Tags FollowRecord -// @Summary 鑾峰彇璺熻繘璁板綍鍒楄〃 -// @Produce application/json -// @Success 200 {object} contextx.Response{data=response.FollowRecordResponse} -// @Router /api/followRecord/list [get] -func (fr *FollowRecordApi) List(c *gin.Context) { - ctx, ok := contextx.NewContext(c, nil) - if !ok { - return - } - - errCode, followRecordList := followRecordService.GetFollowRecordList() - if errCode != ecode.OK { - ctx.Fail(errCode) - return - } - - ctx.OkWithDetailed(response.FollowRecordResponse{ - List: followRecordList, - }) -} - // Delete // // @Tags FollowRecord // @Summary 鍒犻櫎璺熻繘璁板綍 // @Produce application/json -// @Param id path string true "璺熻繘璁板綍id" +// @Param object body request.DeleteFollowRecord true "鏌ヨ鍙傛暟" // @Success 200 {object} contextx.Response{} -// @Router /api/followRecord/delete/{id} [delete] +// @Router /api/followRecord/delete [delete] func (fr *FollowRecordApi) Delete(c *gin.Context) { - ctx, ok := contextx.NewContext(c, nil) + var params request.DeleteFollowRecord + ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } - id, _ := strconv.Atoi(c.Param("id")) - errCode := followRecordService.DeleteFollowRecord(id) + errCode := followRecordService.DeleteFollowRecord(params.Ids) if errCode != ecode.OK { ctx.Fail(errCode) return @@ -128,42 +122,42 @@ func checkFollowRecordParams(followRecord request.FollowRecord) (int, *model.FollowRecord) { var followRecordModel model.FollowRecord - if followRecord.ClientId != 0 { - // check client exist - if service.CheckClientExist(followRecord.ClientId) != ecode.OK { - return ecode.ClientNotExist, &followRecordModel - } - } - - if followRecord.ContactId != 0 { - // check contact exist - if service.CheckContactExist(followRecord.ContactId) != ecode.OK { - return ecode.ContactNotExist, &followRecordModel - } - } - - if followRecord.SalesLeadsId != 0 { - // check sales leads exist - if service.CheckSalesLeadsExist(followRecord.SalesLeadsId) != ecode.OK { - return ecode.SalesLeadsNotExist, &followRecordModel - } - } - - // check member id - if followRecord.MemberId == 0 { - // todo check member exist - return ecode.InvalidParams, &followRecordModel - } - - // check number - if followRecord.Number == "" { - return ecode.InvalidParams, &followRecordModel - } - - // check follow content - if followRecord.Content == "" { - return ecode.InvalidParams, &followRecordModel - } + //if followRecord.ClientId != 0 { + // // check client exist + // if service.CheckClientExist(followRecord.ClientId) != ecode.OK { + // return ecode.ClientNotExist, &followRecordModel + // } + //} + // + //if followRecord.ContactId != 0 { + // // check contact exist + // if service.CheckContactExist(followRecord.ContactId) != ecode.OK { + // return ecode.ContactNotExist, &followRecordModel + // } + //} + // + //if followRecord.SalesLeadsId != 0 { + // // check sales leads exist + // if service.CheckSalesLeadsExist(followRecord.SalesLeadsId) != ecode.OK { + // return ecode.SalesLeadsNotExist, &followRecordModel + // } + //} + // + //// check member id + //if followRecord.MemberId == 0 { + // // todo check member exist + // return ecode.InvalidParams, &followRecordModel + //} + // + //// check number + //if followRecord.Number == "" { + // return ecode.InvalidParams, &followRecordModel + //} + // + //// check follow content + //if followRecord.Content == "" { + // return ecode.InvalidParams, &followRecordModel + //} // check follow time t, err := checkTimeFormat(followRecord.FollowTime) @@ -192,31 +186,77 @@ followRecordModel.Purpose = followRecord.Purpose followRecordModel.Content = followRecord.Content followRecordModel.Record = followRecord.Record + followRecordModel.CodeStandID = followRecord.CodeStandID return ecode.OK, &followRecordModel } // checkTimeFormat // 妫�鏌ユ椂闂存牸寮� -func checkTimeFormat(t string) (time.Time, error) { +func checkTimeFormat(t string) (*model.CustomTime, error) { if t == "" { - t = "1970-01-01T00:00:00+08:00" + return nil, nil } location, err := time.LoadLocation("Asia/Shanghai") if err != nil { - return time.Time{}, err + return nil, err } - tt, err := time.Parse("2006-01-02T15:04:05.000Z", t) + tt, err := time.Parse("2006-01-02", t) if err == nil { - return tt.In(location), nil + ret := tt.In(location) + tmp := model.CustomTime(ret) + return &tmp, nil } - tt, err = time.Parse("2006-01-02T15:04:05-07:00", t) + tt, err = time.Parse("2006-01-02 15:04:05", t) if err == nil { - return tt.In(location), nil + ret := tt.In(location) + tmp := model.CustomTime(ret) + return &tmp, nil } - return time.Time{}, err + //tt, err = time.Parse("2006-01-02T15:04:05-07:00", t) + //if err == nil { + // ret := tt.In(location) + // return &ret, nil + //} + + return nil, errors.New("invalid time format") +} + +// List +// +// @Tags FollowRecord +// @Summary 鍥炶璁板綍鍒楄〃 +// @Produce application/json +// @Param object body request.GetFollowRecordList true "鍙傛暟" +// @Success 200 {object} contextx.Response{data=response.FollowRecordResponse} +// @Router /api/followRecord/list [post] +func (fr *FollowRecordApi) List(c *gin.Context) { + var params request.GetFollowRecordList + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + + 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 + } + + followRecords, total, errCode := followRecordService.GetFollowRecordList(params.Page, params.PageSize, params.SearchMap) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.OkWithDetailed(response.FollowRecordResponse{ + List: followRecords, + Count: int(total), + }) } -- Gitblit v1.8.0