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 "沟通节奏控制" }