SysUserUniappMenuController.java 2.9 KB
package com.huaheng.system.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.huaheng.common.core.web.controller.BaseController;
import com.huaheng.common.core.web.domain.AjaxResult;
import com.huaheng.common.log.annotation.Log;
import com.huaheng.common.log.enums.BusinessType;
import com.huaheng.common.security.annotation.PreAuthorize;
import com.huaheng.common.security.utils.SecurityUtils;
import com.huaheng.system.domain.SysMenu;
import com.huaheng.system.domain.SysUserUniappMenu;
import com.huaheng.system.service.ISysMenuService;
import com.huaheng.system.service.ISysUniappMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * uniapp移动端应用菜单信息
 */
@RestController
@RequestMapping("/mobile")
@Api(value = "Uniapp菜单", tags = "Uniapp菜单")
public class SysUserUniappMenuController extends BaseController {
    @Autowired
    private ISysUniappMenuService menuService;

    /**
     * 获取菜单列表
     */
    @GetMapping("/menu")
    @ApiOperation(value = "获取uniapp移动端菜单列表")
    @Log(title = "获取uniapp移动端菜单列表", businessType = BusinessType.GRANT)
    public AjaxResult list() {
        Long userId = SecurityUtils.getUserId();
        List<String> menus = menuService.getMenuListByUserId(userId);
        return AjaxResult.success(menus);
    }

    @PostMapping("/menu")
    @ApiOperation(value = "更新uniapp移动端菜单配置")
    @Log(title = "更新uniapp移动端菜单配置", businessType = BusinessType.GRANT)
    public AjaxResult updateOrInsert(@RequestBody String menu) {
        try {
            System.out.println("\n\n\n===========================================================【begin】===");
            System.out.println(" ======>  menuConfig = " + menu);
            Long userId = SecurityUtils.getUserId();
            System.out.println(" ======>  userId = " + userId);
            System.out.println("===========================================================【end】===\n\n\n");
            SysUserUniappMenu oldmenu = menuService.getMenuObjectByUserId(userId);
            JSONObject jsonObject = JSON.parseObject(menu);
            JSONArray menuConfigArr = jsonObject.getJSONArray("menuConfig");

            String menuConfigStr = String.join(",", menuConfigArr.toJavaList(String.class));
            if (oldmenu == null) {
                menuService.createMenuConfigOfUser(userId, menuConfigStr);
            } else {
                menuService.updateMenuConfigOfUser(userId, menuConfigStr);
            }
            return AjaxResult.success();
        } catch (Exception e) {
            return AjaxResult.error(e.getMessage());
        }
    }
}