xingzai vor 1 Jahr
Ursprung
Commit
71157174a9

+ 33 - 0
models/company/company_approval.go

@@ -0,0 +1,33 @@
+package company
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CompanyApproval struct {
+	CompanyApprovalId   int `orm:"column(company_approval_id);pk"`
+	CompanyId           int
+	ProductId           int
+	ApproveStatus       string    `description:"'待审批','已审批','驳回','已撤回'"`
+	ApproveUserId       int       `description:"审批人"`
+	ApproveRoleTypeCode string    `description:"审批人角色类型"`
+	ApproveRealName     string    `description:"审批人姓名"`
+	ApproveTime         time.Time `description:"审批时间"`
+	ApproveContent      string    `description:"待审内容"`
+	ApplyMethod         int       `description:"申请类型:1:试用->正式,2:冻结—>试用,3:试用延期,4:原销售申请领取流失客户,5:正式客户申请服务更新,6:正式客户补充协议"`
+	ApplyReasons        string    `description:"申请原因"`
+	ApplyUserId         int       `description:"申请人"`
+	ApplyRealName       string    `description:"申请人姓名"`
+	CreateTime          time.Time `description:"申请时间"`
+	ModifyTime          time.Time `description:"修改时间"`
+	CompanyContractId   int       `description:"合同id"`
+	IsFormal            int       `description:"是否已经转正式,0是没有转正式,1是已经转过正式"`
+}
+
+func GetCompanyApprovalById(companyId int) (item *CompanyApproval, err error) {
+	sql := `SELECT * FROM company_approval WHERE company_id=? AND product_id=2 AND approve_status='已审批' order by company_approval_id desc LIMIT 1 `
+	o := orm.NewOrm()
+	err = o.Raw(sql, companyId).QueryRow(&item)
+	return
+}

+ 26 - 0
models/company/company_contract.go

@@ -0,0 +1,26 @@
+package company
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CompanyContractPermission struct {
+	Id                int       `orm:"column(id);pk" description:"客户合同id"`
+	CompanyId         int       `description:"客户id"`
+	CompanyContractId int       `description:"合同id"`
+	ChartPermissionId int       `description:"权限id"`
+	IsUpgrade         int       `description:"是否升级,1是,0否"`
+	ExpensiveYx       int       `description:"权益研选: 0-3w; 1-5w"`
+	StartDate         string    `description:"开始日期"`
+	EndDate           string    `description:"结束日期"`
+	CreateTime        time.Time `description:"创建时间"`
+	ModifyTime        time.Time `description:"修改时间"`
+}
+
+func GetCompanyContractPermissionCheck(companyContractId, permissionId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count FROM company_contract_permission AS a WHERE a.company_contract_id=? AND a.chart_permission_id=? `
+	err = o.Raw(sql, companyContractId, permissionId).QueryRow(&count)
+	return
+}

+ 28 - 5
services/activity_points.go

@@ -5,6 +5,7 @@ import (
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/models/company"
 	"hongze/hongze_cygx/utils"
 	"strconv"
 	"time"
@@ -889,7 +890,7 @@ func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err er
 	}()
 	comapnyId := log.ComapnyId
 
-	comapny, e := models.GetCompanyById(comapnyId)
+	comapnyDetail, e := models.GetCompanyById(comapnyId)
 	if e != nil {
 		err = errors.New("GetCompanyById" + e.Error())
 		return
@@ -913,6 +914,28 @@ func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err er
 	if companyReportPermissionDetail == nil {
 		return // 如果不存在就不做研选扣点处理
 	}
+
+	//获取最近的一条审批合同信息
+	newCompanyApprovalDetail, e := company.GetCompanyApprovalById(comapnyId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyApprovalById, Err: " + e.Error())
+		return
+	}
+	if newCompanyApprovalDetail == nil {
+		return
+	}
+	companyContractId := newCompanyApprovalDetail.CompanyContractId
+
+	totalYxPerminssion, e := company.GetCompanyContractPermissionCheck(companyContractId, utils.CHART_PERMISSION_ID_YANXUAN)
+	if e != nil {
+		err = errors.New("GetCompanyContractPermissionCheck, Err: " + e.Error())
+		return
+	}
+	// 如果最新的审批合同里没有研选的权限,那么就不做处理
+	if totalYxPerminssion == 0 {
+		return
+	}
+
 	var billDetailed float64
 	var content string
 	//ExpensiveYx               int       `description:"权益研选: 0->3w; 1->5w"` 3W3次、5W 15次
@@ -932,8 +955,8 @@ func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err er
 	item.CreateTime = time.Now()
 	//item.Mobile = user.Mobile
 	//item.Email = user.Email
-	item.CompanyId = comapny.CompanyId
-	item.CompanyName = comapny.CompanyName
+	item.CompanyId = comapnyDetail.CompanyId
+	item.CompanyName = comapnyDetail.CompanyName
 	//item.RealName = user.RealName
 	item.BillDetailed = billDetailed
 	item.RegisterPlatform = log.RegisterPlatform
@@ -948,8 +971,8 @@ func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err er
 	//更新对应机构的剩余点数
 	var itemCompanys []*models.CygxActivityPointsCompany
 	itemCompany := new(models.CygxActivityPointsCompany)
-	itemCompany.CompanyId = comapny.CompanyId
-	itemCompany.CompanyName = comapny.CompanyName
+	itemCompany.CompanyId = comapnyDetail.CompanyId
+	itemCompany.CompanyName = comapnyDetail.CompanyName
 	itemCompany.Points = item.Points
 	itemCompany.CreateTime = time.Now()
 	itemCompany.ModifyTime = time.Now()