ziwen 2 年之前
父节点
当前提交
cbe24b1d03
共有 4 个文件被更改,包括 103 次插入93 次删除
  1. 41 0
      models/eta_trial.go
  2. 42 0
      services/eta_trial.go
  3. 5 2
      services/task.go
  4. 15 91
      utils/common.go

+ 41 - 0
models/eta_trial.go

@@ -0,0 +1,41 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_task/utils"
+)
+
+type ETATrialListRespItem struct {
+	EtaTrialId     int    `orm:"column(eta_trial_id);pk" description:"eta试用客户id"`
+	UserName       string `description:"客户名称"`
+	CompanyName    string `description:"客户公司姓名"`
+	Position       string `description:"职位"`
+	Mobile         string `description:"手机号"`
+	ActiveTime     string `description:"累计活跃时长"`
+	LastLoginTime  string `description:"最后一次登陆时间"`
+	SellerId       int    `description:"销售id"`
+	Seller         string `description:"销售员名称"`
+	InterestModule string `description:"感兴趣模块"`
+	Expiration     int    `description:"账号到期时长"`
+	Enabled        int    `description:"1:有效,0:禁用"`
+	IndexNum       int    `description:"累计添加指标"`
+	ChartNum       int    `description:"累计添加图表"`
+	Password       string
+	Account        string
+	CreateTime     string
+	ModifyTime     string
+}
+
+func GetETATrialDisableList(endDate string) (items []*ETATrialListRespItem, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM eta_trial WHERE modify_time < ? AND enabled = 1 `
+	_, err = o.Raw(sql, endDate).QueryRows(&items)
+	return
+}
+
+func UpdateETATrialDisable(disableIds []int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE eta_trial SET enabled = 0 WHERE eta_trial_id IN (` + utils.GetOrmInReplace(len(disableIds)) + `) `
+	_, err = o.Raw(sql, disableIds).Exec()
+	return
+}

+ 42 - 0
services/eta_trial.go

@@ -0,0 +1,42 @@
+package services
+
+import (
+	"context"
+	"fmt"
+	"hongze/hongze_task/models"
+	"hongze/hongze_task/utils"
+	"time"
+)
+
+//ETA试用客户 启用->禁用
+func ETATrialDisabled(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ETA试用客户 启用->禁用 ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+
+	expiredTime := time.Now().AddDate(0, 0, -14).Format(utils.FormatDate)
+
+	items, err := models.GetETATrialDisableList(expiredTime)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		fmt.Println("GetETATrialDisableList Err:" + err.Error())
+		utils.FileLog.Info("GetETATrialDisableList Err:%s" + err.Error())
+		return
+	}
+	disableIds := make([]int, 0)
+	for _, v := range items {
+		fmt.Println(v.Mobile)
+		disableIds = append(disableIds, v.EtaTrialId)
+	}
+
+	if len(disableIds) > 0 {
+		err = models.UpdateETATrialDisable(disableIds)
+		if err != nil {
+			return err
+		}
+	}
+
+
+	return
+}

+ 5 - 2
services/task.go

