فهرست منبع

修改主程序

wangkaiyue 6 سال پیش
والد
کامیت
7edde1879d
5فایلهای تغییر یافته به همراه77 افزوده شده و 47 حذف شده
  1. 15 22
      src/jfw/front/front.go
  2. 2 2
      src/jfw/front/laboratory.go
  3. 51 14
      src/jfw/front/pchelper.go
  4. 8 8
      src/jfw/front/shorturl.go
  5. 1 1
      src/jfw/front/websocket.go

+ 15 - 22
src/jfw/front/front.go

@@ -563,7 +563,6 @@ func (f *Front) Login(key string) error {
 
 //用户是否登录
 func (f *Front) HasSign() error {
-	log.Println("into~~~~~~~~~~~~~~~~~~~~~~~~")
 	tmp := f.Session().Get("user")
 	openid := f.GetSession("s_m_openid")
 	if openid == nil {
@@ -583,7 +582,6 @@ func (f *Front) HasSign() error {
 			"encryptId":    se.EncodeString(util.BsonIdToSId(user["_id"])),
 		})
 	}
-	log.Println("end~~~~~~~~~~~~~~~~~~~~~~")
 	return nil
 }
 
@@ -852,8 +850,9 @@ func (m *Front) Wxprotocol() error {
 //推送列表
 func (m *Front) WxpushListInfo(_id string) error {
 	defer util.Catch()
-	openid, _ := m.Session().Get("s_m_openid").(string)
-	if openid == "" {
+	openid := util.ObjToString(m.GetSession("s_m_openid"))
+	userid := util.ObjToString(m.GetSession("userId"))
+	if userid == "" {
 		m.T["isWeixin"] = 1
 		return m.Render("/weixin/about.html")
 	}
@@ -861,21 +860,21 @@ func (m *Front) WxpushListInfo(_id string) error {
 	date := util.Int64All(_id)
 	if date > 0 {
 		go ca.SaveCache("jy_pushvisit", map[string]interface{}{
-			"openid": openid,
+			"openid": userid,
 			"pdate":  date,
 			"vsid":   "-1", //打开列表页,无sid默认为-1
 			"date":   time.Now(),
 			"isopen": true,
 		})
 		//获取已浏览记录
-		visited := ca.Search("select vsid from jy_pushvisit where openid=? and pdate=?", openid, date)
+		visited := ca.Search("select vsid from jy_pushvisit where openid=? and pdate=?", userid, date)
 		vsidList := []string{}
 		for _, v := range visited {
 			vsidList = append(vsidList, (v["vsid"]).(string))
 		}
 
 		//获取推送信息
-		data := ca.SearchOne("select * from jy_push where id=? and openid=? and date=?", util.FormatDateByInt64(&date, util.Date_Short_Layout), openid, _id)
+		data := ca.SearchOne("select * from jy_push where id=? and openid=? and date=?", util.FormatDateByInt64(&date, util.Date_Short_Layout), userid, _id)
 		res := make(map[string]interface{})
 		if len(data) > 0 {
 			data["visit"] = vsidList
@@ -924,7 +923,7 @@ func (m *Front) WxpushListInfo(_id string) error {
 	myavatar, _ := m.Session().Get("s_avatar").(string)
 	m.T["nickname"] = mynickname
 	m.T["avatar"] = myavatar
-	m.T["forceShareFlag"] = public.CheckUserNeedForceShare(openid, public.ShareType_push)
+	m.T["forceShareFlag"] = public.CheckUserNeedForceShare(userid, public.ShareType_push)
 	return m.Render("/weixin/wxpush.html", &m.T)
 }
 func (m *Front) Feedback() error {
@@ -1232,8 +1231,8 @@ func (f *Front) DownloadJyAppQr() error {
 }
 
 func (f *Front) LimitSearchText() {
-	openid, _ := f.GetSession("s_m_openid").(string)
-	if openid == "" || !public.Lst.IsCanLogin(openid) {
+	userid := util.ObjToString(f.GetSession("userId"))
+	if userid == "" || !public.Lst.IsCanLogin(userid) {
 		f.Write("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">需要登录!")
 		return
 	}
@@ -1444,8 +1443,8 @@ func (f *Front) YmResult() error {
 
 //
 func (f *Front) JylabShareTimeline() {
-	openid, _ := f.GetSession("s_m_openid").(string)
-	if openid == "" {
+	userid := util.ObjToString(f.GetSession("userId"))
+	if userid == "" {
 		f.ServeJson(map[string]interface{}{
 			"status": false,
 		})
@@ -1453,13 +1452,13 @@ func (f *Front) JylabShareTimeline() {
 	}
 	reqType := f.GetString("reqType")
 	if reqType == "update" {
-		public.UpdateShareStatus(openid, "wx", 3, 1, 0, false)
+		public.UpdateShareStatus(userid, "wx", 3, 1, 0, false)
 		f.ServeJson(map[string]interface{}{
 			"status": true,
 		})
 	} else {
 		jylabsharetimeline := 1
-		if public.CheckUserNeedForceShare(openid, public.ShareType_lab) {
+		if public.CheckUserNeedForceShare(userid, public.ShareType_lab) {
 			jylabsharetimeline = 0
 		}
 		f.ServeJson(map[string]interface{}{
@@ -1475,13 +1474,7 @@ shareType - 分享类型 1-详情页 2-推送列表 3-实验室
 shareProperty - 分享性质 1-被动分享 2-主动分享
 */
 func (s *Front) UpdateShareStatus() error {
-	openId := s.GetString("openId")
-	if openId != "" {
-		openId = se.DecodeString(openId)
-	}
-	if openId == "" {
-		openId, _ = s.GetSession("s_m_openid").(string)
-	}
+	userid := util.ObjToString(s.GetSession("userId"))
 	shareType, _ := s.GetInt("shareType")
 	shareProperty, _ := s.GetInt("shareProperty")
 	ispcforceshare, _ := s.GetInt("ispcforceshare")
@@ -1489,7 +1482,7 @@ func (s *Front) UpdateShareStatus() error {
 	if platform == "" {
 		platform = "wx"
 	}
-	public.UpdateShareStatus(openId, platform, shareType, shareProperty, ispcforceshare, s.GetString("isRepair") == "y")
+	public.UpdateShareStatus(userid, platform, shareType, shareProperty, ispcforceshare, s.GetString("isRepair") == "y")
 	s.ServeJson(map[string]interface{}{})
 	return nil
 }

+ 2 - 2
src/jfw/front/laboratory.go

@@ -181,8 +181,8 @@ func (l *Lab) QrToLab(t string) error {
 
 //pc端扫码进入实验室子页面
 func (l *Lab) QrToLabSubpage(t string) error {
-	myopenid, _ := l.Session().Get("s_m_openid").(string)
-	if myopenid == "" {
+	userid := util.ObjToString(l.GetSession("userId"))
+	if userid == "" {
 		if l.GetString("state") == "wx" {
 			//微信跳回来的
 			code := l.GetString("code")

+ 51 - 14
src/jfw/front/pchelper.go

@@ -82,9 +82,9 @@ func (l *PcHelper) Login() error {
 				return -1
 			}
 			query := map[string]interface{}{
-				"i_appid": 2,
-				"s_phone": phone,
-				//"i_type":     1, //app用户(手机号注册用户)
+				"i_appid":    2,
+				"s_phone":    phone,
+				"i_type":     1, //app用户(手机号注册用户)
 				"s_password": util.GetMd5String(password),
 			}
 			user, ok := mongodb.FindOne("user", query)
@@ -143,8 +143,8 @@ func (l *PcHelper) Login() error {
 						}
 					} else {
 						deleteIdentSession_(l.Session())
-						if (*user)["s_phone"] != nil {
-							reOpenId = (*user)["s_phone"].(string)
+						if (*user)["s_m_openid"] != nil {
+							reOpenId = (*user)["s_m_openid"].(string)
 						}
 						if (*user)["s_nickname"] != nil {
 							reNickname = (*user)["s_nickname"].(string)
@@ -218,7 +218,7 @@ func (l *PcHelper) Logout() {
 	l.DelSession("user")
 	l.DelSession("rpcBackUserInfo")
 	//pcHelper-login
-	l.DelSession("s_m_openid")
+	l.DelSession("userId")
 	deleteIdentSession_(l.Session())
 	l.ServeJson(map[string]interface{}{
 		"status": 1,
@@ -275,7 +275,11 @@ func (l *PcHelper) ToAct(token string) error {
 		} else {
 			if b {
 				if phone != "" && deMac != "" {
-					l.SetSession("s_m_openid", phone)
+					if len(phone) == 11 {
+						PcHelperLoginInfo(phone, l.Session())
+					} else {
+						LoginInfo("", phone, l.Session())
+					}
 					sessUser := l.GetSession("user").(map[string]interface{})
 					if sessUser != nil {
 						if sessUser["s_nickname"] == nil || sessUser["s_nickname"] == "" {
@@ -314,18 +318,15 @@ func (l *PcHelper) ToSearch() error {
 func (l *PcHelper) PushView() error {
 	defer util.Catch()
 	lasttime, _ := l.GetInt("lasttime")
-	myopenid := ""
-	if l.GetSession("s_m_openid") != nil {
-		myopenid, _ = l.GetSession("s_m_openid").(string)
-	}
-	log.Println(logPrefix, "PushView-param", "lasttime:", lasttime, "openid:", myopenid)
+	userid := util.ObjToString(l.GetSession("userId"))
+	log.Println(logPrefix, "PushView-param", "lasttime:", lasttime, "userid:", userid)
 	res := map[string]interface{}{}
 	res["success"] = false
-	if myopenid != "" && lasttime > 0 {
+	if userid != "" && lasttime > 0 {
 		if lasttime == 1 {
 			lasttime = time.Now().Local().Unix()
 		}
-		thistime, list := getHistorypush(lasttime, 0, myopenid, nil, 0)
+		thistime, list := getHistorypush(lasttime, 0, userid, nil, 0)
 		log.Println(logPrefix, "PushView-getHistorypush-size", len(*list))
 		if list != nil && len(*list) > 0 {
 			res["success"] = true
@@ -466,3 +467,39 @@ func decryptUToken(token string) (string, string) {
 	}
 	return vs[0], openid
 }
+
+//手机号登录创建session
+func PcHelperLoginInfo(phone string, Sess interface{}) {
+	if Sess == nil {
+		return
+	}
+	sess, _ := Sess.(*httpsession.Session)
+	infoData := make(map[string]interface{})
+	if phone != "" {
+
+		redisheadimg := redis.Get("other", "newUser-"+phone)
+		if redisheadimg == nil {
+			redisheadimg = ""
+		}
+		user, _ := mongodb.FindOneByField("user", `{"s_phone":"`+phone+`"}`, `{"s_nickname":1,"s_headimage":1,"s_m_openid":1,"_id":1}`)
+		if user != nil && len(*user) > 0 {
+			infoData["result"] = "ok"
+			infoData["s_nickname"] = fmt.Sprint((*user)["s_nickname"])
+			infoData["s_headimage"] = fmt.Sprint((*user)["s_headimage"])
+			infoData["redisheadimg"] = fmt.Sprint(redisheadimg)
+			infoData["encryptId"] = se.EncodeString(util.BsonIdToSId((*user)["_id"]))
+			infoData["shareid"] = ""
+			infoData["openid"] = se.EncodeString(phone) //add 20181116
+			(*user)["shareid"] = ""
+			nick := fmt.Sprint((*user)["s_nickname"])
+			(*user)["s_m_openid"] = phone
+			sess.Set("nickname", nick)
+			sess.Set("s_nickname", nick)
+			sess.Set("openid", phone)
+			sess.Set("s_m_openid", phone)
+			sess.Set("user", *user)
+			sess.Set("userId", util.BsonIdToSId((*user)["_id"]))
+			sess.Set("rpcBackUserInfo", infoData)
+		}
+	}
+}

+ 8 - 8
src/jfw/front/shorturl.go

@@ -89,6 +89,11 @@ func (s *Short) Article(stype, id string) error {
 	}
 	ssOpenid := s.Session().Get("s_m_openid")
 	//redis.Put("recovery", "rec-"+ssOpenid.(string), "T", 60*60*30)
+	userId, _ := s.GetSession("userId").(string)
+	if userId == "" && ssOpenid != "" {
+		data1, _ := mongodb.FindOneByField("user", bson.M{"s_m_openid": ssOpenid}, `{"_id":1}`)
+		userId = util.BsonIdToSId((*data1)["_id"])
+	}
 	if bm {
 		//判断有没有取关,取关的话,跳转到关于剑鱼页面
 		if ssOpenid != nil && ssOpenid != "" {
@@ -138,11 +143,6 @@ func (s *Short) Article(stype, id string) error {
 		s.T["nickname"] = mynickname
 		s.T["avatar"] = myavatar
 		s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
-		userId, _ := s.GetSession("userId").(string)
-		if userId == "" && ssOpenid != "" {
-			data1, _ := mongodb.FindOneByField("user", bson.M{"s_m_openid": ssOpenid}, `{"_id":1}`)
-			userId = util.BsonIdToSId((*data1)["_id"])
-		}
 		var obj map[string]interface{}
 		obj = wxvisitD(sid, userId, myopenid)
 		if len(obj) > 0 {
@@ -166,7 +166,7 @@ func (s *Short) Article(stype, id string) error {
 					rec = "_rec"
 				}
 			}
-			s.T["forceShareFlag"] = public.CheckUserNeedForceShare(ssOpenid.(string), public.ShareType_detail) //是否强制分享
+			s.T["forceShareFlag"] = public.CheckUserNeedForceShare(userId, public.ShareType_detail) //是否强制分享
 			content, _ := s.Render4Cache("/weixin/wxinfocontent"+rec+".html", &s.T)
 			//	redis.Put("other", "jywxdetail_"+sid+kds, string(content), 60*60*2)
 			return s.SetBody(content)
@@ -186,10 +186,10 @@ func (s *Short) Article(stype, id string) error {
 		sid := sids[0]
 		//log.Println("sid", sid)
 		var rec = ""
-		if ssOpenid != nil && ssOpenid != "" {
+		if ssOpenid != nil && ssOpenid != "" && userId != "" {
 			if stype == "content" {
 				//判断是否需要强制分享
-				isForceShare = public.CheckUserNeedForceShare(ssOpenid.(string), public.ShareType_detail)
+				isForceShare = public.CheckUserNeedForceShare(userId, public.ShareType_detail)
 			}
 			if !isForceShare {
 				if redis.Get("recovery", "rec-"+ssOpenid.(string)) != nil {

+ 1 - 1
src/jfw/front/websocket.go

@@ -142,7 +142,7 @@ func LoginInfo(shareid, openid string, Sess interface{}) (infoData map[string]in
 		if redisheadimg == nil {
 			redisheadimg = ""
 		}
-		user, _ := mongodb.FindOneByField("user", `{"s_m_openid":"`+openid+`"}`, `{"s_nickname":1,"s_headimage":1,"s_m_openid":1}`)
+		user, _ := mongodb.FindOneByField("user", `{"s_m_openid":"`+openid+`"}`, `{"s_nickname":1,"s_headimage":1,"s_m_openid":1,"_id":1}`)
 		if user != nil && len(*user) > 0 {
 			infoData["result"] = "ok"
 			infoData["s_nickname"] = fmt.Sprint((*user)["s_nickname"])