浏览代码

Merge branch 'crm/crm_fix_bug_0718' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 8 月之前
父节点
当前提交
3f574eaa19
共有 4 个文件被更改,包括 115 次插入29 次删除
  1. 45 3
      controllers/roadshow/calendar.go
  2. 40 0
      services/roadshow/calendar.go
  3. 10 7
      services/task.go
  4. 20 19
      utils/constants.go

+ 45 - 3
controllers/roadshow/calendar.go

@@ -6,6 +6,7 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_crm_api/controllers"
 	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/models/system"
@@ -2269,7 +2270,8 @@ func (this *CalendarController) ResearcherCalendarDetail() {
 		br.Msg = "研究员异常"
 		return
 	}
-	go roadshowService.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+	//go roadshowService.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+	go roadshowService.InsertSyncCalendarFromShanghaiLPush(researcherInfo.Mobile, startDate, endDate)
 
 	condition += ` AND b.start_date>=?`
 	pars = append(pars, startDate)
@@ -2296,13 +2298,52 @@ func (this *CalendarController) ResearcherCalendarDetail() {
 	if calendarList == nil {
 		calendarList = make([]*roadshow.CalendarListView, 0)
 	} else {
+		var sysUserIds []int             //建会人ID
+		var companyIds []int             //公司ID
 		for _, v := range calendarList { //上海同步过来信息展示逻辑替换 需求池 953
 			if v.Source == 1 && v.CompanyName == "" {
 				v.CompanyName = v.Title
 			}
+			sysUserIds = append(sysUserIds, v.SysUserId)
+			companyIds = append(companyIds, v.CompanyId)
 		}
-	}
 
+		//如果是权益销售建的会,客户状态替换成权益那边的
+		mapSellRai := make(map[int]bool)  // 是否是权益销售
+		mapStatus := make(map[int]string) //权益客户对应的状态
+		if len(sysUserIds) > 0 && len(companyIds) > 0 {
+			//判断哪些人是权益销售
+			adminList, err := system.GetAdminListByIdListWithoutEnable(sysUserIds)
+			if err != nil {
+				br.Msg = "获取数据失败"
+				br.ErrMsg = "获取数据失败,GetAdminListByIdListWithoutEnable Err:" + err.Error()
+				return
+			}
+			for _, v := range adminList {
+				if v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+					mapSellRai[v.AdminId] = true
+				}
+			}
+
+			conditionProduct := `  AND company_id  IN (` + utils.GetOrmInReplace(len(companyIds)) + `) AND  product_id = 2 `
+			parsProduct := make([]interface{}, 0)
+			parsProduct = append(parsProduct, companyIds)
+			productList, err := company.GetCompanyProductList(conditionProduct, parsProduct)
+			if err != nil {
+				br.Msg = "获取数据失败"
+				br.ErrMsg = "获取数据失败,GetCompanyProductList Err:" + err.Error()
+				return
+			}
+			for _, v := range productList {
+				mapStatus[v.CompanyId] = v.Status
+			}
+		}
+		for _, v := range calendarList {
+			if mapSellRai[v.SysUserId] && mapStatus[v.CompanyId] != "" {
+				v.CompanyStatus = mapStatus[v.CompanyId]
+			}
+		}
+	}
 	if matterList == nil {
 		matterList = make([]*roadshow.RsMatters, 0)
 	}
@@ -2372,7 +2413,8 @@ func (this *CalendarController) MyCalendarDetail() {
 			br.Msg = "研究员异常"
 			return
 		}
-		go roadshowService.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+		//go roadshowService.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+		go roadshowService.InsertSyncCalendarFromShanghaiLPush(researcherInfo.Mobile, startDate, endDate)
 	}
 
 	//中级/普通/admin 管理员

+ 40 - 0
services/roadshow/calendar.go

@@ -17,6 +17,46 @@ import (
 	"time"
 )
 
+type SyncCalendarFromShanghaiRecord struct {
+	UserPhone string `description:"手机号"`
+	StartDate string `description:"开始时间"`
+	EndDate   string `description:"结束时间"`
+}
+
+// 上海路演数据同步到自系统 从Redis获取
+func InsertSyncCalendarFromShanghai() {
+	var err error
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("上海路演数据同步到自系统 失败;InsertSyncCalendarFromShanghai ERR:"+err.Error(), 3)
+		}
+	}()
+	for {
+		utils.Rc.Brpop(utils.CACHE_KEY_SHANG_HAI_RS_CALENDAR_API, func(b []byte) {
+			record := new(SyncCalendarFromShanghaiRecord)
+			if err := json.Unmarshal(b, &record); err != nil {
+				fmt.Println("json unmarshal wrong!")
+			}
+			//fmt.Println(record.UserPhone)
+			_ = SyncCalendarFromShanghai(record.UserPhone, record.StartDate, record.EndDate)
+		})
+	}
+}
+
+// 上海路演数据同步到自系统请求放到Redis
+func InsertSyncCalendarFromShanghaiLPush(userPhone, startDate, endDate string) bool {
+	log := &SyncCalendarFromShanghaiRecord{UserPhone: userPhone, StartDate: startDate, EndDate: endDate}
+	if utils.Re == nil {
+		err := utils.Rc.LPush(utils.CACHE_KEY_SHANG_HAI_RS_CALENDAR_API, log)
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("上海路演数据同步到自系统 失败;InsertSyncCalendarFromShanghaiLPush ERR:"+err.Error(), 3)
+		}
+		return true
+	}
+	return false
+}
+
 // getAccessToken token内部请求接口
 func getAccessToken() (tokenData roadshow.TokenData, err error) {
 	defer func() {

+ 10 - 7
services/task.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/eta_business"
+	roadshowService "hongze/hz_crm_api/services/roadshow"
 	"hongze/hz_crm_api/utils"
 	"time"
 )
@@ -15,6 +16,8 @@ func Task() {
 
 	go AutoInsertAdminOperateRecordToDB()
 
+	go roadshowService.InsertSyncCalendarFromShanghai() // 上海路演数据同步到自系统 从Redis获取
+
 	//go FixEtaBusinessCodeEncrypt()
 	//InitContractUnusual()
 	fmt.Println("task end")
@@ -91,13 +94,13 @@ func InitContractUnusual() (err error) {
 				//查询这个合同是否存在续约合同,起始日大于今日,或者截止日
 				if _, ok := ficcNormalMap[v.CompanyId]; !ok {
 					tmp := &company.CompanyRenewalRecord{
-						CompanyId:       v.CompanyId,
-						ProductId:       v.ProductId,
-						Source:          1,
-						SellerId:        sellers.SellerId,
-						SellerName:      sellers.SellerName,
-						CreateTime:      startDate,
-						ModifyTime:      startDate,
+						CompanyId:  v.CompanyId,
+						ProductId:  v.ProductId,
+						Source:     1,
+						SellerId:   sellers.SellerId,
+						SellerName: sellers.SellerName,
+						CreateTime: startDate,
+						ModifyTime: startDate,
 					}
 					addList = append(addList, tmp)
 				}

+ 20 - 19
utils/constants.go

@@ -280,25 +280,26 @@ const (
 
 // 缓存key
 const (
-	CACHE_KEY_LOGS                    = "HZ_ADMIN_CACHE_KEY_LOGS"             //api用户操作日志队列
-	CACHE_KEY_ADMIN                   = "calendar:admin:list"                 //系统用户列表缓存key
-	CACHE_KEY_ADMIN_ID                = "calendar:admin:id:list"              //系统用户列表缓存key
-	CACHE_KEY_OLD_REPORT_PUBLISH      = "HZ_CACHE_KEY_OLD_REPORT_PUBLISH"     //老后台报告发布队列
-	CACHE_ADMIN_YB_CONFIG             = "admin:yb_config:"                    //研报配置相关缓存前缀
-	CACHE_WIND_URL                    = "CACHE_WIND_URL"                      //指标与wind服务器的绑定关系
-	CACHE_CHART_INFO_DATA             = "chart:info:data:"                    //图表数据
-	CACHE_CHART_CLASSIFY              = "chart:classify"                      //图表分类数据
-	CACHE_IMPORT_MANUAL_DATA          = "import:manual:data"                  //手工数据导入后刷新
-	CACHE_ACCESS_TOKEN_LOGIN          = "pc_admin:login:"                     //管理后台登录
-	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_admin:login:no_trust:"            //管理后台登录(不可信登录态)
-	CACHE_ABNORMAL_LOGIN              = "pc_admin:login:abnormal:"            //管理后台登录-异常登录
-	CACHE_LOGIN_ERR_PASS              = "pc_admin:login:errPass:"             //管理后台登录-输入错误密码次数
-	CACHE_FIND_PASS_VERIFY            = "pc_admin:findPass:verify:"           //找回密码校验成功标记
-	CACHE_KEY_COMPANY_MATCH_PRE       = "admin:company:match:"                //客户名单匹配
-	CACHE_KEY_MYSTEEL_REFRESH         = "mysteel_chemical:refresh"            //钢联化工刷新
-	CACHE_KEY_DAYNEW_REFRESH          = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
-	CACHE_KEY_DAYNEW_TRANSLATE        = "admin:day_new:translate"             //每日资讯中翻英
-	CACHE_KEY_ADMIN_OPERATE_RECORD    = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
+	CACHE_KEY_LOGS                      = "HZ_ADMIN_CACHE_KEY_LOGS"             //api用户操作日志队列
+	CACHE_KEY_ADMIN                     = "calendar:admin:list"                 //系统用户列表缓存key
+	CACHE_KEY_ADMIN_ID                  = "calendar:admin:id:list"              //系统用户列表缓存key
+	CACHE_KEY_OLD_REPORT_PUBLISH        = "HZ_CACHE_KEY_OLD_REPORT_PUBLISH"     //老后台报告发布队列
+	CACHE_ADMIN_YB_CONFIG               = "admin:yb_config:"                    //研报配置相关缓存前缀
+	CACHE_WIND_URL                      = "CACHE_WIND_URL"                      //指标与wind服务器的绑定关系
+	CACHE_CHART_INFO_DATA               = "chart:info:data:"                    //图表数据
+	CACHE_CHART_CLASSIFY                = "chart:classify"                      //图表分类数据
+	CACHE_IMPORT_MANUAL_DATA            = "import:manual:data"                  //手工数据导入后刷新
+	CACHE_ACCESS_TOKEN_LOGIN            = "pc_admin:login:"                     //管理后台登录
+	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST   = "pc_admin:login:no_trust:"            //管理后台登录(不可信登录态)
+	CACHE_ABNORMAL_LOGIN                = "pc_admin:login:abnormal:"            //管理后台登录-异常登录
+	CACHE_LOGIN_ERR_PASS                = "pc_admin:login:errPass:"             //管理后台登录-输入错误密码次数
+	CACHE_FIND_PASS_VERIFY              = "pc_admin:findPass:verify:"           //找回密码校验成功标记
+	CACHE_KEY_COMPANY_MATCH_PRE         = "admin:company:match:"                //客户名单匹配
+	CACHE_KEY_MYSTEEL_REFRESH           = "mysteel_chemical:refresh"            //钢联化工刷新
+	CACHE_KEY_DAYNEW_REFRESH            = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
+	CACHE_KEY_DAYNEW_TRANSLATE          = "admin:day_new:translate"             //每日资讯中翻英
+	CACHE_KEY_ADMIN_OPERATE_RECORD      = "HZ_ADMIN_CACHE_ADMIN_OPERATE_RECORD" //系统用户操作日志队列
+	CACHE_KEY_SHANG_HAI_RS_CALENDAR_API = "hz_crm_shang_hai_rs_calendar_api"    //上海研究员日历同步对列
 
 	CACHE_SYNC_ADMIN      = "hz_crm_eta:sync_admin"      // 同步用户的缓存队列key
 	CACHE_SYNC_ROLE       = "hz_crm_eta:sync_role"       // 同步角色的缓存队列key