biz

package
v0.0.0-...-517a707 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2024 License: MIT Imports: 23 Imported by: 0

README

Biz

Documentation

Index

Constants

View Source
const (
	CommercialHouseTypeBuyXzl  = "buy_xzl"
	CommercialHouseTypeRentXzl = "rent_xzl"
	CommercialHouseTypeBuySp   = "buy_sp"
	CommercialHouseTypeRentSp  = "rent_sp"
	CommercialBaseUrl          = "https://shang.lianjia.com/api/ke/"
)
View Source
const (
	HouseTypeErshoufang                  HoueseType = "ershoufang"
	HouseTypeLoupan                      HoueseType = "loupan"
	HouseTypeZufang                      HoueseType = "zufang"
	HouseTypeCommercial                  HoueseType = "commercial"
	LianjiaErshoufangRunningCrawlTaskKey            = "lianjia_ershoufang_running_task"
	LianjiaLoupanRunningCrawlTaskKey                = "lianjia_loupan_running_task"
	LianjiaCommercialRunningCrawlTaskKey            = "lianjia_commercial_running_task"
	LianjiaErshoufangIdempotentKey                  = "ershoufang_"
	LianjiaLoupanIdempotentKey                      = "loupan_"
	LianjiaCommercialIdempotentKey                  = "commercial_"
)
View Source
const (
	QueueModeKafka     = "kafka"
	QueueModeGoChannel = "channel"
	ChanQueueSize      = 100
)

Variables

View Source
var (
	ErshoufangProcessChan chan []Message
	LoupanProcessChan     chan []Message
	CommercialProcessChan chan []Message
	ZufangProcessChan     chan []Message
)

ProviderSet is biz providers.

Functions

func NewCommercialUrl

func NewCommercialUrl(cityId int, commType CommercialHouseType, page, size int) (string, error)

func RandomUA

func RandomUA() string

Types

type CityInfo

type CityInfo struct {
	Id            int    `json:"id"`
	CityCode      int    `json:"city_code"`
	Name          string `json:"name"`
	Host          string `json:"host"`
	MobileHost    string `json:"mobile_host"`
	Short         string `json:"short"`
	Province      string `json:"province"`
	ProvinceShort string `json:"province_short"`
	Pinyin        string `json:"pinyin"`
	Longitude     string `json:"longitude"`
	Latitude      string `json:"latitude"`
	Url           string `json:"url"`
}

type CityMap

type CityMap map[string]CityInfo

type CommercialHouseType

type CommercialHouseType string

type CommercialInfo

type CommercialInfo struct {
	HouseCode               int       `json:"house_code"`
	BuildingID              int       `json:"building_id"`
	HousedelCode            int64     `json:"housedel_code"`
	Title                   string    `json:"title"`
	CityID                  int       `json:"city_id"`
	CityName                string    `json:"city_name"`
	DistrictName            string    `json:"district_name"`
	BizcircleName           string    `json:"bizcircle_name"`
	StreetName              string    `json:"street_name"`
	ResblockName            string    `json:"resblock_name"`
	UnitRentPrice           float64   `json:"unit_rent_price"`
	UnitMonthRentPrice      float64   `json:"unit_month_rent_price"`
	RentPrice               int       `json:"rent_price"`
	UnitSellPrice           int       `json:"unit_sell_price"`
	SellPrice               int       `json:"sell_price"`
	Area                    float64   `json:"area"`
	Score                   float64   `json:"score"`
	CmarkName               string    `json:"cmark_name"`
	Image                   string    `json:"image"`
	Fitment                 int       `json:"fitment"`
	FitmentName             string    `json:"fitment_name"`
	HasFurniture            int       `json:"has_furniture"`
	HasFurnitureName        string    `json:"has_furniture_name"`
	HasMeetingRoom          int       `json:"has_meeting_room"`
	HasMeetingRoomName      string    `json:"has_meeting_room_name"`
	ParkingType             int       `json:"parking_type"`
	IsNearSubway            int       `json:"is_near_subway"`
	IsNearSubwayName        string    `json:"is_near_subway_name"`
	IsRegisteredCompany     int       `json:"is_registered_company"`
	IsRegisteredCompanyName string    `json:"is_registered_company_name"`
	FloorPosition           int       `json:"floor_position"`
	FloorPositionName       string    `json:"floor_position_name"`
	ShowingTime             int       `json:"showing_time"`
	ShowingTimeName         string    `json:"showing_time_name"`
	SubwayDistance          int       `json:"subway_distance"`
	SubwayDistanceName      string    `json:"subway_distance_name"`
	Tags                    string    `json:"tags"`
	IsReal                  int       `json:"is_real"`
	HasVr                   int       `json:"has_vr"`
	Ctime                   time.Time `json:"ctime"`
}

