فهرست منبع

fix:完善用户关注公众号的记录

zqbao 9 ماه پیش
والد
کامیت
30aff77f52
5فایلهای تغییر یافته به همراه37 افزوده شده و 13 حذف شده
  1. 0 12
      controllers/my_chart.go
  2. 16 0
      controllers/wechat.go
  3. 8 0
      models/user.go
  4. 1 1
      models/user_record.go
  5. 12 0
      services/user.go

+ 0 - 12
controllers/my_chart.go

@@ -18,10 +18,7 @@ type MyChartController struct {
 
 // @Title 收藏图表
 // @Description 收藏图表
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /collect [post]
 func (this *MyChartController) Collect() {
 	br := new(models.BaseResponse).Init()
@@ -75,10 +72,7 @@ func (this *MyChartController) Collect() {
 
 // @Title 取消收藏
 // @Description 取消收藏
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /collectCancel [post]
 func (this *MyChartController) CollectCancel() {
 	br := new(models.BaseResponse).Init()
@@ -125,7 +119,6 @@ func (this *MyChartController) CollectCancel() {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /list [get]
 func (this *MyChartController) List() {
 	br := new(models.BaseResponse).Init()
@@ -180,7 +173,6 @@ func (this *MyChartController) List() {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /locate [get]
 func (this *MyChartController) Locate() {
 	br := new(models.BaseResponse).Init()
@@ -243,7 +235,6 @@ func (this *MyChartController) Locate() {
 // @Description 图表详情
 // @Param   ChartInfoId   query   int  true       "图表详情id"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /detail [get]
 func (this *MyChartController) Detail() {
 	br := new(models.BaseResponse).Init()
@@ -287,10 +278,7 @@ func (this *MyChartController) Detail() {
 
 // @Title IsCollect
 // @Description create users
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.BaseResponse
-// @Failure 403 {object} models.BaseResponse
 // @router /isCollect [post]
 func (this *MyChartController) IsCollect() {
 	br := new(models.BaseResponse).Init()

+ 16 - 0
controllers/wechat.go

@@ -297,6 +297,22 @@ func (this *WechatController) Subscribe() {
 		br.ErrMsg = "新增失败,Err:" + err.Error()
 		return
 	}
+	user, err := models.GetUserByUnionId(u.UnionId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取用户信息失败"
+		br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
+		return
+	}
+	if user != nil {
+		user.IsSubscribed = true
+		err := user.Update([]string{"is_subscribed"})
+		if err != nil {
+			br.Msg = "更新用户信息失败"
+			br.ErrMsg = "更新用户信息失败,Err:" + err.Error()
+			return
+		}
+	}
+
 	br.Msg = "获取成功"
 	br.Success = true
 	br.Ret = 200

+ 8 - 0
models/user.go

@@ -72,6 +72,14 @@ func GetUserByOpenId(openId string) (item *User, err error) {
 	return
 }
 
+// 根据unionid获取用户关系
+func GetUserByUnionId(unionId string) (item *User, err error) {
+	sql := `SELECT * FROM user WHERE open_id=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, unionId).QueryRow(&item)
+	return
+}
+
 // 变更联系人是否已注册状态
 func ModifyUserRegisterStatus(userId int, status bool, registerTime, modifyTime time.Time) (err error) {
 	o := orm.NewOrm()

+ 1 - 1
models/user_record.go

@@ -53,7 +53,7 @@ func UserSubscribe(subscribeType int, openId string) (err error) {
 
 // GetBindUserRecordByUnionId 通过unionid获取已绑定用户的user_record信息
 func GetBindUserRecordByUnionId(unionId string) (item *UserRecord, err error) {
-	sql := `SELECT * FROM user_record WHERE union_id=? AND user_id >0`
+	sql := `SELECT * FROM user_record WHERE union_id=? `
 	err = orm.NewOrm().Raw(sql, unionId).QueryRow(&item)
 	return
 }

+ 12 - 0
services/user.go

@@ -134,5 +134,17 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 			return
 		}
 	}
+	if !userItem.IsSubscribed {
+		userRecord, er := models.GetBindUserRecordByUnionId(userItem.UnionId)
+		if er != nil && err.Error() != utils.ErrNoRow() {
+			err = errors.New("获取用户关注记录失败")
+			return
+		}
+		userRecord.UserId = userId
+		err = userRecord.Update([]string{"user_id"})
+		if err != nil {
+			return
+		}
+	}
 	return
 }