Răsfoiți Sursa

Merge branch 'cygx/cygx_14_7' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

zhangchuanxing 1 săptămână în urmă
părinte
comite
4a20a288ea

+ 43 - 0
controllers/roadshow/calendar.go

@@ -11,6 +11,7 @@ import (
 	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
+	cygxService "hongze/hz_crm_api/services/cygx"
 	roadshowService "hongze/hz_crm_api/services/roadshow"
 	"hongze/hz_crm_api/utils"
 	"strconv"
@@ -210,6 +211,8 @@ func (this *CalendarController) Add() {
 	var productItemRai *company.CompanyProduct
 	roleTypeCode := sysUser.RoleTypeCode
 	//如果是权益销售、权益销售组长、权益管理员 添加的路演信息,做销售与共享销售信息关联查看
+
+	var isRaiRoadShow bool //是否属于权益的路演
 	if req.CompanyId > 0 && req.ActivityType == "路演" && (roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN) {
 		productItemRai, err = company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
@@ -224,8 +227,18 @@ func (this *CalendarController) Add() {
 			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
 			return
 		}
+		isRaiRoadShow = true
 		resp.Points = points
 		resp.AddType = addType
+
+		if addType == 2 {
+			br.Ret = 200
+			br.Success = true
+			br.Data = resp
+			br.Msg = "保存成功"
+			br.IsAddLog = true
+			return
+		}
 	}
 
 	rsCalendar := new(roadshow.RsCalendar)
@@ -344,6 +357,11 @@ func (this *CalendarController) Add() {
 		}
 	}
 
+	//13  给公司添加路演,对应专项调研扣点处理
+	if isRaiRoadShow {
+		go cygxService.SpecialActivityPointsBillRoadShow(int(rsCalendarId), sysUser.AdminId)
+	}
+
 	//if req.ActivityType == "公开会议" {
 	//	go roadshowService.SetPublicMeetingUnionCode()
 	//}
@@ -389,6 +407,7 @@ func (this *CalendarController) Edit() {
 	}
 
 	var req roadshow.EditActivityReq
+	var resp roadshow.AddActivityResp
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
@@ -637,6 +656,7 @@ func (this *CalendarController) Edit() {
 
 	//如果是权益客户,添加销售跟共享销售的信息
 	roleTypeCode := sysUser.RoleTypeCode
+	var isRaiRoadShow bool //是否属于权益的路演
 	//如果是权益销售、权益销售组长、权益管理员 添加的路演信息,做销售与共享销售信息关联查看
 	if req.CompanyId > 0 && req.ActivityType == "路演" && (roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN) {
@@ -647,10 +667,28 @@ func (this *CalendarController) Edit() {
 			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
 			return
 		}
+		isRaiRoadShow = true
 		if productItemRai != nil {
 			calendarUpdateParams["seller_id"] = productItemRai.SellerId
 			calendarUpdateParams["share_seller_id"] = productItemRai.ShareSellerId
 		}
+		points, addType, err := roadshowService.CheckAddRoadShowCompanyPoint(req.CompanyId, req.ResearcherList)
+		if err != nil {
+			br.Msg = "添加失败"
+			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
+			return
+		}
+		isRaiRoadShow = true
+		resp.Points = points
+		resp.AddType = addType
+		if addType == 2 {
+			br.Ret = 200
+			br.Success = true
+			br.Data = resp
+			br.Msg = "保存成功"
+			br.IsAddLog = true
+			return
+		}
 	}
 
 	err = roadshow.UpdateRsCalendar(calendarWhereParams, calendarUpdateParams)
@@ -885,6 +923,10 @@ func (this *CalendarController) Edit() {
 			}(v.ResearcherId, req.RsCalendarId, int(rsCalendarResearcherId))
 		}
 	}
+	//13  给公司添加路演,对应专项调研扣点处理
+	if isRaiRoadShow {
+		go cygxService.SpecialActivityPointsBillRoadShow(req.RsCalendarId, sysUser.AdminId)
+	}
 
 	//for k, v := range req.ResearcherList {
 	//	rsCalendarResearcherItem, err := roadshow.GetRsCalendarResearcherById(req.RsCalendarResearcherId)
@@ -1061,6 +1103,7 @@ func (this *CalendarController) Edit() {
 	//}
 	br.Ret = 200
 	br.Success = true
+	br.Data = resp
 	br.Msg = "保存成功"
 	br.IsAddLog = true
 }

+ 1 - 1
models/roadshow/calendar.go

@@ -31,7 +31,7 @@ type AddActivityReq struct {
 
 type AddActivityResp struct {
 	Points  int `description:"点数"`
-	AddType int `description:"添加类型,1成功,2失败"`
+	AddType int `description:"添加类型,1成功(扣点数),2成功(不扣点数),3失败"`
 }
 
 type CalendarResearcher struct {

+ 19 - 0
services/cygx/activity_points_set.go

@@ -409,6 +409,25 @@ func SpecialActivityPointsBillSubmitMeeting(activityId, adminId int) (err error)
 	return
 }
 
+// 13  给公司添加路演,对应专项调研扣点处理
+func SpecialActivityPointsBillRoadShow(activityId, adminId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			msg := fmt.Sprint("activityId:", activityId)
+			go alarm_msg.SendAlarmMsg("专项调研活动到会研选扣点处理,写入Redis队列消息失败:"+err.Error()+msg, 2)
+		}
+	}()
+	log := &cygx.YanXuanActivityPointsRedis{ActivityId: activityId, SourceType: 13, AdminId: adminId, Source: 2, CreateTime: time.Now()}
+	if utils.Re == nil {
+		err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
+		if err != nil {
+			fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
+		}
+	}
+	return
+}
+
 func init0703() {
 	//2023.07.03剩余服务点数初始化
 	path := "0703.xlsx"

+ 5 - 1
services/roadshow/calendar.go

@@ -1132,8 +1132,11 @@ func CheckAddRoadShowCompanyPoint(companyId int, researcherList []*roadshow.Cale
 			return
 		}
 		for _, v := range askEmailList {
+			if v.Name == "王芳" { // 王芳,不需要判断权限和点数
+				continue
+			}
 			if !strings.Contains(permissionStr, v.ChartPermissionName) {
-				addType = 2
+				addType = 3
 				return
 			}
 		}
@@ -1147,6 +1150,7 @@ func CheckAddRoadShowCompanyPoint(companyId int, researcherList []*roadshow.Cale
 
 	if pointsCompany > 0 || productItemRai.Status == utils.COMPANY_STATUS_FORMAL {
 		points = len(researcherList)
+		addType = 2
 	}
 	return
 }

+ 1 - 1
utils/constants.go

@@ -429,7 +429,7 @@ const (
 
 )
 
-var FilterPermissionNameRai = []string{"专家", "研选/专项点数", "海外调研"} // 权益某些地方不展示的行业
+var FilterPermissionNameRai = []string{"专家", "研选/专项点数", "海外调研", "路演服务"} // 权益某些地方不展示的行业
 
 // GetRaiChartPermissionIdSpecialPoint 获取权益权限,专项路演调研权限ID
 func GetRaiChartPermissionIdSpecialPoint() (chartPermissionId int) {