type CommercialRaw

type CommercialRaw struct {
	HouseCode               int         `json:"house_code"`
	BuildingID              int         `json:"building_id"`
	HousedelCode            int64       `json:"housedel_code"`
	Title                   string      `json:"title"`
	CityID                  int         `json:"city_id"`
	CityName                string      `json:"city_name"`
	DistrictName            string      `json:"district_name"`
	BizcircleName           string      `json:"bizcircle_name"`
	StreetName              string      `json:"street_name"`
	ResblockName            string      `json:"resblock_name"`
	UnitRentPrice           float64     `json:"unit_rent_price"`
	UnitMonthRentPrice      float64     `json:"unit_month_rent_price"`
	RentPrice               int         `json:"rent_price"`
	UnitSellPrice           int         `json:"unit_sell_price"`
	SellPrice               int         `json:"sell_price"`
	Area                    float64     `json:"area"`
	Score                   float64     `json:"score"`
	CmarkName               interface{} `json:"cmark_name"`
	Image                   string      `json:"image"`
	Fitment                 int         `json:"fitment"`
	FitmentName             string      `json:"fitment_name"`
	HasFurniture            bool        `json:"has_furniture"`
	HasFurnitureName        string      `json:"has_furniture_name"`
	HasMeetingRoom          bool        `json:"has_meeting_room"`
	HasMeetingRoomName      string      `json:"has_meeting_room_name"`
	ParkingType             int         `json:"parking_type"`
	IsNearSubway            bool        `json:"is_near_subway"`
	IsNearSubwayName        string      `json:"is_near_subway_name"`
	IsRegisteredCompany     bool        `json:"is_registered_company"`
	IsRegisteredCompanyName string      `json:"is_registered_company_name"`
	FloorPosition           int         `json:"floor_position"`
	FloorPositionName       string      `json:"floor_position_name"`
	ShowingTime             int         `json:"showing_time"`
	ShowingTimeName         string      `json:"showing_time_name"`
	SubwayDistance          int         `json:"subway_distance"`
	SubwayDistanceName      string      `json:"subway_distance_name"`
	Tags                    []string    `json:"tags"`
	IsReal                  bool        `json:"is_real"`
	HasVr                   bool        `json:"has_vr"`
	Ctime                   string      `json:"ctime"`
}

func (*CommercialRaw) ConvertToCommercial

func (c *CommercialRaw) ConvertToCommercial() CommercialInfo

type ErShouFangInfo

