浏览代码

no message

zhangchuanxing 3 月之前
父节点
当前提交
1ec2ba8486
共有 3 个文件被更改,包括 37 次插入9 次删除
  1. 8 0
      models/tables/company_contract/company_contract.go
  2. 21 9
      services/cygx/contract_allocation.go
  3. 8 0
      utils/common.go

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

@@ -119,6 +119,14 @@ func GetCompanyContracDetail(condition string, pars []interface{}) (item *Compan
 	return
 }
 
+// 获取列表详情
+func GetCompanyContracList(condition string, pars []interface{}) (items []*CompanyContractDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_contract  WHERE 1= 1 ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
 // UpdateCompanyContractPackageDifference 更改合同与上一份合同金额对比信息
 func UpdateCompanyContractPackageDifference(packageDifference string, companyContractId int) (err error) {
 	o := orm.NewOrm()

+ 21 - 9
services/cygx/contract_allocation.go

@@ -102,7 +102,7 @@ func HandleCompanyContractPackageDifference(companyContractId int) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go alarm_msg.SendAlarmMsg(fmt.Sprint("如果合同只有研选的时候,自动处理派点失败,Err:", err.Error(), "companyContractId", companyContractId), 2)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'失败,,Err:", err.Error(), "companyContractId", companyContractId), 2)
 		}
 	}()
 	var condition string
@@ -115,25 +115,37 @@ func HandleCompanyContractPackageDifference(companyContractId int) (err error) {
 		err = errors.New("GetCompanyContracDetail,detail Err: " + e.Error())
 		return
 	}
+	if detail.ProductId != 2 {
+		return
+	}
+
+	startYeaar := utils.StrDateToDate(detail.StartDate).Year()
+
+	lastYearStartData := fmt.Sprint(startYeaar-1, "-01-01")
+	lastYearEndData := fmt.Sprint(startYeaar-1, "-12-31")
 
 	//如果不是续约合同就不做对比处理
 	if detail.ContractType != "续约合同" {
 		return
 	}
-	//获取前一份合同的信息
+	//获取前一年所有的合同列表
 	pars = make([]interface{}, 0)
-	condition = " AND company_id = ? AND company_contract_id < ?   AND status = 1    AND product_id = ?  ORDER BY company_contract_id DESC   LIMIT  1  "
-	pars = append(pars, detail.CompanyId, companyContractId, detail.ProductId)
-	detailPrevious, e := company_contract.GetCompanyContracDetail(condition, pars)
+	condition = " AND company_id = ? AND company_contract_id < ?   AND status = 1    AND product_id = ? AND  start_date >= ? AND  start_date <= ?  "
+	pars = append(pars, detail.CompanyId, companyContractId, detail.ProductId, lastYearStartData, lastYearEndData)
+	companyContracList, e := company_contract.GetCompanyContracList(condition, pars)
 	if e != nil {
-		err = errors.New("GetCompanyContracDetail,detailPrevious Err: " + e.Error())
+		err = errors.New("GetCompanyContracList Err: " + e.Error())
 		return
 	}
-	var packageDifference string
 
-	if detail.Money > detailPrevious.Money {
+	var sumMoney float64
+	var packageDifference string
+	for _, v := range companyContracList {
+		sumMoney += v.Money
+	}
+	if detail.Money > sumMoney {
 		packageDifference = "增加套餐"
-	} else if detail.Money < detailPrevious.Money {
+	} else if detail.Money < sumMoney {
 		packageDifference = "减少套餐"
 	} else {
 		packageDifference = "维持套餐"

+ 8 - 0
utils/common.go

@@ -1020,3 +1020,11 @@ func ReplaceSpaceAndWrap(str string) string {
 	str = strings.Replace(str, "\n", "", -1)
 	return str
 }
+
+// 字符串转换为time类型
+func StrDateToDate(strTime string) time.Time {
+	timeLayout := "2006-01-02"           //转化所需模板
+	loc, _ := time.LoadLocation("Local") //重要:获取时区
+	resultTime, _ := time.ParseInLocation(timeLayout, strTime, loc)
+	return resultTime
+}