@@ -128,8 +128,11 @@ func Task() {
 	// 定时生成上周纪要汇总
 	cygxLastWeekSummary := task.NewTask("CygxLastWeekSummary", "0 0 10 * * 2", CygxLastWeekSummary)
 	task.AddTask("定时生成上周纪要汇总", cygxLastWeekSummary)
-	//CygxResearchSummary()
-	//CygxLastWeekSummary()
+
+	//ETA试用客户 启用->禁用
+	eTATrialDisabled := task.NewTask("companyFreeze", "0 15 2 * * *", ETATrialDisabled)
+	task.AddTask("ETA试用客户 启用->禁用", eTATrialDisabled)
+
 	task.StartTask()
 
 	fmt.Println("task end")

+ 15 - 91
utils/common.go

@@ -7,7 +7,6 @@ import (
 	"encoding/base64"
 	"encoding/hex"
 	"encoding/json"
-	"errors"
 	"fmt"
 	"image"
 	"image/png"
@@ -722,96 +721,6 @@ func GetNowYearLastDay() time.Time {
 	return nowYearLastDay
 }
 
-// CalculationDate 计算两个日期之间相差n年m月y天
-func CalculationDate(startDate, endDate time.Time) (beetweenDay string, err error) {
-	//startDate := time.Date(2021, 3, 28, 0, 0, 0, 0, time.Now().Location())
-	//endDate := time.Date(2022, 3, 31, 0, 0, 0, 0, time.Now().Location())
-	numYear := endDate.Year() - startDate.Year()
-
-	numMonth := int(endDate.Month()) - int(startDate.Month())
-
-	numDay := 0
-	//获取截止月的总天数
-	endDateDays := getMonthDay(endDate.Year(), int(endDate.Month()))
-
-	//获取截止月的前一个月
-	endDatePrevMonthDate := endDate.AddDate(0, -1, 0)
-	//获取截止日期的上一个月的总天数
-	endDatePrevMonthDays := getMonthDay(endDatePrevMonthDate.Year(), int(endDatePrevMonthDate.Month()))
-	//获取开始日期的的月份总天数
-	startDateMonthDays := getMonthDay(startDate.Year(), int(startDate.Month()))
-
-	//判断,截止月是否完全被选中,如果相等,那么代表截止月份全部天数被选择
-	if endDate.Day() == endDateDays {
-		numDay = startDateMonthDays - startDate.Day() + 1
-
-		//如果剩余天数正好与开始日期的天数是一致的,那么月份加1
-		if numDay == startDateMonthDays {
-			numMonth++
-			numDay = 0
-			//超过月份了,那么年份加1
-			if numMonth == 12 {
-				numYear++
-				numMonth = 0
-			}
-		}
-	} else {
-		numDay = endDate.Day() - startDate.Day() + 1
-	}
-
-	//天数小于0,那么向月份借一位
-	if numDay < 0 {
-		//向上一个月借一个月的天数
-		numDay += endDatePrevMonthDays
-
-		//总月份减去一个月
-		numMonth = numMonth - 1
-	}
-
-	//月份小于0,那么向年份借一位
-	if numMonth < 0 {
-		//向上一个年借12个月
-		numMonth += 12
-
-		//总年份减去一年
-		numYear = numYear - 1
-	}
-	if numYear < 0 {
-		err = errors.New("日期异常")
-		return
-	}
-
-	if numYear > 0 {
-		beetweenDay += fmt.Sprint(numYear, "年")
-	}
-	if numMonth > 0 {
-		beetweenDay += fmt.Sprint(numMonth, "个月")
-	}
-	if numDay > 0 {
-		beetweenDay += fmt.Sprint(numDay, "天")
-	}
-	return
-}
-
-// getMonthDay 获取某年某月有多少天
-func getMonthDay(year, month int) (days int) {
-	if month != 2 {
-		if month == 4 || month == 6 || month == 9 || month == 11 {
-			days = 30
-
-		} else {
-			days = 31
-		}
-	} else {
-		if ((year%4) == 0 && (year%100) != 0) || (year%400) == 0 {
-			days = 29
-		} else {
-			days = 28
-		}
-	}
-	return
-}
-
 // SubStr 截取字符串(中文)
 func SubStr(str string, subLen int) string {
 	strRune := []rune(str)
@@ -880,3 +789,18 @@ func GetOrmInReplace(num int) string {
 	}
 	return strings.Join(template, ",")
 }
+
+func GetDaysBetween2Date(format, date1Str, date2Str string) (int, error) {
+	// 将字符串转化为Time格式
+	date1, err := time.ParseInLocation(format, date1Str, time.Local)
+	if err != nil {
+		return 0, err
+	}
+	// 将字符串转化为Time格式
+	date2, err := time.ParseInLocation(format, date2Str, time.Local)
+	if err != nil {
+		return 0, err
+	}
+	//计算相差天数
+	return int(date1.Sub(date2).Hours() / 24), nil
+}