Selaa lähdekoodia

修改 我送好友 和好友送我的 查询逻辑

lutong 2 kuukautta sitten
vanhempi
commit
a173de4004

+ 3 - 3
alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCouponStoreFriend.java

@@ -32,7 +32,7 @@ public class LifeDiscountCouponStoreFriend extends Model<LifeDiscountCouponStore
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "店铺用户id")
+    @ApiModelProperty(value = "店铺ID(store_info.id),收到券的店铺")
     @TableField("store_user_id")
     private Integer storeUserId;
 
@@ -44,7 +44,7 @@ public class LifeDiscountCouponStoreFriend extends Model<LifeDiscountCouponStore
     @TableField("voucher_id")
     private String voucherId;
 
-    @ApiModelProperty(value = "好友店铺id")
+    @ApiModelProperty(value = "店铺用户ID(store_user.id),送券的用户")
     @TableField("friend_store_user_id")
     private Integer friendStoreUserId;
 
@@ -85,7 +85,7 @@ public class LifeDiscountCouponStoreFriend extends Model<LifeDiscountCouponStore
     @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
     private Integer updatedUserId;
 
-    @ApiModelProperty(value = "发布状态")
+    @ApiModelProperty(value = "发布状态:0 未发布,1发布")
     @TableField("release_type")
     private Integer releaseType;
 

+ 23 - 9
alien-store/src/main/java/shop/alien/store/service/impl/LifeDiscountCouponStoreFriendServiceImpl.java

@@ -629,8 +629,12 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
         boolean voucherOnly = TYPE_VOUCHER.equals(type);
 
         // 确定查询类型
-        // queryType = 1: 我收到的(所有好友赠送给我的)-> friend_store_user_id = 我的ID(我是接收者)
-        // queryType = 2: 我送出的(我送给所有好友的)-> store_user_id = 我的ID(我是发放者)
+        // 根据表结构(实体类注释):
+        // store_user_id: store_info的ID(店铺ID),收到券的店铺
+        // friend_store_user_id: store_user的ID(店铺用户ID),送券的用户
+        // 前端传入的 storeUserId 是当前登录账号的 store_user.id(店铺用户ID)
+        // queryType = 1: 我收到的(所有好友赠送给我的)-> store_user_id = 我的店铺ID(我是收到券的店铺,需要从店铺用户ID转换为店铺ID)
+        // queryType = 2: 我送出的(我送给所有好友的)-> friend_store_user_id = 我的店铺用户ID(我是送券的用户)
         boolean isReceivedByMe = (queryType == 1);
 
         return queryCouponList(isReceivedByMe, storeUserId, storeName, type, voucherOnly);
@@ -759,15 +763,25 @@ public class LifeDiscountCouponStoreFriendServiceImpl extends ServiceImpl<LifeDi
      */
     private QueryWrapper<LifeDiscountCouponFriendRuleVo> buildBaseQueryWrapper(boolean isReceivedByMe, String storeUserId, String storeName) {
         QueryWrapper<LifeDiscountCouponFriendRuleVo> queryWrapper = new QueryWrapper<>();
-        // 根据表结构:
-        // store_user_id: 发放券的店铺用户ID
-        // friend_store_user_id: 接收券的店铺用户ID
+        // 根据表结构(实体类注释):
+        // store_user_id: store_info的ID(店铺ID),收到券的店铺
+        // friend_store_user_id: store_user的ID(店铺用户ID),送券的用户
+        // 前端传入的 storeUserId 是当前登录账号的 store_user.id(店铺用户ID)
         if (isReceivedByMe) {
-            // 我收到的:查询所有好友赠送给我的券(我是接收者)
-            queryWrapper.eq("ldcsf.friend_store_user_id", storeUserId);
+            // 我收到的:查询所有好友赠送给我的券(我是收到券的店铺)
+            // store_user_id = 我的店铺ID(store_info.id),需要从店铺用户ID转换为店铺ID
+            StoreUser storeUser = storeUserMapper.selectById(storeUserId);
+            if (storeUser != null && storeUser.getStoreId() != null) {
+                queryWrapper.eq("ldcsf.store_user_id", storeUser.getStoreId());
+            } else {
+                // 如果查询不到店铺用户,返回空结果
+                queryWrapper.eq("1", "0"); // 永远不匹配的条件
+                log.warn("buildBaseQueryWrapper 查询不到店铺用户,storeUserId={}", storeUserId);
+            }
         } else {
-            // 我送出的:查询我送给所有好友的券(我是发放者)
-            queryWrapper.eq("ldcsf.store_user_id", storeUserId);
+            // 我送出的:查询我送给所有好友的券(我是送券的用户)
+            // friend_store_user_id = 我的店铺用户ID(store_user.id)
+            queryWrapper.eq("ldcsf.friend_store_user_id", storeUserId);
         }
         queryWrapper.eq("ldcsf.delete_flag", 0);
         // 店铺名称模糊查询