From 9fc880edb199f8194e01fa9c5fbcdacc4956272e Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 8 Sep 2025 18:19:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=91=BD=E5=90=8D-=E6=94=B9?= =?UTF-8?q?=E6=88=90=5F=E4=B8=8B=E5=88=92=E7=BA=BF=EF=BC=8C=E6=8B=89?= =?UTF-8?q?=E5=8D=A1=E6=8B=89=E8=A6=81=E6=B1=82=E7=9A=84=E8=A7=84=E5=88=99?= =?UTF-8?q?=EF=BC=8C=E5=90=A6=E5=88=99=E6=97=A0=E6=B3=95=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/common/constant/CommonConstant.java | 4 +- .../pay/service/PayConsumeTradeService.java | 4 +- .../service/impl/LakalaPayServiceImpl.java | 2 +- .../impl/ShopBaseStateCodeServiceImpl.java | 6 +- .../impl/ShopNumberSeqServiceImpl.java | 174 +++++++++--------- 5 files changed, 95 insertions(+), 95 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java index d38548e1..7a614b58 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java +++ b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java @@ -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_"; } diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/PayConsumeTradeService.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/PayConsumeTradeService.java index 93167aa7..7a1f02be 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/PayConsumeTradeService.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/PayConsumeTradeService.java @@ -75,7 +75,7 @@ public interface PayConsumeTradeService extends IBaseService { * "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 { * "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" // 终端设备号 * } * ] diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java index 24adce56..21b43dbc 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java @@ -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); // 商品子订单号 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseStateCodeServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseStateCodeServiceImpl.java index 0f52b727..073d46ef 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseStateCodeServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/base/service/impl/ShopBaseStateCodeServiceImpl.java @@ -32,7 +32,7 @@ public class ShopBaseStateCodeServiceImpl extends BaseServiceImpl * update 2024-12-14 切换到redis缓存 30秒 * * @param code 商品状态码 @@ -72,12 +72,12 @@ public class ShopBaseStateCodeServiceImpl extends BaseServiceImpl 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 BaseServiceImpl1; - while (!flag){ + private void checkPrimaryKey() { + boolean flag = shopNumberSeqMapper.findNumberFromShopBaseAndItem(new ShopNumberSeq()).size() > 1; + while (!flag) { try { Thread.sleep(3600); } catch (InterruptedException e) { - log.error("checkPrimaryKey枷锁失败--"+e.getMessage()); + log.error("checkPrimaryKey枷锁失败--" + e.getMessage()); break; } - flag=shopNumberSeqMapper.findNumberFromShopBaseAndItem(new ShopNumberSeq()).size()>1; + flag = shopNumberSeqMapper.findNumberFromShopBaseAndItem(new ShopNumberSeq()).size() > 1; } } - /** * 批量获取id + * * @param seqName * @param batchSize * @return @@ -156,8 +159,8 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq("prefix", seqName); @@ -171,9 +174,9 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl shopNumberSeqList){ - int count=0; + public void batchUpdateSeq(List shopNumberSeqList) { + int count = 0; for (int i = 0; i < shopNumberSeqList.size(); i++) { shopNumberSeqMapper.myUpdateSeq(shopNumberSeqList.get(i)); Long number = shopNumberSeqList.get(i).getNumber(); @@ -196,24 +199,24 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl1; - if(flag){ + public void clearRelateGoodsId() { + boolean flag = shopNumberSeqMapper.findNumberFromShopBaseAndItem(new ShopNumberSeq()).size() > 1; + if (flag) { return; } - List shopNumberSeqList=shopNumberSeqMapper.findProductAndImtemId(new ShopNumberSeq()); - for (ShopNumberSeq shopNumberSeq:shopNumberSeqList) { - if(shopNumberSeq.getPrefix().equals("product_id")){ - clearCache("product_id",shopNumberSeq.getNumber()); + List shopNumberSeqList = shopNumberSeqMapper.findProductAndImtemId(new ShopNumberSeq()); + for (ShopNumberSeq shopNumberSeq : shopNumberSeqList) { + if (shopNumberSeq.getPrefix().equals("product_id")) { + clearCache("product_id", shopNumberSeq.getNumber()); } - if(shopNumberSeq.getPrefix().equals("item_id")){ - clearCache("item_id",shopNumberSeq.getNumber()); + if (shopNumberSeq.getPrefix().equals("item_id")) { + clearCache("item_id", shopNumberSeq.getNumber()); } } - } + } + /** * 刷新缓存 */ - private void clearCache(String seqName,long number){ + private void clearCache(String seqName, long number) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("prefix", seqName); ShopNumberSeq seq = getById(seqName); if (seq != null) { seq = new ShopNumberSeq(); - seq.setNumber(number-1); + seq.setNumber(number - 1); seq.setPrefix(seqName); } edit(seq); @@ -253,88 +257,84 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl getBatchSpecId(int batchSize) { - int start=0; - if(null!=redisService.get(RedisKey.STOREDATASPECID)){ - start=(Integer) redisService.get(RedisKey.STOREDATASPECID); - redisService.set(RedisKey.STOREDATASPECID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + int start = 0; + if (null != redisService.get(RedisKey.STOREDATASPECID)) { + start = (Integer) redisService.get(RedisKey.STOREDATASPECID); + redisService.set(RedisKey.STOREDATASPECID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - QueryWrapper queryWrapper= new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("max(spec_id) as spec_id"); - ShopBaseProductSpec shopBaseProductSpec=shopBaseProductSpecService.getOne(queryWrapper); - if(null!=shopBaseProductSpec){ - start=shopBaseProductSpec.getSpec_id(); - redisService.set(RedisKey.STOREDATASPECID,start+batchSize); + ShopBaseProductSpec shopBaseProductSpec = shopBaseProductSpecService.getOne(queryWrapper); + if (null != shopBaseProductSpec) { + start = shopBaseProductSpec.getSpec_id(); + redisService.set(RedisKey.STOREDATASPECID, start + batchSize); } - if(start==0){ - redisService.set(RedisKey.STOREDATASPECID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + if (start == 0) { + redisService.set(RedisKey.STOREDATASPECID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + 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 */ @Override public synchronized List getBatchSpecItemId(int batchSize) { - int start=0; - if(null!=redisService.get(RedisKey.STOREDATASPECITEMID)){ - start=(Integer) redisService.get(RedisKey.STOREDATASPECITEMID); - redisService.set(RedisKey.STOREDATASPECITEMID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + int start = 0; + if (null != redisService.get(RedisKey.STOREDATASPECITEMID)) { + start = (Integer) redisService.get(RedisKey.STOREDATASPECITEMID); + redisService.set(RedisKey.STOREDATASPECITEMID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - QueryWrapper queryWrapper= new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("max(spec_item_id) as spec_item_id"); - ShopProductSpecItem shopProductSpecItem=shopProductSpecItemService.getOne(queryWrapper); - if(null!=shopProductSpecItem){ - start=shopProductSpecItem.getSpec_item_id(); - redisService.set(RedisKey.STOREDATASPECITEMID,start+batchSize); + ShopProductSpecItem shopProductSpecItem = shopProductSpecItemService.getOne(queryWrapper); + if (null != shopProductSpecItem) { + start = shopProductSpecItem.getSpec_item_id(); + redisService.set(RedisKey.STOREDATASPECITEMID, start + batchSize); } - if(start==0){ - redisService.set(RedisKey.STOREDATASPECITEMID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + if (start == 0) { + redisService.set(RedisKey.STOREDATASPECITEMID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + 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 */ @Override public synchronized List getBatchUserAccountBaseId(int batchSize) { - int start=0; - if(null!=redisService.get(RedisKey.STOREDATACCOUNTBASEID)){ - start=(Integer) redisService.get(RedisKey.STOREDATACCOUNTBASEID); - redisService.set(RedisKey.STOREDATACCOUNTBASEID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + int start = 0; + if (null != redisService.get(RedisKey.STOREDATACCOUNTBASEID)) { + start = (Integer) redisService.get(RedisKey.STOREDATACCOUNTBASEID); + redisService.set(RedisKey.STOREDATACCOUNTBASEID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - Integer maxId= accountService.getAccountMaxId(); - if(null!=maxId){ - start=maxId; - redisService.set(RedisKey.STOREDATACCOUNTBASEID,start+batchSize); + Integer maxId = accountService.getAccountMaxId(); + if (null != maxId) { + start = maxId; + redisService.set(RedisKey.STOREDATACCOUNTBASEID, start + batchSize); } - if(start==0){ - redisService.set(RedisKey.STOREDATACCOUNTBASEID,start+batchSize); - return IntStream.rangeClosed(start+1, start+batchSize).boxed().collect(Collectors.toList()); + if (start == 0) { + redisService.set(RedisKey.STOREDATACCOUNTBASEID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } - 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()); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); } }