AppMenuController.java 4.5 KB

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