订单命名-改成_下划线,拉卡拉要求的规则,否则无法分账
This commit is contained in:
parent
c5ca9bc95d
commit
9fc880edb1
@ -95,7 +95,7 @@ public class CommonConstant {
|
||||
public static final String SPLIT_ = "diffCityOrderExpireSeconds";
|
||||
|
||||
// 订单分拆后 运费和商品子订单前缀
|
||||
public static final String Sep_DeliveryFee_Prefix = "DF-";
|
||||
public static final String Sep_GoodsFee_Prefix = "ORD-";
|
||||
public static final String Sep_DeliveryFee_Prefix = "DF_";
|
||||
public static final String Sep_GoodsFee_Prefix = "ORD_";
|
||||
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ public interface PayConsumeTradeService extends IBaseService<PayConsumeTrade> {
|
||||
* "amount":"1", // 分账金额
|
||||
* "settle_type":"0", // 结算类型
|
||||
* "sub_log_no":"66250034401288", // 子流水号
|
||||
* "out_sub_trade_no":"DF-DD-20250830-21", // 外部子交易订单号(DF开头为运费订单)
|
||||
* "out_sub_trade_no":"DF_DD_20250830_21", // 外部子交易订单号(DF开头为运费订单)
|
||||
* "term_no":"N5811590" // 终端设备号
|
||||
* },
|
||||
* {
|
||||
@ -84,7 +84,7 @@ public interface PayConsumeTradeService extends IBaseService<PayConsumeTrade> {
|
||||
* "amount":"1", // 分账金额
|
||||
* "settle_type":"0", // 结算类型
|
||||
* "sub_log_no":"66250034401289", // 子流水号
|
||||
* "out_sub_trade_no":"ORD-DD-20250830-21", // 外部子交易订单号(ORD开头为商品订单)
|
||||
* "out_sub_trade_no":"ORD_DD_20250830_21", // 外部子交易订单号(ORD开头为商品订单)
|
||||
* "term_no":"N5817779" // 终端设备号
|
||||
* }
|
||||
* ]
|
||||
|
||||
@ -263,7 +263,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
accBusiFields.put("user_id", openId); // 用户openid
|
||||
reqData.put("acc_busi_fields", accBusiFields);
|
||||
|
||||
// 重要约定,订单号规则:商品订单:ORD-订单号,运费订单:DF-订单号
|
||||
// 重要约定,订单号规则:商品订单:ORD_订单号,运费订单:DF_订单号
|
||||
// 分单信息
|
||||
JSONObject goodsSplitInfo = new JSONObject();
|
||||
goodsSplitInfo.put("out_sub_trade_no", CommonConstant.Sep_GoodsFee_Prefix + orderId); // 商品子订单号
|
||||
|
||||
@ -32,7 +32,7 @@ public class ShopBaseStateCodeServiceImpl extends BaseServiceImpl<ShopBaseStateC
|
||||
* 根据商品状态码 获取状态名称 (注意在该类内部调用此方法缓存则失效 并且 此表数据如果发生变动则需要靠重启JVM来刷新缓存)
|
||||
* todo 可以优化(这里缓存的是一个字段,不是一条数据)
|
||||
* todo 一般情况此表不会发生变化,如果追求数据一致性,可以考虑使用redis Hash来存储,使用JVM来缓存是更好的选择
|
||||
*
|
||||
* <p>
|
||||
* update 2024-12-14 切换到redis缓存 30秒
|
||||
*
|
||||
* @param code 商品状态码
|
||||
@ -77,7 +77,7 @@ public class ShopBaseStateCodeServiceImpl extends BaseServiceImpl<ShopBaseStateC
|
||||
@Override
|
||||
public String getCode(Integer code, String type) {
|
||||
if (code != null) {
|
||||
// String code_key = String.format("statecode-%s", code);
|
||||
// String code_key = String.format("statecode_%s", code);
|
||||
Map rows = Convert.toMap(String.class, Object.class, get(code));
|
||||
|
||||
if (rows != null) {
|
||||
|
||||
@ -38,12 +38,11 @@ import java.util.stream.LongStream;
|
||||
@lombok.extern.slf4j.Slf4j
|
||||
public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMapper, ShopNumberSeq> implements ShopNumberSeqService {
|
||||
|
||||
private final String CACHE_PREFIX = "shop_number_seq:%S";
|
||||
@Autowired
|
||||
private ShopNumberSeqMapper shopNumberSeqMapper;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
private String CACHE_PREFIX = "shop_number_seq:%S";
|
||||
|
||||
@Autowired
|
||||
private ShopProductSpecItemService shopProductSpecItemService;
|
||||
|
||||
@ -53,6 +52,10 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
@Autowired
|
||||
private AccountService accountService;
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.printf(IntStream.rangeClosed(1, 1).boxed().collect(Collectors.toList()).toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到下一个Id
|
||||
* 方法走到这里会产生串行化,集群部署这里不能使用单机锁
|
||||
@ -65,7 +68,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
public synchronized String createNextSeq(String prefix) {
|
||||
|
||||
String ymd = DateUtil.format(new Date(), "yyyyMMdd");
|
||||
String id = String.format("%s-%s-", prefix, ymd);
|
||||
String id = String.format("%s_%s_", prefix, ymd);
|
||||
ShopNumberSeq shopNumberSeq = this.baseMapper.selectById(id);
|
||||
if (shopNumberSeq == null) {
|
||||
shopNumberSeq = new ShopNumberSeq();
|
||||
@ -76,7 +79,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
}
|
||||
}
|
||||
|
||||
String order_id = String.format("%s-%s-%s", prefix, ymd, shopNumberSeq.getNumber());
|
||||
String order_id = String.format("%s_%s_%s", prefix, ymd, shopNumberSeq.getNumber());
|
||||
shopNumberSeq.setPrefix(id);
|
||||
boolean flag = edit(shopNumberSeq);
|
||||
if (flag) {
|
||||
@ -86,7 +89,6 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 得到下一个Id
|
||||
*
|
||||
@ -128,6 +130,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
|
||||
/**
|
||||
* 校验同步数据是否同步完成,就是两个库的主键是否一致
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private void checkPrimaryKey() {
|
||||
@ -144,9 +147,9 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量获取id
|
||||
*
|
||||
* @param seqName
|
||||
* @param batchSize
|
||||
* @return
|
||||
@ -236,6 +239,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新缓存
|
||||
*/
|
||||
@ -253,6 +257,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
|
||||
/**
|
||||
* 存的是最大值,取的是范围,如存最大值1,批量是2,则取范围【1+1,1+2】,如果没有则从1开始算即取范围[0+1,0+2]
|
||||
*
|
||||
* @param batchSize
|
||||
* @return
|
||||
*/
|
||||
@ -280,6 +285,7 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
|
||||
/**
|
||||
* 存的是最大值,取的是范围,如存最大值1,批量是2,则取范围【1+1,1+2】,如果没有则从1开始算即取范围[0+1,0+2]
|
||||
*
|
||||
* @param batchSize
|
||||
* @return
|
||||
*/
|
||||
@ -305,10 +311,9 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 存的是最大值,取的是范围,如存最大值1,批量是2,则取范围【1+1,1+2】,如果没有则从1开始算即取范围[0+1,0+2]
|
||||
*
|
||||
* @param batchSize
|
||||
* @return
|
||||
*/
|
||||
@ -332,9 +337,4 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl<ShopNumberSeqMappe
|
||||
return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.printf(IntStream.rangeClosed(1, 1).boxed().collect(Collectors.toList()).toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user