type ErShouFangInfo struct {
	CityID                        int64   `json:"city_id"`
	HouseCode                     string  `json:"house_code"`
	ResblockID                    int64   `json:"resblock_id"`
	Title                         string  `json:"title"`
	Desc                          string  `json:"desc"`
	BangdanTitle                  string  `json:"bangdan_title"`
	RecoDesc                      string  `json:"reco_desc"`
	TotalPrice                    string  `json:"total_price"`
	UnitPrice                     string  `json:"unit_price"`
	JumpURL                       string  `json:"jump_url"`
	ListPictureURL                string  `json:"list_picture_url"`
	HouseStatus                   int     `json:"house_status"`
	CtypeHouseStatus              int     `json:"is_ctype_house"`
	FbExpoID                      string  `json:"fb_expo_id"`
	YeZhuTuijianStatus            int     `json:"ye_zhu_tuijian_status"`
	HaofangStatus                 int     `json:"haofang_status"`
	YezhuPayStatus                int     `json:"yezhu_pay_status"`
	VrStatus                      int     `json:"vr_status"`
	KeyStatus                     int     `json:"key_status"`
	NewStatus                     int     `json:"new_status"`
	BrandTitle                    string  `json:"brand_title"`
	HotTopDspAgentUcID            string  `json:"hot_top_dsp_agent_uc_id"`
	HotTopDigV                    string  `json:"hot_top_dig_v"`
	HotTop                        int     `json:"hot_top"`
	SellPriceStatus               int     `json:"sell_price_status"`
	PriceListingGovCn             int     `json:"price_listing_gov_cn"`
	UnitPriceGov                  int     `json:"unit_price_gov"`
	TotalPricePrefix              string  `json:"total_price_prefix"`
	TotalPriceTitle               float64 `json:"total_price_title"`
	TotalPriceSuffix              string  `json:"total_price_suffix"`
	UnitPricePrefix               string  `json:"unit_price_prefix"`
	UnitPriceTitle                float64 `json:"unit_price_title"`
	UnitPriceSuffix               string  `json:"unit_price_suffix"`
	PriceInfoListTotalPricePrefix string  `json:"price_info_list_total_price_prefix"`
	PriceInfoListTotalPriceStr    string  `json:"price_info_list_total_price_str"`
	PriceInfoListTotalPriceSuffix string  `json:"price_info_list_total_price_suffix"`
	PriceInfoListUnitPricePrefix  string  `json:"price_info_list_unit_price_prefix"`
	PriceInfoListUnitPriceStr     string  `json:"price_info_list_unit_price_str"`
	PriceInfoListUnitPriceSuffix  string  `json:"price_info_list_unit_price_suffix"`
	Tags                          string  `json:"tags"`
	Layout                        string  `json:"layout"`
	Area                          float64 `json:"area"`
	Direction                     string  `json:"direction"`
	Community                     string  `json:"community"`
	District                      string  `json:"district"`
	Street                        string  `json:"street"`
	Floor                         string  `json:"floor"`
	TotalFloor                    int32   `json:"total_floor"`
}

type ErShouFangRaw

type ErShouFangRaw struct {
	CityID          string      `json:"cityId"`
	HouseCode       string      `json:"houseCode"`
	ResblockID      int64       `json:"resblockId"`
	Title           string      `json:"title"`
	Desc            string      `json:"desc"`
	BangdanTitle    string      `json:"bangdanTitle"`
	RecoDesc        string      `json:"recoDesc"`
	TotalPrice      string      `json:"totalPrice"`
	UnitPrice       string      `json:"unitPrice"`
	JumpURL         string      `json:"jumpUrl"`
	ListPictureURL  string      `json:"listPictureUrl"`
	RecommendReason interface{} `json:"recommendReason"`
	HouseStatus     int         `json:"houseStatus"`
	IsCtypeHouse    bool        `json:"isCtypeHouse"`
	FbExpoID        string      `json:"fbExpoId"`
	StatusSwitch    struct {
		IsYeZhuTuijian bool `json:"isYeZhuTuijian"`
		IsHaofang      bool `json:"isHaofang"`
		IsYezhuPay     bool `json:"isYezhuPay"`
		IsVr           bool `json:"isVr"`
		IsKey          bool `json:"isKey"`
		IsNew          bool `json:"isNew"`
	} `json:"statusSwitch"`
	BrandTags struct {
		Title  string `json:"title"`
		PicURL string `json:"picUrl"`
	} `json:"brandTags"`
	HotTop struct {
		DspAgentUcID string `json:"dspAgentUcId"`
		HotTopDigV   string `json:"hotTopDigV"`
		HotTop       int    `json:"hotTop"`
	} `json:"hotTop"`
	IsSellPrice       int `json:"isSellPrice"`
	PriceListingGovCn int `json:"priceListingGovCn"`
	UnitPriceGov      int `json:"unitPriceGov"`
	TotalPriceInfo    struct {
		Prefix string `json:"prefix"`
		Title  string `json:"title"`
		Suffix string `json:"suffix"`
	} `json:"totalPriceInfo"`
	UnitPriceInfo struct {
		Prefix string `json:"prefix"`
		Title  string `json:"title"`
		Suffix string `json:"suffix"`
	} `json:"unitPriceInfo"`
	PriceInfoList struct {
		TotalPricePrefix           string `json:"totalPricePrefix"`
		TotalPriceStr              string `json:"totalPriceStr"`
		TotalPriceSuffix           string `json:"totalPriceSuffix"`
		TotalPriceNoDataDesc       string `json:"totalPriceNoDataDesc"`
		UnitPricePrefix            string `json:"unitPricePrefix"`
		UnitPriceStr               string `json:"unitPriceStr"`
		UnitPriceSuffix            string `json:"unitPriceSuffix"`
		UnitPriceNoDataDesc        string `json:"unitPriceNoDataDesc"`
		StaticTotalPriceNoDataDesc string `json:"staticTotalPriceNoDataDesc"`
		StaticUnitPriceNoDataDesc  string `json:"staticUnitPriceNoDataDesc"`
	} `json:"priceInfoList"`
	ColorTags []struct {
		Key       string `json:"key"`
		Title     string `json:"title"`
		Color     string `json:"color"`
		TextColor string `json:"textColor"`
		BgColor   string `json:"bgColor"`
	} `json:"colorTags"`
	//MarketBooth []string `json:"marketBooth"`
	PoiDistance string `json:"poiDistance"`
	PoiIcon     string `json:"poiIcon"`
}

