|
@@ -1,136 +1,137 @@
|
|
|
package rpcfollow
|
|
|
|
|
|
import (
|
|
|
- "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
|
|
|
- "encoding/json"
|
|
|
- "jy/src/jfw/modules/subscribepay/src/config"
|
|
|
- "jy/src/jfw/modules/subscribepay/src/entity"
|
|
|
- "jy/src/jfw/modules/subscribepay/src/util"
|
|
|
- "time"
|
|
|
+ "encoding/json"
|
|
|
+ "jy/src/jfw/modules/subscribepay/src/config"
|
|
|
+ "jy/src/jfw/modules/subscribepay/src/entity"
|
|
|
+ "jy/src/jfw/modules/subscribepay/src/util"
|
|
|
+ "time"
|
|
|
|
|
|
- "app.yhyue.com/moapp/jybase/go-xweb/httpsession"
|
|
|
- "go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
+ "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
|
|
|
|
|
|
- qu "app.yhyue.com/moapp/jybase/common"
|
|
|
- . "app.yhyue.com/moapp/jybase/date"
|
|
|
- frpc "app.yhyue.com/moapp/jybase/rpc"
|
|
|
- "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
|
|
|
+ "app.yhyue.com/moapp/jybase/go-xweb/httpsession"
|
|
|
+ "go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
+
|
|
|
+ qu "app.yhyue.com/moapp/jybase/common"
|
|
|
+ . "app.yhyue.com/moapp/jybase/date"
|
|
|
+ frpc "app.yhyue.com/moapp/jybase/rpc"
|
|
|
+ "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
|
|
|
)
|
|
|
|
|
|
//用户分享完成后,分享者和被分享者订单处理
|
|
|
-func (s *JyPayRpc) ShareFissionNew(p *frpc.JYShareUserIdsRes, r *frpc.JYShareResp, sessVal map[string]interface{}) error {
|
|
|
- if len(p.ShareUserInfo) > 0 {
|
|
|
- errArr := []interface{}{}
|
|
|
- for _, ps := range p.ShareUserInfo {
|
|
|
- userId := ps.UserId
|
|
|
- _, err := primitive.ObjectIDFromHex(userId)
|
|
|
- if err != nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- data := util.Compatible.Select(userId, `{"i_vip_status":1,"l_vip_starttime":1,"l_vip_endtime":1,"o_vipjy":1,"i_shareCount":1,"s_m_openid":1}`)
|
|
|
- if data != nil && len(*data) > 0 {
|
|
|
- now := time.Now()
|
|
|
- vip_status := qu.IntAll((*data)["i_vip_status"])
|
|
|
- nowDay := time.Date(now.Year(), now.Month(), now.Day(), 23, 59, 59, 59, now.Location()).Unix() //当前晚上23:59:59
|
|
|
- endtime := qu.Int64All(qu.If(qu.Int64All((*data)["l_vip_endtime"]) < nowDay, nowDay, qu.Int64All((*data)["l_vip_endtime"])))
|
|
|
- //更新user表
|
|
|
- setMap := map[string]interface{}{}
|
|
|
- var updateMap = map[string]interface{}{}
|
|
|
- endT := time.Unix(endtime, 0).AddDate(0, 0, ps.TimeExpand)
|
|
|
- types := 2 //默认开通权益
|
|
|
- if vip_status == 2 {
|
|
|
- types = 1 //仅延长周期
|
|
|
- //超级订阅用户
|
|
|
- updateMap = map[string]interface{}{
|
|
|
- "l_vip_endtime": endT.Unix(),
|
|
|
- }
|
|
|
- } else if vip_status <= 0 {
|
|
|
- var (
|
|
|
- area = map[string]interface{}{"北京": []string{}}
|
|
|
- areaCount = 1
|
|
|
- )
|
|
|
- //22年双十一预热福利---2021年至今的免费用户
|
|
|
- if ps.Remark == "22年双十一预热福利" {
|
|
|
- //活动赠送7天 全国 超级订阅
|
|
|
- area = map[string]interface{}{}
|
|
|
- areaCount = -1
|
|
|
- }
|
|
|
- //非超级订阅用户
|
|
|
- updateMap = map[string]interface{}{
|
|
|
- "i_vip_status": 2,
|
|
|
- "l_vip_starttime": now.Unix(),
|
|
|
- "l_vip_endtime": endT.Unix(),
|
|
|
- "o_vipjy.o_area": area,
|
|
|
- "o_vipjy.o_buyset.areacount": areaCount,
|
|
|
- "o_vipjy.o_buyset.buyerclasscount": -1,
|
|
|
- "o_vipjy.o_buyset.upgrade": 1,
|
|
|
- "o_vipjy.o_buyset.newcitys": []string{},
|
|
|
- }
|
|
|
- if vip_status == 0 {
|
|
|
- updateMap["o_vipjy.i_trial"] = -1
|
|
|
- updateMap["o_vipjy.a_buyerclass"] = []string{}
|
|
|
- }
|
|
|
- }
|
|
|
- setMap["$set"] = updateMap
|
|
|
- if !util.Compatible.Update(userId, setMap) {
|
|
|
- errArr = append(errArr, map[string]interface{}{
|
|
|
- "code": -3,
|
|
|
- "msg": "更新用户超级订阅状态失败",
|
|
|
- "userId": userId,
|
|
|
- })
|
|
|
- }
|
|
|
- positionId := util.MongoIdToPositionId(userId)
|
|
|
- jy.ClearBigVipUserPower(positionId)
|
|
|
- config.Middleground.UserCenter.WorkDesktopClearUserInfo(pb.WorkDesktopClearUserInfoReq{
|
|
|
- PositionId: positionId,
|
|
|
- AppId: "10000",
|
|
|
- })
|
|
|
- config.Middleground.PowerCheckCenter.DelCheckRedis("10000", qu.Int64All(positionId))
|
|
|
- st, et := "", ""
|
|
|
- st = time.Unix(endtime, 0).Format(Date_Full_Layout)
|
|
|
- et = endT.Format(Date_Full_Layout)
|
|
|
- if !entity.Order(userId, st, et, types, ps.TimeExpand, ps.Remark) {
|
|
|
- r.Error_code = -2
|
|
|
- errArr = append(errArr, map[string]interface{}{
|
|
|
- "code": -2,
|
|
|
- "msg": "保存记录失败",
|
|
|
- "userId": userId,
|
|
|
- })
|
|
|
- }
|
|
|
- } else {
|
|
|
- r.Error_code = -1
|
|
|
- errArr = append(errArr, map[string]interface{}{
|
|
|
- "code": -1,
|
|
|
- "msg": "mgo获取用户信息失败",
|
|
|
- "userId": userId,
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- if len(errArr) > 0 {
|
|
|
- b, _ := json.Marshal(errArr)
|
|
|
- r.Data = b
|
|
|
- }
|
|
|
- }
|
|
|
- return nil
|
|
|
+func (s *JyPayRpc) ShareFissionNew(p *frpc.JYShareUserIdsRes, r *frpc.JYShareResp) error {
|
|
|
+ if len(p.ShareUserInfo) > 0 {
|
|
|
+ errArr := []interface{}{}
|
|
|
+ for _, ps := range p.ShareUserInfo {
|
|
|
+ userId := ps.UserId
|
|
|
+ _, err := primitive.ObjectIDFromHex(userId)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ data := util.Compatible.Select(userId, `{"i_vip_status":1,"l_vip_starttime":1,"l_vip_endtime":1,"o_vipjy":1,"i_shareCount":1,"s_m_openid":1}`)
|
|
|
+ if data != nil && len(*data) > 0 {
|
|
|
+ now := time.Now()
|
|
|
+ vip_status := qu.IntAll((*data)["i_vip_status"])
|
|
|
+ nowDay := time.Date(now.Year(), now.Month(), now.Day(), 23, 59, 59, 59, now.Location()).Unix() //当前晚上23:59:59
|
|
|
+ endtime := qu.Int64All(qu.If(qu.Int64All((*data)["l_vip_endtime"]) < nowDay, nowDay, qu.Int64All((*data)["l_vip_endtime"])))
|
|
|
+ //更新user表
|
|
|
+ setMap := map[string]interface{}{}
|
|
|
+ var updateMap = map[string]interface{}{}
|
|
|
+ endT := time.Unix(endtime, 0).AddDate(0, 0, ps.TimeExpand)
|
|
|
+ types := 2 //默认开通权益
|
|
|
+ if vip_status == 2 {
|
|
|
+ types = 1 //仅延长周期
|
|
|
+ //超级订阅用户
|
|
|
+ updateMap = map[string]interface{}{
|
|
|
+ "l_vip_endtime": endT.Unix(),
|
|
|
+ }
|
|
|
+ } else if vip_status <= 0 {
|
|
|
+ var (
|
|
|
+ area = map[string]interface{}{"北京": []string{}}
|
|
|
+ areaCount = 1
|
|
|
+ )
|
|
|
+ //22年双十一预热福利---2021年至今的免费用户
|
|
|
+ if ps.Remark == "22年双十一预热福利" {
|
|
|
+ //活动赠送7天 全国 超级订阅
|
|
|
+ area = map[string]interface{}{}
|
|
|
+ areaCount = -1
|
|
|
+ }
|
|
|
+ //非超级订阅用户
|
|
|
+ updateMap = map[string]interface{}{
|
|
|
+ "i_vip_status": 2,
|
|
|
+ "l_vip_starttime": now.Unix(),
|
|
|
+ "l_vip_endtime": endT.Unix(),
|
|
|
+ "o_vipjy.o_area": area,
|
|
|
+ "o_vipjy.o_buyset.areacount": areaCount,
|
|
|
+ "o_vipjy.o_buyset.buyerclasscount": -1,
|
|
|
+ "o_vipjy.o_buyset.upgrade": 1,
|
|
|
+ "o_vipjy.o_buyset.newcitys": []string{},
|
|
|
+ }
|
|
|
+ if vip_status == 0 {
|
|
|
+ updateMap["o_vipjy.i_trial"] = -1
|
|
|
+ updateMap["o_vipjy.a_buyerclass"] = []string{}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setMap["$set"] = updateMap
|
|
|
+ if !util.Compatible.Update(userId, setMap) {
|
|
|
+ errArr = append(errArr, map[string]interface{}{
|
|
|
+ "code": -3,
|
|
|
+ "msg": "更新用户超级订阅状态失败",
|
|
|
+ "userId": userId,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ positionId := util.MongoIdToPositionId(userId)
|
|
|
+ jy.ClearBigVipUserPower(positionId)
|
|
|
+ config.Middleground.UserCenter.WorkDesktopClearUserInfo(pb.WorkDesktopClearUserInfoReq{
|
|
|
+ PositionId: positionId,
|
|
|
+ AppId: "10000",
|
|
|
+ })
|
|
|
+ config.Middleground.PowerCheckCenter.DelCheckRedis("10000", qu.Int64All(positionId))
|
|
|
+ st, et := "", ""
|
|
|
+ st = time.Unix(endtime, 0).Format(Date_Full_Layout)
|
|
|
+ et = endT.Format(Date_Full_Layout)
|
|
|
+ if !entity.Order(userId, st, et, types, ps.TimeExpand, ps.Remark) {
|
|
|
+ r.Error_code = -2
|
|
|
+ errArr = append(errArr, map[string]interface{}{
|
|
|
+ "code": -2,
|
|
|
+ "msg": "保存记录失败",
|
|
|
+ "userId": userId,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ r.Error_code = -1
|
|
|
+ errArr = append(errArr, map[string]interface{}{
|
|
|
+ "code": -1,
|
|
|
+ "msg": "mgo获取用户信息失败",
|
|
|
+ "userId": userId,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(errArr) > 0 {
|
|
|
+ b, _ := json.Marshal(errArr)
|
|
|
+ r.Data = b
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
//获取用户权益信息
|
|
|
func (s *JyPayRpc) GetUserPowerInfo(p *frpc.JYShareUserIdsRes, r *frpc.JYShareResp, session *httpsession.Session) error {
|
|
|
- if len(p.ShareUserInfo) > 0 {
|
|
|
- ps := p.ShareUserInfo[0]
|
|
|
- bigBaseMsg := jy.GetBigVipUserBaseMsg(session, *config.Middleground)
|
|
|
- if bigBaseMsg == nil {
|
|
|
- r.Error_code = -1
|
|
|
- r.Error_msg = ps.UserId
|
|
|
- r.Data = map[string]interface{}{
|
|
|
- "code": -1,
|
|
|
- "msg": "获取用户权益详情失败",
|
|
|
- "userId": ps.UserId,
|
|
|
- }
|
|
|
- } else {
|
|
|
- data, _ := json.Marshal(*bigBaseMsg)
|
|
|
- r.Data = data
|
|
|
- }
|
|
|
- }
|
|
|
- return nil
|
|
|
+ if len(p.ShareUserInfo) > 0 {
|
|
|
+ ps := p.ShareUserInfo[0]
|
|
|
+ bigBaseMsg := jy.GetBigVipUserBaseMsg(session, *config.Middleground)
|
|
|
+ if bigBaseMsg == nil {
|
|
|
+ r.Error_code = -1
|
|
|
+ r.Error_msg = ps.UserId
|
|
|
+ r.Data = map[string]interface{}{
|
|
|
+ "code": -1,
|
|
|
+ "msg": "获取用户权益详情失败",
|
|
|
+ "userId": ps.UserId,
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data, _ := json.Marshal(*bigBaseMsg)
|
|
|
+ r.Data = data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|