Commit 63b1f77d authored by huangjie's avatar huangjie

Merge branch 'zuhuduan' of http://192.168.60.201/root/dsk-operate-sys into zuhuduan

parents ca6dd96f 08021137
package com.dsk;
import cn.dev33.satoken.secure.BCrypt;
import com.google.api.client.util.SecurityUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
......
......@@ -5,6 +5,7 @@ import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.dsk.common.constant.CacheConstants;
import com.dsk.common.constant.Constants;
import com.dsk.common.constant.GlobalConstants;
import com.dsk.common.core.domain.R;
......@@ -12,6 +13,8 @@ import com.dsk.common.enums.CaptchaType;
import com.dsk.common.exception.user.CaptchaException;
import com.dsk.common.exception.user.CaptchaExpireException;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.DingTalkUtil;
import com.dsk.common.utils.MessageUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.email.MailUtils;
import com.dsk.common.utils.redis.RedisUtils;
......
......@@ -2,6 +2,7 @@ package com.dsk.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import com.baomidou.lock.annotation.Lock4j;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
......@@ -42,7 +43,7 @@ public class SysTenantController extends BaseController {
/**
* 查询租户列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:list")
@GetMapping("/list")
public TableDataInfo<SysTenantVo> list(SysTenantBo bo, PageQuery pageQuery) {
......@@ -66,7 +67,7 @@ public class SysTenantController extends BaseController {
*
* @param id 主键
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:query")
@GetMapping("/{id}")
public R<SysTenantVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
......@@ -76,7 +77,7 @@ public class SysTenantController extends BaseController {
/**
* 新增租户
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:add")
@Log(title = "租户", businessType = BusinessType.INSERT)
@Lock4j
......@@ -92,7 +93,7 @@ public class SysTenantController extends BaseController {
/**
* 修改租户
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:edit")
@Log(title = "租户", businessType = BusinessType.UPDATE)
@RepeatSubmit()
......@@ -122,7 +123,7 @@ public class SysTenantController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:remove")
@Log(title = "租户", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
......@@ -145,7 +146,7 @@ public class SysTenantController extends BaseController {
/**
* 清除动态租户
*/
@SaCheckRole({TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY})
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@GetMapping("/dynamic/clear")
public R<Void> dynamicClear() {
TenantHelper.clearDynamic();
......@@ -158,7 +159,7 @@ public class SysTenantController extends BaseController {
* @param tenantId 租户id
* @param packageId 套餐id
*/
@SaCheckRole({TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY})
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:edit")
@Log(title = "租户", businessType = BusinessType.UPDATE)
@GetMapping("/syncTenantPackage")
......
......@@ -2,6 +2,7 @@ package com.dsk.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
......@@ -46,7 +47,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 查询租户套餐列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:list")
@GetMapping("/list")
public TableDataInfo<SysTenantPackageVo> list(SysTenantPackageBo bo, PageQuery pageQuery) {
......@@ -56,7 +57,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 查询租户套餐下拉选列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:list")
@GetMapping("/selectList")
public R<List<SysTenantPackageSelectVo>> selectList() {
......@@ -80,7 +81,7 @@ public class SysTenantPackageController extends BaseController {
*
* @param packageId 主键
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:query")
@GetMapping("/{packageId}")
public R<SysTenantPackageVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long packageId) {
......@@ -90,7 +91,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 新增租户套餐
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:add")
@Log(title = "租户套餐", businessType = BusinessType.INSERT)
@RepeatSubmit()
......@@ -105,7 +106,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 修改租户套餐
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:edit")
@Log(title = "租户套餐", businessType = BusinessType.UPDATE)
@RepeatSubmit()
......@@ -134,7 +135,7 @@ public class SysTenantPackageController extends BaseController {
*
* @param packageIds 主键串
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:remove")
@Log(title = "租户套餐", businessType = BusinessType.DELETE)
@DeleteMapping("/{packageIds}")
......
--- # 临时文件存储位置 避免临时文件被系统清理报错
spring.servlet.multipart.location: /ruoyi/server/temp
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
......@@ -8,8 +5,8 @@ spring.boot.admin.client:
url: http://localhost:9090/admin
instance:
service-host-type: IP
username: ruoyi
password: 123456
username: dsk-operate
password: dsk123123
--- # xxl-job 配置
xxl.job:
......@@ -52,37 +49,37 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
username: root
password: root
url: jdbc:mysql://192.168.0.79:3306/dsk_operate_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: dev
password: 8AXjjCHZ666!
# 从库数据源
slave:
lazy: true
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
username:
password:
# oracle:
# type: ${spring.datasource.type}
# driverClassName: oracle.jdbc.OracleDriver
# url: jdbc:oracle:thin:@//localhost:1521/XE
# username: ROOT
# password: root
# hikari:
# connectionTestQuery: SELECT 1 FROM DUAL
# postgres:
# type: ${spring.datasource.type}
# driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: root
# password: root
# sqlserver:
# type: ${spring.datasource.type}
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
# username: SA
# password: root
# slave:
# lazy: true
# type: ${spring.datasource.type}
# driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
# username:
# password:
# oracle:
# type: ${spring.datasource.type}
# driverClassName: oracle.jdbc.OracleDriver
# url: jdbc:oracle:thin:@//localhost:1521/XE
# username: ROOT
# password: root
# hikari:
# connectionTestQuery: SELECT 1 FROM DUAL
# postgres:
# type: ${spring.datasource.type}
# driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: root
# password: root
# sqlserver:
# type: ${spring.datasource.type}
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
# username: SA
# password: root
hikari:
# 最大连接池数量
maxPoolSize: 20
......@@ -104,12 +101,13 @@ spring:
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
spring:
redis:
# 地址
host: localhost
host: 192.168.0.79
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
database: 6
# 密码
password: zfTFIJjaN#6xB83r
# 密码(如没有密码请注释掉)
# password:
# 连接超时时间
......@@ -121,17 +119,17 @@ redisson:
# redis key前缀
keyPrefix:
# 线程池数量
threads: 16
threads: 4
# Netty线程池数量
nettyThreads: 32
nettyThreads: 8
# 单节点配置
singleServerConfig:
# 客户端名称
clientName: ${ruoyi.name}
# 最小空闲连接数
connectionMinimumIdleSize: 32
connectionMinimumIdleSize: 8
# 连接池大小
connectionPoolSize: 64
connectionPoolSize: 32
# 连接空闲超时,单位:毫秒
idleConnectionTimeout: 10000
# 命令等待超时,单位:毫秒
......
......@@ -112,7 +112,7 @@ sa-token:
# token最低活跃时间 (指定时间无操作就过期) 单位: 秒
active-timeout: 18000
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: true
is-concurrent: false
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# 是否尝试从header里读取token
......@@ -143,6 +143,7 @@ security:
- /actuator
- /actuator/**
# 多租户配置
tenant:
# 是否开启
......
package com.dsk.common.exception.file;
import org.apache.tomcat.util.http.fileupload.FileUploadException;
import java.util.Arrays;
......
......@@ -56,11 +56,6 @@
<artifactId>fastjson2</artifactId>
<version>2.0.25</version>
</dependency>
<!-- <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.2</version>
</dependency>-->
<!-- <dependency>-->
......
package com.dsk.biz.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import com.dsk.biz.domain.BusinessInfo;
import com.dsk.biz.domain.bo.BusinessAddDto;
import com.dsk.biz.domain.bo.BusinessListDto;
......@@ -64,6 +65,7 @@ public class BusinessInfoController extends BaseController
* 查询项目速览
*/
// @PreAuthorize("@ss.hasPermi('system:business:query')")
@SaCheckLogin
@GetMapping("/browse/{businessId}")
public R<BusinessBrowseVo> browse(@PathVariable("businessId") Integer businessId)
{
......
......@@ -151,5 +151,16 @@ public class EnterpriseProjectController {
return enterpriseProjectService.importantDetail(body);
}
/***
*@Description: 公招市场-流程速览
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/19 13:49
*/
@RequestMapping(value = "/projectProcess", method = RequestMethod.POST)
public R projectProcess(@RequestBody @Valid EnterpriseProjectProcessDetailBody body) throws Exception {
return enterpriseProjectService.projectProcess(body);
}
}
package com.dsk.jsk.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectProcessDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private String projectId;
}
......@@ -205,4 +205,16 @@ public class EnterpriseProjectService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/importantDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
/***
*@Description: 公招市场-流程速览
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/19 13:49
*/
public R projectProcess(EnterpriseProjectProcessDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/recruitmentMarket/projectProcess", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
......@@ -17,6 +17,7 @@
return {
loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制
footHeight: 0, //底部高度,若为0(页面内部嵌套或者没有底部板块)
iframeHight: window.innerHeight, // iframe高度-当前页控制
navigation: {isFixed: true, fixedHeight: 56, totalHeight: 68}, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
......@@ -34,11 +35,11 @@
},
mounted() {
this.iframeLoading() // 判断iframe页面是否加载完成-当前页控制
steerScroll('companyIframe', this.navigation, true) // 监听滚动(iframe的id、页面排除iframe后页面剩下顶部高度[例:80]、增加监听[不传就是移除监听]、父级id[不带默认就是铺满整个页面]]
steerScroll('companyIframe', this.navigation, this.footHeight, true) // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略
},
beforeDestroy() {
clearInterval(this.iframeTimer) // -当前页控制
steerScroll('companyIframe', this.navigation) // 销毁滚动
steerScroll('companyIframe', this.navigation, this.footHeight) // iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
clearInterval(this.tokentimer)
},
methods: {
......
......@@ -92,4 +92,10 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
*/
SysUser selectUserById(Long userId);
List<SysUser> selectUserByTenantPhone(String phonenumber);
List<SysUser> selectUserByTenantUsername(String username);
}
......@@ -503,7 +503,7 @@ public class SysLoginService {
}
SysTenantVo tenant = sysTenantService.queryByTenantId(tenantId);
if (ObjectUtil.isNull(tenant)) {
log.info("登录企业:{} 不存在.", tenant.getCompanyName());
log.info("登录企业:{} 不存在.", tenantId);
throw new TenantException("company.not.exists");
} else if (TenantStatus.DISABLE.getCode().equals(tenant.getStatus())) {
log.info("登录企业:{} 已被停用.", tenant.getCompanyName());
......@@ -525,7 +525,7 @@ public class SysLoginService {
}
SysTenantVo tenant = sysTenantService.queryByTenantId(tenantId);
if (ObjectUtil.isNull(tenant)) {
log.info("登录企业:{} 不存在.", tenant.getCompanyName());
log.info("登录企业:{} 不存在.", tenantId);
RedisUtils.deleteObject(GlobalConstants.PHONE_DEFAULT_TENANT + phoneNumber);
return null;
} else if (TenantStatus.DISABLE.getCode().equals(tenant.getStatus())) {
......
......@@ -100,7 +100,9 @@ public class SysMenuServiceImpl implements ISysMenuService {
.eq(SysMenu::getStatus, "0")
.orderByAsc(SysMenu::getParentId)
.orderByAsc(SysMenu::getOrderNum));
menuList = menuList.stream().filter(menu1 -> !menu1.getMenuName().equals("企业管理")).collect(Collectors.toList());
//过滤企业管理权限,考虑今后权限名称可能会修改,因此以ID作为判断依据
menuList = menuList.stream().filter(menu1 -> menu1.getMenuId() != 1693803090698280961L).collect(Collectors.toList());
}
return menuList;
}
......@@ -183,8 +185,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
if (CollUtil.isEmpty(menus)) {
return CollUtil.newArrayList();
}
return TreeBuildUtils.build(menus, (menu, tree) ->
tree.setId(menu.getMenuId())
return TreeBuildUtils.build(menus, (menu, tree) -> tree.setId(menu.getMenuId())
.setParentId(menu.getParentId())
.setName(menu.getMenuName())
.setWeight(menu.getOrderNum()));
......
......@@ -139,6 +139,21 @@
<include refid="selectUserVo"/>
where u.del_flag = '0' and u.user_id = #{userId}
</select>
<select id="selectUserByTenantPhone" resultType="com.dsk.system.domain.SysUser">
select t1.user_id, t1.tenant_id,t1.user_name,t1.status from sys_user t1
inner join sys_tenant t on t1.tenant_id=t.tenant_id and t1.del_flag=0
where t.del_flag=0
and t.status=0
and t1.phonenumber=#{phonenumber}
order by t1.create_time desc
</select>
<select id="selectUserByTenantUsername" resultType="com.dsk.system.domain.SysUser">
select t1.user_id, t1.tenant_id,t1.user_name,t1.status from sys_user t1
left join sys_tenant t on t1.tenant_id=t.tenant_id and t1.del_flag=0
where t.del_flag=0
and t.status=0
and t1.user_name=#{username}
order by t1.create_time desc
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment