Ver código fonte

订阅查询接口新增

WH01243 2 anos atrás
pai
commit
4cd8ef6c9c

+ 106 - 0
jyBXSubscribe/rpc/internal/logic/getsubscribeinfologic.go

@@ -0,0 +1,106 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"context"
+	"jyBXSubscribe/rpc/model"
+
+	"jyBXSubscribe/rpc/internal/svc"
+	"jyBXSubscribe/rpc/type/bxsubscribe"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetSubScribeInfoLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetSubScribeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSubScribeInfoLogic {
+	return &GetSubScribeInfoLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// 订阅设置获取
+func (l *GetSubScribeInfoLogic) GetSubScribeInfo(in *bxsubscribe.UserReq) (*bxsubscribe.UserResq, error) {
+	// todo: add your logic here and delete this line
+	data := model.NewSubscribePush(in.Types).GetSubScribeInfo(in)
+	items, ok := (*data)["items"].([]map[string]interface{})
+	if !ok {
+		inter_items, _ := (*data)["items"].([]interface{})
+		items = common.ObjArrToMapArr(inter_items)
+	}
+	buyerclass, _ := (*data)["buyerclass"].([]interface{})
+	infotype, _ := (*data)["infotype"].([]interface{})
+	keytip := false
+	if in.Types == model.MemberFlag && in.PositionType == 0 {
+		keytip = (*data)["b_keytip"].(bool)
+	}
+	return &bxsubscribe.UserResq{
+		ErrorCode: 0,
+		ErrorMsg:  "",
+		Data: &bxsubscribe.Subscribe{
+			Area:         l.formatM(common.ObjToMap((*data)["area"])),
+			Buyerclass:   common.ObjArrToStringArr(buyerclass),
+			Infotype:     common.ObjArrToStringArr(infotype),
+			Matchway:     common.Int64All((*data)["matchway"]),
+			Projectmatch: common.Int64All((*data)["projectmatch"]),
+			Items:        l.formatItems(items),
+			Keytip:       keytip,
+		},
+	}, nil
+}
+
+//格式转化 map<string,list>转化
+func (l *GetSubScribeInfoLogic) formatM(m *map[string]interface{}) map[string]*bxsubscribe.List {
+	retM := map[string]*bxsubscribe.List{}
+	if len(*m) == 0 {
+		return retM
+	}
+	for k, v := range *m {
+		s_v, ok := v.([]string)
+		if !ok {
+			interf, _ := v.([]interface{})
+			s_v = common.ObjArrToStringArr(interf)
+		}
+		retM[k] = &bxsubscribe.List{
+			Value: s_v,
+		}
+	}
+	return retM
+}
+
+func (l *GetSubScribeInfoLogic) formatItems(m []map[string]interface{}) []*bxsubscribe.Items {
+	items := make([]*bxsubscribe.Items, len(m))
+	for k, v := range m {
+		items[k] = &bxsubscribe.Items{
+			SItem:      common.ObjToString(v["s_item"]),
+			UpdateTime: common.Int64All(v["updatetime"]),
+		}
+		akey, _ := v["a_key"].([]map[string]interface{})
+		pbKey := make([]*bxsubscribe.Keys, len(akey))
+		for kk, vv := range akey {
+			key, ok := vv["key"].([]string)
+			if !ok {
+				inter_vv, _ := vv["key"].([]interface{})
+				key = common.ObjArrToStringArr(inter_vv)
+			}
+			notkey, ok := vv["notkey"].([]string)
+			if !ok {
+				inter_vv, _ := vv["notkey"].([]interface{})
+				notkey = common.ObjArrToStringArr(inter_vv)
+			}
+			pbKey[kk] = &bxsubscribe.Keys{
+				Key:        key,
+				Notkey:     notkey,
+				UpdateTime: common.If(vv["updatetime"] == nil, int64(0), common.Int64All(vv["updatetime"])).(int64),
+			}
+		}
+		items[k].AKey = pbKey
+	}
+	return items
+}