Bladeren bron

no message

zhangchuanxing 3 weken geleden
bovenliggende
commit
940d08195e
4 gewijzigde bestanden met toevoegingen van 124 en 13 verwijderingen
  1. 13 1
      models/company.go
  2. 41 0
      models/company_product.go
  3. 66 12
      services/company_product.go
  4. 4 0
      services/task.go

+ 13 - 1
models/company.go

@@ -90,6 +90,18 @@ func GetCompanyNeedFreeze(endDate string) (items []*CompanyNeedFreeze, err error
 	return
 }
 
+// 权益客户正式转冻结
+func GetCompanyNeedFreezeRai(endDate string) (items []*CompanyNeedFreeze, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT a.company_id,b.company_product_id,b.product_id,a.company_name,b.product_name,b.status
+            FROM  company AS a
+			INNER JOIN company_product AS b ON a.company_id=b.company_id
+			WHERE b.status='正式' AND b.product_id = 2
+			AND b.end_date<=? `
+	_, err = o.Raw(sql, endDate).QueryRows(&items)
+	return
+}
+
 func GetCompanyNeedLoss(endDate string) (items []*CompanyNeedFreeze, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT a.company_id,b.company_product_id,b.product_id,a.company_name,b.product_name,b.status
@@ -108,7 +120,7 @@ func GetCompanyNeedTryOut(endDate string) (items []*CompanyNeedFreeze, err error
             FROM  company AS a
 			INNER JOIN company_product AS b ON a.company_id=b.company_id
 			WHERE b.status='正式'
-			AND b.end_date<=?  AND b.init_status != '永续'  ` //权益的永续客户正式不转试用
+			AND b.end_date<=?  AND b.init_status != '永续'  AND product_id = 1  ` //权益的永续客户正式不转试用
 	_, err = o.Raw(sql, endDate).QueryRows(&items)
 	return
 }

+ 41 - 0
models/company_product.go

@@ -79,6 +79,47 @@ func CompanyFreeze(companyId, productId int) (companyReportPermissionList []*Com
 	return
 }
 
+func CompanyFreezeRai(companyId, productId int) (companyReportPermissionList []*CompanyReportPermission, err error) {
+	if productId != 2 {
+		return
+	}
+	o := orm.NewOrm()
+	freezeStartDate := time.Now().Format(utils.FormatDate)
+	freezeEndDate := time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
+
+	//客户产品 状态 变更
+	sql := `UPDATE company_product SET status='冻结',is_formal=0,is_suspend=0,freeze_time=NOW(),modify_time=NOW(),start_date=?,end_date=?,freeze_start_date=?,freeze_end_date=?,try_stage=1 WHERE company_id=? AND product_id=? `
+	_, err = o.Raw(sql, freezeStartDate, freezeEndDate, freezeStartDate, freezeEndDate, companyId, productId).Exec()
+	if err != nil {
+		return
+	}
+
+	//客户产品权限 状态 变更
+	//获取需要变更的 客户产品权限
+	oldPermissionEndDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	sql = `SELECT *
+          FROM company_report_permission
+			WHERE status='正式' AND end_date<=? AND company_id=? AND product_id=? `
+	total, err := o.Raw(sql, oldPermissionEndDate, companyId, productId).QueryRows(&companyReportPermissionList)
+	if err != nil {
+		return
+	}
+
+	if total > 0 {
+		sql = `UPDATE company_report_permission SET status='关闭',modify_time=NOW() 
+			WHERE status='正式' AND end_date<=? AND company_id=? AND product_id=? `
+		_, err = o.Raw(sql, oldPermissionEndDate, companyId, productId).Exec()
+		if err != nil {
+			return
+		}
+	}
+
+	//客户状态变更
+	sql = `UPDATE company SET type=3,last_updated_time=NOW(),start_date=?,end_date=? WHERE company_id=? `
+	_, err = o.Raw(sql, freezeStartDate, freezeEndDate, companyId).Exec()
+	return
+}
+
 func CompanyFreezeXClassRai(companyId, productId int) (companyReportPermissionList []*CompanyReportPermission, err error) {
 	o := orm.NewOrm()
 	freezeStartDate := time.Now().Format(utils.FormatDate)

+ 66 - 12
services/company_product.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"hongze/hongze_task/models"
+	"hongze/hongze_task/services/alarm_msg"
 	"hongze/hongze_task/services/company"
 	"hongze/hongze_task/services/cygx"
 	"hongze/hongze_task/utils"
@@ -122,10 +123,10 @@ func CompanyTryOut(cont context.Context) (err error) {
 		}
 		fmt.Println(k, v.CompanyId)
 
-		// 更新专项调研点数,需要在状态变更之前
-		if v.ProductId == 2 {
-			cygx.ActivitySpecialCompanyTryOutReduce(v.CompanyId)
-		}
+		//// 更新专项调研点数,需要在状态变更之前
+		//if v.ProductId == 2 {
+		//	cygx.ActivitySpecialCompanyTryOutReduce(v.CompanyId)
+		//}
 		//客户正式转试用
 		companyReportPermissionList, err := models.CompanyTryOut(v.CompanyId, v.ProductId)
 		if err != nil {
@@ -146,10 +147,10 @@ func CompanyTryOut(cont context.Context) (err error) {
 			}
 		}
 
-		{
-			//正式转试用,删除不续约归因内容
-			company.DeleteCompanNoRenewedAscribe(v.CompanyId, v.ProductId)
-		}
+		//{
+		//	//正式转试用,删除不续约归因内容
+		//	company.DeleteCompanNoRenewedAscribe(v.CompanyId, v.ProductId)
+		//}
 
 		//正式转试用定时任务更新研选扣点
 		if v.ProductId == 2 {
@@ -816,10 +817,10 @@ func CompanyTryOutXClassRai(cont context.Context) (err error) {
 			}
 		}
 
-		{
-			//正式转试用,删除不续约归因内容
-			company.DeleteCompanNoRenewedAscribe(v.CompanyId, v.ProductId)
-		}
+		//{
+		//	//正式转试用,删除不续约归因内容
+		//	company.DeleteCompanNoRenewedAscribe(v.CompanyId, v.ProductId)
+		//}
 
 		//正式转试用定时任务更新研选扣点
 		{
@@ -876,3 +877,56 @@ func CompanyFreezeXClassRai(cont context.Context) (err error) {
 	}
 	return
 }
+
+// 权益客户部正式转冻结
+func CompanyFreezeRai(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("权益客户部正式转冻结失败:"+err.Error(), 2)
+		}
+	}()
+	endDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	items, err := models.GetCompanyNeedFreezeRai(endDate)
+	if err != nil {
+		fmt.Println("GetCompanyNeedFreezeRai Err:" + err.Error())
+		utils.FileLog.Info("GetCompanyNeedFreezeRai Err:%s" + err.Error())
+		return
+	}
+	for k, v := range items {
+		fmt.Println(k, v.CompanyId)
+		// 更新专项调研点数,需要在状态变更之前
+		if v.ProductId == 2 {
+			cygx.ActivitySpecialCompanyTryOutReduce(v.CompanyId)
+		}
+		//正式转冻结
+		companyReportPermissionList, err := models.CompanyFreezeRai(v.CompanyId, v.ProductId)
+		if err != nil {
+			utils.FileLog.Info("CompanyFreezeRai Err:%s" + err.Error())
+			return err
+		}
+		//新增操作记录
+		{
+			remark := "正式转冻结"
+			operation := "freeze"
+			approveContent := ""
+			go AddCompanyOperationRecord(v.CompanyId, utils.AdminId, v.ProductId, utils.AdminId, v.CompanyName,
+				v.ProductName, utils.RealName, remark, operation, approveContent, approveContent, "", v.Status)
+
+			//新增 客户产品权限 试用 转 冻结 的日志
+			for _, v := range companyReportPermissionList {
+				_ = AddCompanyReportPermissionLog(v.CompanyReportPermissionId, v.CompanyId, v.ProductId, utils.AdminId, v.ProductName, utils.RealName, remark, operation, v.Status)
+			}
+		}
+
+		{
+			//正式转试用,删除不续约归因内容
+			company.DeleteCompanNoRenewedAscribe(v.CompanyId, v.ProductId)
+		}
+
+		//正式转试用定时任务更新研选扣点
+		if v.ProductId == 2 {
+			cygx.YanXuanCompanyCompanyTryOut(v.CompanyId)
+		}
+	}
+	return
+}

+ 4 - 0
services/task.go

@@ -58,6 +58,10 @@ func Task() {
 	companyTryOut := task.NewTask("companyTryOut", "0 5 2 * * *", CompanyTryOut)
 	task.AddTask("正式->试用", companyTryOut)
 
+	//权益正式->冻结
+	companyFreezeRai := task.NewTask("companyFreezeRai", "0 50 2 * * *", CompanyFreezeRai)
+	task.AddTask("正式->冻结", companyFreezeRai)
+
 	// 每日续约异常客户信息处理(涉及到需要统计当天未续约的,所以需要等正式转试用完成后执行)
 	handleCompanyRenewalRecord := task.NewTask("handleCompanyContract", "0 10 2 * * *", company_contract.HandleCompanyRenewalRecordV2)
 	task.AddTask("每日续约异常客户信息处理", handleCompanyRenewalRecord)