改造核心框架

This commit is contained in:
gxwebsoft
2023-10-13 16:24:31 +08:00
parent 3af0f511f1
commit 8dc836f81c
13 changed files with 192 additions and 107 deletions

View File

@@ -12,6 +12,7 @@ import com.gxwebsoft.common.system.service.CompanyService;
import com.gxwebsoft.common.system.service.TenantService; import com.gxwebsoft.common.system.service.TenantService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -36,6 +37,15 @@ public class CompanyController extends BaseController {
@Resource @Resource
private CompanyMapper companyMapper; private CompanyMapper companyMapper;
@PreAuthorize("hasAuthority('sys:auth:user')")
@OperationLog
@ApiOperation("分页查询企业信息不限租户")
@GetMapping("/pageAll")
public ApiResult<PageResult<Company>> pageAll(CompanyParam param) {
// 使用关联查询
return success(companyService.pageRelAll(param));
}
@PreAuthorize("hasAuthority('sys:company:list')") @PreAuthorize("hasAuthority('sys:company:list')")
@OperationLog @OperationLog
@ApiOperation("分页查询企业信息") @ApiOperation("分页查询企业信息")
@@ -136,6 +146,7 @@ public class CompanyController extends BaseController {
} }
@PreAuthorize("hasAuthority('sys:company:profile')") @PreAuthorize("hasAuthority('sys:company:profile')")
@OperationLog
@ApiOperation("根据id查询企业信息") @ApiOperation("根据id查询企业信息")
@GetMapping("/profile") @GetMapping("/profile")
public ApiResult<Company> profile() { public ApiResult<Company> profile() {
@@ -149,6 +160,14 @@ public class CompanyController extends BaseController {
return fail("企业不存在",null); return fail("企业不存在",null);
} }
@PreAuthorize("hasAuthority('sys:company:profile')")
@OperationLog
@ApiOperation("根据id查询企业信息不限租户")
@GetMapping("/profileAll/{companyId}")
public ApiResult<Company> profileAll(@PathVariable("companyId") Integer companyId) {
return success(companyMapper.getCompanyAll(companyId));
}
@PreAuthorize("hasAuthority('sys:company:profile')") @PreAuthorize("hasAuthority('sys:company:profile')")
@OperationLog @OperationLog
@ApiOperation("销毁租户") @ApiOperation("销毁租户")

View File

@@ -35,6 +35,8 @@ import com.wf.captcha.SpecCaptcha;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -404,8 +406,7 @@ public class MainController extends BaseController {
return success("登录成功", new LoginResult(access_token, user)); return success("登录成功", new LoginResult(access_token, user));
} }
@Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE)
// @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE)
@ApiOperation("账号注册") @ApiOperation("账号注册")
@PostMapping("/register") @PostMapping("/register")
public ApiResult<?> register(@RequestBody User user) { public ApiResult<?> register(@RequestBody User user) {
@@ -536,12 +537,24 @@ public class MainController extends BaseController {
/// 添加系统菜单 /// 添加系统菜单
if (resultUserRole) { if (resultUserRole) {
Menu menu = new Menu(); Menu menu = new Menu();
menu.setMenuType(0);
menu.setParentId(0);
menu.setHide(1);
menu.setTitle("扩展插件");
menu.setPath("/system/plug");
menu.setComponent("/system/plug");
menu.setIcon("AppstoreAddOutlined");
menu.setAuthority("sys:plug:list");
menu.setSortNumber(0);
menu.setTenantId(tenant.getTenantId());
menuService.save(menu);
// 10.系统管理 // 10.系统管理
menu.setTitle("系统管理"); menu.setTitle("系统管理");
menu.setParentId(0); menu.setParentId(0);
menu.setPath("/system"); menu.setPath("/system");
menu.setIcon("setting-outlined"); menu.setIcon("setting-outlined");
menu.setSortNumber(999); menu.setSortNumber(999);
menu.setHide(1);
menu.setTenantId(tenant.getTenantId()); menu.setTenantId(tenant.getTenantId());
menuService.save(menu); menuService.save(menu);
Integer parentId = menu.getMenuId(); Integer parentId = menu.getMenuId();
@@ -552,6 +565,7 @@ public class MainController extends BaseController {
menu.setIcon("AuditOutlined"); menu.setIcon("AuditOutlined");
menu.setAuthority("sys:company:profile"); menu.setAuthority("sys:company:profile");
menu.setSortNumber(1); menu.setSortNumber(1);
menu.setHide(0);
menuService.save(menu); menuService.save(menu);
menu.setTitle("用户管理"); menu.setTitle("用户管理");
menu.setPath("/system/user"); menu.setPath("/system/user");
@@ -811,16 +825,16 @@ public class MainController extends BaseController {
menu.setAuthority("sys:auth:user"); menu.setAuthority("sys:auth:user");
menuService.save(menu); menuService.save(menu);
// 1.控制台 // 1.控制台
menu.setParentId(0); // menu.setParentId(0);
menu.setTitle("管理首页"); // menu.setTitle("管理首页");
menu.setPath("/dashboard"); // menu.setPath("/dashboard");
menu.setIcon("home-outlined"); // menu.setIcon("home-outlined");
menu.setComponent("/dashboard/workplace"); // menu.setComponent("/dashboard/workplace");
menu.setAuthority(""); // menu.setAuthority("");
menu.setSortNumber(1); // menu.setSortNumber(1);
menu.setHide(0); // menu.setHide(0);
menu.setMenuType(0); // menu.setMenuType(0);
menuService.save(menu); // menuService.save(menu);
// 个人中心 // 个人中心
menu.setParentId(0); menu.setParentId(0);

View File

@@ -4,13 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.exception.BusinessException; import com.gxwebsoft.common.core.exception.BusinessException;
import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.Menu; import com.gxwebsoft.common.system.entity.*;
import com.gxwebsoft.common.system.entity.RoleMenu; import com.gxwebsoft.common.system.param.PlugParam;
import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.common.system.service.CompanyService;
import com.gxwebsoft.common.system.service.MenuService; import com.gxwebsoft.common.system.service.MenuService;
import com.gxwebsoft.common.system.service.RoleMenuService; import com.gxwebsoft.common.system.service.RoleMenuService;
import com.gxwebsoft.common.system.service.TenantService; import com.gxwebsoft.common.system.service.TenantService;
import com.gxwebsoft.common.system.entity.Tenant;
import com.gxwebsoft.common.system.param.TenantParam; import com.gxwebsoft.common.system.param.TenantParam;
import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageResult;
@@ -20,6 +19,7 @@ import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -43,18 +43,17 @@ public class TenantController extends BaseController {
private MenuService menuService; private MenuService menuService;
@Resource @Resource
private RoleMenuService roleMenuService; private RoleMenuService roleMenuService;
@Resource
private CompanyService companyService;
@PreAuthorize("hasAuthority('sys:tenant:list')")
@OperationLog
@ApiOperation("分页查询租户") @ApiOperation("分页查询租户")
@GetMapping("/page") @GetMapping("/page")
public ApiResult<PageResult<Tenant>> page(TenantParam param) { public ApiResult<PageResult<Tenant>> page(TenantParam param) {
// 使用关联查询
return success(tenantService.pageRel(param)); return success(tenantService.pageRel(param));
} }
@PreAuthorize("hasAuthority('sys:tenant:list')") @PreAuthorize("hasAuthority('sys:tenant:list')")
@OperationLog
@ApiOperation("查询全部租户") @ApiOperation("查询全部租户")
@GetMapping() @GetMapping()
public ApiResult<List<Tenant>> list(TenantParam param) { public ApiResult<List<Tenant>> list(TenantParam param) {
@@ -63,12 +62,17 @@ public class TenantController extends BaseController {
} }
@PreAuthorize("hasAuthority('sys:tenant:list')") @PreAuthorize("hasAuthority('sys:tenant:list')")
@OperationLog
@ApiOperation("根据id查询租户") @ApiOperation("根据id查询租户")
@GetMapping("/{id}") @GetMapping("/{id}")
public ApiResult<Tenant> get(@PathVariable("id") Integer id) { public ApiResult<Tenant> get(@PathVariable("id") Integer id) {
// 使用关联查询 Tenant tenant = tenantService.getById(id);
return success(tenantService.getByIdRel(id)); // 附加企业信息
List<Company> list = companyService.list(new LambdaQueryWrapper<Company>().eq(Company::getTenantId, tenant.getTenantId()).eq(Company::getAuthoritative, true));
if (!CollectionUtils.isEmpty(list)) {
final Company company = list.get(0);
tenant.setCompany(company);
}
return success(tenant);
} }
@PreAuthorize("hasAuthority('sys:tenant:save')") @PreAuthorize("hasAuthority('sys:tenant:save')")

View File

@@ -143,6 +143,9 @@ public class Company implements Serializable {
@ApiModelProperty(value = "是否默认企业主体") @ApiModelProperty(value = "是否默认企业主体")
private Boolean authoritative; private Boolean authoritative;
@ApiModelProperty("是否推荐")
private Boolean recommend;
@ApiModelProperty(value = "租户id") @ApiModelProperty(value = "租户id")
private Integer tenantId; private Integer tenantId;

View File

@@ -52,10 +52,6 @@ public class Tenant implements Serializable {
@ApiModelProperty(value = "修改时间") @ApiModelProperty(value = "修改时间")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "logo")
@TableField(exist = false)
private String logo;
@ApiModelProperty(value = "游客") @ApiModelProperty(value = "游客")
@TableField(exist = false) @TableField(exist = false)
private String username; private String username;
@@ -76,4 +72,12 @@ public class Tenant implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Company company; private Company company;
@ApiModelProperty(value = "企业名称")
@TableField(exist = false)
private String companyName;
@ApiModelProperty(value = "logo")
@TableField(exist = false)
private String logo;
} }

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.core.web.ExistenceParam; import com.gxwebsoft.common.core.web.ExistenceParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.system.entity.Company; import com.gxwebsoft.common.system.entity.Company;
import com.gxwebsoft.common.system.param.CompanyParam; import com.gxwebsoft.common.system.param.CompanyParam;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -39,4 +40,9 @@ public interface CompanyMapper extends BaseMapper<Company> {
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<Company> getCount(@Param("param") CompanyParam param); List<Company> getCount(@Param("param") CompanyParam param);
@InterceptorIgnore(tenantLine = "true")
List<Company> selectPageRelAll(PageParam<Company, CompanyParam> page, CompanyParam param);
@InterceptorIgnore(tenantLine = "true")
Company getCompanyAll(@Param("companyId") Integer companyId);
} }

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.common.system.entity.Tenant; import com.gxwebsoft.common.system.entity.Tenant;
import com.gxwebsoft.common.system.param.TenantParam; import com.gxwebsoft.common.system.param.TenantParam;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;

View File

@@ -101,6 +101,9 @@
<if test="param.authoritative != null"> <if test="param.authoritative != null">
AND a.authoritative = #{param.authoritative} AND a.authoritative = #{param.authoritative}
</if> </if>
<if test="param.recommend != null">
AND a.recommend = #{param.recommend}
</if>
<if test="param.appName != null"> <if test="param.appName != null">
AND a.short_name = #{param.appName} AND a.short_name = #{param.appName}
</if> </if>
@@ -122,6 +125,23 @@
<include refid="selectSql"></include> <include refid="selectSql"></include>
</select> </select>
<!-- 分页查询不限租户 -->
<select id="selectPageRelAll" resultType="com.gxwebsoft.common.system.entity.Company">
<include refid="selectSql"></include>
</select>
<!-- 企业查询不限租户 -->
<select id="getCompanyAll" resultType="com.gxwebsoft.common.system.entity.Company">
SELECT a.*,b.tenant_id,b.tenant_name,b.tenant_code
FROM sys_company a
LEFT JOIN sys_tenant b ON a.tenant_id = b.tenant_id
<where>
<if test="companyId != null">
AND a.company_id = #{companyId}
</if>
</where>
</select>
<!-- 查询全部 --> <!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.Company"> <select id="selectListRel" resultType="com.gxwebsoft.common.system.entity.Company">
<include refid="selectSql"></include> <include refid="selectSql"></include>

View File

@@ -4,8 +4,9 @@
<!-- 关联查询sql --> <!-- 关联查询sql -->
<sql id="selectSql"> <sql id="selectSql">
SELECT a.* SELECT a.*,b.company_name,b.company_logo
FROM sys_tenant a FROM sys_tenant a
LEFT JOIN sys_company b ON a.tenant_id = b.tenant_id
<where> <where>
<if test="param.tenantId != null"> <if test="param.tenantId != null">
AND a.tenant_id = #{param.tenantId} AND a.tenant_id = #{param.tenantId}

View File

@@ -113,6 +113,9 @@ public class CompanyParam extends BaseParam {
@QueryField(type = QueryType.EQ) @QueryField(type = QueryType.EQ)
private Integer authentication; private Integer authentication;
@ApiModelProperty(value = "是否推荐")
private Boolean recommend;
@ApiModelProperty(value = "状态") @ApiModelProperty(value = "状态")
@QueryField(type = QueryType.EQ) @QueryField(type = QueryType.EQ)
private Integer status; private Integer status;

View File

@@ -41,4 +41,6 @@ public interface CompanyService extends IService<Company> {
Company getByIdRel(Integer companyId); Company getByIdRel(Integer companyId);
Company getByTenantIdRel(Integer tenantId); Company getByTenantIdRel(Integer tenantId);
PageResult<Company> pageRelAll(CompanyParam param);
} }

View File

@@ -53,4 +53,12 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
return param.getOne(baseMapper.selectListRel(param)); return param.getOne(baseMapper.selectListRel(param));
} }
@Override
public PageResult<Company> pageRelAll(CompanyParam param) {
PageParam<Company, CompanyParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<Company> list = baseMapper.selectPageRelAll(page, param);
return new PageResult<>(list, page.getTotal());
}
} }

View File

@@ -23,7 +23,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
@Override @Override
public PageResult<Tenant> pageRel(TenantParam param) { public PageResult<Tenant> pageRel(TenantParam param) {
PageParam<Tenant, TenantParam> page = new PageParam<>(param); PageParam<Tenant, TenantParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc"); page.setDefaultOrder("sort_number asc, create_time desc");
List<Tenant> list = baseMapper.selectPageRel(page, param); List<Tenant> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal()); return new PageResult<>(list, page.getTotal());
} }