xingzai 1 سال پیش
والد
کامیت
8fb5a5c1ae
3فایلهای تغییر یافته به همراه140 افزوده شده و 1 حذف شده
  1. 10 1
      controllers/activity.go
  2. 45 0
      models/admin.go
  3. 85 0
      services/activity_wx_template_msg.go

+ 10 - 1
controllers/activity.go

@@ -1234,6 +1234,12 @@ func (this *ActivityController) SignupAdd() {
 	if strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		resp.IsResearch = true
 	}
+
+	//公司线下调研活动客户报名后给建会人,所属销售推送模板信息
+	if signupStatus == "Success" {
+		go services.SendResearchActivitiesTemplateMsg(user, activityInfo, "报名")
+	}
+
 	resp.SignupType = signupType
 	resp.SignupStatus = signupStatus
 	//resp.HasPermission = hasPermission
@@ -1342,11 +1348,14 @@ func (this *ActivityController) SignupCancel() {
 		return
 	}
 
-	go services.YanXuanActivityPointsBillSignupCancel(activityId, uid) // 用户取消报名添加到处理研选扣点
 	// 如果是买方研选下的专家沙龙,同时推给内容组四人
 	if activityInfo.ActivityTypeId == 5 {
 		go services.SendActivitieCancelSignTemplateMsg(user, activityInfo)
 	}
+
+	go services.SendResearchActivitiesTemplateMsg(user, activityInfo, "取消报名") //公司线下调研活动客户报名后给建会人,所属销售推送模板信息
+
+	go services.YanXuanActivityPointsBillSignupCancel(activityId, uid) // 用户取消报名添加到处理研选扣点
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"

+ 45 - 0
models/admin.go

@@ -2,8 +2,46 @@ package models
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"time"
 )
 
+type Admin struct {
+	AdminId                   int    `orm:"column(admin_id);pk" description:"系统用户id"`
+	AdminName                 string `description:"系统用户名称"`
+	AdminAvatar               string `description:"用户头像"`
+	RealName                  string `description:"系统用户姓名"`
+	Password                  string `json:"-"`
+	LastUpdatedPasswordTime   string `json:"-"`
+	Enabled                   int
+	Email                     string `description:"系统用户邮箱"`
+	LastLoginTime             string
+	CreatedTime               time.Time
+	LastUpdatedTime           string
+	Role                      string    `description:"系统用户角色"`
+	Mobile                    string    `description:"手机号"`
+	RoleType                  int       `description:"角色类型:1需要录入指标,0:不需要"`
+	RoleId                    int       `description:"角色ID"`
+	RoleName                  string    `description:"角色名称"`
+	RoleTypeCode              string    `description:"角色类型编码"`
+	DepartmentId              int       `description:"部门id"`
+	DepartmentName            string    `description:"部门名称"`
+	GroupId                   int       `description:"分组id"`
+	GroupName                 string    `description:"分组名称"`
+	Authority                 int       `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
+	Position                  string    `description:"职位"`
+	DisableTime               time.Time `description:"禁用时间"`
+	ChartPermission           int8      `description:"图表权限id"`
+	OpenId                    string    `description:"弘则部门公众号的openid"`
+	UnionId                   string    `description:"微信公众平台唯一标识"`
+	EdbPermission             int8      `description:"指标库操作权限,0:只能操作 自己的,1:所有指标可操作"`
+	MysteelChemicalPermission int8      `description:"钢联化工指标操作权限,0:只能操作 自己的,1:所有指标可操作"`
+	PredictEdbPermission      int8      `description:"预测指标库操作权限,0:只能操作 自己的,1:所有预测指标可操作"`
+	Province                  string    `description:"省"`
+	ProvinceCode              string    `description:"省编码"`
+	City                      string    `description:"市"`
+	CityCode                  string    `description:"市编码"`
+}
+
 type AdminMobileResp struct {
 	Mobile string `description:"手机号"`
 }
@@ -41,3 +79,10 @@ func GetAdminByRoleName(roleName string) (items []*AdminMobileResp, err error) {
 	_, err = o.Raw(sql, roleName).QueryRows(&items)
 	return
 }
+
+func GetSysAdminById(adminId int) (item *Admin, err error) {
+	sql := `SELECT * FROM admin WHERE admin_id=? `
+	o := orm.NewOrmUsingDB("weekly_report")
+	err = o.Raw(sql, adminId).QueryRow(&item)
+	return
+}

+ 85 - 0
services/activity_wx_template_msg.go

@@ -0,0 +1,85 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"strconv"
+	"time"
+)
+
+// SendResearchActivitiesTemplateMsg 线下调研活动报名给所属销售跟建会人员推送
+func SendResearchActivitiesTemplateMsg(user *models.WxUserItem, activityDetail *models.ActivityDetail, doStatus string) (err error) {
+	//如果不是公司线下调研就返回
+	if activityDetail.ActivityTypeId != 4 {
+		return
+	}
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("线下调研活动报名给所属销售跟建会人员推送失败Err"+time.Now().Format("2006-01-02 15:04:05"), ";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint("线下调研活动报名给所属销售跟建会人员推送失败Err:", err.Error(), "活动ID:", activityDetail.ActivityId, "手机号:", user.Mobile), 2)
+		}
+	}()
+	var mobiles []string
+	//获取销售信息
+	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	if sellerItem != nil {
+		mobiles = append(mobiles, sellerItem.Mobile)
+	}
+	//获取建会人员信息
+	admin, err := models.GetSysAdminById(activityDetail.AdminId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	if admin != nil {
+		mobiles = append(mobiles, admin.Mobile)
+	}
+
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	var redirectUrl string
+
+	//first = "【" + activityDetail.ActivityName + "】有客户报名"
+	keyword1 = user.RealName + "——" + user.CompanyName + "(" + sellerItem.RealName + ")"
+	keyword2 = user.Mobile
+	keyword3 = time.Now().Format(utils.FormatDateTime)
+	keyword4 = doStatus + ":" + activityDetail.ActivityName
+	//remark = "点击查看报告详情"
+
+	openIdList, e := models.GetWxOpenIdByMobileSliceList(mobiles)
+	if e != nil {
+		err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityDetail.ActivityId)
+	sendInfo := new(SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityDetail.ArticleId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_COMMENT
+	sendInfo.OpenIdArr = openIdArr
+	err = PublicSendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}