Browse Source

no message

xingzai 2 years ago
parent
commit
b6aa5b3bca

+ 2 - 0
models/db_init.go

@@ -31,6 +31,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/contract_service_detail"
 	"hongze/hongze_mobile_admin/models/tables/contract_service_template"
 	"hongze/hongze_mobile_admin/models/tables/contract_template"
+	"hongze/hongze_mobile_admin/models/tables/cygx_company_user_type"
 	"hongze/hongze_mobile_admin/models/tables/english_company"
 	"hongze/hongze_mobile_admin/models/tables/h5_admin_session"
 	"hongze/hongze_mobile_admin/models/tables/report"
@@ -114,6 +115,7 @@ func init() {
 		new(company_product_try_out_update_log.CompanyProductTryOutUpdateLog), //客户产品试用变更状态表
 		new(company_product_try_out_update_permission_log.CompanyProductTryOutUpdatePermissionLog), //客户产品试用变更品种详情表
 		new(english_company.EnglishCompany), // 英文客户表
+		new(cygx_company_user_type.CygxCompanyUserType), // 英文客户表
 	)
 
 	// 社区问答相关

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

@@ -72,4 +72,29 @@ func GetCompanyContractDetailByContractIds(contractIds string) (list []*CompanyC
 	sql := `SELECT * FROM company_contract WHERE company_contract_id in (` + contractIds + `)`
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
+}
+
+//根据合同id集合字符串获取权限列表数据
+type CompanyContractPermissionName struct {
+	Id                  int       `orm:"column(id);pk" description:"客户合同id"`
+	CompanyId           int       `description:"客户id"`
+	CompanyContractId   int       `description:"合同id"`
+	ChartPermissionId   int       `description:"权限id"`
+	ChartPermissionName string    `description:"权限名称"`
+	PermissionName      string    `description:"权限名称"`
+	PermissionRemark    string    `description:"权限备注"`
+	ClassifyName        string    `description:"权限分类名称"`
+	StartDate           string    `description:"开始日期"`
+	EndDate             string    `description:"结束日期"`
+	CreateTime          time.Time `json:"-" description:"创建时间"`
+	ModifyTime          time.Time `json:"-" description:"修改时间"`
+	IsUpgrade           int       `description:"是否升级,1是,0否"`
+}
+
+// GetCompanyContractPermissionListByContractId 根据合同Id获取合同的权限列表
+func GetCompanyContractPermissionListByContractId(companyContractId int) (list []*CompanyContractPermissionName, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT a.*,b.chart_permission_name,b.classify_name FROM company_contract_permission AS a left join chart_permission b on a.chart_permission_id = b.chart_permission_id WHERE company_contract_id =? `
+	_, err = o.Raw(sql, companyContractId).QueryRows(&list)
+	return
 }

+ 52 - 0
models/tables/cygx_company_user_type/company_user_type.go

@@ -0,0 +1,52 @@
+package cygx_company_user_type
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxCompanyUserType struct {
+	Id             int `orm:"column(id);pk" description:"分析师id"`
+	CompanyId      int
+	CustomerTypeId int       `description:"用户身份ID"`
+	CreateTime     time.Time `description:"创建时间"`
+	ModifyTime     time.Time `description:"创建时间"`
+}
+
+// 新增权益客户身份类型
+func AddCygxCompanyUserType(item *CygxCompanyUserType) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(item)
+	return
+}
+
+func GetCygxCompanyUserTypeByCompanyId(companyId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count FROM cygx_company_user_type AS a WHERE a.company_id=?  `
+	err = o.Raw(sql, companyId).QueryRow(&count)
+	return
+}
+
+// CygxCompanyUserType 更新权益客户身份类型
+func UpdateCygxCompanyUserType(companyId, useType int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_company_user_type SET customer_type_id=? WHERE company_id=? `
+	_, err = o.Raw(sql, useType, companyId).Exec()
+	return
+}
+
+// 通过活动ID获取详情
+func GetCygxCompanyUserType(companyId int) (item *CygxCompanyUserType, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *  FROM cygx_company_user_type AS a WHERE a.company_id=?  `
+	err = o.Raw(sql, companyId).QueryRow(&item)
+	return
+}
+
+// 获取大套餐客户列表
+func GetCygxCompanyUserTypeList() (items []*CygxCompanyUserType, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *  FROM cygx_company_user_type AS a WHERE a.customer_type_id=2  `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 3 - 0
services/company_approval/company_approval.go

@@ -22,6 +22,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/services"
 	"hongze/hongze_mobile_admin/services/alarm_msg"
+	cygxService "hongze/hongze_mobile_admin/services/cygx"
 	"hongze/hongze_mobile_admin/services/flow"
 	"hongze/hongze_mobile_admin/utils"
 	"strings"
@@ -416,6 +417,8 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
 		}
 	}
 
+	//处理权益客户的身份信息
+	go cygxService.UpdateCygxCompanyUserType(recordInfo.CompanyContractId)
 	return
 }
 

+ 64 - 0
services/cygx/company_user_type.go

@@ -0,0 +1,64 @@
+package cygxService
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_mobile_admin/models/tables/company_contract"
+	"hongze/hongze_mobile_admin/models/tables/cygx_company_user_type"
+	"hongze/hongze_mobile_admin/services/alarm_msg"
+	"hongze/hongze_mobile_admin/utils"
+	"strconv"
+	"time"
+)
+
+//func init() {
+//	UpdateCygxCompanyUserType(708)
+//}
+
+// 处理权益客户身份类型(判断是否为大套餐客户)
+func UpdateCygxCompanyUserType(companyApprovalId int) (err error) {
+	defer func() {
+		if err != nil {
+			//fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("移动端,处理权益客户身份类型,判断是否为大套餐客户失败,Err:"+err.Error()+"companyApprovalId:"+strconv.Itoa(companyApprovalId), 3)
+		}
+	}()
+	permissionList, err := company_contract.GetCompanyContractPermissionListByContractId(companyApprovalId)
+	if err != nil {
+		err = errors.New("GetCompanyContractPermissionListByContractId,Err:" + err.Error())
+	}
+	var companyId int
+	mappermissionName := make(map[string]int)
+	for _, v := range permissionList {
+		if v.IsUpgrade == 0 {
+			mappermissionName[v.ChartPermissionName]++
+		}
+		companyId = v.CompanyId
+	}
+	//如果这些条件都满足那么就是大套餐客户
+	if mappermissionName[utils.YI_YAO_NAME] == 2 && mappermissionName[utils.XIAO_FEI_NAME] == 2 && mappermissionName[utils.KE_JI_NAME] == 2 && mappermissionName[utils.ZHI_ZAO_NAME] == 2 && mappermissionName[utils.CE_LUE_NAME] == 1 && mappermissionName[utils.LU_YAN_FU_WU] == 1 {
+		total, e := cygx_company_user_type.GetCygxCompanyUserTypeByCompanyId(companyId)
+		if e != nil {
+			err = errors.New("GetCygxCompanyUserTypeByCompanyId,Err:" + e.Error())
+		}
+		if total == 0 {
+			item := new(cygx_company_user_type.CygxCompanyUserType)
+			item.CompanyId = companyId
+			item.CustomerTypeId = 2 // 大套餐客户类型定义为 2
+			item.CreateTime = time.Now()
+			item.ModifyTime = time.Now()
+			e = cygx_company_user_type.AddCygxCompanyUserType(item)
+		} else {
+			e = cygx_company_user_type.UpdateCygxCompanyUserType(companyId, 2)
+		}
+		if e != nil {
+			err = errors.New("GetCygxCompanyUserTypeByCompanyId,Err:" + e.Error())
+		}
+	} else {
+		e := cygx_company_user_type.UpdateCygxCompanyUserType(companyId, 0)
+		if e != nil {
+			err = errors.New("UpdateCygxCompanyUserType,Err:" + e.Error())
+		}
+	}
+	return
+}

+ 9 - 0
utils/constants.go

@@ -154,4 +154,13 @@ const (
 
 const (
 	SendTemplateMsgAuthorization = "dc855fce962a639faa779cbdd4cd332f"
+)
+
+const (
+	LU_YAN_FU_WU                            = "路演服务"
+	CE_LUE_NAME                      string = "策略"
+	YI_YAO_NAME                      string = "医药"
+	XIAO_FEI_NAME                    string = "消费"
+	KE_JI_NAME                       string = "科技"
+	ZHI_ZAO_NAME                     string = "智造"
 )