From 2e974a79678910d56e82aa2a8b2bf24f7ebc2d2d Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 13 十月 2023 14:29:49 +0800 Subject: [PATCH] 报价单简单数据权限 --- api/v1/saleChance.go | 167 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 148 insertions(+), 19 deletions(-) diff --git a/api/v1/saleChance.go b/api/v1/saleChance.go index c3f4d6f..e8144c6 100644 --- a/api/v1/saleChance.go +++ b/api/v1/saleChance.go @@ -1,11 +1,14 @@ 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" - "strconv" ) type SaleChanceApi struct{} @@ -45,17 +48,17 @@ // @Tags SaleChance // @Summary 鍒犻櫎閿�鍞満浼� // @Produce application/json -// @Param id path int true "鏌ヨ鍙傛暟" +// @Param object body request.DeleteSaleChance true "鏌ヨ鍙傛暟" // @Success 200 {object} contextx.Response{} -// @Router /api/saleChance/delete/{id} [delete] +// @Router /api/saleChance/delete [delete] func (s *SaleChanceApi) Delete(c *gin.Context) { - ctx, ok := contextx.NewContext(c, nil) + var params request.DeleteSaleChance + ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } - id, _ := strconv.Atoi(c.Param("id")) - errCode := saleChanceService.DeleteSaleChance(id) + errCode := saleChanceService.DeleteSaleChance(params.Ids) if errCode != ecode.OK { ctx.Fail(errCode) return @@ -69,8 +72,8 @@ // @Tags SaleChance // @Summary 鏇存柊閿�鍞満浼� // @Produce application/json -// @Param object body request.UpdateSaleChance -// @Success 200 {object} contextx.Response{} +// @Param object body request.UpdateSaleChance true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} // @Router /api/saleChance/update [put] func (s *SaleChanceApi) Update(c *gin.Context) { var params request.UpdateSaleChance @@ -79,14 +82,21 @@ return } - id, _ := strconv.Atoi(c.Param("id")) + // check id + if params.Id == 0 { + ctx.Fail(ecode.InvalidParams) + return + } + errCode, saleChance := checkSaleChanceParams(params.SaleChance) if errCode != ecode.OK { ctx.Fail(errCode) return } - errCode = saleChanceService.UpdateSaleChance(id, &saleChance) + saleChance.Id = params.Id + + errCode = saleChanceService.UpdateSaleChance(&saleChance) if errCode != ecode.OK { ctx.Fail(errCode) return @@ -95,25 +105,144 @@ ctx.Ok() } +// checkSaleChanceParams +// 妫�鏌ラ攢鍞満浼氬弬鏁� +func checkSaleChanceParams(saleChance request.SaleChance) (int, model.SaleChance) { + var errCode int + var sc model.SaleChance + + //if saleChance.Name == "" { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + // + //if saleChance.Number == "" { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + // + //if saleChance.MemberId == 0 { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + // + //if saleChance.Currency == 0 { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + // + //if saleChance.ExpectedTime == "" { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + // + //if saleChance.ProjectedAmount == 0 { + // errCode = ecode.InvalidParams + // return errCode, sc + //} + + t, err := checkTimeFormat(saleChance.ExpectedTime) + if err != nil { + errCode = ecode.InvalidParams + return errCode, sc + } + + sc.ExpectedTime = t + + sc.Name = saleChance.Name + sc.Number = saleChance.Number + sc.ContactId = saleChance.ContactId + sc.ClientId = saleChance.ClientId + sc.SalesSourcesId = saleChance.SalesSourcesId + sc.SaleTypeId = saleChance.SaleTypeId + sc.SaleStageId = saleChance.SaleStageId + sc.MemberId = saleChance.MemberId + sc.RegularCustomersId = saleChance.RegularCustomersId + sc.Competitors = saleChance.Competitors + sc.PossibilitiesId = saleChance.Possibilities + sc.Budget = saleChance.Budget + sc.ProjectedAmount = saleChance.ProjectedAmount + sc.Currency = saleChance.Currency + sc.StatusId = saleChance.StatusId + sc.PainPoints = saleChance.PainPoints + sc.WhetherEstablished = saleChance.WhetherEstablished + sc.CapitalBudget = saleChance.CapitalBudget + sc.KeyMaker = saleChance.KeyMaker + sc.KeyFactors = saleChance.KeyFactors + sc.Process = saleChance.Process + sc.Solutions = saleChance.Solutions + sc.Advantages = saleChance.Advantages + sc.Disadvantages = saleChance.Disadvantages + sc.Opportunities = saleChance.Opportunities + sc.Threats = saleChance.Threats + sc.Remark = saleChance.Remark + sc.DetailAddress = saleChance.DetailAddress + sc.Address.RegionId = saleChance.Address.RegionId + sc.Address.CityId = saleChance.Address.CityId + sc.Address.CountryId = saleChance.Address.CountryId + sc.Address.ProvinceId = saleChance.Address.ProvinceId + + return ecode.OK, sc +} + // List // -// @Tags SaleChance -// @Summary 鑾峰彇閿�鍞満浼氬垪琛� -// @Produce application/json -// @Success 200 {object} contextx.Response{} -// @Router /api/saleChance/list [get] -func (s *SaleChanceApi) List(c *gin.Context) { - var params request.ListSaleChance +// @Tags SaleChance +// @Summary 閿�鍞満浼氬垪琛� +// @Produce application/json +// @Param object body request.GetSaleChanceList true "鍙傛暟" +// +// @Success 200 {object} contextx.Response{data=response.SaleChanceResponse} +// +// @Router /api/saleChance/list [post] +func (con *SaleChanceApi) List(c *gin.Context) { + var params request.GetSaleChanceList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } - errCode, list, total := saleChanceService.ListSaleChance(params.Page, params.Limit) + 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 + } + + saleChances, total, errCode := saleChanceService.GetSaleChanceList(params.Page, params.PageSize, params.SearchMap) if errCode != ecode.OK { ctx.Fail(errCode) return } - ctx.OkWithDetailed() + ctx.OkWithDetailed(response.SaleChanceResponse{ + List: saleChances, + Count: int(total), + }) +} + +// Push +// +// @Tags SaleChance +// @Summary 鎺ㄨ繘閿�鍞満浼� +// @Produce application/json +// @Param object body request.PushSaleChance true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} +// @Router /api/saleChance/push [put] +func (s *SaleChanceApi) Push(c *gin.Context) { + var params request.PushSaleChance + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + ctx.Fail(ecode.InvalidParams) + return + } + + errCode := saleChanceService.PushSaleChance(params.Id, params.Step) + if errCode != ecode.OK { + ctx.Fail(errCode) + return + } + + ctx.Ok() } -- Gitblit v1.8.0