func (*ErShouFangRaw) ConvertErShouFangRawToInfo

func (raw *ErShouFangRaw) ConvertErShouFangRawToInfo() *ErShouFangInfo

type ErshoufangHouseDesc

type ErshoufangHouseDesc string

func (ErshoufangHouseDesc) Detail

type ErshoufangHouseDescDetail

type ErshoufangHouseDescDetail struct {
	Layout    string
	Area      float64
	Direction string
	Community string
}

type HoueseType

type HoueseType string

func (HoueseType) Topic

func (h HoueseType) Topic() string

type KafkaManager

type KafkaManager struct {
	Brokers   map[string][]string
	Senders   map[string]*KafkaSender
	Readers   map[string]*KafkaReader
	SendersMu sync.Mutex
	Logger    log.Logger
}

func (*KafkaManager) Close

func (km *KafkaManager) Close() error

type KafkaReader

type KafkaReader struct {
	Reader *kafka.Reader
}

type KafkaSender

type KafkaSender struct {
	Writer *kafka.Writer
}

type LianjiaRepo

type LianjiaRepo interface {
	UpsertCity(ctx context.Context, cities []*CityInfo) error
	GetAllCity(ctx context.Context) (cities []*CityInfo, err error)
	InsertErshoufangInfo(ctx context.Context, info []*ErShouFangInfo) error
	InsertLoupanInfo(ctx context.Context, lists []*LoupanInfo) error
	GetKafkaManager(ctx context.Context) (km *KafkaManager, err error)
	SetNXKey(ctx context.Context, key string, value interface{}, duration time.Duration) error
	IncrKey(ctx context.Context, key string, increment int) (int64, error)
	DelKey(ctx context.Context, key string) error
	GetKey(ctx context.Context, key string) (string, error)
	Send(ctx context.Context, msg []Message, houseType HoueseType) error
	Receive(ctx context.Context) error
	ListErshoufang(ctx context.Context, p pagination.Pagination, query string) ([]*ErShouFangInfo, int64, error)
	InsertCommercialInfo(ctx context.Context, infos []*CommercialInfo) error
	CheckErShouFangExists(ctx context.Context, cityID int64, houseCode string) (bool, error)
	CheckLoupanExists(ctx context.Context, cityID, loupanId int64) (bool, error)
	CheckCommercialExists(ctx context.Context, cityID, houseCode int64) (bool, error)
}

type LianjiaUsecase

type LianjiaUsecase struct {
	// contains filtered or unexported fields
}

func NewLianjiaUsecase

func NewLianjiaUsecase(repo LianjiaRepo, logger log.Logger) *LianjiaUsecase

func (*LianjiaUsecase) FetchCityList

func (uc *LianjiaUsecase) FetchCityList(ctx context.Context)

func (*LianjiaUsecase) FetchCommercial

func (uc *LianjiaUsecase) FetchCommercial(ctx context.Context)

func (*LianjiaUsecase) FetchErShouFang

func (uc *LianjiaUsecase) FetchErShouFang(ctx context.Context)

func (*LianjiaUsecase) FetchLoupan

func (uc *LianjiaUsecase) FetchLoupan(ctx context.Context)

func (*LianjiaUsecase) FetchZufang

func (uc *LianjiaUsecase) FetchZufang(ctx context.Context)

