瀏覽代碼

no message

xingzai 1 年之前
父節點
當前提交
6ab59c1032

+ 9 - 0
models/tables/company_contract/company_contract.go

@@ -2,6 +2,7 @@ package company_contract
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_mobile_admin/models/tables/company_contract_permission"
 	"hongze/hongze_mobile_admin/models/tables/company_report_permission"
 	"time"
 )
@@ -68,6 +69,14 @@ func GetCompanyContractPermissionCheckByContractId(companyId, companyContractId,
 	return
 }
 
+// GetCompanyContractPermissionByCompanyContractId 根据合同ID获取开通的权限
+func GetCompanyContractPermissionByCompanyContractId(companyContractId int) (items []*company_contract_permission.CompanyContractPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_contract_permission WHERE company_contract_id =? ORDER BY modify_time DESC `
+	_, err = o.Raw(sql, companyContractId).QueryRows(&items)
+	return
+}
+
 func GetCompanyContractDetailByContractIds(contractIds string) (list []*CompanyContract, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM company_contract WHERE company_contract_id in (` + contractIds + `)`

+ 2 - 2
models/tables/company_contract_permission/company_contract_permission.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-
 type CompanyContractPermission struct {
 	Id                int       `orm:"column(id);pk" description:"客户合同id"`
 	CompanyId         int       `description:"客户id"`
@@ -19,6 +18,7 @@ type CompanyContractPermission struct {
 	ModifyTime        time.Time `description:"修改时间"`
 	ContractType      string    `description:"签约合同时,当前行业类型:枚举值:'行业新签','行业续约'"`
 	PermissionName    string    `description:"权限名称"`
+	Points            float64   `description:"研选扣点包点数"`
 }
 
 // 获取合同对应的权限列表
@@ -63,4 +63,4 @@ func UpdateCompanyContractPermissionMulti(items []*CompanyContractPermission) (e
 		}
 	}
 	return
-}
+}

+ 5 - 5
services/company_approval/company_approval.go

@@ -427,7 +427,7 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
 					return
 				}
 				if time.Now().After(contractStartDate) {
-					cygxService.ActivitySpecialCompanyApproval(recordInfo.CompanyId,  recordInfo.CompanyContractId, companyInfo.CompanyName) //审批通过的时候专项调研次数更新
+					cygxService.ActivitySpecialCompanyApproval(recordInfo.CompanyId, recordInfo.CompanyContractId, companyInfo.CompanyName) //审批通过的时候专项调研次数更新
 				}
 				//}
 
@@ -437,10 +437,10 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
 				//客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
 				services.AddCompanyApprovalMessageWangYang(recordInfo.CompanyId, recordInfo.CompanyContractId, recordInfo.ApplyRealName, companyInfo.CompanyName)
 
