AppMenuController.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.xjrsoft.module.app.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.bean.BeanUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import cn.hutool.core.util.StrUtil;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.core.metadata.IPage;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import com.xjrsoft.common.annotation.XjrLog;
  10. import com.xjrsoft.common.constant.GlobalConstant;
  11. import com.xjrsoft.common.enums.EnabledMark;
  12. import com.xjrsoft.common.model.result.R;
  13. import com.xjrsoft.common.page.ConventPage;
  14. import com.xjrsoft.common.page.PageOutput;
  15. import com.xjrsoft.common.utils.VoToColumnUtil;
  16. import com.xjrsoft.module.app.dto.AddAppMenuDto;
  17. import com.xjrsoft.module.app.dto.AppMenuListDto;
  18. import com.xjrsoft.module.app.dto.AppMenuPageDto;
  19. import com.xjrsoft.module.app.dto.UpdateAppMenuDto;
  20. import com.xjrsoft.module.app.entity.AppMenu;
  21. import com.xjrsoft.module.app.service.IAppMenuService;
  22. import com.xjrsoft.module.app.vo.AppMenuListVo;
  23. import com.xjrsoft.module.app.vo.AppMenuPageVo;
  24. import io.swagger.annotations.Api;
  25. import io.swagger.annotations.ApiOperation;
  26. import lombok.AllArgsConstructor;
  27. import org.springframework.web.bind.annotation.*;
  28. import javax.validation.Valid;
  29. import java.util.List;
  30. /**
  31. * <p>
  32. * app 菜单前端控制器
  33. * </p>
  34. *
  35. * @author tzx
  36. * @since 2023-07-26
  37. */
  38. @RestController
  39. @RequestMapping(GlobalConstant.APP_MODEL + "/menu")
  40. @Api(value = GlobalConstant.APP_MODEL + "/menu", tags = "app 菜单模块")
  41. @AllArgsConstructor
  42. public class AppMenuController {
  43. private final IAppMenuService appMenuService;
  44. @GetMapping("/page")
  45. @ApiOperation("app菜单分页接口")
  46. @SaCheckPermission("appmenu:page")
  47. @XjrLog(value = "app菜单分页接口")
  48. public R page(AppMenuPageDto dto) {
  49. LambdaQueryWrapper<AppMenu> queryWrapper = Wrappers.lambdaQuery(AppMenu.class)
  50. .eq(StrUtil.isNotBlank(dto.getName()), AppMenu::getName, dto.getName())
  51. .eq(StrUtil.isNotBlank(dto.getCode()), AppMenu::getCode, dto.getCode())
  52. .eq(ObjectUtil.isNotNull(dto.getCategoryId()), AppMenu::getCategoryId, dto.getCategoryId())
  53. .orderByAsc(AppMenu::getSortCode)
  54. .select(AppMenu.class, x -> VoToColumnUtil.fieldsToColumns(AppMenuPageVo.class).contains(x.getProperty()));
  55. IPage<AppMenu> page = appMenuService.page(ConventPage.getPage(dto), queryWrapper);
  56. PageOutput<AppMenuPageVo> pageOutput = ConventPage.getPageOutput(page, AppMenuPageVo.class);
  57. return R.ok(pageOutput);
  58. }
  59. @GetMapping("/list")
  60. @ApiOperation("app菜单 列表 不分页")
  61. @SaCheckPermission("appmenu:list")
  62. @XjrLog(value = "app菜单 列表 不分页")
  63. public R list(AppMenuListDto dto) {
  64. LambdaQueryWrapper<AppMenu> queryWrapper = Wrappers.lambdaQuery(AppMenu.class)
  65. .eq(StrUtil.isNotBlank(dto.getName()), AppMenu::getName, dto.getName())
  66. .eq(StrUtil.isNotBlank(dto.getCode()), AppMenu::getCode, dto.getCode())
  67. .eq(ObjectUtil.isNotNull(dto.getCategoryId()), AppMenu::getCategoryId, dto.getCategoryId())
  68. .eq(AppMenu::getEnabledMark, EnabledMark.ENABLED.getCode())
  69. .orderByAsc(AppMenu::getSortCode)
  70. .select(AppMenu.class, x -> VoToColumnUtil.fieldsToColumns(AppMenuPageVo.class).contains(x.getProperty()));
  71. List<AppMenu> list = appMenuService.list(queryWrapper);
  72. List<AppMenuListVo> appMenuListVos = BeanUtil.copyToList(list, AppMenuListVo.class);
  73. return R.ok(appMenuListVos);
  74. }
  75. @PostMapping
  76. @ApiOperation("新增")
  77. @SaCheckPermission("appmenu:add")
  78. @XjrLog(value = "新增", saveResponseData = true)
  79. public R add(@Valid @RequestBody AddAppMenuDto dto) {
  80. AppMenu appMenu = BeanUtil.toBean(dto, AppMenu.class);
  81. return R.ok(appMenuService.save(appMenu));
  82. }
  83. @PutMapping
  84. @ApiOperation("修改")
  85. @SaCheckPermission("appmenu:edit")
  86. @XjrLog(value = "修改", saveResponseData = true)
  87. public R update(@Valid @RequestBody UpdateAppMenuDto dto) {
  88. AppMenu appMenu = BeanUtil.toBean(dto, AppMenu.class);
  89. return R.ok(appMenuService.updateById(appMenu));
  90. }
  91. @DeleteMapping
  92. @ApiOperation(value = "删除")
  93. @SaCheckPermission("appmenu:delete")
  94. @XjrLog(value = "删除app端展示页面设计")
  95. public R delete(@Valid @RequestBody List<Long> ids) {
  96. appMenuService.removeBatchByIds(ids);
  97. return R.ok(Boolean.TRUE);
  98. }
  99. }