浏览代码

no message

xingzai 1 年之前
父节点
当前提交
030a71b487
共有 4 个文件被更改,包括 120 次插入4 次删除
  1. 13 1
      models/company.go
  2. 49 1
      models/company_product.go
  3. 50 2
      services/company_product.go
  4. 8 0
      services/task.go

+ 13 - 1
models/company.go

@@ -139,7 +139,7 @@ func ModifyCompanyIndustry(industryId, companyId int, industryName string) (err
 	return
 }
 
-// 正式
+// 权益 正式->永续
 func GetCompanyNeedTryOutXClassRai(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
@@ -150,3 +150,15 @@ func GetCompanyNeedTryOutXClassRai(endDate string) (items []*CompanyNeedFreeze,
 	_, err = o.Raw(sql, endDate).QueryRows(&items)
 	return
 }
+
+// 权益 永续->冻结
+func GetCompanyNeedFreezeXClassRai(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.end_date<=?   AND b.init_status = '永续'  `
+	_, err = o.Raw(sql, endDate).QueryRows(&items)
+	return
+}

+ 49 - 1
models/company_product.go

@@ -79,6 +79,54 @@ func CompanyFreeze(companyId, productId int) (companyReportPermissionList []*Com
 	return
 }
 
+func CompanyFreezeXClassRai(companyId, productId int) (companyReportPermissionList []*CompanyReportPermission, err error) {
+	o := orm.NewOrm()
+	freezeStartDate := time.Now().Format(utils.FormatDate)
+	freezeEndDate := time.Now().AddDate(0, 3, 0).Format(utils.FormatDate)
+
+	//FICC客户冻结期由三个月改为两个月
+	//if productId == 1 {
+	//	freezeEndDate = time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
+	//}
+
+	// 权益客户 冻结期 改为两个月
+	if productId == 2 {
+		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 CompanyLoss(companyId, productId int) (err error) {
 	o := orm.NewOrm()
 	//客户产品状态变更
@@ -175,7 +223,7 @@ func CompanyTryOutXClassRai(companyId, productId int) (companyReportPermissionLi
 	}
 
 	//客户状态变更
-	sql = `UPDATE company SET type=2,last_updated_time=NOW(),start_date=?,end_date=? WHERE company_id=? `
+	sql = `UPDATE company SET type=5,last_updated_time=NOW(),start_date=?,end_date=? WHERE company_id=? `
 	_, err = o.Raw(sql, startDate, endDate, companyId).Exec()
 	return
 }

+ 50 - 2
services/company_product.go

@@ -769,7 +769,7 @@ func StaticCompanyTryDay(cont context.Context) (err error) {
 }
 
 // 权益正式客户自动转X类试用(永续)->合同到期未续约转X类试用(永续)
-func CompanyTryOutXClassRai() (err error) {
+func CompanyTryOutXClassRai(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
 			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "正式客户自动试用->合同到期未续约转试用 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
@@ -799,7 +799,7 @@ func CompanyTryOutXClassRai() (err error) {
 		//客户正式转试用
 		companyReportPermissionList, err := models.CompanyTryOutXClassRai(v.CompanyId, v.ProductId)
 		if err != nil {
-			utils.FileLog.Info("CompanyLoss Err:%s" + err.Error())
+			utils.FileLog.Info("CompanyTryOutXClassRai Err:%s" + err.Error())
 			return err
 		}
 		//新增操作记录
@@ -828,3 +828,51 @@ func CompanyTryOutXClassRai() (err error) {
 	}
 	return
 }
+
+// 客户自动冻结->X类试用(永续)三个月结束后,进入冻结
+func CompanyFreezeXClassRai(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "X类试用(永续)三个月结束后,进入冻结ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	endDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	items, err := models.GetCompanyNeedFreezeXClassRai(endDate)
+	if err != nil {
+		fmt.Println("GetCompanyNeedFreezeXClassRai Err:" + err.Error())
+		utils.FileLog.Info("GetCompanyNeedFreezeXClassRai Err:%s" + err.Error())
+		return
+	}
+	fmt.Println(len(items))
+	//return
+	for k, v := range items {
+		fmt.Println(k, v.CompanyId)
+		count, err := models.GetCompanyApprovalCount(v.CompanyId, v.ProductId)
+		if err != nil {
+			return err
+		}
+		if count > 0 {
+			continue
+		}
+		//试用转冻结
+		companyReportPermissionList, err := models.CompanyFreezeXClassRai(v.CompanyId, v.ProductId)
+		if err != nil {
+			utils.FileLog.Info("CompanyFreeze Err:%s" + err.Error())
+			return err
+		}
+		//新增操作记录
+		{
+			remark := "X类试用转冻结"
+			operation := "x_class_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)
+			}
+		}
+	}
+	return
+}

+ 8 - 0
services/task.go

@@ -69,6 +69,14 @@ func Task() {
 	companyLoss := task.NewTask("companyLoss", "0 20 2 * * *", CompanyLoss)
 	task.AddTask("冻结->流失", companyLoss)
 
+	//权益正式->X类试用(永续)
+	companyTryOutXClassRai := task.NewTask("companyTryOutXClassRai", "0 25 2 * * *", CompanyTryOutXClassRai)
+	task.AddTask("权益正式->X类试用(永续)", companyTryOutXClassRai)
+
+	//权益X类试用(永续)->冻结
+	companyFreezeXClassRai := task.NewTask("companyFreezeXClassRai", "0 30 2 * * *", CompanyFreezeXClassRai)
+	task.AddTask("权益X类试用(永续)->冻结", companyFreezeXClassRai)
+
 	//用户产品权限正式-->试用
 	companyReportPermissionTryOut := task.NewTask("companyReportPermissionTryOut", "0 30 2 * * *", CompanyReportPermissionTryOut)
 	task.AddTask("用户产品权限正式-->试用", companyReportPermissionTryOut)