Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
be978608
Commit
be978608
authored
Aug 25, 2021
by
季圣华
Browse files
给租户增加有效期
parent
ce1ca8be
Changes
12
Hide whitespace changes
Inline
Side-by-side
jshERP-boot/docs/jsh_erp.sql
View file @
be978608
...
...
@@ -833,7 +833,7 @@ CREATE TABLE `jsh_tenant` (
`tenant_id`
bigint
(
20
)
DEFAULT
NULL
COMMENT
'用户id'
,
`login_name`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'登录名'
,
`user_num_limit`
int
(
11
)
DEFAULT
NULL
COMMENT
'用户数量限制'
,
`type`
varchar
(
1
)
DEFAULT
'0'
COMMENT
'租户类型,0免费
用
户,1付费
用
户'
,
`type`
varchar
(
1
)
DEFAULT
'0'
COMMENT
'租户类型,0免费
租
户,1付费
租
户'
,
`enabled`
bit
(
1
)
DEFAULT
b
'1'
COMMENT
'启用 0-禁用 1-启用'
,
`create_time`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`expire_time`
datetime
DEFAULT
NULL
COMMENT
'到期时间'
,
...
...
@@ -843,7 +843,7 @@ CREATE TABLE `jsh_tenant` (
-- ----------------------------
-- Records of jsh_tenant
-- ----------------------------
INSERT
INTO
`jsh_tenant`
VALUES
(
'13'
,
'63'
,
'jsh'
,
'20'
,
'
0
'
,
''
,
'2021-02-17 23:19:17'
,
'2099-02-17 23:19:17'
);
INSERT
INTO
`jsh_tenant`
VALUES
(
'13'
,
'63'
,
'jsh'
,
'20
00
'
,
'
1
'
,
''
,
'2021-02-17 23:19:17'
,
'2099-02-17 23:19:17'
);
-- ----------------------------
-- Table structure for jsh_unit
...
...
jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt
View file @
be978608
...
...
@@ -1198,6 +1198,6 @@ INSERT INTO `jsh_function` VALUES ('248', '030150', '调拨明细', '0301', '/re
-- 给租户表加sku字段
-- 给租户表移除单据数量限制字段
-- --------------------------------------------------------
alter table jsh_tenant add type varchar(1) DEFAULT '0' COMMENT '租户类型,0免费
用
户,1付费
用
户' after bills_num_limit;
alter table jsh_tenant add type varchar(1) DEFAULT '0' COMMENT '租户类型,0免费
租
户,1付费
租
户' after bills_num_limit;
alter table jsh_tenant drop column bills_num_limit;
alter table jsh_tenant add expire_time datetime DEFAULT NULL COMMENT '到期时间' after create_time;
\ No newline at end of file
jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java
View file @
be978608
...
...
@@ -110,6 +110,9 @@ public class UserController {
case
ExceptionCodeConstants
.
UserExceptionCode
.
BLACK_TENANT
:
msgTip
=
"tenant is black"
;
break
;
case
ExceptionCodeConstants
.
UserExceptionCode
.
EXPIRE_TENANT
:
msgTip
=
"tenant is expire"
;
break
;
case
ExceptionCodeConstants
.
UserExceptionCode
.
USER_CONDITION_FIT
:
msgTip
=
"user can login"
;
//验证通过 ,可以登录,放入session,记录登录日志
...
...
@@ -428,4 +431,33 @@ public class UserController {
return
returnJson
(
objectMap
,
ErpInfo
.
ERROR
.
name
,
ErpInfo
.
ERROR
.
code
);
}
}
/**
* 获取当前用户的用户数量和租户信息
* @param request
* @return
*/
@GetMapping
(
value
=
"/infoWithTenant"
)
public
BaseResponseInfo
randomImage
(
HttpServletRequest
request
){
BaseResponseInfo
res
=
new
BaseResponseInfo
();
try
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
Long
userId
=
Long
.
parseLong
(
redisService
.
getObjectFromSessionByKey
(
request
,
"userId"
).
toString
());
User
user
=
userService
.
getUser
(
userId
);
//获取当前用户数
Long
userCurrentNum
=
userService
.
countUser
(
null
,
null
);
Tenant
tenant
=
tenantService
.
getTenantByTenantId
(
user
.
getTenantId
());
data
.
put
(
"type"
,
tenant
.
getType
());
//租户类型,0免费租户,1付费租户
data
.
put
(
"expireTime"
,
Tools
.
parseDateToStr
(
tenant
.
getExpireTime
()));
data
.
put
(
"userCurrentNum"
,
userCurrentNum
);
data
.
put
(
"userNumLimit"
,
tenant
.
getUserNumLimit
());
res
.
code
=
200
;
res
.
data
=
data
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
res
.
code
=
500
;
res
.
data
=
"获取失败"
;
}
return
res
;
}
}
jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java
View file @
be978608
...
...
@@ -22,8 +22,6 @@ public class UserEx extends User{
private
String
userType
;
private
String
userNumLimit
;
public
String
getOrgAbr
()
{
return
orgAbr
;
}
...
...
@@ -79,12 +77,4 @@ public class UserEx extends User{
public
void
setUserType
(
String
userType
)
{
this
.
userType
=
userType
;
}
public
String
getUserNumLimit
()
{
return
userNumLimit
;
}
public
void
setUserNumLimit
(
String
userNumLimit
)
{
this
.
userNumLimit
=
userNumLimit
;
}
}
jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/TenantMapperEx.java
View file @
be978608
...
...
@@ -10,9 +10,13 @@ public interface TenantMapperEx {
List
<
TenantEx
>
selectByConditionTenant
(
@Param
(
"loginName"
)
String
loginName
,
@Param
(
"type"
)
String
type
,
@Param
(
"enabled"
)
String
enabled
,
@Param
(
"offset"
)
Integer
offset
,
@Param
(
"rows"
)
Integer
rows
);
Long
countsByTenant
(
@Param
(
"loginName"
)
String
loginName
);
@Param
(
"loginName"
)
String
loginName
,
@Param
(
"type"
)
String
type
,
@Param
(
"enabled"
)
String
enabled
);
}
\ No newline at end of file
jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantComponent.java
View file @
be978608
...
...
@@ -34,14 +34,18 @@ public class TenantComponent implements ICommonQuery {
private
List
<?>
getTenantList
(
Map
<
String
,
String
>
map
)
throws
Exception
{
String
search
=
map
.
get
(
Constants
.
SEARCH
);
String
loginName
=
StringUtil
.
getInfo
(
search
,
"loginName"
);
return
tenantService
.
select
(
loginName
,
QueryUtils
.
offset
(
map
),
QueryUtils
.
rows
(
map
));
String
type
=
StringUtil
.
getInfo
(
search
,
"type"
);
String
enabled
=
StringUtil
.
getInfo
(
search
,
"enabled"
);
return
tenantService
.
select
(
loginName
,
type
,
enabled
,
QueryUtils
.
offset
(
map
),
QueryUtils
.
rows
(
map
));
}
@Override
public
Long
counts
(
Map
<
String
,
String
>
map
)
throws
Exception
{
String
search
=
map
.
get
(
Constants
.
SEARCH
);
String
loginName
=
StringUtil
.
getInfo
(
search
,
"loginName"
);
return
tenantService
.
countTenant
(
loginName
);
String
type
=
StringUtil
.
getInfo
(
search
,
"type"
);
String
enabled
=
StringUtil
.
getInfo
(
search
,
"enabled"
);
return
tenantService
.
countTenant
(
loginName
,
type
,
enabled
);
}
@Override
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java
View file @
be978608
...
...
@@ -39,6 +39,9 @@ public class TenantService {
@Value
(
"${tenant.userNumLimit}"
)
private
Integer
userNumLimit
;
@Value
(
"${tenant.tryDayLimit}"
)
private
Integer
tryDayLimit
;
public
Tenant
getTenant
(
long
id
)
throws
Exception
{
Tenant
result
=
null
;
try
{
...
...
@@ -60,10 +63,10 @@ public class TenantService {
return
list
;
}
public
List
<
TenantEx
>
select
(
String
loginName
,
int
offset
,
int
rows
)
throws
Exception
{
public
List
<
TenantEx
>
select
(
String
loginName
,
String
type
,
String
enabled
,
int
offset
,
int
rows
)
throws
Exception
{
List
<
TenantEx
>
list
=
new
ArrayList
<>();
try
{
list
=
tenantMapperEx
.
selectByConditionTenant
(
loginName
,
offset
,
rows
);
list
=
tenantMapperEx
.
selectByConditionTenant
(
loginName
,
type
,
enabled
,
offset
,
rows
);
if
(
null
!=
list
)
{
for
(
TenantEx
tenantEx
:
list
)
{
tenantEx
.
setCreateTimeStr
(
Tools
.
getCenternTime
(
tenantEx
.
getCreateTime
()));
...
...
@@ -76,10 +79,10 @@ public class TenantService {
return
list
;
}
public
Long
countTenant
(
String
loginName
)
throws
Exception
{
public
Long
countTenant
(
String
loginName
,
String
type
,
String
enabled
)
throws
Exception
{
Long
result
=
null
;
try
{
result
=
tenantMapperEx
.
countsByTenant
(
loginName
);
result
=
tenantMapperEx
.
countsByTenant
(
loginName
,
type
,
enabled
);
}
catch
(
Exception
e
){
JshException
.
readFail
(
logger
,
e
);
}
...
...
@@ -91,10 +94,13 @@ public class TenantService {
Tenant
tenant
=
JSONObject
.
parseObject
(
obj
.
toJSONString
(),
Tenant
.
class
);
int
result
=
0
;
try
{
tenant
.
setCreateTime
(
new
Date
());
if
(
tenant
.
getUserNumLimit
()==
null
)
{
tenant
.
setUserNumLimit
(
userNumLimit
);
//默认用户限制数量
}
tenant
.
setCreateTime
(
new
Date
());
if
(
tenant
.
getExpireTime
()==
null
)
{
tenant
.
setExpireTime
(
Tools
.
addDays
(
new
Date
(),
tryDayLimit
));
//租户允许试用的天数
}
result
=
tenantMapper
.
insertSelective
(
tenant
);
}
catch
(
Exception
e
){
JshException
.
writeFail
(
logger
,
e
);
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java
View file @
be978608
...
...
@@ -297,8 +297,13 @@ public class UserService {
}
Long
tenantId
=
list
.
get
(
0
).
getTenantId
();
Tenant
tenant
=
tenantService
.
getTenantByTenantId
(
tenantId
);
if
(
tenant
!=
null
&&
tenant
.
getEnabled
()!=
null
&&
!
tenant
.
getEnabled
())
{
return
ExceptionCodeConstants
.
UserExceptionCode
.
BLACK_TENANT
;
if
(
tenant
!=
null
)
{
if
(
tenant
.
getEnabled
()!=
null
&&
!
tenant
.
getEnabled
())
{
return
ExceptionCodeConstants
.
UserExceptionCode
.
BLACK_TENANT
;
}
if
(
tenant
.
getExpireTime
()!=
null
&&
tenant
.
getExpireTime
().
getTime
()<
System
.
currentTimeMillis
()){
return
ExceptionCodeConstants
.
UserExceptionCode
.
EXPIRE_TENANT
;
}
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -516,7 +521,6 @@ public class UserService {
JSONObject
tenantObj
=
new
JSONObject
();
tenantObj
.
put
(
"tenantId"
,
ue
.
getId
());
tenantObj
.
put
(
"loginName"
,
ue
.
getLoginName
());
tenantObj
.
put
(
"userNumLimit"
,
ue
.
getUserNumLimit
());
tenantService
.
insertTenant
(
tenantObj
,
request
);
logger
.
info
(
"===============创建租户信息完成==============="
);
if
(
result
>
0
)
{
...
...
jshERP-boot/src/main/java/com/jsh/erp/utils/ExceptionCodeConstants.java
View file @
be978608
...
...
@@ -34,5 +34,10 @@ public interface ExceptionCodeConstants {
* 租户被加入黑名单
*/
public
static
final
int
BLACK_TENANT
=
6
;
/**
* 租户已经过期
*/
public
static
final
int
EXPIRE_TENANT
=
7
;
}
}
jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java
View file @
be978608
...
...
@@ -665,6 +665,14 @@ public class Tools {
return
new
SimpleDateFormat
(
pattern
).
parse
(
strDate
);
}
public
static
Date
addDays
(
Date
date
,
int
num
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
//需要将date数据转移到Calender对象中操作
calendar
.
add
(
calendar
.
DATE
,
num
);
//把日期往后增加n天.正数往后推,负数往前移动
date
=
calendar
.
getTime
();
//这个时间就是日期往后推一天的结果
return
date
;
}
/**
* 生成随机数字和字母组合
* @param length
...
...
jshERP-boot/src/main/resources/application.properties
View file @
be978608
...
...
@@ -18,6 +18,8 @@ spring.redis.password=1234abcd
manage.roleId
=
10
#租户允许创建的用户数
tenant.userNumLimit
=
1000000
#租户允许试用的天数
tenant.tryDayLimit
=
3000
#演示模式开关-默认关闭:false
demonstrate.open
=
false
#插件配置
...
...
jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml
View file @
be978608
...
...
@@ -13,6 +13,12 @@
<bind
name=
"bindLoginName"
value=
"'%'+loginName+'%'"
/>
and login_name like #{bindLoginName}
</if>
<if
test=
"type != null and type != ''"
>
and type = #{type}
</if>
<if
test=
"enabled != null and enabled != ''"
>
and enabled = #{enabled}
</if>
order by id desc
<if
test=
"offset != null and rows != null"
>
limit #{offset},#{rows}
...
...
@@ -27,5 +33,11 @@
<bind
name=
"bindLoginName"
value=
"'%'+loginName+'%'"
/>
and login_name like #{bindLoginName}
</if>
<if
test=
"type != null and type != ''"
>
and type = #{type}
</if>
<if
test=
"enabled != null and enabled != ''"
>
and enabled = #{enabled}
</if>
</select>
</mapper>
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment