Ver Fonte

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

xingzai há 7 meses atrás
pai
commit
bc6d8be367

+ 47 - 2
controllers/roadshow/calendar.go

@@ -9,6 +9,7 @@ import (
 	"hongze/hongze_mobile_admin/models/cygx"
 	"hongze/hongze_mobile_admin/models/roadshow"
 	"hongze/hongze_mobile_admin/models/tables/admin"
+	"hongze/hongze_mobile_admin/models/tables/company_product"
 	"hongze/hongze_mobile_admin/models/tables/english_company"
 	"hongze/hongze_mobile_admin/models/tables/system"
 	"hongze/hongze_mobile_admin/services"
@@ -2006,7 +2007,8 @@ func (this *CalendarController) ResearcherCalendarDetail() {
 		this.FailWithMessage("研究员异常!", "研究员异常"+err.Error())
 		return
 	}
-	go rs.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+	//go rs.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+	go rs.InsertSyncCalendarFromShanghaiLPush(researcherInfo.Mobile, startDate, endDate)
 
 	condition += ` AND b.start_date>=?`
 	pars = append(pars, startDate)
@@ -2031,10 +2033,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
 			}
+			if v.SysUserId > 0 {
+				sysUserIds = append(sysUserIds, v.SysUserId)
+			}
+			if v.CompanyId > 1 {
+				companyIds = append(companyIds, v.CompanyId)
+			}
+		}
+
+		//如果是权益销售建的会,客户状态替换成权益那边的
+		mapSellRai := make(map[int]bool)  // 是否是权益销售
+		mapStatus := make(map[int]string) //权益客户对应的状态
+		if len(sysUserIds) > 0 && len(companyIds) > 0 {
+			//判断哪些人是权益销售
+			adminList, err := admin.GetAdminListByIdListWithoutEnable(sysUserIds)
+			if err != nil {
+				this.FailWithMessage("获取数据失败!", "获取数据失败,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_product.GetCompanyProductList(conditionProduct, parsProduct)
+			if err != nil {
+				this.FailWithMessage("获取数据失败!", "获取数据失败,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]
+			}
 		}
 	}
 
@@ -2097,7 +2141,8 @@ func (this *CalendarController) MyCalendarDetail() {
 			this.FailWithMessage("研究员异常!", "研究员异常"+err.Error())
 			return
 		}
-		go rs.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+		//go rs.SyncCalendarFromShanghai(researcherInfo.Mobile, startDate, endDate)
+		go rs.InsertSyncCalendarFromShanghaiLPush(researcherInfo.Mobile, startDate, endDate)
 	}
 
 	//中级/普通/admin 管理员

+ 13 - 0
models/tables/admin/admin.go

@@ -4,6 +4,7 @@ import (
 	//_ "github.com/go-sql-driver/mysql"
 	"github.com/beego/beego/v2/client/orm"
 	"hongze/hongze_mobile_admin/models/custom"
+	"hongze/hongze_mobile_admin/utils"
 	"time"
 )
 
@@ -212,3 +213,15 @@ func GetSysuserRaiList() (items []*AdminItem, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// GetAdminListByIdList 根据用户id列表获取系统用户列表
+func GetAdminListByIdListWithoutEnable(idList []int) (items []*Admin, err error) {
+	lenNum := len(idList)
+	if lenNum <= 0 {
+		return
+	}
+	sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, idList).QueryRows(&items)
+	return
+}

+ 11 - 0
models/tables/company_product/company_product.go

@@ -124,3 +124,14 @@ func GetCompanyProductRaiForeverCount(companyId int) (count int, err error) {
 	err = o.Raw(sqlCount, companyId).QueryRow(&count)
 	return
 }
+
+// 获取列表
+func GetCompanyProductList(condition string, pars []interface{}) (items []*CompanyProduct, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *  FROM company_product WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 20 - 0
services/rs/calendar.go

@@ -17,6 +17,26 @@ import (
 	"time"
 )
 
+type SyncCalendarFromShanghaiRecord struct {
+	UserPhone string `description:"手机号"`
+	StartDate string `description:"开始时间"`
+	EndDate   string `description:"结束时间"`
+}
+
+// 上海路演数据同步到自系统请求放到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() {

+ 1 - 0
utils/constants.go

@@ -118,6 +118,7 @@ const (
 	HZ_MOBILE_ADMIN_WXLOGIN_TOKEN       = "hz_mobile_admin:wxLogin:admin_token:"
 	HZ_MOBILE_ADMIN_WXLOGIN_MOBILE_CODE = "hz_mobile_admin:wxLogin:mobile_code:"
 	HZ_ADMIN_WX_ACCESS_TOEKN            = "hz_admin:wx:access_token:"
+	CACHE_KEY_SHANG_HAI_RS_CALENDAR_API = "hz_crm_shang_hai_rs_calendar_api" //上海研究员日历同步队列
 )
 
 // 微信用户user_record注册平台