138 lines
5.6 KiB
Go
138 lines
5.6 KiB
Go
package mongo_model
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
type AdvicerTalkSkillMongo struct {
|
||
ProjectId int32 `json:"projectId" bson:"projectId"`
|
||
AdvicerId int32 `json:"advicerId" bson:"advicerId"`
|
||
Desc string `json:"desc" bson:"desc"`
|
||
NeedsMining NeedsMining `json:"needsMining" bson:"needsMining"`
|
||
PainPointResponse PainPointResponse `json:"painPointResponse" bson:"painPointResponse"`
|
||
ValueBuilding ValueBuilding `json:"valueBuilding" bson:"valueBuilding"`
|
||
ClosingTechniques ClosingTechniques `json:"closingTechniques" bson:"closingTechniques"`
|
||
CommunicationRhythm CommunicationRhythm `json:"communicationRhythm" bson:"communicationRhythm"`
|
||
LastUpdateTime time.Time `json:"lastUpdateTime" bson:"lastUpdateTime"`
|
||
}
|
||
|
||
func NewAdvicerTalkSkillMongo() *AdvicerTalkSkillMongo {
|
||
return &AdvicerTalkSkillMongo{}
|
||
}
|
||
|
||
func (a *AdvicerTalkSkillMongo) MongoTableName() string {
|
||
return "advicer_talk_skill"
|
||
}
|
||
|
||
type AdvicerTalkSkillMongoEntity struct {
|
||
NeedsMining NeedsMining `json:"needsMining"`
|
||
PainPointResponse PainPointResponse `json:"painPointResponse"`
|
||
ValueBuilding ValueBuilding `json:"valueBuilding"`
|
||
ClosingTechniques ClosingTechniques `json:"closingTechniques"`
|
||
CommunicationRhythm CommunicationRhythm `json:"communicationRhythm"`
|
||
}
|
||
|
||
func (a *AdvicerTalkSkillMongo) Entity() *AdvicerTalkSkillMongoEntity {
|
||
return &AdvicerTalkSkillMongoEntity{
|
||
NeedsMining: a.NeedsMining,
|
||
PainPointResponse: a.PainPointResponse,
|
||
ValueBuilding: a.ValueBuilding,
|
||
ClosingTechniques: a.ClosingTechniques,
|
||
CommunicationRhythm: a.CommunicationRhythm,
|
||
}
|
||
}
|
||
|
||
// NeedsMining 需求挖掘话术
|
||
type NeedsMining map[string][]string
|
||
|
||
func (e *NeedsMining) Example() string {
|
||
return `{"预算需求":["你们总价想控制在多少以内?","是考虑按揭还是一次性?","月供能接受多少范围?"],"居住需求":["几个人住?有老人小孩吗?","主要是自住还是考虑投资?","现在住哪里?想改善哪些方面?"],"通勤需求":["在哪个位置上班?","主要开车还是坐地铁?","对地铁距离有要求吗?"]}`
|
||
}
|
||
|
||
func (e *NeedsMining) Copy() AdviceData {
|
||
return new(NeedsMining)
|
||
}
|
||
|
||
func (e *NeedsMining) Role() AdviceRole {
|
||
return RoleSkill
|
||
}
|
||
|
||
func (e *NeedsMining) Desc() string {
|
||
return "需求挖掘话术"
|
||
}
|
||
|
||
// PainPointResponse 痛点应对策略
|
||
type PainPointResponse map[string]map[string]string
|
||
|
||
func (e *PainPointResponse) Example() string {
|
||
return `{"地块太小":{"承认事实":"14亩确实不大","普遍现象":"2.5环内都是小地块,万景13亩,中铁建8.8亩","转化优势":"但人少安静,楼间距反而更开阔","对比竞品":"339的邦泰才11亩,人家上千万豪宅"},"物业费高":{"理解感受":"我懂你,我们也觉得有点贵","价值分析":"但6块里3块是增值服务(保洁、送外卖)","价格补贴":"前三年补贴到5块,跟其他盘差不多"}}`
|
||
}
|
||
func (e *PainPointResponse) Copy() AdviceData {
|
||
return new(PainPointResponse)
|
||
}
|
||
|
||
func (e *PainPointResponse) Role() AdviceRole {
|
||
return RoleSkill
|
||
}
|
||
|
||
func (e *PainPointResponse) Desc() string {
|
||
return "痛点应对策略"
|
||
}
|
||
|
||
// ValueBuilding 价值塑造技巧
|
||
type ValueBuilding map[string][]string
|
||
|
||
func (e *ValueBuilding) Example() string {
|
||
return `{"地段价值塑造":["买房最重要的是地段、地段、还是地段","核心地段的核心资产才保值增值","2.5环内的地卖一块少一块,不可再生"],"产品价值塑造":["我们是用改善的价格,买豪宅的标准","很多细节都是3000万豪宅才有的配置","外立面成本比竞品高30%,但单价差不多"]}`
|
||
}
|
||
|
||
func (e *ValueBuilding) Copy() AdviceData {
|
||
return new(ValueBuilding)
|
||
}
|
||
|
||
func (e *ValueBuilding) Role() AdviceRole {
|
||
return RoleSkill
|
||
}
|
||
|
||
func (e *ValueBuilding) Desc() string {
|
||
return "价值塑造技巧"
|
||
}
|
||
|
||
// ClosingTechniques 促单话术
|
||
type ClosingTechniques map[string]map[string][]string
|
||
|
||
func (e *ClosingTechniques) Example() string {
|
||
return `{"紧迫感营造":{"时间紧迫":["今天是月底最后一天,领导有压力价格可谈","我们刚刚开盘,还有额外优惠","月底冲业绩,价格最有弹性"],"房源稀缺":["118只剩20多套了,好楼层不多","这栋楼就60户,卖一套少一套","特价房只有这几套,今天不定可能就没了"]},"优惠策略":{"价格优惠":["今天定的话,我可以跟领导申请额外折扣","买车位的话,总价多给两个点优惠","一次性付款再优惠一个点"],"附加价值":["送一年物业费","送品牌家电礼包","优先选车位"]},"决策推动":{"小步推进":["要不先交个小定保留房源?","可以先排个号,有优惠优先通知你","今天不定的话,我帮你留意好楼层"]}}`
|
||
}
|
||
|
||
func (e *ClosingTechniques) Copy() AdviceData {
|
||
return new(ClosingTechniques)
|
||
}
|
||
|
||
func (e *ClosingTechniques) Role() AdviceRole {
|
||
return RoleSkill
|
||
}
|
||
|
||
func (e *ClosingTechniques) Desc() string {
|
||
return "促单话术"
|
||
}
|
||
|
||
// CommunicationRhythm 沟通节奏控制
|
||
type CommunicationRhythm map[string]map[string]string
|
||
|
||
func (e *CommunicationRhythm) Example() string {
|
||
return `{"开场阶段":{"时间占比":"5%","目标":"建立关系,了解需求","关键动作":"亲切称呼,简单寒暄,确认看房重点"},"沙盘讲解":{"时间占比":"30%","目标":"建立价值认知","关键动作":"板块价值→周边配套→项目亮点→开发商介绍"}}`
|
||
}
|
||
|
||
func (e *CommunicationRhythm) Copy() AdviceData {
|
||
return new(CommunicationRhythm)
|
||
}
|
||
|
||
func (e *CommunicationRhythm) Role() AdviceRole {
|
||
return RoleSkill
|
||
}
|
||
|
||
func (e *CommunicationRhythm) Desc() string {
|
||
return "沟通节奏控制"
|
||
}
|