func (*LianjiaUsecase) HandleCommercialMessage

func (uc *LianjiaUsecase) HandleCommercialMessage(ctx context.Context) error

func (*LianjiaUsecase) HandleErshoufangMessage

func (uc *LianjiaUsecase) HandleErshoufangMessage(ctx context.Context) error

func (*LianjiaUsecase) HandleLoupanMessage

func (uc *LianjiaUsecase) HandleLoupanMessage(ctx context.Context) error

func (*LianjiaUsecase) HandleZufangMessage

func (uc *LianjiaUsecase) HandleZufangMessage(ctx context.Context, msg []kafka.Message) error

func (*LianjiaUsecase) InitLianjiaChan

func (uc *LianjiaUsecase) InitLianjiaChan(ctx context.Context)

func (*LianjiaUsecase) IsCommercialTaskFinish

func (uc *LianjiaUsecase) IsCommercialTaskFinish(ctx context.Context) bool

func (*LianjiaUsecase) IsErshouFangTaskFinish

func (uc *LianjiaUsecase) IsErshouFangTaskFinish(ctx context.Context) bool

func (*LianjiaUsecase) IsLoupanTaskFinish

func (uc *LianjiaUsecase) IsLoupanTaskFinish(ctx context.Context) bool

func (*LianjiaUsecase) ListCityCommercial

func (uc *LianjiaUsecase) ListCityCommercial(ctx context.Context, city *CityInfo) error

func (*LianjiaUsecase) ListCityErshouFang

func (uc *LianjiaUsecase) ListCityErshouFang(ctx context.Context, city *CityInfo) error

func (*LianjiaUsecase) ListCityLoupan

func (uc *LianjiaUsecase) ListCityLoupan(ctx context.Context, city *CityInfo) error

func (*LianjiaUsecase) ListCityZufang

func (uc *LianjiaUsecase) ListCityZufang(ctx context.Context, city *CityInfo) error

func (*LianjiaUsecase) Receive

func (uc *LianjiaUsecase) Receive(ctx context.Context) error

func (*LianjiaUsecase) Send

func (uc *LianjiaUsecase) Send(ctx context.Context, msg []Message, houseType HoueseType) error

func (*LianjiaUsecase) SetNXKey

func (uc *LianjiaUsecase) SetNXKey(ctx context.Context, key string, value interface{}, duration time.Duration) error

type ListCommercialParams

type ListCommercialParams struct {
	CityID       int    `url:"city_id"`
	PageType     string `url:"pageType"`
	OriginType   string `url:"originType"`
	BusinessType int    `url:"business_type"`
	Platform     int    `url:"platform"`
	Device       int    `url:"device"`
	Page         int    `url:"page"`
	Size         int    `url:"size"`
	FromPage     string `url:"from_page"`
}

type LoupanInfo

