package com.gxwebsoft.open.controller; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.core.exception.BusinessException; import com.gxwebsoft.common.core.utils.CacheClient; import com.gxwebsoft.common.core.utils.CommonUtil; import com.gxwebsoft.common.core.utils.JSONUtil; import com.gxwebsoft.common.core.web.*; import com.gxwebsoft.common.system.entity.*; import com.gxwebsoft.common.system.service.*; import com.gxwebsoft.oa.entity.Tenant; import com.gxwebsoft.oa.param.TenantParam; import com.gxwebsoft.oa.service.TenantService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.formula.functions.T; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * 租户控制器 * * @author WebSoft * @since 2022-11-17 17:13:39 */ @Api(tags = "租户管理") @RestController @RequestMapping("/api/open/tenant") public class OpenTenantController extends BaseController { @Resource private TenantService tenantService; @Resource private UserService userService; @Resource private RoleService roleService; @Resource private UserRoleService userRoleService; @Resource private MenuService menuService; @Resource private RoleMenuService roleMenuService; @Resource private StringRedisTemplate stringRedisTemplate; @Resource private DictService dictService; @Resource private DictDataService dictDataService; @ApiOperation("分页查询租户") @GetMapping("/page") public ApiResult> page(TenantParam param) { // 特殊验证签名 if (!param.getTenantCode().equals("ZAcxbdmDQFwUKC3e")) { throw new BusinessException("签名失败"); } PageParam page = new PageParam<>(param); page.setDefaultOrder("create_time desc"); // return success(tenantService.page(page, page.getWrapper())); // 使用关联查询 return success(tenantService.pageRel(param)); } @PreAuthorize("hasAuthority('oa:tenant:list')") @ApiOperation("查询全部租户") @GetMapping() public ApiResult> list(TenantParam param) { // 验证签名 isCheckSign(); PageParam page = new PageParam<>(param); page.setDefaultOrder("create_time desc"); return success(tenantService.list(page.getOrderWrapper())); // 使用关联查询 //return success(tenantService.listRel(param)); } @PreAuthorize("hasAuthority('oa:tenant:list')") @ApiOperation("根据id查询租户") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { // 验证签名 isCheckSign(); return success(tenantService.getById(id)); // 使用关联查询 // return success(tenantService.getByIdRel(id)); } // @Transactional(rollbackFor = {Exception.class}) // @PreAuthorize("hasAuthority('oa:tenant:save')") // @OperationLog // @ApiOperation("添加租户(已废弃)") // @PostMapping() // public ApiResult save(@RequestBody Tenant tenant) { // // 验证签名 // isCheckSign(); // // 记录当前登录用户id、租户id // User loginUser = getLoginUser(); // if (loginUser != null) { // tenant.setUserId(loginUser.getUserId()); // if (loginUser.getTenantId() != 5) return fail("权限不足!"); // } // // 添加租户 // tenant.setTenantCode(CommonUtil.randomUUID16()); // tenantService.save(tenant); // // // 添加超级管理员 // User user = new User(); // user.setUsername("admin"); // user.setNickname("超级管理员"); // user.setPassword(userService.encodePassword(tenant.getPassword())); // user.setTenantId(tenant.getTenantId()); // boolean result = userService.save(user); // Integer superAdminUserId = user.getUserId(); // // // 创建角色 // if (result) { // Role role = new Role(); // role.setRoleName("超级管理员"); // role.setRoleCode("superAdmin"); // role.setComments("超级管理员"); // role.setTenantId(tenant.getTenantId()); // roleService.save(role); // // // 保存超级管理员角色ID // Integer superAdminRoleId = role.getRoleId(); // role.setRoleName("注册用户"); // role.setRoleCode("user"); // role.setComments("普通注册用户"); // roleService.save(role); // role.setRoleName("游客"); // role.setRoleCode("guest"); // role.setComments("用于未登录时的浏览权限"); // roleService.save(role); // Integer guestRoleId = role.getRoleId(); // // // 添加默认字典 // final Dict dict = new Dict(); // dict.setDictName("性别"); // dict.setDictCode("sex"); // dict.setTenantId(tenant.getTenantId()); // dictService.save(dict); // final DictData dictData = new DictData(); // dictData.setDictId(dict.getDictId()); // dictData.setDictDataName("男"); // dictData.setDictDataCode("1"); // dictData.setTenantId(tenant.getTenantId()); // dictDataService.save(dictData); // dictData.setDictDataName("女"); // dictData.setDictDataCode("2"); // dictData.setTenantId(tenant.getTenantId()); // dictDataService.save(dictData); // // // 添加游客账号 // user.setUsername("www"); // user.setNickname("游客"); // user.setPassword(userService.encodePassword("123456")); // userService.save(user); // // // 添加超管用户角色 // UserRole userRole = new UserRole(); // userRole.setUserId(superAdminUserId); // userRole.setRoleId(superAdminRoleId); // userRole.setTenantId(tenant.getTenantId()); // userRoleService.save(userRole); // // // 添加游客用户角色 // userRole.setUserId(user.getUserId()); // userRole.setRoleId(guestRoleId); // boolean resultUserRole = userRoleService.save(userRole); // // /// 添加系统菜单 // if (resultUserRole) { // Menu menu = new Menu(); // // 10.系统管理 // menu.setTitle("系统管理"); // menu.setParentId(0); // menu.setPath("/system"); // menu.setIcon("setting-outlined"); // menu.setSortNumber(10); // menu.setTenantId(tenant.getTenantId()); // menuService.save(menu); // Integer parentId = menu.getMenuId(); // menu.setParentId(menu.getMenuId()); // menu.setTitle("用户管理"); // menu.setPath("/system/user"); // menu.setComponent("/system/user"); // menu.setIcon("team-outlined"); // menu.setSortNumber(2); // menuService.save(menu); // Integer userParentId = menu.getMenuId(); // menu.setParentId(userParentId); // menu.setMenuType(1); // menu.setTitle("查询"); // menu.setIcon(""); // menu.setAuthority("sys:user:list"); // menuService.save(menu); // menu.setParentId(userParentId); // menu.setTitle("添加"); // menu.setAuthority("sys:user:save"); // menuService.save(menu); // menu.setParentId(userParentId); // menu.setTitle("修改"); // menu.setAuthority("sys:user:update"); // menuService.save(menu); // menu.setParentId(userParentId); // menu.setTitle("删除"); // menu.setAuthority("sys:user:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("角色管理"); // menu.setPath("/system/role"); // menu.setComponent("/system/role"); // menu.setIcon("idcard-outlined"); // menu.setAuthority(""); // menu.setSortNumber(3); // menuService.save(menu); // Integer roleParentId = menu.getMenuId(); // menu.setParentId(roleParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setTitle("查询"); // menu.setAuthority("sys:role:list"); // menuService.save(menu); // menu.setParentId(roleParentId); // menu.setTitle("添加"); // menu.setAuthority("sys:role:save"); // menuService.save(menu); // menu.setParentId(roleParentId); // menu.setTitle("修改"); // menu.setAuthority("sys:role:update"); // menuService.save(menu); // menu.setParentId(roleParentId); // menu.setTitle("删除"); // menu.setAuthority("sys:role:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("菜单管理"); // menu.setPath("/system/menu"); // menu.setComponent("/system/menu"); // menu.setIcon("appstore-outlined"); // menu.setAuthority(""); // menu.setSortNumber(1); // menuService.save(menu); // Integer menuParentId = menu.getMenuId(); // menu.setParentId(menuParentId); // menu.setMenuType(1); // menu.setTitle("查询"); // menu.setAuthority("sys:menu:list"); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menuService.save(menu); // menu.setParentId(menuParentId); // menu.setTitle("添加"); // menu.setAuthority("sys:menu:save"); // menuService.save(menu); // menu.setParentId(menuParentId); // menu.setTitle("修改"); // menu.setAuthority("sys:menu:update"); // menuService.save(menu); // menu.setParentId(menuParentId); // menu.setTitle("删除"); // menu.setAuthority("sys:menu:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("机构管理"); // menu.setPath("/system/organization"); // menu.setComponent("/system/organization"); // menu.setIcon("bank-outlined"); // menu.setAuthority(""); // menu.setSortNumber(5); // menuService.save(menu); // Integer orgParentId = menu.getMenuId(); // menu.setParentId(orgParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setComponent(""); // menu.setIcon(""); // menu.setTitle("查询"); // menu.setAuthority("sys:org:list"); // menuService.save(menu); // menu.setParentId(orgParentId); // menu.setTitle("添加"); // menu.setAuthority("sys:org:save"); // menuService.save(menu); // menu.setParentId(orgParentId); // menu.setTitle("修改"); // menu.setAuthority("sys:org:update"); // menuService.save(menu); // menu.setParentId(orgParentId); // menu.setTitle("删除"); // menu.setAuthority("sys:org:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("字典管理"); // menu.setPath("/system/dict"); // menu.setComponent("/system/dict"); // menu.setIcon("profile-outlined"); // menu.setAuthority(""); // menu.setSortNumber(4); // menuService.save(menu); // Integer dictParentId = menu.getMenuId(); // menu.setParentId(dictParentId); // menu.setMenuType(1); // menu.setTitle("查询"); // menu.setAuthority("sys:dict:list"); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menuService.save(menu); // menu.setParentId(dictParentId); // menu.setTitle("添加"); // menu.setAuthority("sys:dict:save"); // menuService.save(menu); // menu.setParentId(dictParentId); // menu.setTitle("修改"); // menu.setAuthority("sys:dict:update"); // menuService.save(menu); // menu.setParentId(dictParentId); // menu.setTitle("删除"); // menu.setAuthority("sys:dict:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("登录日志"); // menu.setPath("/system/login-record"); // menu.setComponent("/system/login-record"); // menu.setIcon("calendar-outlined"); // menu.setAuthority("sys:login-record:list"); // menu.setSortNumber(7); // menuService.save(menu); // menu.setParentId(parentId); // menu.setTitle("操作日志"); // menu.setPath("/system/operation-record"); // menu.setComponent("/system/operation-record"); // menu.setIcon("file-search-outlined"); // menu.setAuthority("sys:operation-record:list"); // menu.setSortNumber(8); // menuService.save(menu); // menu.setParentId(parentId); // menu.setTitle("文件管理"); // menu.setPath("/system/file"); // menu.setComponent("/system/file"); // menu.setIcon("folder-outlined"); // menu.setAuthority(""); // menu.setSortNumber(6); // menuService.save(menu); // Integer fileParentId = menu.getMenuId(); // menu.setParentId(fileParentId); // menu.setMenuType(1); // menu.setTitle("查看记录"); // menu.setPath(""); // menu.setComponent(""); // menu.setIcon(""); // menu.setAuthority("sys:file:list"); // menuService.save(menu); // menu.setParentId(fileParentId); // menu.setTitle("上传文件"); // menu.setAuthority("sys:file:upload"); // menuService.save(menu); // menu.setParentId(fileParentId); // menu.setTitle("修改文件"); // menu.setAuthority("sys:file:update"); // menuService.save(menu); // menu.setParentId(fileParentId); // menu.setTitle("删除文件"); // menu.setAuthority("sys:org:remove"); // menuService.save(menu); // menu.setMenuType(0); // menu.setParentId(parentId); // menu.setTitle("系统设置"); // menu.setPath("/system/setting"); // menu.setComponent("/system/setting"); // menu.setIcon("setting-outlined"); // menu.setAuthority("sys:setting:save"); // menu.setSortNumber(10); // menuService.save(menu); // menu.setParentId(parentId); // menu.setTitle("用户信息"); // menu.setPath("/system/user-info"); // menu.setComponent("/system/user-info"); // menu.setIcon("team-outlined"); // menu.setAuthority(""); // menu.setHide(1); // menu.setMenuType(0); // menu.setSortNumber(9); // menuService.save(menu); // Integer userInfoParentId = menu.getMenuId(); // menu.setParentId(userInfoParentId); // menu.setMenuType(1); // menu.setTitle("修改个人密码"); // menu.setAuthority("sys:auth:password"); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menuService.save(menu); // menu.setParentId(userInfoParentId); // menu.setTitle("修改个人资料"); // menu.setAuthority("sys:auth:user"); // menuService.save(menu); // menu.setTitle("扩展插件"); // menu.setParentId(parentId); // menu.setIcon("AppstoreAddOutlined"); // menu.setPath("/system/appstore"); // menu.setComponent("/system/appstore"); // menu.setMenuType(0); // menu.setAuthority("oa:app:list"); // menu.setSortNumber(100); // menu.setHide(0); // menuService.save(menu); // // 1.控制台 // menu.setParentId(0); // menu.setTitle("控制台"); // menu.setPath("/dashboard"); // menu.setIcon("home-outlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(1); // menu.setMenuType(0); // menuService.save(menu); // Integer dashboardParentId = menu.getMenuId(); // menu.setTitle("工作台"); // menu.setPath("/dashboard/workplace"); // menu.setComponent("/dashboard/workplace"); // menu.setIcon("DesktopOutlined"); // menu.setParentId(dashboardParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("统计分析"); // menu.setPath("/dashboard/analysis"); // menu.setComponent("/dashboard/analysis"); // menu.setIcon("BarChartOutlined"); // menu.setParentId(dashboardParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // // 2.办公协同 // menu.setParentId(0); // menu.setTitle("办公协同"); // menu.setPath("/oa"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setMenuType(0); // menu.setIcon("LaptopOutlined"); // menu.setHide(0); // menu.setSortNumber(2); // menuService.save(menu); // Integer oaParentId = menu.getMenuId(); // menu.setParentId(oaParentId); // menu.setTitle("服务器管理"); // menu.setPath("/oa/assets/server"); // menu.setComponent("/oa/assets/server"); // menu.setIcon("AuditOutlined"); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer serverParentId = menu.getMenuId(); // menu.setTitle("查询"); // menu.setParentId(serverParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("oa:assets:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("oa:assets:save"); // menuService.save(menu); // menu.setTitle("更新"); // menu.setAuthority("oa:assets:update"); // menuService.save(menu); // menu.setTitle("移除"); // menu.setAuthority("oa:assets:remove"); // menuService.save(menu); // menu.setParentId(oaParentId); // menu.setMenuType(0); // menu.setTitle("客户管理"); // menu.setPath("/oa/customer"); // menu.setComponent("/oa/customer"); // menu.setIcon("TeamOutlined"); // menu.setSortNumber(1); // menuService.save(menu); // Integer customerParentId = menu.getMenuId(); // menu.setParentId(customerParentId); // menu.setTitle("查询"); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setSortNumber(0); // menu.setAuthority("oa:customer:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("oa:customer:save"); // menuService.save(menu); // menu.setTitle("更新"); // menu.setAuthority("oa:customer:update"); // menuService.save(menu); // menu.setTitle("移除"); // menu.setAuthority("oa:customer:remove"); // menuService.save(menu); // // 3.商户管理 // menu.setParentId(0); // menu.setTitle("商户管理"); // menu.setPath("/merchant"); // menu.setIcon("ShopOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(3); // menu.setMenuType(0); // menuService.save(menu); // Integer merchantParentId = menu.getMenuId(); // menu.setTitle("商户列表"); // menu.setPath("/merchant/index"); // menu.setComponent("/merchant/index"); // menu.setIcon("ShopOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer shopInfoParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(shopInfoParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:merchant:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:merchant:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:merchant:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:merchant:remove"); // menuService.save(menu); // menu.setTitle("入驻审核"); // menu.setPath("/merchant/apply"); // menu.setComponent("/merchant/apply"); // menu.setIcon("HourglassOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // menu.setTitle("地址管理"); // menu.setPath("/merchant/address"); // menu.setComponent("/merchant/address"); // menu.setIcon("EnvironmentOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(2); // menuService.save(menu); // menu.setTitle("店铺装修"); // menu.setPath("/merchant/decorate"); // menu.setComponent("/merchant/decorate"); // menu.setIcon("FormatPainterOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(3); // menuService.save(menu); // menu.setTitle("主题风格"); // menu.setPath("/merchant/theme"); // menu.setComponent("/merchant/theme"); // menu.setIcon("BgColorsOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(4); // menuService.save(menu); // menu.setTitle("资金提现"); // menu.setPath("/merchant/withdraw"); // menu.setComponent("/merchant/withdraw"); // menu.setIcon("RedEnvelopeOutlined"); // menu.setParentId(merchantParentId); // menu.setMenuType(0); // menu.setSortNumber(5); // menuService.save(menu); // // 4.商品管理 // menu.setParentId(0); // menu.setTitle("商品管理"); // menu.setPath("/goods"); // menu.setIcon("ShoppingOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(4); // menu.setMenuType(0); // menuService.save(menu); // Integer goodsParentId = menu.getMenuId(); // menu.setTitle("商品列表"); // menu.setPath("/goods/index"); // menu.setComponent("/goods/index"); // menu.setIcon("SkinOutlined"); // menu.setParentId(goodsParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer shopIndexParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(shopIndexParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:goods:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:goods:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:goods:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:goods:remove"); // menuService.save(menu); // menu.setTitle("商品分类"); // menu.setPath("/goods/category"); // menu.setComponent("/goods/category"); // menu.setIcon("ApartmentOutlined"); // menu.setParentId(goodsParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // Integer goodsCategoryParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(goodsCategoryParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:category:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:category:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:category:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:category:remove"); // menuService.save(menu); // menu.setTitle("商品评价"); // menu.setPath("/goods/comment"); // menu.setComponent("/goods/comment"); // menu.setIcon("GiftOutlined"); // menu.setParentId(goodsParentId); // menu.setMenuType(0); // menu.setSortNumber(2); // menuService.save(menu); // Integer goodsCommentParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(goodsCommentParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:comment:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:comment:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:comment:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:comment:remove"); // menuService.save(menu); // menu.setTitle("服务承诺"); // menu.setPath("/goods/service"); // menu.setComponent("/goods/service"); // menu.setIcon("InsuranceOutlined"); // menu.setParentId(goodsParentId); // menu.setMenuType(0); // menu.setSortNumber(3); // menuService.save(menu); // Integer goodsServiceParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(goodsServiceParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:goodsService:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:goodsService:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:goodsService:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:goodsService:remove"); // menuService.save(menu); // // 5.订单管理 // menu.setParentId(0); // menu.setTitle("订单管理"); // menu.setPath("/order"); // menu.setIcon("CalendarOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(5); // menu.setMenuType(0); // menuService.save(menu); // Integer orderParentId = menu.getMenuId(); // menu.setTitle("全部订单"); // menu.setPath("/order/all"); // menu.setComponent("/order/all"); // menu.setIcon("ProfileOutlined"); // menu.setParentId(orderParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer orderAllParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(orderAllParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:order:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:order:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:order:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:order:remove"); // menuService.save(menu); // menu.setTitle("退款单"); // menu.setPath("/order/refund"); // menu.setComponent("/order/refund"); // menu.setIcon("MoneyCollectOutlined"); // menu.setParentId(orderParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // menu.setTitle("发货管理"); // menu.setPath("/order/delivery"); // menu.setComponent("/order/delivery"); // menu.setIcon("CarOutlined"); // menu.setParentId(orderParentId); // menu.setMenuType(0); // menu.setSortNumber(2); // menuService.save(menu); // menu.setTitle("订单导出"); // menu.setPath("/order/export"); // menu.setComponent("/order/export"); // menu.setIcon("UploadOutlined"); // menu.setParentId(orderParentId); // menu.setMenuType(0); // menu.setSortNumber(3); // menuService.save(menu); // // 6.用户管理 // menu.setParentId(0); // menu.setTitle("用户管理"); // menu.setPath("/user"); // menu.setIcon("TeamOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(6); // menu.setMenuType(0); // menuService.save(menu); // Integer outUserParentId = menu.getMenuId(); // menu.setTitle("用户列表"); // menu.setPath("/user/index"); // menu.setComponent("/user/index"); // menu.setIcon("TeamOutlined"); // menu.setParentId(outUserParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer memberListParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(memberListParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:member:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:member:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:member:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:member:remove"); // menuService.save(menu); // menu.setTitle("余额明细"); // menu.setPath("/user/balance-log"); // menu.setComponent("/user/balance-log"); // menu.setIcon("WalletOutlined"); // menu.setParentId(outUserParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // Integer balanceLogParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(balanceLogParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:memberBalanceLog:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:memberBalanceLog:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:memberBalanceLog:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:memberBalanceLog:remove"); // menuService.save(menu); // menu.setTitle("充值记录"); // menu.setPath("/user/recharge"); // menu.setComponent("/user/recharge"); // menu.setIcon("UngroupOutlined"); // menu.setParentId(outUserParentId); // menu.setMenuType(0); // menu.setSortNumber(2); // menuService.save(menu); // Integer userRechargeParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(userRechargeParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:memberRecharge:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:memberRecharge:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:memberRecharge:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:memberRecharge:remove"); // menuService.save(menu); // menu.setTitle("消息提醒"); // menu.setPath("/user/notice"); // menu.setComponent("/user/notice"); // menu.setIcon("SoundOutlined"); // menu.setParentId(outUserParentId); // menu.setMenuType(0); // menu.setSortNumber(3); // menuService.save(menu); // Integer userNoticeParentId = menu.getMenuId(); // menu.setTitle("列表"); // menu.setParentId(userNoticeParentId); // menu.setMenuType(1); // menu.setPath(""); // menu.setIcon(""); // menu.setComponent(""); // menu.setAuthority("shop:memberNotice:list"); // menu.setSortNumber(0); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("shop:memberNotice:save"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("shop:memberNotice:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("shop:memberNotice:remove"); // menuService.save(menu); // // 7.内容管理 // menu.setParentId(0); // menu.setTitle("内容管理"); // menu.setPath("/cms"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setIcon("FileSearchOutlined"); // menu.setHide(0); // menu.setMenuType(0); // menu.setSortNumber(7); // menuService.save(menu); // Integer contentParentId = menu.getMenuId(); // menu.setTitle("文章管理"); // menu.setPath("/cms/article"); // menu.setComponent("/cms/article"); // menu.setIcon("FileSearchOutlined"); // menu.setAuthority(""); // menu.setSortNumber(1); // menu.setMenuType(0); // menu.setParentId(contentParentId); // menuService.save(menu); // Integer articleParentId = menu.getMenuId(); // menu.setParentId(articleParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setTitle("查询"); // menu.setSortNumber(0); // menu.setAuthority("cms:article:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("cms:article:save"); // menuService.save(menu); // menu.setTitle("修改"); // menu.setAuthority("cms:article:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("cms:article:remove"); // menuService.save(menu); // menu.setTitle("文章分类"); // menu.setPath("/cms/category"); // menu.setComponent("/cms/category"); // menu.setIcon("ApartmentOutlined"); // menu.setAuthority(""); // menu.setMenuType(0); // menu.setSortNumber(2); // menu.setParentId(contentParentId); // menuService.save(menu); // Integer categoryParentId = menu.getMenuId(); // menu.setParentId(categoryParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setSortNumber(0); // menu.setTitle("查询"); // menu.setAuthority("cms:articleCategory:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("cms:articleCategory:save"); // menuService.save(menu); // menu.setTitle("修改"); // menu.setAuthority("cms:articleCategory:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("cms:articleCategory:remove"); // menuService.save(menu); // menu.setTitle("文档管理"); // menu.setPath("/cms/docs/:id"); // menu.setComponent("/cms/docs"); // menu.setIcon("ReadOutlined"); // menu.setAuthority(""); // menu.setSortNumber(3); // menu.setMenuType(0); // menu.setParentId(contentParentId); // menuService.save(menu); // Integer docsParentId = menu.getMenuId(); // menu.setParentId(docsParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setSortNumber(0); // menu.setTitle("查询"); // menu.setAuthority("cms:docs:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("cms:docs:save"); // menuService.save(menu); // menu.setTitle("修改"); // menu.setAuthority("cms:docs:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("cms:docs:remove"); // menuService.save(menu); // menu.setTitle("视频管理"); // menu.setPath("/cms/video"); // menu.setComponent("/cms/video"); // menu.setIcon("YoutubeOutlined"); // menu.setAuthority(""); // menu.setSortNumber(4); // menu.setMenuType(0); // menu.setParentId(contentParentId); // menuService.save(menu); // Integer cmsVideoParentId = menu.getMenuId(); // menu.setParentId(cmsVideoParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setSortNumber(0); // menu.setTitle("列表"); // menu.setAuthority("cms:file:list"); // menuService.save(menu); // menu.setTitle("上传"); // menu.setAuthority("sys:file:upload"); // menuService.save(menu); // menu.setTitle("编辑"); // menu.setAuthority("sys:file:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("sys:file:remove"); // menuService.save(menu); // menu.setTitle("视频播放"); // menu.setIcon(""); // menu.setPath("/cms/video/player"); // menu.setComponent("/cms/video/player"); // menu.setMenuType(0); // menu.setHide(1); // menu.setMeta("{\"active\": \"/cms/video\", \"tabUnique\": false}"); // menuService.save(menu); // menu.setTitle("文件下载"); // menu.setPath("/cms/down"); // menu.setComponent("/cms/down"); // menu.setIcon("LinkOutlined"); // menu.setAuthority(""); // menu.setHide(0); // menu.setSortNumber(5); // menu.setMenuType(0); // menu.setParentId(contentParentId); // menuService.save(menu); // // 8.营销管理 // menu.setParentId(0); // menu.setTitle("营销管理"); // menu.setPath("/market"); // menu.setIcon("CrownOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(8); // menu.setMenuType(0); // menuService.save(menu); // Integer marketParentId = menu.getMenuId(); // menu.setTitle("优惠券"); // menu.setPath("/market/coupon"); // menu.setComponent("/market/coupon"); // menu.setIcon("TagsOutlined"); // menu.setParentId(marketParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer marketCouponParentId = menu.getMenuId(); // menu.setParentId(marketCouponParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setTitle("查询"); // menu.setSortNumber(0); // menu.setAuthority("cms:coupon:list"); // menuService.save(menu); // menu.setTitle("添加"); // menu.setAuthority("cms:coupon:save"); // menuService.save(menu); // menu.setTitle("修改"); // menu.setAuthority("cms:coupon:update"); // menuService.save(menu); // menu.setTitle("删除"); // menu.setAuthority("cms:coupon:remove"); // menuService.save(menu); // menu.setTitle("会员充值"); // menu.setPath("/market/recharge"); // menu.setComponent("/market/recharge"); // menu.setIcon("MoneyCollectOutlined"); // menu.setParentId(marketParentId); // menu.setMenuType(0); // menu.setSortNumber(1); // menuService.save(menu); // menu.setTitle("积分管理"); // menu.setPath("/market/points"); // menu.setComponent("/market/points"); // menu.setIcon("PayCircleOutlined"); // menu.setParentId(marketParentId); // menu.setMenuType(0); // menu.setSortNumber(2); // menuService.save(menu); // // 9.应用中心 // menu.setParentId(0); // menu.setTitle("应用中心"); // menu.setPath("/apps"); // menu.setIcon("AppstoreAddOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setSortNumber(9); // menu.setMenuType(0); // menuService.save(menu); // // // 个人中心 // menu.setParentId(0); // menu.setTitle("个人中心"); // menu.setPath("/user-center"); // menu.setIcon("UserOutlined"); // menu.setComponent(""); // menu.setAuthority(""); // menu.setMenuType(0); // menu.setHide(1); // menu.setSortNumber(99); // menuService.save(menu); // Integer userCenterParentId = menu.getMenuId(); // menu.setTitle("个人资料"); // menu.setPath("/user/profile"); // menu.setComponent("/user/profile"); // menu.setIcon("IdcardOutlined"); // menu.setParentId(userCenterParentId); // menu.setMenuType(0); // menu.setSortNumber(0); // menuService.save(menu); // Integer userProfileParentId = menu.getMenuId(); // menu.setParentId(userProfileParentId); // menu.setMenuType(1); // menu.setIcon(""); // menu.setPath(""); // menu.setComponent(""); // menu.setTitle("修改资料"); // menu.setSortNumber(0); // menu.setAuthority("sys:auth:user"); // menuService.save(menu); // menu.setTitle("修改密码"); // menu.setAuthority("sys:auth:password"); // menuService.save(menu); // menu.setTitle("上传头像"); // menu.setAuthority("sys:file:upload"); // menu.setTitle("预览头像"); // menu.setAuthority("sys:file:list"); // menu.setTitle("保存头像"); // menu.setAuthority("sys:user:update"); // menuService.save(menu); // menu.setParentId(userCenterParentId); // menu.setTitle("用户注册"); // menu.setAuthority("sys:user:save"); // menuService.save(menu); // menu.setTitle("字典查询"); // menu.setAuthority("sys:dict:list"); // // boolean resultMenu = menuService.save(menu); // // 添加菜单ID到超级管理员所属角色ID // if (resultMenu) { // saveRedis(tenant); // return success("创建成功"); // } // } // } // throw new BusinessException("创建失败"); // } @PreAuthorize("hasAuthority('oa:tenant:update')") @OperationLog @ApiOperation("修改租户") @PutMapping() public ApiResult update(@RequestBody Tenant tenant) { // 验证签名 isCheckSign(); saveRedis(tenant); if (tenantService.updateById(tenant)) { return success("修改成功"); } return fail("修改失败"); } // 缓存租户信息 private void saveRedis(Tenant tenant) { String key = "cache:tenant"; String tenantId = tenant.getTenantId().toString(); if (StrUtil.isEmpty(tenant.getTenantCode())) { tenant.setTenantCode(CommonUtil.randomUUID16()); } String data = JSONUtil.toJSONString(tenant); stringRedisTemplate.opsForHash().put(key,tenantId, data); } @PreAuthorize("hasAuthority('oa:tenant:remove')") @OperationLog @ApiOperation("删除租户") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { // 验证签名 isCheckSign(); if (tenantService.removeById(id)) { String key = "cache:tenant"; stringRedisTemplate.opsForHash().delete(key,id.toString()); return success("删除成功"); } return fail("删除失败"); } @PreAuthorize("hasAuthority('oa:tenant:save')") @OperationLog @ApiOperation("批量添加租户") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { // 验证签名 isCheckSign(); if (tenantService.saveBatch(list)) { return success("添加成功"); } return fail("添加失败"); } @PreAuthorize("hasAuthority('oa:tenant:update')") @OperationLog @ApiOperation("批量修改租户") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { // 验证签名 isCheckSign(); if (batchParam.update(tenantService, "tenant_id")) { return success("修改成功"); } return fail("修改失败"); } @PreAuthorize("hasAuthority('oa:tenant:remove')") @OperationLog @ApiOperation("批量删除租户") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { // 验证签名 isCheckSign(); if (tenantService.removeByIds(ids)) { return success("删除成功"); } return fail("删除失败"); } @ApiOperation("租户角色权限初始化") @GetMapping("/role-menu/{id}") public ApiResult> initialization(@PathVariable("id") Integer roleId) { // 验证签名 isCheckSign(); List menus = menuService.list(new LambdaQueryWrapper().orderByAsc(Menu::getSortNumber)); List roleMenus = roleMenuService.list(new LambdaQueryWrapper() .eq(RoleMenu::getRoleId, roleId)); for (Menu menu : menus) { menu.setChecked(roleMenus.stream().anyMatch((d) -> d.getMenuId().equals(menu.getMenuId()))); } List menuIds = menus.stream().map(Menu::getMenuId).collect(Collectors.toList()); roleMenuService.remove(new LambdaUpdateWrapper().eq(RoleMenu::getRoleId, roleId)); if (menuIds.size() > 0) { List roleMenuList = new ArrayList<>(); for (Integer menuId : menuIds) { RoleMenu roleMenu = new RoleMenu(); roleMenu.setRoleId(roleId); roleMenu.setMenuId(menuId); roleMenuList.add(roleMenu); } if (!roleMenuService.saveBatch(roleMenuList)) { throw new BusinessException("保存失败"); } } return success(menus); } }