zhangchuanxing 1 долоо хоног өмнө
parent
commit
6f2169fd38

+ 10 - 0
controllers/roadshow/calendar.go

@@ -57,6 +57,7 @@ func (this *CalendarController) Add() {
 		return
 	}
 	var req roadshow.AddActivityReq
+	var resp roadshow.AddActivityResp
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
@@ -217,6 +218,14 @@ func (this *CalendarController) Add() {
 			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
 			return
 		}
+		points, addType, err := roadshowService.CheckAddRoadShowCompanyPoint(req.CompanyId, req.ResearcherList)
+		if err != nil {
+			br.Msg = "添加失败"
+			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
+			return
+		}
+		resp.Points = points
+		resp.AddType = addType
 	}
 
 	rsCalendar := new(roadshow.RsCalendar)
@@ -340,6 +349,7 @@ func (this *CalendarController) Add() {
 	//}
 	br.Ret = 200
 	br.Success = true
+	br.Data = resp
 	br.Msg = "保存成功"
 	br.IsAddLog = true
 }

+ 5 - 0
models/roadshow/calendar.go

@@ -29,6 +29,11 @@ type AddActivityReq struct {
 	EnglishCompany   int `description:"是否为英文客户"`
 }
 
+type AddActivityResp struct {
+	Points  int `description:"点数"`
+	AddType int `description:"添加类型,1成功,2失败"`
+}
+
 type CalendarResearcher struct {
 	ResearcherId   int    `description:"研究员id"`
 	ResearcherName string `description:"研究员名称"`

+ 53 - 0
services/roadshow/calendar.go

@@ -5,6 +5,8 @@ import (
 	"errors"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/http"
+	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services/alarm_msg"
@@ -1097,3 +1099,54 @@ func GetCalendarFrom(userPhone, startDate, endDate string) (list []roadshow.User
 	list, err = getCalendarFrom(userPhone, startDate, endDate)
 	return
 }
+
+// 公司添加路演的时候,校验公司对应点数,以及研究员关联行业的权限
+func CheckAddRoadShowCompanyPoint(companyId int, researcherList []*roadshow.CalendarResearcher) (points int, addType int, err error) {
+	addType = 1
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("获取公司剩余点数失败:"+err.Error(), 2)
+		}
+	}()
+	productItemRai, e := company.GetCompanyProductByCompanyIdAndProductId(companyId, utils.COMPANY_PRODUCT_RAI_ID)
+	if e != nil {
+		err = errors.New("GetCompanyProductByCompanyIdAndProductId, Err: " + e.Error())
+		return
+	}
+
+	permissionStr, e := cygx.GetCompanyPermission(companyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermission, Err: " + e.Error())
+		return
+	}
+
+	//用户没有路演服务,以及研究员所关联行业的权限,就进行报错提示
+	if !strings.Contains(permissionStr, utils.LU_YAN_FU_WU) {
+		var adminIds []string
+		for _, v := range researcherList {
+			adminIds = append(adminIds, strconv.Itoa(v.ResearcherId))
+		}
+		askEmailList, e := cygx.GetAskEmailListByAdminIds(strings.Join(adminIds, ","))
+		if e != nil {
+			err = errors.New("GetAskEmailListByAdminIds, Err: " + e.Error())
+			return
+		}
+		for _, v := range askEmailList {
+			if !strings.Contains(permissionStr, v.ChartPermissionName) {
+				addType = 2
+				return
+			}
+		}
+	}
+
+	pointsCompany, e := cygx.GetCygxActivitySpecialPermissionPointsCount(companyId)
+	if e != nil {
+		err = errors.New("GetCygxActivitySpecialPermissionPointsCount, Err: " + e.Error())
+		return
+	}
+
+	if pointsCompany > 0 || productItemRai.Status == utils.COMPANY_STATUS_FORMAL {
+		points = len(researcherList)
+	}
+	return
+}