|
|
@@ -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.StoreUserLogoutListVo;
|
|
|
import shop.alien.entity.store.vo.StoreUserVo;
|
|
|
+import shop.alien.entity.store.vo.StoreUserWithStoreVo;
|
|
|
import shop.alien.entity.store.vo.WebSocketVo;
|
|
|
import shop.alien.mapper.*;
|
|
|
import shop.alien.store.config.BaseRedisService;
|
|
|
@@ -136,6 +137,70 @@ public class StoreUserServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser
|
|
|
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
|
|
|
*
|