abiao лет назад: 5
Родитель
Сommit
d633bc8a56

+ 11 - 13
go/gopath/src/fohow.com/apps/controllers/cron_controller/three_user_relation.go

@@ -25,21 +25,19 @@ func threebUserRelation() {
 	inviteList := user_model.GetDepartWxUsers(wxUserId, true)
 	UpdateClassThreeInner(inviteList, innerNo)
 
-	beego.BeeLogger.Warn("----------------begin callback wx_users ")
-
-	//回调更新wx_users
-	user_model.CallBackWxUsers()
-
-	beego.BeeLogger.Warn("----------------end handle relation ")
-
-	//更新depart
-	departOneWxU := user_model.GetWxUserById(53, false)
-	departTwoWxU := user_model.GetWxUserById(13066, false)
-	if departOneWxU != nil && departTwoWxU != nil {
-		user_model.UpdateRelatedDepart(departOneWxU.IntroInnerNo, departTwoWxU.IntroInnerNo, departOneWxU.Depart, departTwoWxU.Depart)
+	beego.BeeLogger.Warn("----------------begin handle departs ")
+	//回调更新 depart_records
+	user_model.UpdateDepartInnerNo()
+	//更新 wx_user 部门
+	list := user_model.GetDepartRecords()
+	for _, item := range list {
+		user_model.UpdateWxUserDepart(item.InnerNo, item.Id)
 	}
-	beego.BeeLogger.Warn("----------------end handle threebUserRelation ")
+	beego.BeeLogger.Warn("----------------begin handle relation tables ")
+	//更新关联表depart
+	user_model.UpdateRelatedDepart()
 
+	beego.BeeLogger.Warn("----------------end handle threebUserRelation ")
 	//time.Sleep(time.Duration(300) * time.Second)
 }
 

+ 53 - 26
go/gopath/src/fohow.com/apps/models/user_model/three_wx_user.go

@@ -12,6 +12,7 @@ import (
 
 const (
 	three_wx_users_tablename = "three_wx_users"
+	deoart_records_tablename = "depart_records"
 )
 
 type ThreeWxUser struct {
@@ -28,6 +29,38 @@ func (self *ThreeWxUser) TableName() string {
 	return three_wx_users_tablename
 }
 
+type DepartRecord struct {
+	Id        int64     `orm:"column(id);pk"                                  json:"id"`         // int(11)
+	WxUserId  int64     `orm:"column(wx_user_id);null"                        json:"wx_user_id"` // int(11)
+	InnerNo   string    `orm:"inner_no"                                       json:"-"`          // varchar(100)
+	CreatedAt time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`          // datetime
+	UpdatedAt time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`          // datetime
+}
+
+func (self *DepartRecord) TableName() string {
+	return deoart_records_tablename
+}
+
+//获取部门列表
+
+func GetDepartRecords() (list []*DepartRecord) {
+
+	sql := `
+		select id,wx_user_id,inner_no
+		  	from depart_records
+		 where 1
+           order by length(intro_inner_no) asc ;
+	`
+
+	_, err := orm.NewOrm().Raw(sql).QueryRows(&list)
+	if err != nil {
+		beego.Debug("GetDepartRecords err=[%s]", err)
+		return
+	}
+
+	return list
+}
+
 func (self *ThreeWxUser) QuickCreate(nickName string, id, inviteId int64) *ThreeWxUser {
 	item := &ThreeWxUser{
 		Id:       id,
@@ -177,12 +210,17 @@ func GetDepartWxUsers(inviteWxId int64, useCache bool) (list []*ThreeWxUser) {
 		}
 	}
 
+	/*sql := `
+	select id,invite_id,invite_rank, intro_inner_no,intro_area from
+	three_wx_users
+	where id  in (53,13066) order by invite_rank asc ;
+	`*/
 	sql := `
 		select id,invite_id,invite_rank, intro_inner_no,intro_area from
 		three_wx_users
-		where id  in (53,13066) order by invite_rank asc ;
+		where invite_id=? order by invite_rank asc ;
 		`
-	_, err := orm.NewOrm().Raw(sql).QueryRows(&list)
+	_, err := orm.NewOrm().Raw(sql, inviteWxId).QueryRows(&list)
 	if err != nil {
 		beego.BeeLogger.Warn("three_wx_model.GetDepartWxUsers(%d) err=%s", inviteWxId, err)
 		return nil
@@ -253,41 +291,30 @@ func UpdateIntroInfo(id int64, intreArea, innerNo string) {
 
 }
 
-//回写wx_users
-func CallBackWxUsers() {
-
+//更新部门表inner_no
+func UpdateDepartInnerNo() {
 	o := orm.NewOrm()
-	//更新会员depart
-	sql := `
-		update three_wx_users set depart=1 where id=53
-	`
-	o.Raw(sql).Exec()
 
-	sql = `
-		update three_wx_users set depart=2 where id=13066
+	sql := `
+		update depart_records a , three_wx_users b set a.inner_no=b.intro_inner_no where a.wx_user_id=b.id 
 	`
 	o.Raw(sql).Exec()
 
-	sql = `
-		update wx_users a,three_wx_users b set a.intro_inner_no=b.intro_inner_no,a.intro_area=b.intro_area where a.id=b.id and a.id in(53,13066)
-	`
-	o.Raw(sql).Exec()
+}
 
+//更新会员表部门
+func UpdateWxUserDepart(innerNo string, depart int64) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf("update three_wx_users set depart=? where intro_inner_no like  %s", "'%"+innerNo+"%'")
+	beego.BeeLogger.Warn("update depart sql %s", sql)
+	o.Raw(sql, depart).Exec()
 }
 
 //更新关联表depart
-func UpdateRelatedDepart(innerNo1, innerNo2 string, depart1, depart2 int64) {
+func UpdateRelatedDepart() {
 	o := orm.NewOrm()
-	//更新1部会员
 
-	sql := fmt.Sprintf("update three_wx_users set depart=? where intro_inner_no like  %s", "'%"+innerNo1+"%'")
-	o.Raw(sql, depart1).Exec()
-
-	//更新2部会员
-	sql1 := fmt.Sprintf("update three_wx_users set depart=? where intro_inner_no like  %s", "'%"+innerNo2+"%'")
-	o.Raw(sql1, depart2).Exec()
-
-	sql = `
+	sql := `
 		delete from three_wx_users where  intro_inner_no is null
 	`
 	o.Raw(sql).Exec()