Merge #4 into master from cc_20251027_new2

fix:小程序菜单

* cc_20251027_new2: (3 commits squashed)

  - feat:小程序菜单配置

  - Merge branch 'refs/heads/master' into cc_20251027_new2

  - fix:小程序菜单

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Reviewed-by: 苏竹红 <accounts_68551bf01395375227aee211@mail.teambition.com>
Merged-by: 苏竹红 <accounts_68551bf01395375227aee211@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/4
This commit is contained in:
王非凡
2025-12-04 09:48:08 +00:00
committed by 苏竹红
parent 43f37734b4
commit e57f8c7925
13 changed files with 344 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
package com.cool.store.service.menu;
import com.cool.store.vo.menu.MiniMenuConfigVO;
import java.util.List;
/**
* <p>
* 小程序菜单配置
* </p>
*
* @author wangff
* @since 2025/10/31
*/
public interface MiniMenuService {
/**
* 获取用户小程序菜单配置
* @return 小程序菜单配置
*/
List<MiniMenuConfigVO> getUserMiniMenu();
}

View File

@@ -0,0 +1,88 @@
package com.cool.store.service.menu.impl;
import cn.hutool.core.collection.CollStreamUtil;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.SysRoleDao;
import com.cool.store.dao.menu.MiniMenuConfigDAO;
import com.cool.store.dao.menu.MiniMenuDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.SysRoleDO;
import com.cool.store.entity.menu.MiniMenuConfigDO;
import com.cool.store.entity.menu.MiniMenuDO;
import com.cool.store.enums.AIEnum;
import com.cool.store.enums.Role;
import com.cool.store.service.menu.MiniMenuService;
import com.cool.store.utils.BeanUtil;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.menu.MiniMenuConfigVO;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* <p>
* 小程序菜单配置 服务实现类
* </p>
*
* @author wangff
* @since 2025/10/31
*/
@Service
@RequiredArgsConstructor
public class MiniMenuServiceImpl implements MiniMenuService {
private final MiniMenuConfigDAO miniMenuConfigDAO;
private final SysRoleDao sysRoleDao;
private final EnterpriseUserDAO enterpriseUserDAO;
private final MiniMenuDAO miniMenuDAO;
@Override
public List<MiniMenuConfigVO> getUserMiniMenu() {
PartnerUserInfoVO user = PartnerUserHolder.getUser();
if (StringUtils.isBlank(user.getMobile())) {
return Collections.emptyList();
}
SysRoleDO highestRole = getHighestRoleByMobile(user.getMobile());
if (Objects.isNull(highestRole)) {
return Collections.emptyList();
}
List<MiniMenuConfigDO> list = miniMenuConfigDAO.getListByRoleId(highestRole.getId());
List<Long> menuIds = CollStreamUtil.toList(list, MiniMenuConfigDO::getMenuId);
List<MiniMenuDO> menuList = miniMenuDAO.getByIds(menuIds);
return BeanUtil.toList(menuList, MiniMenuConfigVO.class);
}
/**
* 根据手机号查询用户优先级最高的角色
* @param mobile 手机号
* @return 角色信息
*/
private SysRoleDO getHighestRoleByMobile(String mobile) {
if (StringUtils.isBlank(mobile)) {
return null;
}
EnterpriseUserDO userDO = enterpriseUserDAO.selectByMobile(mobile);
if (Objects.isNull(userDO)) {
return null;
}
return getHighestRole(userDO.getUserId());
}
/**
* 查询当前用户优先级最高的角色
* @param userId 用户id
* @return 角色信息
*/
private SysRoleDO getHighestRole(String userId) {
if(AIEnum.AI_USERID.getCode().equals(userId)){
return sysRoleDao.getRoleByRoleEnum(Role.MASTER.getRoleEnum());
}
return sysRoleDao.getHighestPrioritySysRoleDoByUserId(userId);
}
}