解决问题究极方法
将报错信息最根源的问题,放到百度/谷歌/bing 等网站,进行简单的搜索,可以解决百分之80的问题。
后端如何配置各种链接
本地运行时,更改根目录的 config目录下的 application.yml。
jar包运行时更改项目内resource目录下的application.yml。
前端如何配置API
buyer/public/config.js
seller/public/config.js
manager/public/config.js
配置对应的api_dev/api_prod即可,
api_dev,本地运行,例如yarn run dev这类型时读取。
api_prod 编译运行,例如yarn build 之后的项目,api读取api_prod中的配置文件。
H5 如何配置api
根目录/config/api.js
dev,本地运行,例如yarn run dev这类型时读取。
prod 编译运行,例如yarn build 之后的项目,api读取api_prod中的配置文件。
功能限制,提示 演示站点禁止使用
配置文件配置中 lili.system.isDemoSite 为true时,系统部分功能限制,会出现这个提示。
第一次部署之后商品无法搜索
商品索引初始化位于 管理端=》系统设置=〉商品设置 ,点击重制商品索引,es目前官方使用7.3版本,且需要配置IK分词器,如果需要单独部署,注意版本兼容以及分词器问题处理。
URI [/lili_goods/_search?]**[attrList] is not nested
Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]]
默认es索引mapping结构不对,执行索引初始化即可,商品索引初始化位于 管理端=》系统设置=〉商品设置 ,点击重制商品索引。
PS:注意es版本,目前演示站点7.3.x 其他版本如果出现问题自行解决兼容性问题。
自定义es分词无效
检查ik分词器的配置文件IKAnalyzer.cfg.xml中配置的api地址是否正确。 如使用的是docker compose一键部署,则路径在config/ik/config/IKAnalyzer.cfg.xml。 如使用的是自己安装的,则修改自己安装的ik分词器的配置文件。 管理端=》运营=》es分词 设置es自定义分词,设置完成后。需要重新生成相应商品索引,才会在搜索时生效。
ES内存不足
可以调整jvm启动参数,如使用的部署项目的docker-compose部署,则可以直接修改docker-compose文件里的启动参数,如
...
environment:
cluster.name: elasticsearch
discovery.type: single-node
ES_JAVA_OPTS: -Xms256m -Xmx256m
logging:
driver: "json-file"
options:
max-size: "50m"
...
已付款订单无法发货,状态为已付款
订单状态变成“代发货”,需要消费者服务启动(consumer),注意MQ是否异常。如果一切状态正确,订单会进入到代发货状态或者是取消状态。(为取消,则表示因为库存不足,或者促销活动库存不足问题).
SQL在哪里
点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql,根据tag获取sql,如果使用master代码,则需要在lilishop项目根目录的update-sql目录中,获取对应的升级sql。
Unknown collation: 'utf8mb4_0900_ai_ci'
数据库版本不对,需要数据库8.x或者自行调整数据库中的字符集(直接将错误发百度,很多答案)。
短信功能问题
配置文件配置中 lili.system.isTestModel 为true时,系统不会真的发送短信,验证码默认为6个1。
如果想真实发短信,配置文件位置为:阿里云短信配置
移动端启动报错
小程序直播插件报错 在manifest中 删除代码。
Docker镜像端口号如何设置
群友反馈端口号没有映射,无法访问。
解释这个问题需要先了解docker 的网络模式的区别:
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
None:该模式关闭了容器的网络功能。
Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。
完整的解释https://www.cnblogs.com/zuxing/articles/8780661.html
示例中应用的镜像脚本,网络模型都是host,所以它采用的是宿主机的端口,所以无法看到映射内容。
Docker API 没有dockerfile如何打包?
使用的是maven打包插件,执行命令即可
mvn clean package docker:build -DskipTests -DpushImage
密码能否手动设置
前端交互时,已经对密码进行md5处理,在后端接收方,会进行二次加密,所以如果需要手动设置密码,需要经过两次加密后写在数据库才可以。
xxljob干嘛用的
定时任务定时调度,不启动不会报错,但是会影响定时任务,例如商品评分店铺评分。
rocketmq 干嘛用的
消息队列,即把一部分任务放在一个地方排序,让消费者去顺序消费。可以让一些场景不被卡住,例如下单场景,可以先下单成功,并发下单不会卡死,让用户的请求被卡住。
数据库模型 id是什么时候写入的
查看此类 cn.lili.base.mybatisplus.MyMetaObjectHandler,简单来说就是在数据库实际操作前,会对对象进行二次操作,比如判定没有id则写入id,有id则不覆盖这样的逻辑。
配置文件问题
springboot jar包运行时,默认加载项目中的配置文件,同时扫描运行目录的config目录,如果有配置文件,会覆盖项目中原有的配置文件。
属性覆盖
例如项目resource目录下,有个配置文件中配置 lili.system.isDemoSite 为 true
项目根目录有config文件夹,里边有文件application.yml,配置信息中 lili.system.isDemoSite 为false,则项目启动时加载的信息为false。
属性叠加
项目resource目录下,有配置文件,配置了项目端口号。根目录也有配置文件中,没有配置运行端口号,则还按照项目中的配置的端口号去运行。
MINIO部署配置
swagger-ui.html无法打开
项目访问 doc.html 即可,使用到了一个ui具体详情可以自行研究。
IM 在哪儿
过渡阶段IM开源地址 https://gitee.com/beijing_hongye_huicheng/springboot-websocket 参照readme部署即可,注意数据库需要额外导入以及ws链接的配置
商业授权模式
商业授权,代码没有不同的地方,商业授权只是一致合同协议,未被商业授权进行商业运营,会有律师函送到。商业授权费用很低,只是作为引流的手段。
商业使用问题,授权问题
联系QQ(800181125)即可