-				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId)                              //研选审批通过的时候研选扣点更新
-				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId)    //如果合同只有研选的时候,自动处理派点
-				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)      // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
-				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId) // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
+				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId, recordInfo.CompanyContractId) //研选审批通过的时候研选扣点更新
+				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId)     //如果合同只有研选的时候,自动处理派点
+				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)       // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
+				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId)  // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
 			}
 		}()
 	} else {

+ 52 - 26
services/company_approval_message.go

@@ -14,7 +14,7 @@ import (
 	"time"
 )
 
-//消息来源类型,1:客户,2:合同,3:用印,4:指标替换,5:问答社区,6:问答评论,7:视频评论,8:线上路演评论
+// 消息来源类型,1:客户,2:合同,3:用印,4:指标替换,5:问答社区,6:问答评论,7:视频评论,8:线上路演评论
 const (
 	CompanyApprovalMessageSourceTypeByCompany          = 1
 	CompanyApprovalMessageSourceTypeByContract         = 2
@@ -33,7 +33,7 @@ const (
 	CompanyApprovalMessageMessageTypeByMessage        = 3
 )
 
-//审批状态,1:待审批,2:已审批,3:已驳回
+// 审批状态,1:待审批,2:已审批,3:已驳回
 const (
 	CompanyApprovalMessageApprovalStatusByPending  = 1
 	CompanyApprovalMessageApprovalStatusByApproved = 2
@@ -138,13 +138,12 @@ func AddCompanyApprovalMessage(createUserId, receiveUserId, companyId, companyAp
 	return
 }
 
-
 // AddCompanyApprovalMessageRai 权益销售客户申请转正后,消息群发给所有销售
-func AddCompanyApprovalMessageRai(companyId , companyContractId int, applyRealName, companyName string) (err error) {
+func AddCompanyApprovalMessageRai(companyId, companyContractId int, applyRealName, companyName string) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println("err:", err)
-			go alarm_msg.SendAlarmMsg("权益销售客户申请转正后,消息群发给所有销售,Err:"+err.Error()+fmt.Sprint("companyId:",companyId,"companyContractId:",companyContractId,"applyRealName:",applyRealName,"companyName:",companyName), 3)
+			go alarm_msg.SendAlarmMsg("权益销售客户申请转正后,消息群发给所有销售,Err:"+err.Error()+fmt.Sprint("companyId:", companyId, "companyContractId:", companyContractId, "applyRealName:", applyRealName, "companyName:", companyName), 3)
 		}
 	}()
 	companyProduct, err := company_product.GetCompanyProductByCompanyIdAndProductId(companyId, 2)
@@ -166,9 +165,9 @@ func AddCompanyApprovalMessageRai(companyId , companyContractId int, applyRealNa
 	if err != nil {
 		return
 	}
-	var mobiles [] string
+	var mobiles []string
 	for _, v := range adminList {
-		mobiles = append(mobiles,v.Mobile)
+		mobiles = append(mobiles, v.Mobile)
 	}
 	openIdList, err := models.GetUserRecordListByMobileArr(mobiles)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -179,36 +178,63 @@ func AddCompanyApprovalMessageRai(companyId , companyContractId int, applyRealNa
 }
 
 // AddCompanyApprovalMessageWangYang 客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
-func AddCompanyApprovalMessageWangYang(companyId , companyContractId int, applyRealName, companyName string) (err error) {
+func AddCompanyApprovalMessageWangYang(companyId, companyContractId int, applyRealName, companyName string) (err error) {
 	defer func() {
 		if err != nil {
-			go alarm_msg.SendAlarmMsg("客户研选行业转正时(王芳审批通过),模板消息提醒汪洋,Err:"+err.Error()+fmt.Sprint("companyId:",companyId,"companyContractId:",companyContractId,"applyRealName:",applyRealName,"companyName:",companyName), 3)
+			go alarm_msg.SendAlarmMsg("客户研选行业转正时(王芳审批通过),模板消息提醒汪洋,Err:"+err.Error()+fmt.Sprint("companyId:", companyId, "companyContractId:", companyContractId, "applyRealName:", applyRealName, "companyName:", companyName), 3)
 		}
 	}()
-	//如果是研选的就推送给汪洋
-	count, e := company_contract.GetCompanyContractPermissionCheckByContractId(companyId, companyContractId, utils.CHART_PERMISSION_ID_YANXUAN)
+
+	var mobiles []string
+	cnf, e := cygx_config.GetConfigByCode(utils.TPL_MSG_YANXAUN_APPROVAL)
 	if e != nil {
-		err = errors.New("GetCompanyContractPermissionCheckByContractId, Err: " + e.Error())
+		err = errors.New("GetCygxConfigDetailByCode, Err: " + e.Error())
 		return
 	}
-	if count == 0 {
+	mobiles = append(mobiles, cnf.ConfigValue)
+	openIdList, e := models.GetUserRecordListByMobileArr(mobiles)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetUserRecordListByMobileArr, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
 		return
 	}
-	var  keyword1, keyword2, keyword3, keyword4 string
-	keyword1 = companyName  + "(" + applyRealName+")"
-	keyword2 = "买方研选转正"
 
-	cnf, e := cygx_config.GetConfigByCode(utils.TPL_MSG_WANG_YANG)
-	if e != nil {
-		err = errors.New("GetConfigByCode, Err: " + e.Error())
+	list, e := company_contract.GetCompanyContractPermissionByCompanyContractId(companyContractId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyContractPermissionByCompanyContractId, Err: " + e.Error())
 		return
 	}
-	var mobiles [] string
-	mobiles = append(mobiles,cnf.ConfigValue)
-	openIdList, err := models.GetUserRecordListByMobileArr(mobiles)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return err
+
+	if len(list) == 0 {
+		return
 	}
-	go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+
+	var haveDingYue bool // 是否签约了研选订阅
+	var points float64   // 是否签约了研选扣点包,以及对应的点数
+	for _, v := range list {
+		if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+			haveDingYue = true
+		}
+		if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+			points = v.Points
+		}
+	}
+	var keyword1, keyword2, keyword3, keyword4 string
+	if haveDingYue {
+		keyword1 = companyName + "(" + applyRealName + ")"
+		keyword2 = time.Now().Format(utils.FormatDateTime)
+		keyword3 = "签约【研选订阅】"
+		go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+	}
+
+	if points > 0 {
+		keyword1 = companyName + "(" + applyRealName + ")"
+		keyword2 = time.Now().Format(utils.FormatDateTime)
+		keyword3 = "签约【研选扣点包(" + fmt.Sprint(points) + "个点)】"
+		go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+	}
+
 	return
-}
+}

+ 12 - 11
services/cygx/activity_points_set.go

@@ -8,19 +8,20 @@ import (
 )
 
 type YanXuanActivityPointsRedis struct {
-	UserId           int       `description:"用户ID"`
-	ComapnyId        int       `description:"公司ID"`
-	ActivityId       int       `description:"活动ID"`
-	PublishStatus    int       `description:"发布状态 1已发布,0未发布"`
-	SourceType       int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会、6 研选审批通过的时候研选扣点更新。"`
-	AdminId          int       `description:"管理员、销售ID"`
-	Source           int       `description:" 来源,1客户端,2后台添加, 3开发人员手动添加、4定时任务"`
-	RegisterPlatform int       `description:"来源 1小程序,2:网页"`
-	CreateTime       time.Time `description:"创建时间"`
+	UserId            int       `description:"用户ID"`
+	ComapnyId         int       `description:"公司ID"`
+	CompanyContractId int       `description:"合同id"`
+	ActivityId        int       `description:"活动ID"`
+	PublishStatus     int       `description:"发布状态 1已发布,0未发布"`
+	SourceType        int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会、6 研选审批通过的时候研选扣点更新。"`
+	AdminId           int       `description:"管理员、销售ID"`
+	Source            int       `description:" 来源,1客户端,2后台添加, 3开发人员手动添加、4定时任务"`
+	RegisterPlatform  int       `description:"来源 1小程序,2:网页"`
+	CreateTime        time.Time `description:"创建时间"`
 }
 
 // 6 研选审批通过的时候研选扣点更新
-func YanXuanCompanyApproval(comapnyId int) (err error) {
+func YanXuanCompanyApproval(comapnyId, companyContractId int) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -29,7 +30,7 @@ func YanXuanCompanyApproval(comapnyId int) (err error) {
 		}
 	}()
 	//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。6 研选审批通过的时候研选扣点更新。7,正式专试用定时任务更新"`
-	log := &YanXuanActivityPointsRedis{ComapnyId: comapnyId, SourceType: 6, Source: 2, CreateTime: time.Now()}
+	log := &YanXuanActivityPointsRedis{ComapnyId: comapnyId, CompanyContractId: companyContractId, SourceType: 6, Source: 2, CreateTime: time.Now()}
 	if utils.Re == nil {
 		err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
 		if err != nil {

+ 3 - 3
services/wechat_send_msg.go

@@ -570,7 +570,7 @@ func SendWxMsgWithRaiSell(first, keyword1, keyword2, keyword3, keyword4 string,
 }
 
 // SendWxMsgWithRaiWangYang 客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
-func SendWxMsgWithRaiWangYang( keyword1, keyword2, keyword3, keyword4 string, openIdList []*models.OpenIdList) (err error) {
+func SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4 string, openIdList []*models.OpenIdList) (err error) {
 	var msg string
 	defer func() {
 		if err != nil {
@@ -590,11 +590,11 @@ func SendWxMsgWithRaiWangYang( keyword1, keyword2, keyword3, keyword4 string, op
 	sendInfo.Keyword2 = keyword2
 	sendInfo.Keyword3 = keyword3
 	sendInfo.Keyword4 = keyword4
-	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApply
+	sendInfo.TemplateId = utils.WxMsgTemplateIdCompanyApprovalMessageRai
 	sendInfo.RedirectUrl = ""
 	sendInfo.RedirectTarget = 3
 	sendInfo.SendType = utils.TEMPLATE_MSG_APPLY
 	sendInfo.OpenIdArr = openIdArr
 	err = SendTemplateMsg(sendInfo)
 	return
-}
+}

+ 6 - 5
utils/constants.go

@@ -168,11 +168,12 @@ const (
 	ZHI_ZAO_NAME                     string = "智造"
 	CHART_PERMISSION_NAME_MF_YANXUAN string = "买方研选"
 	ZHUAN_JIA_ID                     int    = 29
-	CHART_PERMISSION_NAME_70W               = "70w大套餐"            // 权益70w大套餐名称
-	CHART_PERMISSION_ID_70W                 = 2001                // 权益70w大套餐表示的权限ID(自定义)
-	CHART_PERMISSION_NAME_45W               = "45w大套餐"            // 权益45w大套餐名称
-	CHART_PERMISSION_ID_45W                 = 2002                // 权益45w大套餐表示的权限ID(自定义)
-	TPL_MSG_WANG_YANG                       = "tpl_msg_wang_yang" //汪洋手机号地址参数
+	CHART_PERMISSION_NAME_70W               = "70w大套餐"                   // 权益70w大套餐名称
+	CHART_PERMISSION_ID_70W                 = 2001                       // 权益70w大套餐表示的权限ID(自定义)
+	CHART_PERMISSION_NAME_45W               = "45w大套餐"                   // 权益45w大套餐名称
+	CHART_PERMISSION_ID_45W                 = 2002                       // 权益45w大套餐表示的权限ID(自定义)
+	TPL_MSG_WANG_YANG                       = "tpl_msg_wang_yang"        //汪洋手机号地址参数
+	TPL_MSG_YANXAUN_APPROVAL                = "tpl_msg_yanxaun_approval" // 【研选订阅】和【研选扣点包】转正/续约审批通过后,给冯柯然和汪洋和沈涛发送模板消息
 )
 
 const (