搞新环境的时候, 复制.env.example为.env 注意: windows 启动为 ```bash php windows.php .env.dev1 ``` linux 线上根据compose.yml将配置加载进去 php start.php ## plugin 目录 额外的扩展,比如 phpoffice/phpspreadsheet.死活composer找不到这个包,各种源都试了也不行 ## webman负责的主要业务 * 所有的web接口 * 不负责核心逻辑(红点处理,推送处理等,包括也不负责任何异步消费者) ## 缓存处理逻辑 ### 存储的内容 - 缓存内尽量只存储本身带有的信息,不要添加一些数据库中不存在的东西。这样就可以让go和webman共同操作同一个缓存 - 大部分的消息类缓存,可能会在多个go项目中重建和使用 * string类缓存,更改完数据库后直接删除 * hash类缓存,更改完后如果缓存已经存在,那么直接进行hSet,不要整个把hash删了(某些情况比如创建或者删除的时候才需要整个删除hash) ### 存储单个和全部的选择 什么时候存储所有的缓存,什么时候存储单个缓存 - 客服接待配置(包含排序方式,在线状态等)使用单个缓存,因为变化频繁。 - 客服分配权重,使用全部缓存,因为变化不频繁且数据量小。 ### 所有项目中添加一个缓存的步骤 - 在define中添加缓存字符串,目的是把所有缓存key放一起,重复了容易发现 - 在helper中添加一个方法,用于获取缓存key,用统一的方法去获取缓存key ## 消息发送逻辑 * 发送的消息都经过zk_message_bus_service中的message_api_service处理(里面会自动处理红点等) * 上传素材,直接调用消息服务message_service的接口,这样更快 ## 消息存储发送格式说明 1. 不论是消息标的存储,extra_data还是回复表的extra_data,都保持统一的格式 2. 自动回复表只存储资源文件的oss地址,发送时生成media_id,前端不需要处理media_id 3. 所有应用都保持统一的以下格式,后端统一进行转换 4. 各类型media_id只有在收到C端消息时才会有,自动回复发送时会生成media_id,但是不存这个 ### 文本 text ```json { "content": "发送内容" } ``` ### 图片 image ```json { "media_id": "media_id", "image_url": "图片地址", "file_name" : "" } ``` ### 语音 voice voice_url用于页面上显示,voice_amr_url用于发送 ```json { "media_id": "media_id", "voice_url": "语音地址", "voice_amr_url": "语音AMR文件地址" } ``` ### 视频 video ```json { "media_id": "media_id", "video_url": "视频地址", "file_name" : "" } ``` ### 文件 file ```json { "media_id": "media_id", "file_url": "文件地址", "file_name" : "" } ``` ### 图片链接 链接 网址卡片 link 注意:公众号只能在收藏里面发过来,这时候是不会带有pic_url的 ```json { "title": "标题", "desc": "描述", "pic_url": "图片地址", "url": "网址", "thumb_media_id" : "" } ``` ### 小程序卡片 miniprogram ```json { "title": "标题", "appid": "appid", "pagepath": "路径", "thumb_media_id": "", "thumb_url": "图片地址" } ``` ### 文件 仅限话术,聊天界面客服手动发送 file ```json { "media_id": "", "file_url": "文件地址" } ``` ### 菜单消息 仅限B端客服的话术和自动回复 ```json { "menu_card_id": 12, "title": "菜单卡片标题", } ``` ### 小程序卡片 仅限C端(公众号收藏里面发送) miniprogrampage ```json { "title": "标题", "appid": "appid", "pagepath": "路径", "thumb_media_id": "", "thumb_url": "图片地址" } ``` ### 位置消息 仅限C端,公众号 location ```json { "location_x": "经度", "location_y": "纬度", "scale": "缩放比例", "label" : "" } ```