ModuleDataController.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package jnpf.base.controller;
  2. import io.swagger.v3.oas.annotations.Operation;
  3. import io.swagger.v3.oas.annotations.Parameter;
  4. import io.swagger.v3.oas.annotations.Parameters;
  5. import io.swagger.v3.oas.annotations.tags.Tag;
  6. import jnpf.base.ActionResult;
  7. import jnpf.base.Page;
  8. import jnpf.base.Pagination;
  9. import jnpf.base.entity.ModuleDataEntity;
  10. import jnpf.base.entity.ModuleEntity;
  11. import jnpf.base.entity.SystemEntity;
  12. import jnpf.base.model.home.MenuModel;
  13. import jnpf.base.model.module.MenuSelectByUseNumVo;
  14. import jnpf.base.model.module.ModuleModel;
  15. import jnpf.base.service.ModuleDataService;
  16. import jnpf.base.service.ModuleService;
  17. import jnpf.base.service.ModuleUseNumService;
  18. import jnpf.base.service.SystemService;
  19. import jnpf.base.vo.ListVO;
  20. import jnpf.constant.JnpfConst;
  21. import jnpf.constant.MsgCode;
  22. import jnpf.model.login.AllMenuSelectVO;
  23. import jnpf.permission.model.authorize.AuthorizeVO;
  24. import jnpf.permission.service.AuthorizeService;
  25. import jnpf.util.JsonUtil;
  26. import jnpf.util.StringUtil;
  27. import jnpf.util.context.RequestContext;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.web.bind.annotation.*;
  30. import java.util.ArrayList;
  31. import java.util.List;
  32. import java.util.Map;
  33. import java.util.Objects;
  34. import java.util.stream.Collectors;
  35. /**
  36. * @author :JNPF开发平台组
  37. * @version: V3.1.0
  38. * @copyright 引迈信息技术有限公司
  39. * @date :2024/5/6 上午11:19
  40. */
  41. @Tag(name = "常用菜单", description = "data")
  42. @RestController
  43. @RequestMapping("/api/system/MenuData")
  44. public class ModuleDataController extends SuperController<ModuleDataService, ModuleDataEntity> {
  45. @Autowired
  46. private ModuleService moduleService;
  47. @Autowired
  48. private ModuleDataService moduleDataService;
  49. @Autowired
  50. private ModuleUseNumService moduleUseNumService;
  51. @Autowired
  52. private AuthorizeService authorizeService;
  53. @Autowired
  54. private SystemService systemService;
  55. /**
  56. * 常用菜单
  57. *
  58. * @return ignore
  59. */
  60. @Operation(summary = "常用菜单")
  61. @GetMapping
  62. public ActionResult<ListVO<MenuModel>> getDataList(Page page) {
  63. String category = RequestContext.isOrignPc() ? JnpfConst.WEB : JnpfConst.APP;
  64. List<ModuleDataEntity> list = moduleDataService.getList(category, page);
  65. List<SystemEntity> sysListAll = systemService.getList();
  66. Map<String, String> sysMap = sysListAll.stream().collect(Collectors.toMap(SystemEntity::getId, SystemEntity::getEnCode));
  67. List<String> appComModule = new ArrayList<>();
  68. appComModule.addAll(JnpfConst.APP_CONFIG_MODULE);
  69. appComModule.addAll(JnpfConst.ONLINE_DEV_MODULE);
  70. List<MenuModel> listVO = new ArrayList<>();
  71. for (ModuleDataEntity entity : list) {
  72. ModuleEntity info = moduleService.getInfo(entity.getModuleId());
  73. if (info != null && Objects.equals(info.getEnabledMark(), 1)) {
  74. MenuModel vo = JsonUtil.getJsonToBean(info, MenuModel.class);
  75. vo.setSystemCode(sysMap.get(vo.getSystemId()));
  76. if (appComModule.contains(vo.getEnCode())) {
  77. vo.setIsBackend(1);
  78. } else {
  79. vo.setIsBackend(0);
  80. }
  81. listVO.add(vo);
  82. }
  83. }
  84. ListVO vo = new ListVO();
  85. vo.setList(listVO);
  86. return ActionResult.success(vo);
  87. }
  88. @Operation(summary = "用户常用功能前十二")
  89. @GetMapping("/usedMenu")
  90. public ActionResult<List<MenuSelectByUseNumVo>> getUserMenuList() {
  91. AuthorizeVO authorize = authorizeService.getAuthorizeByUser(false);
  92. List<ModuleModel> moduleList = authorize.getModuleList();
  93. List<String> authMenuList = moduleList.stream().map(ModuleModel::getId).collect(Collectors.toList());
  94. List<ModuleEntity> allMenu = moduleService.getList();
  95. return ActionResult.success(moduleUseNumService.getMenuUseNum(1, authMenuList, allMenu));
  96. }
  97. @Operation(summary = "用户访问功能次数记录")
  98. @PostMapping("/useModuleNum/{moduleId}")
  99. public ActionResult useModuleNum(@PathVariable String moduleId) {
  100. moduleUseNumService.insertOrUpdateUseNum(moduleId);
  101. return ActionResult.success();
  102. }
  103. @Operation(summary = "用户访问功能次数清空")
  104. @DeleteMapping("/useModuleNum/{moduleId}")
  105. public ActionResult deleteUseModuleNum(@PathVariable String moduleId) {
  106. moduleUseNumService.deleteUseNum(moduleId);
  107. return ActionResult.success();
  108. }
  109. /**
  110. * 新建
  111. *
  112. * @return
  113. */
  114. @PostMapping("/{id}")
  115. @Operation(summary = "新建")
  116. public ActionResult create(@PathVariable("id") String id) {
  117. if (moduleDataService.isExistByObjectId(id)) {
  118. return ActionResult.fail(MsgCode.FA036.get());
  119. }
  120. moduleDataService.create(id);
  121. return ActionResult.success(MsgCode.SU016.get());
  122. }
  123. /**
  124. * 删除
  125. *
  126. * @return
  127. */
  128. @Operation(summary = "删除")
  129. @DeleteMapping("/{id}")
  130. @Parameters({
  131. @Parameter(name = "id", description = "主键", required = true),
  132. })
  133. public ActionResult delete(@PathVariable("id") String id) {
  134. ModuleDataEntity entity = moduleDataService.getInfo(id);
  135. if (entity != null) {
  136. moduleDataService.delete(entity);
  137. return ActionResult.success(MsgCode.SU021.get());
  138. }
  139. return ActionResult.fail(MsgCode.FA003.get());
  140. }
  141. /**
  142. * app常用菜单
  143. *
  144. * @return
  145. */
  146. @Operation(summary = "app常用菜单")
  147. @GetMapping("/getDataList")
  148. public ActionResult<ListVO<AllMenuSelectVO>> getAllList(Page page) {
  149. List<AllMenuSelectVO> list = moduleDataService.getDataList(page);
  150. ListVO listVO = new ListVO();
  151. listVO.setList(list);
  152. return ActionResult.success(listVO);
  153. }
  154. /**
  155. * app常用详情
  156. *
  157. * @return
  158. */
  159. @Operation(summary = "app常用详情")
  160. @GetMapping("/getAppDataList")
  161. public ActionResult<ListVO<AllMenuSelectVO>> getAppDataList(Pagination pagination) {
  162. List<AllMenuSelectVO> list = moduleDataService.getAppDataList(pagination);
  163. ListVO listVO = new ListVO();
  164. listVO.setList(list);
  165. return ActionResult.success(listVO);
  166. }
  167. }