Merge branch 'feature/bug-528' into develop

# Conflicts:
#	nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java
This commit is contained in:
曹鹏飞 2025-08-05 09:56:09 +08:00
commit 4aacfd4d36
8 changed files with 66 additions and 0 deletions

View File

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Objects;
@ -175,6 +176,16 @@ public class MenuController extends ControllerBase {
return ApiResult.success();
}
/**
* 根据菜单url获取菜单按钮列表
* @param url 请求url
* @return 菜单按钮列表
*/
@GetMapping("getMenuButtonList")
public ApiResult<List<AdminMenuButtonVO>> getMenuButtonList(@Valid @RequestParam @NotBlank String url) {
return ApiResult.success(adminMenuButtonService.getMenuButtonList(url));
}
/**
* 获取所有接口
* @return 接口列表

View File

@ -157,6 +157,16 @@ public class TicketController extends ControllerBase {
return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,id));
}
/**
* 获取收藏夹树结构
* @param id 父级id0为根节点
* @return 树结构
*/
@GetMapping("getFavoritesTree")
public ApiResult<FavoritesVO> getFavoritesTree(@RequestParam(defaultValue ="0") Integer id){
return ApiResult.success(ticketFavoritesService.getTree(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,id));
}
/**
* 添加收藏夹
* @param request 请求信息

View File

@ -1,8 +1,11 @@
package com.nflg.mobilebroken.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -13,4 +16,5 @@ import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
*/
public interface AdminMenuButtonMapper extends BaseMapper<AdminMenuButton> {
List<AdminMenuButtonVO> getMenuButtonList(String url);
}

View File

@ -8,6 +8,8 @@ import com.nflg.mobilebroken.common.pojo.request.SearchMenuButtonRequest;
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
import java.util.List;
/**
* <p>
* 服务类
@ -23,4 +25,6 @@ public interface IAdminMenuButtonService extends IService<AdminMenuButton> {
void addMenuButton(MenuButtonAddRequest request);
void updateMenuButton(MenuButtonUpdateRequest request);
List<AdminMenuButtonVO> getMenuButtonList(String url);
}

View File

@ -29,4 +29,6 @@ public interface ITicketFavoritesService extends IService<TicketFavorites> {
void moveFavorites(FavoritesMoveRequest request);
void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request);
FavoritesVO getTree(Integer userId, String from, Integer id);
}

View File

@ -18,6 +18,7 @@ import com.nflg.mobilebroken.repository.service.IAdminMenuButtonService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
@ -68,4 +69,9 @@ public class AdminMenuButtonServiceImpl extends ServiceImpl<AdminMenuButtonMappe
.setUpdateTime(LocalDateTime.now());
updateById(button);
}
@Override
public List<AdminMenuButtonVO> getMenuButtonList(String url) {
return baseMapper.getMenuButtonList(url);
}
}

View File

@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@ -102,4 +103,26 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
.eq(TicketFollow::getFrom, StrUtil.equals(from, "app")?0:1)
.update();
}
@Override
public FavoritesVO getTree(Integer userId, String from, Integer id) {
TicketFavorites favorites = Objects.equals(id, 0) ? new TicketFavorites().setId(0).setName("收藏夹") : lambdaQuery().eq(TicketFavorites::getId, id).one();
FavoritesVO vo = new FavoritesVO().setId(favorites.getId()).setName(favorites.getName());
getChildren(userId, vo, from);
return vo;
}
private void getChildren(Integer userId, FavoritesVO vo, String from) {
List<FavoritesVO> favorites = lambdaQuery()
.eq(TicketFavorites::getParentId, vo.getId())
.eq(TicketFavorites::getUserPlatform, from)
.eq(TicketFavorites::getCreateBy, userId)
.orderByAsc(TicketFavorites::getOrderNum)
.list()
.stream()
.map(f -> new FavoritesVO().setId(f.getId()).setName(f.getName()))
.collect(Collectors.toList());
vo.setChildren(favorites);
favorites.forEach(f -> getChildren(userId, f, from));
}
}

View File

@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.mobilebroken.repository.mapper.AdminMenuButtonMapper">
<select id="getMenuButtonList" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO">
SELECT amb.*
FROM admin_menu am
INNER JOIN admin_menu_button amb ON am.id=amb.menu_id
WHERE am.url=#{url}
</select>
</mapper>