Просмотр исходного кода

根据USER 和 INFO 查询信息

lutong 15 часов назад
Родитель
Сommit
adb9400595

+ 23 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreUserWithStoreVo.java

@@ -0,0 +1,23 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.StoreInfo;
+import shop.alien.entity.store.StoreUser;
+
+/**
+ * 店铺用户及其绑定店铺信息
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreUserWithStoreVo", description = "店铺用户及绑定店铺信息")
+public class StoreUserWithStoreVo {
+
+    @ApiModelProperty(value = "店铺用户信息")
+    private StoreUser storeUser;
+
+    @ApiModelProperty(value = "绑定的店铺信息")
+    private StoreInfo storeInfo;
+}

+ 14 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreUserController.java

@@ -14,6 +14,7 @@ import shop.alien.entity.store.StorePlatformMenu;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreInfoVo;
 import shop.alien.entity.store.vo.StoreInfoVo;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.entity.store.vo.StoreUserVo;
+import shop.alien.entity.store.vo.StoreUserWithStoreVo;
 import shop.alien.entity.store.vo.SubAccountStoreListVo;
 import shop.alien.entity.store.vo.SubAccountStoreListVo;
 import shop.alien.mapper.StoreImgMapper;
 import shop.alien.mapper.StoreImgMapper;
 import shop.alien.mapper.StoreUserMapper;
 import shop.alien.mapper.StoreUserMapper;
@@ -150,6 +151,19 @@ public class StoreUserController {
         return R.fail("手机号不存在");
         return R.fail("手机号不存在");
     }
     }
 
 
+    @ApiOperation("查询店铺用户及绑定店铺信息")
+    @ApiOperationSupport(order = 4)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "查询类型:1-店铺用户ID,2-店铺ID", dataType = "int", paramType = "query", required = true),
+            @ApiImplicitParam(name = "id", value = "店铺用户ID或店铺ID", dataType = "int", paramType = "query", required = true)
+    })
+    @GetMapping("/getStoreUserWithStore")
+    public R<StoreUserWithStoreVo> getStoreUserWithStore(@RequestParam("type") Integer type,
+                                                         @RequestParam("id") Integer id) {
+        log.info("StoreUserController.getStoreUserWithStore?type={}&id={}", type, id);
+        return storeUserService.getStoreUserWithStore(type, id);
+    }
+
     @ApiOperation("修改支付密码")
     @ApiOperation("修改支付密码")
     @ApiOperationSupport(order = 5)
     @ApiOperationSupport(order = 5)
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "payPassword", value = "支付密码", dataType = "String", paramType = "query", required = true)})
     @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "payPassword", value = "支付密码", dataType = "String", paramType = "query", required = true)})

+ 8 - 0
alien-store/src/main/java/shop/alien/store/service/StoreUserService.java

@@ -6,6 +6,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreUserLogoutListVo;
 import shop.alien.entity.store.vo.StoreUserLogoutListVo;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.entity.store.vo.StoreUserVo;
+import shop.alien.entity.store.vo.StoreUserWithStoreVo;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
@@ -27,6 +28,13 @@ public interface StoreUserService extends IService<StoreUser> {
      */
      */
     StoreUserVo getUserByPhone(String phone);
     StoreUserVo getUserByPhone(String phone);
 
 
+    /**
+     * 根据店铺用户ID或店铺ID查询店铺用户及绑定店铺信息
+     *
+     * @param type 查询类型:1-店铺用户ID,2-店铺ID
+     * @param id   对应类型的ID
+     */
+    R<StoreUserWithStoreVo> getStoreUserWithStore(Integer type, Integer id);
 
 
     /**
     /**
      * 创建token
      * 创建token

+ 65 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreUserServiceImpl.java

@@ -23,6 +23,7 @@ import shop.alien.entity.store.excelVo.util.ExcelGenerator;
 import shop.alien.entity.store.vo.StoreSubExcelVo;
 import shop.alien.entity.store.vo.StoreSubExcelVo;
 import shop.alien.entity.store.vo.StoreUserLogoutListVo;
 import shop.alien.entity.store.vo.StoreUserLogoutListVo;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.entity.store.vo.StoreUserVo;
+import shop.alien.entity.store.vo.StoreUserWithStoreVo;
 import shop.alien.entity.store.vo.WebSocketVo;
 import shop.alien.entity.store.vo.WebSocketVo;
 import shop.alien.mapper.*;
 import shop.alien.mapper.*;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.config.BaseRedisService;
@@ -136,6 +137,70 @@ public class StoreUserServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser
         return storeUserVo;
         return storeUserVo;
     }
     }
 
 
+    @Override
+    public R<StoreUserWithStoreVo> getStoreUserWithStore(Integer type, Integer id) {
+        if (type == null || id == null) {
+            return R.fail("type和id不能为空");
+        }
+        StoreUser storeUser;
+        Integer storeId;
+        if (type == 1) {
+            storeUser = storeUserMapper.selectById(id);
+            if (storeUser == null || (storeUser.getDeleteFlag() != null && storeUser.getDeleteFlag() == 1)) {
+                return R.fail("店铺用户不存在");
+            }
+            storeId = resolveStoreIdByUser(storeUser);
+        } else if (type == 2) {
+            StoreInfo storeInfo = storeInfoMapper.selectById(id);
+            if (storeInfo == null || (storeInfo.getDeleteFlag() != null && storeInfo.getDeleteFlag() != 0)) {
+                return R.fail("店铺不存在");
+            }
+            storeId = id;
+            storeUser = findMainStoreUserByStoreId(storeId);
+            if (storeUser == null) {
+                return R.fail("未找到该店铺关联的店铺用户");
+            }
+        } else {
+            return R.fail("type参数无效,1-店铺用户ID,2-店铺ID");
+        }
+
+        StoreUserWithStoreVo result = new StoreUserWithStoreVo();
+        result.setStoreUser(storeUser);
+        if (storeId != null && storeId > 0) {
+            result.setStoreInfo(storeInfoMapper.selectById(storeId));
+        }
+        return R.data(result);
+    }
+
+    private Integer resolveStoreIdByUser(StoreUser storeUser) {
+        if (storeUser.getStoreId() != null && storeUser.getStoreId() > 0) {
+            return storeUser.getStoreId();
+        }
+        StorePlatformUserRole role = storePlatformUserRoleMapper.selectOne(new LambdaQueryWrapper<StorePlatformUserRole>()
+                .eq(StorePlatformUserRole::getUserId, storeUser.getId())
+                .eq(StorePlatformUserRole::getDeleteFlag, 0)
+                .orderByDesc(StorePlatformUserRole::getCreatedTime)
+                .last("LIMIT 1"));
+        return role != null ? role.getStoreId() : null;
+    }
+
+    private StoreUser findMainStoreUserByStoreId(Integer storeId) {
+        StoreUser mainUser = storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>()
+                .eq(StoreUser::getStoreId, storeId)
+                .eq(StoreUser::getDeleteFlag, 0)
+                .eq(StoreUser::getAccountType, 1)
+                .orderByDesc(StoreUser::getCreatedTime)
+                .last("LIMIT 1"));
+        if (mainUser != null) {
+            return mainUser;
+        }
+        return storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>()
+                .eq(StoreUser::getStoreId, storeId)
+                .eq(StoreUser::getDeleteFlag, 0)
+                .orderByDesc(StoreUser::getCreatedTime)
+                .last("LIMIT 1"));
+    }
+
     /**
     /**
      * token
      * token
      *
      *