Browse Source

试用客户到期14天后自动禁用

xyxie 3 weeks ago
parent
commit
1574b7a292

+ 24 - 0
controllers/eta_trial/user.go

@@ -471,3 +471,27 @@ func (this *EtaTrialController) GetMobileCount() {
 	br.Msg = "操作成功"
 	br.Data = data
 }
+
+// AutoDisableAdmin
+// @Title 自动禁用14天的试用客户
+// @Description 自动禁用14天的试用客户
+// @Success 200 操作成功
+// @router /admin/auto_disable [post]
+func (this *EtaTrialController) AutoDisableAdmin() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	err := eta_trial2.ETATrialAutoDisabled()
+	if err != nil {
+		br.Msg = "启用失败"
+		br.ErrMsg = "启用失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+	return
+}

+ 48 - 0
models/eta_trial/eta_trial.go

@@ -0,0 +1,48 @@
+package eta_trial
+
+import (
+	"eta/eta_forum_hub/utils"
+	"github.com/beego/beego/v2/client/orm"
+)
+
+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 < '` + endDate + `'  `
+	_, err = o.Raw(sql).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
+}
+
+func UpdateETATrialAdminDisable(disableMobiles []string) (err error) {
+	o := orm.NewOrmUsingDB("weekly_trial")
+	sql := `UPDATE admin SET enabled = 0 WHERE mobile IN  (` + utils.GetOrmInReplace(len(disableMobiles)) + `) `
+	_, err = o.Raw(sql, disableMobiles).Exec()
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -16,6 +16,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/eta_trial:EtaTrialController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/eta_trial:EtaTrialController"],
+        beego.ControllerComments{
+            Method: "AutoDisableAdmin",
+            Router: `/admin/auto_disable`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/eta_trial:EtaTrialController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/eta_trial:EtaTrialController"],
         beego.ControllerComments{
             Method: "EnabledEtaTrialAdmin",

+ 41 - 0
services/eta_trial/user.go

@@ -2,6 +2,8 @@ package eta_trial
 
 import (
 	"eta/eta_forum_hub/models/eta_trial"
+	"eta/eta_forum_hub/services/alarm_msg"
+	"eta/eta_forum_hub/utils"
 	"fmt"
 	"time"
 )
@@ -52,3 +54,42 @@ func EtaTrialManualUserAddAuth(adminId int, adminName string) (err error) {
 	}
 	return
 }
+
+// ETA试用客户 到期自动禁用
+func ETATrialAutoDisabled() (err error) {
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("ETA试用客户 启用->禁用 ErrMsg:"+err.Error(), 3)
+		}
+	}()
+
+	expiredTime := time.Now().AddDate(0, 0, -14).Format(utils.FormatDate)
+
+	items, err := eta_trial.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)
+	disableMobiles := make([]string, 0)
+	for _, v := range items {
+		disableIds = append(disableIds, v.EtaTrialId)
+		disableMobiles = append(disableMobiles, v.Mobile)
+	}
+
+	if len(disableIds) > 0 {
+		err = eta_trial.UpdateETATrialDisable(disableIds)
+		if err != nil {
+			return err
+		}
+	}
+	if len(disableMobiles) > 0 {
+		err = eta_trial.UpdateETATrialAdminDisable(disableMobiles)
+		if err != nil {
+			return err
+		}
+	}
+
+	return
+}