xingzai 2 年 前
コミット
0b03f4a3a7
3 ファイル変更174 行追加43 行削除
  1. 0 43
      models/activity.go
  2. 48 0
      models/activity_special.go
  3. 126 0
      services/activity_special.go

+ 0 - 43
models/activity.go

@@ -796,41 +796,6 @@ func GetActivityLabelSpecialListAll(condition string, pars []interface{}, startS
 	return
 }
 
-//专项调研活动列表
-type CygxActivitySpecialDetail struct {
-	ActivityId            int    `description:"活动ID "`
-	ActivityTypeName      string `description:"活动名称"`
-	SpecialType           int    `description:"调研形式、 1 线上 , 2 线下"`
-	City                  string `description:"调研城市"`
-	ChartPermissionName   string `description:"行业名称"`
-	ChartPermissionId     string `description:"行业Id"`
-	ResearchTheme         string `description:"调研主题"`
-	ActivityTimeText      string `description:"活动预期时间带文字"`
-	TripImgLink           string `description:"行程图片链接"`
-	IsSignup              int    `description:"是否感兴趣 1是 ,0 否"`
-	Label                 string `description:"主题标签"`
-	ImgUrl                string `description:"图片链接"`
-	ImgUrlText            string `description:"图片链接文字"`
-	IndustrialName        string `description:"产业名称"`
-	IndustrialSubjectName string `description:"标的名称(相关公司)"`
-	Scale                 string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。多个用, 隔开"`
-	CustomerTypeIds       string `description:"活动可见的客户类型,多个ID用 , 隔开"`
-	IsTrip                int    `description:"是否报名 1是 ,0 否"`
-	TripNum               int    `description:"已报名人数"`
-	Days                  int    `description:"调研天数"`
-	Host                  string `description:"主持人"`
-	PersonInCharge        string `description:"纪要负责人"`
-	LimitPeopleNum        int    `description:"限制人数数量"`
-	TripImgLinkFix        string `description:"确定行程之后的图片链接"`
-	ActivityTimeTextByDay string `description:"活动预期时间带周日"`
-	ActivityTime          string `description:"活动预期时间"`
-	ActivityTimeEnd       string `description:"活动预期结束时间"`
-	ActiveState           int    `description:"活动进行状态 未开始:1、进行中2、已结束3"`
-	TripStatus            int    `description:"行程进行状态 1:预报名,2:确定行程"`
-	Explain               string `description:"说明"`
-	AdminId               int    `description:"管理员ID"`
-}
-
 type GetCygxActivitySpecialDetailListResp struct {
 	IsFollow        bool               `description:"是否关注新调研通知"`
 	IsBindingMobile bool               `description:"是否绑定了手机号"`
@@ -899,14 +864,6 @@ func GetCygxActivitySpecialDetail(ActivityId int) (item *CygxActivitySpecialDeta
 	return
 }
 
-//列表
-func GetActivityList() (items []*CygxActivityList, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT  *  FROM cygx_activity`
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
 func UpdateCygxActivityName(activityId int, Name string) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE cygx_activity SET activity_name_task = ? WHERE activity_id=?  `

+ 48 - 0
models/activity_special.go

@@ -5,6 +5,41 @@ import (
 	"github.com/beego/beego/v2/client/orm"
 )
 
+//专项调研活动列表
+type CygxActivitySpecialDetail struct {
+	ActivityId            int    `description:"活动ID "`
+	ActivityTypeName      string `description:"活动名称"`
+	SpecialType           int    `description:"调研形式、 1 线上 , 2 线下"`
+	City                  string `description:"调研城市"`
+	ChartPermissionName   string `description:"行业名称"`
+	ChartPermissionId     string `description:"行业Id"`
+	ResearchTheme         string `description:"调研主题"`
+	ActivityTimeText      string `description:"活动预期时间带文字"`
+	TripImgLink           string `description:"行程图片链接"`
+	IsSignup              int    `description:"是否感兴趣 1是 ,0 否"`
+	Label                 string `description:"主题标签"`
+	ImgUrl                string `description:"图片链接"`
+	ImgUrlText            string `description:"图片链接文字"`
+	IndustrialName        string `description:"产业名称"`
+	IndustrialSubjectName string `description:"标的名称(相关公司)"`
+	Scale                 string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。多个用, 隔开"`
+	CustomerTypeIds       string `description:"活动可见的客户类型,多个ID用 , 隔开"`
+	IsTrip                int    `description:"是否报名 1是 ,0 否"`
+	TripNum               int    `description:"已报名人数"`
+	Days                  int    `description:"调研天数"`
+	Host                  string `description:"主持人"`
+	PersonInCharge        string `description:"纪要负责人"`
+	LimitPeopleNum        int    `description:"限制人数数量"`
+	TripImgLinkFix        string `description:"确定行程之后的图片链接"`
+	ActivityTimeTextByDay string `description:"活动预期时间带周日"`
+	ActivityTime          string `description:"活动预期时间"`
+	ActivityTimeEnd       string `description:"活动预期结束时间"`
+	ActiveState           int    `description:"活动进行状态 未开始:1、进行中2、已结束3"`
+	TripStatus            int    `description:"行程进行状态 1:预报名,2:确定行程"`
+	Explain               string `description:"说明"`
+	AdminId               int    `description:"管理员ID"`
+}
+
 //获取数量
 func GetActivitySpecialCount(condition string, pars []interface{}) (count int, err error) {
 	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_special as art WHERE 1= 1  `
@@ -15,3 +50,16 @@ func GetActivitySpecialCount(condition string, pars []interface{}) (count int, e
 	err = o.Raw(sqlCount, pars).QueryRow(&count)
 	return
 }
+
+//主题列表
+func GetActivitySpecialListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivitySpecialDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT	*
+		FROM cygx_activity_special as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY art.last_updated_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 126 - 0
services/activity_special.go

@@ -710,3 +710,129 @@ func SendWxMsgActivitySpecial10(activityInfo *models.CygxActivitySpecialDetail)
 	}
 	return
 }
+
+func init() {
+	SendWxMsgActivitySpecialTwoDays()
+}
+
+//SendWxMsgActivitySpecialTwoDays  活动开始前两天08:00,提醒报名客户 \提醒报名客户的对口销售
+func SendWxMsgActivitySpecialTwoDays() (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint(" 活动开始前两天08:00,提醒报名客户、提醒报名客户的对口销售消息发送失败"), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	twoDayTime := time.Now().AddDate(0, 0, 10)
+	startTime := twoDayTime.Format(utils.FormatDate) + " 00:00:00"
+	endTime := twoDayTime.Format(utils.FormatDate) + " 23:59:59"
+	var condition string
+	var pars []interface{}
+	condition = ` AND days >0  AND activity_time BETWEEN ? AND  ? `
+	pars = append(pars, startTime, endTime)
+	listActivitySpecial, e := models.GetActivitySpecialListAll(condition, pars, 0, 1000)
+	if e != nil {
+		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		return
+	}
+	if len(listActivitySpecial) == 0 {
+		return
+	}
+	type WxMapData struct {
+		First    string `description:"标题"`
+		Keyword1 string `description:"Keyword "`
+		Keyword2 string `description:"Keyword "`
+		Keyword3 string `description:"Keyword "`
+		Keyword4 string `description:"Keyword "`
+		Remark   string `description:"Remark "`
+	}
+	var activityIds []int
+
+	for _, v := range listActivitySpecial {
+		activityIds = append(activityIds, v.ActivityId)
+		condition = ` AND activity_id = ` + strconv.Itoa(v.ActivityId)
+		pars = make([]interface{}, 0)
+		listSpecialTrip, e := models.GetCygxActivitySpecialTripList(condition, pars)
+		if e != nil {
+			err = errors.New("GetCygxActivitySpecialTripList, Err: " + e.Error())
+			return
+		}
+		if len(listSpecialTrip) == 0 {
+			return
+		}
+		var mobile string
+		var companyIds []int
+		for _, vT := range listSpecialTrip {
+			mobile += "'" + vT.Mobile + "',"
+			companyIds = append(companyIds,v.)
+		}
+		mobile = strings.TrimRight(mobile, ",")
+		mobile = "15557270714"
+		openIdList, e := models.GetWxOpenIdByMobileList(mobile)
+		if e != nil {
+			err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+			return
+		}
+		first := "【" + v.ResearchTheme + "】专项调研将在两天后进行,如不能参加,请及时取消报名"
+		keyword1 := v.ResearchTheme
+		keyword2 := "已报名"
+		keyword3 := v.ActivityTimeTextByDay
+		keyword4 := "线上"
+		if v.SpecialType == 2 {
+			keyword4 = v.City
+		}
+		remark := "点击查看活动详情"
+		SendWxMsgWithFrequency(first, keyword1, keyword2, keyword3, keyword4, remark, openIdList, v.ActivityId)
+		//openIdArr := make([]string, 0)
+		//for _, v := range openIdList {
+		//	openIdArr = append(openIdArr, v.OpenId)
+		//}
+		//redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(v.ActivityId)
+		//sendInfo := new(SendWxTemplate)
+		//sendInfo.First = first
+		//sendInfo.Keyword1 = keyword1
+		//sendInfo.Keyword2 = keyword2
+		//sendInfo.Keyword3 = keyword3
+		//sendInfo.Keyword4 = keyword4
+		//sendInfo.Remark = "点击查看活动详情"
+		//sendInfo.TemplateId = utils.WxMsgTemplateIdActivityApplyXzs
+		//sendInfo.RedirectUrl = redirectUrl
+		//sendInfo.RedirectTarget = 3
+		//sendInfo.Resource = strconv.Itoa(v.ActivityId)
+		//sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD
+		//sendInfo.OpenIdArr = openIdArr
+		//fmt.Println(sendInfo)
+		////return
+		//err = PublicSendTemplateMsg(sendInfo)
+		//if err != nil {
+		//	return
+		//}
+		fmt.Println(mobile)
+	}
+
+	//pars = make([]interface{}, 0)
+	//if len(activityIds) > 0 {
+	//	condition = ` AND activity_id IN (` + utils.GetOrmInReplace(len(activityIds)) + `)`
+	//	pars = append(pars, activityIds)
+	//} else {
+	//	return
+	//}
+	//listSpecialTrip, e := models.GetCygxActivitySpecialTripList(condition, pars)
+	//if e != nil {
+	//	err = errors.New("GetCygxActivitySpecialTripList, Err: " + e.Error())
+	//	return
+	//}
+	//if len(listSpecialTrip) == 0 {
+	//	return
+	//}
+	//for _, v := range listSpecialTrip {
+	//	fmt.Println(v)
+	//}
+	fmt.Println(startTime)
+	fmt.Println(endTime)
+	fmt.Println(twoDayTime)
+	return
+}