Jelajahi Sumber

user端的id生成重构

chunping 3 tahun lalu
induk
melakukan
1ed9417fc4

+ 1 - 1
mp-service/src/main/java/com/qs/mp/admin/service/impl/CouponServiceImpl.java

@@ -78,7 +78,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
   public void distribute(Ticket ticket, Long userId, String couponId) {
     Coupon coupon = getById(couponId);
     UserCoupon userCoupon = new UserCoupon();
-    userCoupon.setId(bizIdGenerator.newId());
+    userCoupon.setId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     userCoupon.setUserId(userId);
     userCoupon.setVerifyCode(bizIdGenerator.newId());
     userCoupon.setCouponId(coupon.getCouponId());

+ 2 - 2
mp-service/src/main/java/com/qs/mp/user/domain/UserHitPrize.java

@@ -22,8 +22,8 @@ public class UserHitPrize implements Serializable {
   /**
    * 主键
    */
-  @TableId(value = "id", type = IdType.AUTO)
-  private Long id;
+  @TableId(value = "id", type = IdType.INPUT)
+  private String id;
 
   /**
    * 用户ID

+ 2 - 2
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java

@@ -55,7 +55,7 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
   @Transactional
   public String submitOrder(Long userId, DeliverOrderSettleVO orderSettleVO) {
     UserDeliverOrder userDeliverOrder = new UserDeliverOrder();
-    userDeliverOrder.setOrderId(bizIdGenerator.newId());
+    userDeliverOrder.setOrderId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     userDeliverOrder.setUserId(userId);
     UserAddr userAddr = orderSettleVO.getAddr();
     userDeliverOrder.setReceiver(userAddr.getReceiver());
@@ -77,7 +77,7 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
 
     for (UserPrizeStorage prizeStorage : orderSettleVO.getPrizeList()) {
       UserDeliverOrderItem orderItem = new UserDeliverOrderItem();
-      orderItem.setItemId(bizIdGenerator.newId());
+      orderItem.setItemId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
       orderItem.setOrderId(userDeliverOrder.getOrderId());
       orderItem.setStorageId(prizeStorage.getStorageId());
       orderItem.setGoodsId(prizeStorage.getGoodsId());

+ 6 - 2
mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java

@@ -82,6 +82,9 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
   @Autowired
   private ITicketService ticketService;
 
+  @Autowired
+  private BizIdGenerator bizIdGenerator;
+
   @Override
   public List<TicketAwardsPrize> listPrize(Ticket ticket, Long userId) {
     UserHitPrize userHitPrize = getOne(new LambdaQueryWrapper<UserHitPrize>().eq(UserHitPrize::getTicketId, ticket.getTicketId()));
@@ -97,6 +100,7 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
       for (TicketDrawNumDTO ticketDrawNumDTO : drawNumDTOList) {
         if (ticketDrawNumDTO.getNum() == ticket.getPlainLuckyNum()) {
           userHitPrize = new UserHitPrize();
+          userHitPrize.setId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
           userHitPrize.setUserId(userId);
           userHitPrize.setOrderId(orderItem.getOrderId());
           userHitPrize.setOrderItemId(orderItem.getItemId());
@@ -138,11 +142,11 @@ public class UserHitPrizeServiceImpl extends ServiceImpl<UserHitPrizeMapper, Use
 
     // 放入仓库
     if (ticketAwardsPrize.getPrizeType() == TicketPrizeTypeEnum.COIN) {
-      userCoinService.produce(userId, ticketAwardsPrize.getValue(), String.valueOf(userHitPrize.getId()));
+      userCoinService.produce(userId, ticketAwardsPrize.getValue(), userHitPrize.getId());
     } else if (ticketAwardsPrize.getPrizeType() == TicketPrizeTypeEnum.COUPON) {
       couponService.distribute(ticket, userId, ticketAwardsPrize.getRefId());
     } else {
-      userPrizeStorageService.takeInStorage(userId, ticketAwardsPrize, PrizeStorageInTypeEnum.TICKET_CASHED, String.valueOf(userHitPrize.getId()));
+      userPrizeStorageService.takeInStorage(userId, ticketAwardsPrize, PrizeStorageInTypeEnum.TICKET_CASHED, userHitPrize.getId());
     }
 
     boolean rtn = ticketService.update(new LambdaUpdateWrapper<Ticket>().set(Ticket::getStatus, TicketStatusEnum.CASHED)

+ 4 - 4
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -140,7 +140,7 @@ public class UserTicketOrderServiceImpl extends
 
     // 创建订单
     UserTicketOrder userTicketOrder = new UserTicketOrder();
-    userTicketOrder.setOrderId(bizIdGenerator.newId());
+    userTicketOrder.setOrderId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     userTicketOrder.setUserId(userId);
     userTicketOrder.setTitle(ticketBox.getTitle());
     userTicketOrder.setBoxId(orderSettleVO.getBoxId());
@@ -165,7 +165,7 @@ public class UserTicketOrderServiceImpl extends
 
     for (int i = 0; i < orderSettleVO.getOrderNum(); i++) {
       UserTicketOrderItem orderItem = new UserTicketOrderItem();
-      orderItem.setItemId(bizIdGenerator.newId());
+      orderItem.setItemId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
       orderItem.setOrderId(userTicketOrder.getOrderId());
       orderItem.setUserId(userId);
       orderItem.setBoxId(ticketBox.getBoxId());
@@ -184,7 +184,7 @@ public class UserTicketOrderServiceImpl extends
     String couponIds = verifyUserCoupon(orderSettleVO.getCouponList());
 
     UserTicketOrder ticketOrder = new UserTicketOrder();
-    ticketOrder.setOrderId(bizIdGenerator.newId());
+    ticketOrder.setOrderId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     ticketOrder.setUserId(userId);
     ticketOrder.setTitle(ticket.getTitle());
     ticketOrder.setBoxId(ticket.getBoxId());
@@ -214,7 +214,7 @@ public class UserTicketOrderServiceImpl extends
     save(ticketOrder);
 
     UserTicketOrderItem orderItem = new UserTicketOrderItem();
-    orderItem.setItemId(bizIdGenerator.newId());
+    orderItem.setItemId(bizIdGenerator.newIdWithUidSharding(String.valueOf(userId)));
     orderItem.setOrderId(ticketOrder.getOrderId());
     orderItem.setUserId(userId);
     orderItem.setBoxId(ticket.getBoxId());