Ver código fonte

3.25菜单多语言化修改

Jessica Wong 1 ano atrás
pai
commit
15d78998b5

+ 1 - 1
src/main/java/com/om/controller/admin/EmployeeController.java

@@ -98,7 +98,7 @@ public class EmployeeController {
         String key = RedisConstant.ADMIN_TOKEN_PREFIX + employee.getEmployeeid();
         redisTemplate.opsForValue().set(key,token,RedisConstant.ADMIN_TOKEN_TTL, TimeUnit.SECONDS);
         loginDto.setToken(token);
-        loginDto.setMenus(menuService.getRoleMenu(employee.getRole()));
+        loginDto.setMenus(menuService.getRoleMenu(employee.getRole(), loginDto.getLang()));
     }
 
     /**

+ 56 - 49
src/main/java/com/om/controller/admin/MenuController.java

@@ -28,61 +28,68 @@ import java.util.List;
 @Slf4j
 public class MenuController {
 
-    @Autowired
-    private IMenuService menuService;
+  @Autowired
+  private IMenuService menuService;
 
-    //新增或修改
-    @ApiOperation("新增或修改接口")
-    @PostMapping("/save")
-    public Result save(@RequestBody Menu menu) {
-        log.info("====={}====",menu);
-        menuService.saveOrUpdate(menu);
-        return Result.succ(null);
-    }
+  //新增或修改
+  @ApiOperation("新增或修改接口")
+  @PostMapping("/save")
+  public Result save(@RequestBody Menu menu) {
+    log.info("====={}====", menu);
+    menuService.saveOrUpdate(menu);
+    return Result.succ(null);
+  }
 
-    //根据ID删除
-    @ApiOperation("根据ID删除接口")
-    @DeleteMapping("/delete/{id}")
-    public Result delete(@PathVariable Integer id) {
-        menuService.removeById(id);
-        return Result.succ(null);
-    }
+  //根据ID删除
+  @ApiOperation("根据ID删除接口")
+  @DeleteMapping("/delete/{id}")
+  public Result delete(@PathVariable Integer id) {
+    menuService.removeById(id);
+    return Result.succ(null);
+  }
 
-    @ApiOperation("根据ID批量删除接口")
-    @PostMapping("/delete/batch")
-    public Result deleteBatch(@RequestBody List<Integer> ids) {
-        menuService.removeByIds(ids);
-        return Result.succ(null);
-    }
+  @ApiOperation("根据ID批量删除接口")
+  @PostMapping("/delete/batch")
+  public Result deleteBatch(@RequestBody List<Integer> ids) {
+    menuService.removeByIds(ids);
+    return Result.succ(null);
+  }
 
-    @GetMapping("/ids")
-    public Result findAllIds() {
-        return Result.succ(menuService.list().stream().map(Menu::getId));
-    }
+  @GetMapping("/ids")
+  public Result findAllIds() {
+    return Result.succ(menuService.list().stream().map(Menu::getId));
+  }
 
-    //查询全部
-    @GetMapping
-    @ApiOperation("查询全部接口")
-    public Result findAll(@RequestParam(defaultValue = "") String name) {
-        return Result.succ(menuService.findMenus(name));
-    }
+  //查询全部
+  @GetMapping
+  @ApiOperation("查询全部接口")
+  public Result findAll(@RequestParam(defaultValue = "") String name) {
+    return Result.succ(menuService.findMenus(name));
+  }
 
-    //根据ID查询
-    @ApiOperation("根据ID查询接口")
-    @GetMapping("/{id}")
-    public Result findOne(@PathVariable Integer id) {
-        return Result.succ(menuService.getById(id));
-    }
+  @GetMapping("/getMenus")
+  @ApiOperation("根据角色语言查询菜单")
+  public Result<Object> findMenusByRoleAndLang(@RequestParam(defaultValue = "") String roleFlag,
+                                               @RequestParam(defaultValue = "zhCn") String lang) {
+    return Result.succ(menuService.getRoleMenu(roleFlag, lang));
+  }
 
-    @ApiOperation("分页查询接口")
-    @GetMapping("/page")
-    public Result findPage(@RequestParam String name,
-                           @RequestParam Integer pageNum,
-                           @RequestParam Integer pageSize) {
-        QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like("name", name);
-        queryWrapper.orderByDesc("id");
-        return Result.succ(menuService.page(new Page<>(pageNum, pageSize), queryWrapper));
-    }
+  //根据ID查询
+  @ApiOperation("根据ID查询接口")
+  @GetMapping("/{id}")
+  public Result findOne(@PathVariable Integer id) {
+    return Result.succ(menuService.getById(id));
+  }
+
+  @ApiOperation("分页查询接口")
+  @GetMapping("/page")
+  public Result findPage(@RequestParam String name,
+                         @RequestParam Integer pageNum,
+                         @RequestParam Integer pageSize) {
+    QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
+    queryWrapper.like("name", name);
+    queryWrapper.orderByDesc("id");
+    return Result.succ(menuService.page(new Page<>(pageNum, pageSize), queryWrapper));
+  }
 }
 

+ 2 - 0
src/main/java/com/om/entity/dto/LoginDto.java

@@ -25,5 +25,7 @@ public class LoginDto implements Serializable {
 
     private String role;
 
+    private String lang;
+
     private List<Menu> menus;
 }

+ 2 - 0
src/main/java/com/om/mapper/RoleMenuMapper.java

@@ -17,4 +17,6 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
     int deleteByRoleId(@Param("roleId") Integer roleId);
 
     List<Integer> selectByRoleId(@Param("roleId") Integer roleId);
+
+    List<Integer> selectByRoleIdLang(@Param("roleId") Integer roleId, @Param("lang") String lang);
 }

+ 1 - 1
src/main/java/com/om/service/IMenuService.java

@@ -7,7 +7,7 @@ import java.util.List;
 
 public interface IMenuService extends IService<Menu> {
 
-    List<Menu> getRoleMenu(String roleFlag);
+    List<Menu> getRoleMenu(String roleFlag, String lang);
 
     List<Menu> findMenus(String name);
 

+ 2 - 2
src/main/java/com/om/service/impl/MenuServiceImpl.java

@@ -36,10 +36,10 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
     IMenuService menuService;
 
     @Override
-    public List<Menu> getRoleMenu(String roleFlag) {
+    public List<Menu> getRoleMenu(String roleFlag, String lang) {
         Integer roleId = roleMapper.selectByFlag(roleFlag);
         //当前角色所有菜单id集合
-        List<Integer> menuIds = roleMenuMapper.selectByRoleId(roleId);
+        List<Integer> menuIds = roleMenuMapper.selectByRoleIdLang(roleId, lang);
         //查出所有菜单
         List<Menu> menus = menuService.findMenus("");
         //new一个最后筛选完成之后的list

+ 5 - 0
src/main/resources/mapper/RoleMenuMapper.xml

@@ -12,4 +12,9 @@
         from sys_role_menu
         where role_id = #{roleId}
     </select>
+    <select id="selectByRoleIdLang" resultType="java.lang.Integer">
+        select menu_id
+        from sys_role_menu
+        where role_id = #{roleId} and lang like concat('%',#{lang},'%')
+    </select>
 </mapper>