瀏覽代碼

Merge branch 'yx_1.1'

zwxi 1 年之前
父節點
當前提交
73499dc4fe
共有 8 個文件被更改,包括 97 次插入15 次删除
  1. 1 1
      controllers/base_auth.go
  2. 1 1
      models/chart_permission.go
  3. 5 5
      models/cygx_mfyx_gzh_user_record.go
  4. 4 4
      models/user.go
  5. 8 0
      models/user_record.go
  6. 15 3
      models/wx_user.go
  7. 62 0
      services/user.go
  8. 1 1
      utils/config.go

+ 1 - 1
controllers/base_auth.go

@@ -65,7 +65,7 @@ func (this *BaseAuthController) Prepare() {
 				this.StopRun()
 				return
 			}
-			wxUser, err := services.GetWxUserItemByOpenId(session.UnionId)
+			wxUser, err := services.GetWxUserItemByOpenId2(session.OpenId)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取信息失败 " + strconv.Itoa(session.UserId)}, false, false)
 				this.StopRun()

+ 1 - 1
models/chart_permission.go

@@ -13,7 +13,7 @@ type ChartPermissionResp struct {
 }
 
 func GetChartPermissionAll(condition string, pars []interface{}) (items []*ChartPermissionResp, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := `SELECT * FROM chart_permission WHERE product_id=2 AND is_report=1  AND permission_type!=2  ` + condition + ` ORDER BY sort ASC `
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return

+ 5 - 5
models/cygx_mfyx_gzh_user_record.go

@@ -30,7 +30,7 @@ func AddCygxUserRecord(item *CygxMfyxGzhUserRecord) (lastId int64, err error) {
 // 获取数量
 func GetCygxUserRecordCount(openId string) (count int, err error) {
 	o := orm.NewOrm()
-	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_user_record WHERE open_id=? `
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_mfyx_gzh_user_record WHERE open_id=? `
 	err = o.Raw(sqlCount, openId).QueryRow(&count)
 	return
 }
@@ -41,7 +41,7 @@ func GetCygxUserRecordByOpenid(opendId string) (item *CygxMfyxGzhUserRecord, err
 	sql := `SELECT
 			*
 		FROM
-			cygx_user_record 
+			cygx_mfyx_gzh_user_record 
 		WHERE open_id = ?
 			LIMIT 1 `
 	err = o.Raw(sql, opendId).QueryRow(&item)
@@ -51,7 +51,7 @@ func GetCygxUserRecordByOpenid(opendId string) (item *CygxMfyxGzhUserRecord, err
 // 获取列表
 func GetCygxUserRecordyList() (items []*CygxMfyxGzhUserRecord, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_user_record `
+	sql := `SELECT * FROM cygx_mfyx_gzh_user_record `
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
@@ -59,7 +59,7 @@ func GetCygxUserRecordyList() (items []*CygxMfyxGzhUserRecord, err error) {
 // 更新关注信息
 func SetUserSubscribeByOpenid(openId string) (err error) {
 	o := orm.NewOrm()
-	sql := ` UPDATE cygx_user_record SET subscribe=1,subscribe_time=NOW() WHERE open_id=? `
+	sql := ` UPDATE cygx_mfyx_gzh_user_record SET subscribe=1,subscribe_time=NOW() WHERE open_id=? `
 	_, err = o.Raw(sql, openId).Exec()
 	return
 }
@@ -67,7 +67,7 @@ func SetUserSubscribeByOpenid(openId string) (err error) {
 // 根据openid解除绑定用户关系
 func UpdateCygxUserRecordMobile(userId int, mobile, openId string) (err error) {
 	o := orm.NewOrm()
-	msql := ` UPDATE cygx_user_record SET cygx_user_id = ?,cygx_bind_account= ? WHERE union_id = ? `
+	msql := ` UPDATE cygx_mfyx_gzh_user_record SET cygx_user_id = ?,cygx_bind_account= ? WHERE union_id = ? `
 	_, err = o.Raw(msql, userId, mobile, openId).Exec()
 	return
 }

+ 4 - 4
models/user.go

@@ -108,6 +108,7 @@ type UserDetailByUserLogin struct {
 }
 
 func GetCompanyPermissionId(companyId int) (permissionId string, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_id  ORDER BY b.sort ASC SEPARATOR ',') AS permissionId
 			FROM company_report_permission AS a
 			INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
@@ -117,21 +118,20 @@ func GetCompanyPermissionId(companyId int) (permissionId string, err error) {
             AND b.cygx_auth=1
 			AND c.status IN('正式','试用','永续')
 			AND a.status IN('正式','试用','永续') `
-	o := orm.NewOrm()
 	err = o.Raw(sql, companyId).QueryRow(&permissionId)
 	return
 }
 
 func UserSubscribe(subscribeType, userId int) (err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := `UPDATE wx_user SET cygx_subscribe=?,cygx_subscribe_time=NOW() WHERE user_id = ? `
 	_, err = o.Raw(sql, subscribeType, userId).Exec()
 	return
 }
 
 func CygxUserSubscribe(subscribeType int, unionid string) (err error) {
-	o := orm.NewOrm()
-	sql := `UPDATE cygx_user_record SET subscribe=?,subscribe_time=NOW() WHERE union_id = ? `
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `UPDATE cygx_mfyx_gzh_user_record SET subscribe=?,subscribe_time=NOW() WHERE union_id = ? `
 	_, err = o.Raw(sql, subscribeType, unionid).Exec()
 	return
 }

+ 8 - 0
models/user_record.go

@@ -69,4 +69,12 @@ func GetUserRecordByOpenId(openId string) (item *UserRecord, err error) {
 	sql := `SELECT * FROM user_record WHERE open_id=? `
 	err = o.Raw(sql, openId).QueryRow(&item)
 	return
+}
+
+// 根据openid解除绑定用户关系
+func UnBindUserRecordByOpenid(openId string) (err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	msql := ` UPDATE user_record SET user_id = 0,bind_account="" WHERE open_id = ? `
+	_, err = o.Raw(msql, openId).Exec()
+	return
 }

+ 15 - 3
models/wx_user.go

@@ -99,17 +99,19 @@ type WxGetUserInfoReq struct {
 }
 
 func GetWxUserItemByUserUnionId(unionId string) (item *WxUserItem, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := `SELECT a.*,r.headimgurl as headimgurl_record, b.company_name FROM wx_user AS a
 			INNER JOIN company AS b on a.company_id=b.company_id
 			INNER JOIN user_record  as  r ON r.user_id = a.user_id 
 			WHERE r.union_id=?
 			GROUP BY a.user_id`
-	err = orm.NewOrm().Raw(sql, unionId).QueryRow(&item)
+	err = o.Raw(sql, unionId).QueryRow(&item)
 	return
 }
 
 // 根据用户手机号获取相关信息
 func GetWxUserItemByUserMobile(mobile string) (item *WxUserItem, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := `SELECT
 			a.user_id,
 			a.real_name,
@@ -125,14 +127,24 @@ func GetWxUserItemByUserMobile(mobile string) (item *WxUserItem, err error) {
 			a.mobile = ? 
 		GROUP BY
 			a.mobile `
-	err = orm.NewOrm().Raw(sql, mobile).QueryRow(&item)
+	err = o.Raw(sql, mobile).QueryRow(&item)
 	return
 }
 
 // 获取这个公司下面所有用户的手机号
 func SetUserSubscribeByMobile(mobile string) (err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := ` UPDATE wx_user SET cygx_subscribe=1,cygx_subscribe_time=NOW() WHERE mobile=? `
 	_, err = o.Raw(sql, mobile).Exec()
 	return
 }
+
+// 根据用户ID获取相关信息
+func GetWxUserItemByUserId(userId int) (item *WxUserItem, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT a.*,b.company_name FROM wx_user AS a
+			LEFT JOIN company AS b on a.company_id=b.company_id
+			WHERE a.user_id=? `
+	err = o.Raw(sql, userId).QueryRow(&item)
+	return
+}

+ 62 - 0
services/user.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"errors"
+	"fmt"
 	"hongze/hongze_mfyx_gzh/models"
 	"hongze/hongze_mfyx_gzh/utils"
 )
@@ -44,3 +45,64 @@ func GetWxUserItemByOpenId(unionId string) (item *models.WxUserItem, err error)
 	}
 	return
 }
+
+// 通过openid获取用户信息
+func GetWxUserItemByOpenId2(openid string) (item *models.WxUserItem, err error) {
+	//通过openid获取用户关联信息
+	userRecord, userRecordErr := models.GetUserRecordByOpenId(openid)
+	fmt.Println(userRecordErr)
+	//fmt.Println("userRecordErr", userRecordErr)
+	if userRecordErr != nil {
+		if userRecordErr.Error() == utils.ErrNoRow() {
+			err = ERR_NO_USER_RECORD
+			return
+		} else {
+			err = userRecordErr
+			return
+		}
+	}
+	//该openid在系统中没有关联关系
+	if userRecord == nil {
+		err = ERR_NO_USER_RECORD
+		return
+	}
+
+	//该openid没有绑定用户
+	if userRecord.UserId <= 0 {
+		err = ERR_USER_NOT_BIND
+		item = new(models.WxUserItem)
+		//格式化返回用户数据
+		formatWxUserAndUserRecord(item, userRecord)
+		return
+	}
+	fmt.Println("userRecord.UserId ", userRecord.UserId)
+
+	//获取用户信息
+	item, wxUserErr := models.GetWxUserItemByUserId(userRecord.UserId)
+	//fmt.Println("wxUserErr", wxUserErr)
+	if wxUserErr != nil {
+		err = wxUserErr
+		//如果是找不到数据,那么可能是该用户被删除了,但是user_record没有删除对应的关系
+		if wxUserErr.Error() == utils.ErrNoRow() {
+			//用户被删除了,但是user_record没有删除对应的关系,那么去解除绑定
+			userUnbindErr := models.UnBindUserRecordByOpenid(openid)
+			if userUnbindErr != nil {
+				err = userUnbindErr
+				return
+			}
+			//返回状态为 用户未绑定 逻辑代码
+			err = ERR_USER_NOT_BIND
+			item = new(models.WxUserItem)
+			//格式化返回用户数据
+			formatWxUserAndUserRecord(item, userRecord)
+			return
+		}
+		return
+	}
+	if item.RealName == "" {
+		item.RealName = userRecord.RealName
+	}
+	//格式化返回用户数据
+	formatWxUserAndUserRecord(item, userRecord)
+	return
+}

+ 1 - 1
utils/config.go

@@ -73,7 +73,7 @@ func init() {
 	if RunMode == "release" {
 		WxPublicAppId = "wx2f85cdbe74585222"                   //买方研选
 		WxPublicAppSecret = "98e4a09c9ba6a0b34e0df3192ba1aba3" //买方研选
-		WxId = "gh_ef7675f65027"                               //买方研选公众号原始ID
+		WxId = "gh_38912ddf5884"                               //买方研选公众号原始ID
 	} else {
 		WxPublicAppId = "wx9b5d7291e581233a"                   //弘则投研公众号 开发者ID(AppID)
 		WxPublicAppSecret = "f4d52e34021eee262dce9682b31f8861" //弘则投研公众号秘钥