type LoupanInfo struct {
	Pid                      int32     `json:"pid"`
	ID                       int64     `json:"id"`
	CityID                   int       `json:"city_id"`
	CityName                 string    `json:"city_name"`
	CoverPic                 string    `json:"cover_pic"`
	MinFrameArea             int32     `json:"min_frame_area"`
	MaxFrameArea             int32     `json:"max_frame_area"`
	DistrictName             string    `json:"district_name"`
	District                 string    `json:"district"`
	DistrictID               int32     `json:"district_id"`
	BizcircleID              int32     `json:"bizcircle_id"`
	BizcircleName            string    `json:"bizcircle_name"`
	BuildID                  int64     `json:"build_id"`
	PermitAllReady           int       `json:"permit_all_ready"`
	ProcessStatus            int       `json:"process_status"`
	ResblockFrameArea        string    `json:"resblock_frame_area"`
	ResblockFrameAreaRange   string    `json:"resblock_frame_area_range"`
	ResblockFrameAreaDesc    string    `json:"resblock_frame_area_desc"`
	Decoration               string    `json:"decoration"`
	Longitude                float64   `json:"longitude"`
	Latitude                 float64   `json:"latitude"`
	FrameRoomsDesc           string    `json:"frame_rooms_desc"`
	Title                    string    `json:"title"`
	ResblockName             string    `json:"resblock_name"`
	ResblockAlias            string    `json:"resblock_alias"`
	Address                  string    `json:"address"`
	StoreAddr                string    `json:"store_addr"`
	AvgUnitPrice             float64   `json:"avg_unit_price"`
	AveragePrice             float64   `json:"average_price"`
	AddressRemark            string    `json:"address_remark"`
	ProjectName              string    `json:"project_name"`
	SpecialTags              string    `json:"special_tags"`
	LianjiaSpecial           string    `json:"lianjia_special"`
	LianjiaSpecialComm       string    `json:"lianjia_special_comm"`
	DeveloperSpecial         string    `json:"developer_special"`
	DeveloperSpecialType     string    `json:"developer_special_type"`
	DeveloperSpecialComm     string    `json:"developer_special_comm"`
	FrameRooms               string    `json:"frame_rooms"`
	ConvergedRooms           string    `json:"converged_rooms"`
	Tags                     string    `json:"tags"`
	ProjectTags              string    `json:"project_tags"`
	HouseType                string    `json:"house_type"`
	HouseTypeValue           string    `json:"house_type_value"`
	SaleStatus               string    `json:"sale_status"`
	HasEvaluate              int       `json:"has_evaluate"`
	HasVrHouse               int       `json:"has_vr_house"`
	HasShortVideo            int       `json:"has_short_video"`
	OpenDate                 time.Time `json:"open_date"`
	HasVirtualView           int       `json:"has_virtual_view"`
	LowestTotalPrice         int32     `json:"lowest_total_price"`
	PriceShowConfig          int32     `json:"price_show_config"`
	ShowPrice                int       `json:"show_price"`
	ShowPriceUnit            string    `json:"show_price_unit"`
	ShowPriceDesc            string    `json:"show_price_desc"`
	ShowPriceConfirmTime     int64     `json:"show_price_confirm_time"`
	PriceConfirmTime         time.Time `json:"price_confirm_time"`
	Status                   int       `json:"status"`
	SubwayDistance           string    `json:"subway_distance"`
	IsCooperation            int       `json:"is_cooperation"`
	EvaluateStatus           int       `json:"evaluate_status"`
	ShowPriceInfo            string    `json:"show_price_info"`
	BrandID                  string    `json:"brand_id"`
	PreloadDetailImage       string    `json:"preload_detail_image"`
	ReferenceAvgPrice        float64   `json:"reference_avg_price"`
	ReferenceAvgPriceUnit    string    `json:"reference_avg_price_unit"`
	ReferenceAvgPriceDesc    string    `json:"reference_avg_price_desc"`
	ReferenceTotalPrice      string    `json:"reference_total_price"`
	ReferenceTotalPriceUnit  string    `json:"reference_total_price_unit"`
	ReferenceTotalPriceDesc  string    `json:"reference_total_price_desc"`
	NewSaleTags              string    `json:"new_sale_tags"`
	IsFollowed               int       `json:"is_followed"`
	IsSupportOnlineSale      int       `json:"is_support_online_sale"`
	IsUndertake              int       `json:"is_undertake"`
	Properright              int       `json:"properright"`
	DeveloperCompany         string    `json:"developer_company"`
	PropertyCompany          string    `json:"property_company"`
	LiveTag                  int       `json:"live_tag"`
	Prod                     int       `json:"prod"`
	ReferenceTotalPriceRange string    `json:"reference_total_price_range"`
	HouseNode                int       `json:"house_node"`
	TotalPriceStart          int       `json:"total_price_start"`
	TotalPriceStartUnit      string    `json:"total_price_start_unit"`
	AvgPriceStart            int       `json:"avg_price_start"`
	AvgPriceStartUnit        string    `json:"avg_price_start_unit"`
	OnTime                   time.Time `json:"on_time"`
	ProjectDesc              string    `json:"project_desc"`
	HasCarActivity           int       `json:"has_car_activity"`
	IsNewSale                int       `json:"is_new_sale"`
	FirstTags                string    `json:"first_tags"`
	MFirstTags               string    `json:"m_first_tags"`
	FbExpoID                 string    `json:"fb_expo_id"`
	StrategyInfo             string    `json:"strategy_info"`
	RecommendLogInfo         string    `json:"recommend_log_info"`
	RecommendReason          string    `json:"recommend_reason"`
	ReferenceTotalPriceTips  string    `json:"reference_total_price_tips"`
	AppDetailURL             string    `json:"app_detail_url"`
	FilterDesc               string    `json:"filter_desc"`
	URL                      string    `json:"url"`
	DownloadInfo             string    `json:"download_info"`
}

