Files
guoxue-java/src/main/java/com/gxwebsoft/oa/controller/TenantController.java
T
南宁网宿科技 912944faea Initial commit
2023-06-03 23:56:49 +08:00

1237 lines
44 KiB
Java

package com.gxwebsoft.oa.controller;
import cn.hutool.core.util.StrUtil;
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.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.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/oa/tenant")
public class TenantController 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;
@PreAuthorize("hasAuthority('oa:tenant:list')")
@ApiOperation("分页查询租户")
@GetMapping("/page")
public ApiResult<PageResult<Tenant>> page(TenantParam param) {
if(!getTenantId().equals(5)){
PageParam<Tenant, TenantParam> 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<Tenant>> list(TenantParam param) {
PageParam<Tenant, TenantParam> 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')")
@OperationLog
@ApiOperation("根据id查询租户")
@GetMapping("/{id}")
public ApiResult<Tenant> get(@PathVariable("id") Integer id) {
return success(tenantService.getById(id));
// 使用关联查询
// return success(tenantService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('sys:profile:list')")
@OperationLog
@ApiOperation("查询租户基本资料")
@GetMapping("/profile")
public ApiResult<Tenant> profile() {
// 使用关联查询
return success(tenantService.getByIdRel(getTenantId()));
}
@Transactional(rollbackFor = {Exception.class})
@PreAuthorize("hasAuthority('oa:tenant:save')")
@OperationLog
@ApiOperation("添加租户")
@PostMapping()
public ApiResult<?> save(@RequestBody Tenant tenant) {
// 记录当前登录用户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();
// 添加游客账号
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) {
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) {
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<Tenant> list) {
if (tenantService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('oa:tenant:update')")
@OperationLog
@ApiOperation("批量修改租户")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<Tenant> batchParam) {
if (batchParam.update(tenantService, "tenant_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('oa:tenant:remove')")
@OperationLog
@ApiOperation("批量删除租户")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (tenantService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@ApiOperation("租户角色权限初始化")
@GetMapping("/role-menu/{id}")
public ApiResult<List<Menu>> initialization(@PathVariable("id") Integer roleId) {
List<Menu> menus = menuService.list(new LambdaQueryWrapper<Menu>().orderByAsc(Menu::getSortNumber));
List<RoleMenu> roleMenus = roleMenuService.list(new LambdaQueryWrapper<RoleMenu>()
.eq(RoleMenu::getRoleId, roleId));
for (Menu menu : menus) {
menu.setChecked(roleMenus.stream().anyMatch((d) -> d.getMenuId().equals(menu.getMenuId())));
}
List<Integer> menuIds = menus.stream().map(Menu::getMenuId).collect(Collectors.toList());
roleMenuService.remove(new LambdaUpdateWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId));
if (menuIds.size() > 0) {
List<RoleMenu> 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);
}
}