소스 검색

no message

zhangchuanxing 2 달 전
부모
커밋
a24479a0e4
3개의 변경된 파일142개의 추가작업 그리고 3개의 파일을 삭제
  1. 78 0
      models/tables/company_contract/company_contract.go
  2. 4 3
      services/company_approval/company_approval.go
  3. 60 0
      services/contract/company_contract.go

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

@@ -4,6 +4,7 @@ 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"
+	"strings"
 	"time"
 )
 
@@ -134,3 +135,80 @@ func GetLastContractListByEndDate(companyId, productId int, endDate string) (ite
 
 	return
 }
+
+type CompanyContractRespInit struct {
+	MaxCompanyContractId int
+	CompanyContractId    int       `orm:"column(company_contract_id);pk" description:"客户合同id"`
+	ContractType         string    `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"`
+	ProductId            int       `description:"产品id"`
+	ProductName          string    `description:"产品名称"`
+	CompanyId            int       `description:"客户id"`
+	CompanyProductId     int       `description:"客户产品id"`
+	ContractCode         string    `description:"合同编码"`
+	StartDate            string    `description:"合同开始时间"`
+	EndDate              time.Time `description:"合同结束时间"`
+	MaxStartDate         time.Time `description:"合同结束时间"`
+	Money                float64   `description:"合同金额"`
+	PayMethod            string    `description:"支付方式"`
+	PayChannel           string    `description:"支付渠道"`
+	ImgUrl               string    `description:"合同图片,多个用#隔开"`
+	CreateTime           time.Time `description:"合同创建时间"`
+	ModifyTime           time.Time `description:"合同修改时间"`
+	Status               int       `description:"状态"`
+	Source               string    `description:"合同来源,枚举值:上传附件、系统合同,默认上传附件"`
+	PackageType          int       `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
+	RaiPackageType       int       `description:"权益套餐类型: 0-无; 1-70w大套餐; 2-45w大套餐"`
+	PermissionName       string    `description:"权限名"`
+}
+
+// 获取最新的合同的开始时间
+func GetCompanyContracListMaxStartDate(condition string, pars []interface{}) (items []*CompanyContractRespInit, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			MAX( a.start_date ) AS max_start_date,
+			COUNT(a.company_id) AS cc ,
+			a.* 
+		FROM
+			company_contract a
+			JOIN company b ON a.company_id = b.company_id
+			JOIN company_product c ON a.company_id = c.company_id 
+			AND a.product_id = c.product_id 
+		WHERE
+			1 = 1 
+			
+			AND c.product_id = 2 
+			AND a.not_renewal_hide = 0 
+			AND a.STATUS = 1 
+			AND a.company_contract_id  NOT IN (SELECT company_contract_id FROM company_contract_no_renewed_ascribe )` + condition + ` GROUP BY a.company_id `
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+// 通过ID获取详情
+func GetCompanyContracListInit_CRM_16_1(condition string, pars []interface{}) (items []*CompanyContractRespInit, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			a.* 
+		FROM
+			company_contract a
+			JOIN company b ON a.company_id = b.company_id
+			JOIN company_product c ON a.company_id = c.company_id 
+			AND a.product_id = c.product_id 
+		WHERE
+			1 = 1 
+			AND c.product_id = 2
+			AND a.not_renewal_hide = 0 
+			AND a.STATUS = 1 
+			AND a.company_contract_id  NOT IN (SELECT company_contract_id FROM company_contract_no_renewed_ascribe ) ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+// 根据合同ID对相关合同进行隐藏
+func UpdateCompanyContracthide(companyContractId []string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_contract SET not_renewal_hide = 1                                
+                            WHERE company_contract_id  IN  (` + strings.Join(companyContractId, ",") + `) `
+	_, err = o.Raw(sql).Exec()
+	return
+}

+ 4 - 3
services/company_approval/company_approval.go

@@ -440,9 +440,10 @@ func Approved(approvalRecord *contract_approval_record.ContractApprovalRecord, o
 
 				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId, recordInfo.CompanyContractId) //研选审批通过的时候研选扣点更新
 				//cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId)     //如果合同只有研选的时候,自动处理派点
-				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)           // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
-				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId)      // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
-				contractService.UpdateCompanyProductSellerMove(recordInfo.CompanyId, recordInfo.ProductId) // 权益客户创建新的有效合同之后,更新所关联的销售信息
+				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)                 // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
+				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId)            // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
+				contractService.UpdateCompanyProductSellerMove(recordInfo.CompanyId, recordInfo.ProductId)       // 权益客户创建新的有效合同之后,更新所关联的销售信息
+				contractService.UpdateCompanyContracthideBycompanyId(recordInfo.CompanyId, recordInfo.ProductId) //权益客户创建新的有效合同之后,对相关合同进行隐藏
 			}
 		}()
 	} else {

+ 60 - 0
services/contract/company_contract.go

@@ -3,9 +3,11 @@ package contract
 import (
 	"errors"
 	"fmt"
+	"hongze/hongze_mobile_admin/models/tables/company_contract"
 	"hongze/hongze_mobile_admin/models/tables/company_product"
 	"hongze/hongze_mobile_admin/services/alarm_msg"
 	"hongze/hongze_mobile_admin/utils"
+	"strconv"
 	"time"
 )
 
@@ -37,3 +39,61 @@ func UpdateCompanyProductSellerMove(companyId, productId int) {
 
 	return
 }
+
+// 权益客户创建新的有效合同之后,对相关合同进行隐藏
+func UpdateCompanyContracthideBycompanyId(companyId, productId int) {
+	if productId != utils.COMPANY_PRODUCT_RAI_ID {
+		return
+	}
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("权益客户创建新的有效合同之后,对相关合同进行隐藏,UpdateCompanyContracthideBycompanyId "+fmt.Sprint("companyId:", companyId, ";err:", err), 3)
+		}
+	}()
+
+	var condition string
+	var pars []interface{}
+
+	if companyId > 0 {
+		condition = ` AND a.company_id = ? `
+		pars = append(pars, companyId)
+	}
+
+	listContractMax, e := company_contract.GetCompanyContracListMaxStartDate(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyContracListMaxStartDate, Err: " + e.Error())
+		return
+	}
+	//如果合同结束时间,早于最新一份合同的开始时间,这份合同就隐藏
+	maxId := make(map[int]time.Time)
+	for _, v := range listContractMax {
+		maxId[v.CompanyId] = v.MaxStartDate
+	}
+
+	listContract, e := company_contract.GetCompanyContracListInit_CRM_16_1(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyContracListInit_CRM_16_1, Err: " + e.Error())
+		return
+	}
+	var updateId []string
+	for _, v := range listContract {
+		if v.EndDate.After(maxId[v.CompanyId]) {
+			continue
+		}
+		updateId = append(updateId, strconv.Itoa(v.CompanyContractId))
+	}
+
+	if len(updateId) == 0 {
+		return
+	}
+	e = company_contract.UpdateCompanyContracthide(updateId)
+	if e != nil {
+		err = errors.New("UpdateCompanyContracthide, Err: " + e.Error())
+		return
+	}
+	fmt.Println((updateId))
+
+	return
+}