type LoupanJson

type LoupanJson struct {
	Pid                    string        `json:"pid"`
	ID                     string        `json:"id"`
	CityID                 string        `json:"city_id"`
	CityName               string        `json:"city_name"`
	CoverPic               string        `json:"cover_pic"`
	MinFrameArea           string        `json:"min_frame_area"`
	MaxFrameArea           string        `json:"max_frame_area"`
	DistrictName           string        `json:"district_name"`
	District               string        `json:"district"`
	DistrictID             string        `json:"district_id"`
	BizcircleID            string        `json:"bizcircle_id"`
	BizcircleName          string        `json:"bizcircle_name"`
	BuildID                string        `json:"build_id"`
	PermitAllReady         string        `json:"permit_all_ready"`
	ProcessStatus          string        `json:"process_status"`
	ResblockFrameArea      string        `json:"resblock_frame_area"`
	ResblockFrameAreaRange string        `json:"resblock_frame_area_range"`
	ResblockFrameAreaDesc  string        `json:"resblock_frame_area_desc"`
	Decoration             string        `json:"decoration"`
	Longitude              string        `json:"longitude"`
	Latitude               string        `json:"latitude"`
	FrameRoomsDesc         string        `json:"frame_rooms_desc"`
	Title                  string        `json:"title"`
	ResblockName           string        `json:"resblock_name"`
	ResblockAlias          string        `json:"resblock_alias"`
	Address                string        `json:"address"`
	StoreAddr              string        `json:"store_addr"`
	AvgUnitPrice           string        `json:"avg_unit_price"`
	AveragePrice           string        `json:"average_price"`
	AddressRemark          string        `json:"address_remark"`
	ProjectName            string        `json:"project_name"`
	SpecialTags            []interface{} `json:"special_tags"`
	Special                struct {
		LianjiaSpecial       []interface{} `json:"lianjia_special"`
		LianjiaSpecialComm   string        `json:"lianjia_special_comm"`
		DeveloperSpecial     []interface{} `json:"developer_special"`
		DeveloperSpecialType string        `json:"developer_special_type"`
		DeveloperSpecialComm string        `json:"developer_special_comm"`
	} `json:"special"`
	FrameRooms     []interface{} `json:"frame_rooms"`
	ConvergedRooms []struct {
		BedroomCount string `json:"bedroom_count"`
		AreaRange    string `json:"area_range"`
	} `json:"converged_rooms"`
	Tags        []string `json:"tags"`
	ProjectTags []struct {
		ID    string `json:"id"`
		Desc  string `json:"desc"`
		Color string `json:"color"`
	} `json:"project_tags"`
	HouseType            string `json:"house_type"`
	HouseTypeValue       string `json:"house_type_value"`
	SaleStatus           string `json:"sale_status"`
	HasEvaluate          string `json:"has_evaluate"`
	HasVrHouse           string `json:"has_vr_house"`
	HasShortVideo        string `json:"has_short_video"`
	OpenDate             string `json:"open_date"`
	HasVirtualView       string `json:"has_virtual_view"`
	LowestTotalPrice     string `json:"lowest_total_price"`
	PriceShowConfig      string `json:"price_show_config"`
	ShowPrice            string `json:"show_price"`
	ShowPriceUnit        string `json:"show_price_unit"`
	ShowPriceDesc        string `json:"show_price_desc"`
	ShowPriceConfirmTime string `json:"show_price_confirm_time"`
	PriceConfirmTime     string `json:"price_confirm_time"`
	Status               string `json:"status"`
	SubwayDistance       string `json:"subway_distance"`
	IsCooperation        string `json:"is_cooperation"`
	EvaluateStatus       string `json:"evaluate_status"`
	ShowPriceInfo        string `json:"show_price_info"`
	BrandID              string `json:"brand_id"`
	PreloadDetailImage   []struct {
		ID                 string      `json:"id"`
		ImageID            string      `json:"image_id"`
		TypeID             string      `json:"type_id"`
		TypeName           string      `json:"type_name"`
		ImageURL           string      `json:"image_url"`
		Title              string      `json:"title"`
		Desc               string      `json:"desc"`
		Extend             interface{} `json:"extend"`
		VrInfo             interface{} `json:"vr_info"`
		VideoInfo          interface{} `json:"video_info"`
		ImageListBlurryURL string      `json:"image_list_blurry_url"`
		ImageSizeURL       string      `json:"image_size_url"`
		ImageListSizeURL   string      `json:"image_list_size_url"`
	} `json:"preload_detail_image"`
	ReferenceAvgPrice        string        `json:"reference_avg_price"`
	ReferenceAvgPriceUnit    string        `json:"reference_avg_price_unit"`
	ReferenceAvgPriceDesc    string        `json:"reference_avg_price_desc"`
	ReferenceTotalPrice      string        `json:"reference_total_price"`
	ReferenceTotalPriceUnit  string        `json:"reference_total_price_unit"`
	ReferenceTotalPriceDesc  string        `json:"reference_total_price_desc"`
	NewSaleTags              []interface{} `json:"new_sale_tags"`
	IsSupportOnlineSale      string        `json:"is_support_online_sale"`
	IsUndertake              string        `json:"is_undertake"`
	Properright              string        `json:"properright"`
	DeveloperCompany         []string      `json:"developer_company"`
	PropertyCompany          []string      `json:"property_company"`
	LiveTag                  string        `json:"live_tag"`
	Prod                     string        `json:"prod"`
	ReferenceTotalPriceRange struct {
		Price     string `json:"price"`
		PriceUnit string `json:"price_unit"`
		PriceDesc string `json:"price_desc"`
	} `json:"reference_total_price_range"`
	SaleStatusColor         string        `json:"sale_status_color"`
	HouseTypeColor          string        `json:"house_type_color"`
	HouseNode               string        `json:"house_node"`
	TotalPriceStart         string        `json:"total_price_start"`
	TotalPriceStartUnit     string        `json:"total_price_start_unit"`
	AvgPriceStart           string        `json:"avg_price_start"`
	AvgPriceStartUnit       string        `json:"avg_price_start_unit"`
	OnTime                  string        `json:"on_time"`
	ProjectDesc             string        `json:"project_desc"`
	HasCarActivity          string        `json:"has_car_activity"`
	IsNewSale               string        `json:"is_new_sale"`
	FirstTags               []interface{} `json:"first_tags"`
	MFirstTags              []interface{} `json:"m_first_tags"`
	FbExpoID                string        `json:"fb_expo_id"`
	StrategyInfo            string        `json:"strategy_info"`
	RecommendLogInfo        string        `json:"recommend_log_info"`
	RecommendReason         interface{}   `json:"recommend_reason"`
	ReferenceTotalPriceTips string        `json:"reference_total_price_tips"`
	UserInfo                struct {
		IsFollow string `json:"is_follow"`
	} `json:"user_info"`
	AppDetailURL string `json:"app_detail_url"`
	FilterDesc   string `json:"filter_desc"`
	URL          string `json:"url"`
	DownloadInfo struct {
		Type          string `json:"type"`
		DownloadURL   string `json:"downloadUrl"`
		Schema        string `json:"schema"`
		UniversalLink string `json:"universalLink"`
	} `json:"download_info"`
}

func (*LoupanJson) ConvertToLoupanInfo

func (loupanJson *LoupanJson) ConvertToLoupanInfo() (*LoupanInfo, error)

type Message

type Message struct {
	Content []byte
}

type RecoDesc

type RecoDesc string

func (RecoDesc) Detail

func (r RecoDesc) Detail() RecoDescDetail

type RecoDescDetail

type RecoDescDetail struct {
	District   string
	Street     string
	Floor      string
	TotalFloor int32
	Direction  string
}

type Topic

type Topic string
const (
	TopicErshoufang Topic = "lianjiaershoufang"
	TopicLoupan     Topic = "lianjialoupan"
	TopicZufang     Topic = "lianjiazufang"
	TopicCommercial Topic = "lianjiacommercial"
)

type Transaction

type Transaction interface {
	Tx(context.Context, func(ctx context.Context) error) error
}

type UserAgent

type UserAgent string

type ZufangInfo

type ZufangInfo struct {
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL