乐观锁就是在数据库记录后面加上 version版本号进行识别
当两个进程同时修改同一条记录时
两个进程同时读取到数据,此时version版本号为0
进程一率先完成修改并且提交修改,同时修改版本号为1
进程二落后一些,在提交的时候读取版本号version发现是1而不是刚才读取到的0,此时不能提交
乐观锁避免了并发“超卖”的问题
解决办法:https://blog.csdn.net/qq_45037155/article/details/126260002
解决方法:
在数据库连接 URL 中添加参数allowPublicKeyRetrieval=true。
例如,如果你的连接 URL 是jdbc:mysql://localhost:3306/your_database,
修改为jd...
代驾:司机抢单
一、开启接单服务
前面乘客已经下单,新订单消息已经加入司机临时队列,接下来我们把司机端的开启接单到抢单的流程写一下。
开启接单我们要做哪些操作呢?
1、判断司机认证状态,只要认证通过了的司机才能接单,司机登录信息包含司机认证状态(已开发)
2、判断司机当日是否已做人脸识别,司机每天必须做一次人脸识别,如果未做,跳转到人脸识别页面
3、更新司机...
微信开发者工具双击没反应,打不开,前两天还能用呢,今天测试代码崩溃了
解决办法参考:https://developers.weixin.qq.com/community/minihome/article/doc/000ee4b8bfcee072932ef5d4156813
我的解决路径
下载: https://dldir1.qq.com/WechatWebD...
乘客下单(二)
一、搜索附近司机
1、Redis的Geo功能
前面我们创建了订单,但是略过了寻找附近适合接单的司机。接下来完善这部分功能,那就先来看看怎么查询附近的司机吧。假设司机端的小程序实时把自己的GPS定位上传,然后定位信息缓存到Redis里面。咱们怎么能利用Redis计算出,上车点方圆几公里的司机都有谁呢?这就需要使用Redis的Geo功能。
htt...
/**
* 获取当前用户信息帮助类
*/
public class AuthContextHolder {
private static ThreadLocal<Long> userId = new ThreadLocal<Long>();
public static void setUserId(Long ...
乘客下单(一)
1、需求说明
乘客下单如图:
经过前面的选点、预估订单数据,接下来就就是呼叫代驾了(即:下单),下单参数:
@Schema(description = "乘客id")
private Long customerId;
@Schema(description = "起始地点")
private String startLocation;
...
可能出现的bug:小程序一直提示请求来源未被授权, 此次请求来源域名:servicewechat.com
解决办法:在域名白名单这里一定去掉域名,否则出现上述错误
https://blog.csdn.net/qq_42445490/article/details/88886666
在域名白名单里
加上了servicewechat.com,本地调用就会返回11...
package com.atguigu.daijia.rules.config;
import lombok.extern.slf4j.Slf4j;
import org.kie.api.KieServices;
import org.kie.api.builder.KieBuilder;
import org.kie.api.builder.KieFil...
代驾:规则引擎 Drools
一、Drools
1、问题
某电商平台的促销活动,活动规则是根据⽤户购买订单的⾦额给⽤户送相应的积分,购买的越多送的积分越多用户购买的金额和对应送多少积分的规则如下:
规则编号
订单金额
奖励积分
1
100元以下
不加分
2
100元 - 500元
加100分
3
500元 - 1000元
加500分
...
使用HTTPCLient
使用RestTemplate(由Spring提供)
代驾:预估订单数据
一、预估订单数据
学习目标:
掌握腾讯位置服务API接口,封装最优路线规划
学习规则引擎 Drools入门
理解代驾费用规则,封装代驾费用接口
完成预估订单数据接口
乘客选择代驾起始点与终点,乘客下单前,先做代驾订单数据的预估,预估代驾里程、代驾时间、代驾金额及代驾的最佳驾驶线路,如图:
预估订单数据,根据乘客选择的代驾起始点与终点...
可以将图片等转换成字符串的格式,方便在后端进行操作,也可以还原为图片。