Jelajahi Sumber

store_clock_in 店铺打卡
life_collect 收藏表 这两张表的新增我改完了

lutong 7 jam lalu
induk
melakukan
025416e1d4

+ 32 - 0
alien-store/src/main/java/shop/alien/store/controller/LifeCollectController.java

@@ -31,6 +31,8 @@ import shop.alien.store.service.LifeDiscountCouponService;
 import shop.alien.util.common.Constants;
 import shop.alien.util.common.JwtUtil;
 import shop.alien.util.common.ListToPage;
+import shop.alien.util.type.PhoneTypeIdResult;
+import shop.alien.util.type.TypeUtil;
 
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
@@ -71,6 +73,8 @@ public class LifeCollectController {
 
     private final LifeGroupBuyMainMapper lifeGroupBuyMainMapper;
 
+    private final TypeUtil typeUtil;
+
     @ApiOperation("收藏列表")
     @ApiOperationSupport(order = 1)
     @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "分页页数", dataType = "String", paramType = "query", required = true),
@@ -233,6 +237,7 @@ public class LifeCollectController {
     public R<Boolean> addCollect(LifeCollect lifeCollect) {
         log.info("LifeCollectController.addCollect?lifeCollect={}", lifeCollect.toString());
         lifeCollect.setCreatedTime(new Date());
+        fillCollectUserIdentity(lifeCollect);
         int num = lifeCollectMapper.insert(lifeCollect);
         // 二手商品收藏数量+1
         if (StringUtil.isNotBlank(lifeCollect.getBusinessType()) && lifeCollect.getBusinessType().equals("1")) {
@@ -256,6 +261,33 @@ public class LifeCollectController {
         return R.success("收藏成功");
     }
 
+    /**
+     * 解析 user_{phone}/store_{phone}/lawyer_{phone},写入 user_id_user_type、user_id_ref_id
+     */
+    private void fillCollectUserIdentity(LifeCollect lifeCollect) {
+        if (lifeCollect == null || org.springframework.util.StringUtils.isEmpty(lifeCollect.getUserId())) {
+            return;
+        }
+        String userId = lifeCollect.getUserId().trim();
+        if (!userId.contains("_")) {
+            try {
+                LifeUser lifeUser = lifeUserMapper.selectById(Integer.parseInt(userId));
+                if (lifeUser == null || org.springframework.util.StringUtils.isEmpty(lifeUser.getUserPhone())) {
+                    return;
+                }
+                userId = "user_" + lifeUser.getUserPhone();
+                lifeCollect.setUserId(userId);
+            } catch (NumberFormatException e) {
+                return;
+            }
+        }
+        PhoneTypeIdResult result = typeUtil.resolveTypeAndId(userId);
+        if (result != null) {
+            lifeCollect.setUserIdUserType(result.getType());
+            lifeCollect.setUserIdRefId(result.getId());
+        }
+    }
+
     @ApiOperation("取消收藏")
     @ApiOperationSupport(order = 3)
     @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String", paramType = "query"),

+ 20 - 2
alien-store/src/main/java/shop/alien/store/service/impl/LifeDiscountCouponUserServiceImpl.java

@@ -12,17 +12,21 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeCollect;
 import shop.alien.entity.store.LifeDiscountCoupon;
 import shop.alien.entity.store.LifeDiscountCouponUser;
+import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.StoreInfo;
 import shop.alien.entity.store.dto.LifeDiscountCouponUserDto;
 import shop.alien.mapper.LifeCollectMapper;
 import shop.alien.mapper.LifeDiscountCouponMapper;
 import shop.alien.mapper.LifeDiscountCouponUserMapper;
+import shop.alien.mapper.LifeUserMapper;
 import shop.alien.mapper.StoreInfoMapper;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.service.LifeDiscountCouponUserService;
 import shop.alien.util.common.constant.DiscountCouponEnum;
 import shop.alien.util.coupon.DiscountCouponExpirationUtil;
 import shop.alien.util.coupon.LifeDiscountCouponStock;
+import shop.alien.util.type.PhoneTypeIdResult;
+import shop.alien.util.type.TypeUtil;
 
 import java.time.LocalDate;
 import java.time.ZoneId;
@@ -42,6 +46,8 @@ public class LifeDiscountCouponUserServiceImpl extends ServiceImpl<LifeDiscountC
 
     private final LifeCollectMapper lifeCollectMapper;
 
+    private final LifeUserMapper lifeUserMapper;
+
     private final StoreInfoMapper storeInfoMapper;
 
     private final LifeDiscountCouponMapper lifeDiscountCouponMapper;
@@ -50,6 +56,8 @@ public class LifeDiscountCouponUserServiceImpl extends ServiceImpl<LifeDiscountC
 
     private final BaseRedisService baseRedisService;
 
+    private final TypeUtil typeUtil;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -127,15 +135,25 @@ public class LifeDiscountCouponUserServiceImpl extends ServiceImpl<LifeDiscountC
             Integer attentionCanReceived = lifeDiscountCoupon.getAttentionCanReceived();
             if(attentionCanReceived != null && attentionCanReceived == 1){
 
+                LifeUser lifeUser = lifeUserMapper.selectById(lifeDiscountCouponUserDto.getUserId());
+                String collectUserId = lifeUser != null && !StringUtils.isEmpty(lifeUser.getUserPhone())
+                        ? "user_" + lifeUser.getUserPhone()
+                        : lifeDiscountCouponUserDto.getUserId().toString();
+
                 LambdaQueryWrapper<LifeCollect> lifeCollectLambdaQueryWrapper = new LambdaQueryWrapper<>();
                 lifeCollectLambdaQueryWrapper.eq(LifeCollect::getStoreId, lifeDiscountCoupon.getStoreId());
-                lifeCollectLambdaQueryWrapper.eq(LifeCollect::getUserId, lifeDiscountCouponUserDto.getUserId());
+                lifeCollectLambdaQueryWrapper.eq(LifeCollect::getUserId, collectUserId);
                 lifeCollectLambdaQueryWrapper.eq(LifeCollect::getDeleteFlag, 0);
                 int lifeCollectCount = lifeCollectMapper.selectCount(lifeCollectLambdaQueryWrapper);
                 if(lifeCollectCount == 0){
                     LifeCollect lifeCollect = new LifeCollect();
                     lifeCollect.setStoreId(lifeDiscountCoupon.getStoreId());
-                    lifeCollect.setUserId(lifeDiscountCouponUserDto.getUserId().toString());
+                    lifeCollect.setUserId(collectUserId);
+                    PhoneTypeIdResult typeId = typeUtil.resolveTypeAndId(collectUserId);
+                    if (typeId != null) {
+                        lifeCollect.setUserIdUserType(typeId.getType());
+                        lifeCollect.setUserIdRefId(typeId.getId());
+                    }
                     lifeCollectMapper.insert(lifeCollect);
                     //同步店铺收藏数量
                     if (!StringUtils.isEmpty(lifeCollect.getStoreId())) {

+ 11 - 1
alien-store/src/main/java/shop/alien/store/service/impl/StoreClockInServiceImpl.java

@@ -27,6 +27,8 @@ import shop.alien.store.service.StoreClockInService;
 import shop.alien.store.service.StoreCommentService;
 import shop.alien.store.util.ai.AiContentModerationUtil;
 import shop.alien.util.common.constant.CommentSourceTypeEnum;
+import shop.alien.util.type.PhoneTypeIdResult;
+import shop.alien.util.type.TypeUtil;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
@@ -77,6 +79,8 @@ public class StoreClockInServiceImpl extends ServiceImpl<StoreClockInMapper, Sto
 
     private final WebSocketProcess webSocketProcess;
 
+    private final TypeUtil typeUtil;
+
     // 初始化线程池
     @PostConstruct
     public void initExecutor() {
@@ -130,7 +134,13 @@ public class StoreClockInServiceImpl extends ServiceImpl<StoreClockInMapper, Sto
     @Override
     public StoreClockIn addStoreClockIn(StoreClockIn storeClockIn) {
         LifeUser user = lifeUserMapper.selectById(storeClockIn.getUserId());
-        storeClockIn.setPhoneId("user_" + user.getUserPhone());
+        String phoneId = "user_" + user.getUserPhone();
+        storeClockIn.setPhoneId(phoneId);
+        PhoneTypeIdResult typeId = typeUtil.resolveTypeAndId(phoneId);
+        if (typeId != null) {
+            storeClockIn.setPhoneUserType(typeId.getType());
+            storeClockIn.setPhoneRefId(typeId.getId());
+        }
         storeClockInMapper.insert(storeClockIn);
         return storeClockIn;
     }