feat: bug-528 app端添加管理功能
1、根据菜单url查询菜单下的所有按钮列表 2、查询所有收藏夹信息,树形结构
This commit is contained in:
parent
5b9b277251
commit
8660fcd715
|
|
@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
@ -175,6 +176,16 @@ public class MenuController extends ControllerBase {
|
||||||
return ApiResult.success();
|
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 接口列表
|
* @return 接口列表
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,17 @@ public class TicketController extends ControllerBase {
|
||||||
@GetMapping("getFavorites")
|
@GetMapping("getFavorites")
|
||||||
@ApiMark(moduleName = "工单管理", apiName = "获取收藏夹",isPublic = true)
|
@ApiMark(moduleName = "工单管理", apiName = "获取收藏夹",isPublic = true)
|
||||||
public ApiResult<FavoritesVO> getFavorites(@RequestParam(defaultValue ="0") Integer id){
|
public ApiResult<FavoritesVO> getFavorites(@RequestParam(defaultValue ="0") Integer id){
|
||||||
return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),id));
|
return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取收藏夹树结构
|
||||||
|
* @param id 父级id,0为根节点
|
||||||
|
* @return 树结构
|
||||||
|
*/
|
||||||
|
@GetMapping("getFavoritesTree")
|
||||||
|
public ApiResult<FavoritesVO> getFavoritesTree(@RequestParam(defaultValue ="0") Integer id){
|
||||||
|
return ApiResult.success(ticketFavoritesService.getTree(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,id));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -165,7 +175,7 @@ public class TicketController extends ControllerBase {
|
||||||
@PostMapping("addFavorites")
|
@PostMapping("addFavorites")
|
||||||
@ApiMark(moduleName = "工单管理", apiName = "添加收藏夹",isPublic = true)
|
@ApiMark(moduleName = "工单管理", apiName = "添加收藏夹",isPublic = true)
|
||||||
public ApiResult<Void> addFavorites(@Valid @RequestBody AdminFavoritesRequest request){
|
public ApiResult<Void> addFavorites(@Valid @RequestBody AdminFavoritesRequest request){
|
||||||
ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom());
|
ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId(),Constant.FROM_ADMIN);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -175,7 +185,7 @@ public class TicketController extends ControllerBase {
|
||||||
*/
|
*/
|
||||||
@PostMapping("updateFavorites")
|
@PostMapping("updateFavorites")
|
||||||
public ApiResult<Void> updateFavorites(@Valid @RequestBody FavoritesUpdateRequest request){
|
public ApiResult<Void> updateFavorites(@Valid @RequestBody FavoritesUpdateRequest request){
|
||||||
ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom());
|
ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId(),Constant.FROM_ADMIN);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,7 +197,7 @@ public class TicketController extends ControllerBase {
|
||||||
@PostMapping("deleteFavorites")
|
@PostMapping("deleteFavorites")
|
||||||
@ApiMark(moduleName = "工单管理", apiName = "删除收藏夹",isPublic = true)
|
@ApiMark(moduleName = "工单管理", apiName = "删除收藏夹",isPublic = true)
|
||||||
public ApiResult<Void> deleteFavorites(@Valid @RequestParam @NotNull Integer favoritesId){
|
public ApiResult<Void> deleteFavorites(@Valid @RequestParam @NotNull Integer favoritesId){
|
||||||
ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),favoritesId);
|
ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,favoritesId);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -207,7 +217,7 @@ public class TicketController extends ControllerBase {
|
||||||
*/
|
*/
|
||||||
@PostMapping("moveFavoritesTicket")
|
@PostMapping("moveFavoritesTicket")
|
||||||
public ApiResult<Void> moveFavoritesTicket(@Valid @RequestBody FavoritesTicketMoveRequest request){
|
public ApiResult<Void> moveFavoritesTicket(@Valid @RequestBody FavoritesTicketMoveRequest request){
|
||||||
ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),request);
|
ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,request);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,7 +228,7 @@ public class TicketController extends ControllerBase {
|
||||||
@PostMapping("followTiket")
|
@PostMapping("followTiket")
|
||||||
@ApiMark(moduleName = "工单管理", apiName = "关注工单")
|
@ApiMark(moduleName = "工单管理", apiName = "关注工单")
|
||||||
public ApiResult<Void> followTiket(@Valid @RequestBody AdminFollowRequest request){
|
public ApiResult<Void> followTiket(@Valid @RequestBody AdminFollowRequest request){
|
||||||
ticketFollowService.follow(request, AdminUserUtil.getUserId(),AppUserUtil.getFrom());
|
ticketFollowService.follow(request, AdminUserUtil.getUserId(),Constant.FROM_ADMIN);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -228,7 +238,7 @@ public class TicketController extends ControllerBase {
|
||||||
**/
|
**/
|
||||||
@PostMapping("unfollowTicket")
|
@PostMapping("unfollowTicket")
|
||||||
public ApiResult<Void> unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId){
|
public ApiResult<Void> unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId){
|
||||||
ticketFollowService.unfollow(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),ticketId);
|
ticketFollowService.unfollow(AdminUserUtil.getUserId(),Constant.FROM_ADMIN,ticketId);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
package com.nflg.mobilebroken.repository.mapper;
|
package com.nflg.mobilebroken.repository.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
|
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Mapper 接口
|
* Mapper 接口
|
||||||
|
|
@ -13,4 +16,5 @@ import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
|
||||||
*/
|
*/
|
||||||
public interface AdminMenuButtonMapper extends BaseMapper<AdminMenuButton> {
|
public interface AdminMenuButtonMapper extends BaseMapper<AdminMenuButton> {
|
||||||
|
|
||||||
|
List<AdminMenuButtonVO> getMenuButtonList(String url);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ import com.nflg.mobilebroken.common.pojo.request.SearchMenuButtonRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
|
import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
|
import com.nflg.mobilebroken.repository.entity.AdminMenuButton;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务类
|
* 服务类
|
||||||
|
|
@ -23,4 +25,6 @@ public interface IAdminMenuButtonService extends IService<AdminMenuButton> {
|
||||||
void addMenuButton(MenuButtonAddRequest request);
|
void addMenuButton(MenuButtonAddRequest request);
|
||||||
|
|
||||||
void updateMenuButton(MenuButtonUpdateRequest request);
|
void updateMenuButton(MenuButtonUpdateRequest request);
|
||||||
|
|
||||||
|
List<AdminMenuButtonVO> getMenuButtonList(String url);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,6 @@ public interface ITicketFavoritesService extends IService<TicketFavorites> {
|
||||||
void moveFavorites(FavoritesMoveRequest request);
|
void moveFavorites(FavoritesMoveRequest request);
|
||||||
|
|
||||||
void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request);
|
void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request);
|
||||||
|
|
||||||
|
FavoritesVO getTree(Integer userId, String from, Integer id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import com.nflg.mobilebroken.repository.service.IAdminMenuButtonService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -68,4 +69,9 @@ public class AdminMenuButtonServiceImpl extends ServiceImpl<AdminMenuButtonMappe
|
||||||
.setUpdateTime(LocalDateTime.now());
|
.setUpdateTime(LocalDateTime.now());
|
||||||
updateById(button);
|
updateById(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AdminMenuButtonVO> getMenuButtonList(String url) {
|
||||||
|
return baseMapper.getMenuButtonList(url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -102,4 +103,26 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
|
||||||
.eq(TicketFollow::getFrom, StrUtil.equals(from, "app")?0:1)
|
.eq(TicketFollow::getFrom, StrUtil.equals(from, "app")?0:1)
|
||||||
.update();
|
.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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,10 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!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">
|
<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>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue