给租户增加有效期
This commit is contained in:
@@ -833,7 +833,7 @@ CREATE TABLE `jsh_tenant` (
|
|||||||
`tenant_id` bigint(20) DEFAULT NULL COMMENT '用户id',
|
`tenant_id` bigint(20) DEFAULT NULL COMMENT '用户id',
|
||||||
`login_name` varchar(255) DEFAULT NULL COMMENT '登录名',
|
`login_name` varchar(255) DEFAULT NULL COMMENT '登录名',
|
||||||
`user_num_limit` int(11) 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-启用',
|
`enabled` bit(1) DEFAULT b'1' COMMENT '启用 0-禁用 1-启用',
|
||||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
`expire_time` datetime DEFAULT NULL COMMENT '到期时间',
|
`expire_time` datetime DEFAULT NULL COMMENT '到期时间',
|
||||||
@@ -843,7 +843,7 @@ CREATE TABLE `jsh_tenant` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of 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', '2000', '1', '', '2021-02-17 23:19:17', '2099-02-17 23:19:17');
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for jsh_unit
|
-- Table structure for jsh_unit
|
||||||
|
|||||||
@@ -1198,6 +1198,6 @@ INSERT INTO `jsh_function` VALUES ('248', '030150', '调拨明细', '0301', '/re
|
|||||||
-- 给租户表加sku字段
|
-- 给租户表加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 drop column bills_num_limit;
|
||||||
alter table jsh_tenant add expire_time datetime DEFAULT NULL COMMENT '到期时间' after create_time;
|
alter table jsh_tenant add expire_time datetime DEFAULT NULL COMMENT '到期时间' after create_time;
|
||||||
@@ -110,6 +110,9 @@ public class UserController {
|
|||||||
case ExceptionCodeConstants.UserExceptionCode.BLACK_TENANT:
|
case ExceptionCodeConstants.UserExceptionCode.BLACK_TENANT:
|
||||||
msgTip = "tenant is black";
|
msgTip = "tenant is black";
|
||||||
break;
|
break;
|
||||||
|
case ExceptionCodeConstants.UserExceptionCode.EXPIRE_TENANT:
|
||||||
|
msgTip = "tenant is expire";
|
||||||
|
break;
|
||||||
case ExceptionCodeConstants.UserExceptionCode.USER_CONDITION_FIT:
|
case ExceptionCodeConstants.UserExceptionCode.USER_CONDITION_FIT:
|
||||||
msgTip = "user can login";
|
msgTip = "user can login";
|
||||||
//验证通过 ,可以登录,放入session,记录登录日志
|
//验证通过 ,可以登录,放入session,记录登录日志
|
||||||
@@ -428,4 +431,33 @@ public class UserController {
|
|||||||
return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ public class UserEx extends User{
|
|||||||
|
|
||||||
private String userType;
|
private String userType;
|
||||||
|
|
||||||
private String userNumLimit;
|
|
||||||
|
|
||||||
public String getOrgAbr() {
|
public String getOrgAbr() {
|
||||||
return orgAbr;
|
return orgAbr;
|
||||||
}
|
}
|
||||||
@@ -79,12 +77,4 @@ public class UserEx extends User{
|
|||||||
public void setUserType(String userType) {
|
public void setUserType(String userType) {
|
||||||
this.userType = userType;
|
this.userType = userType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUserNumLimit() {
|
|
||||||
return userNumLimit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserNumLimit(String userNumLimit) {
|
|
||||||
this.userNumLimit = userNumLimit;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,13 @@ public interface TenantMapperEx {
|
|||||||
|
|
||||||
List<TenantEx> selectByConditionTenant(
|
List<TenantEx> selectByConditionTenant(
|
||||||
@Param("loginName") String loginName,
|
@Param("loginName") String loginName,
|
||||||
|
@Param("type") String type,
|
||||||
|
@Param("enabled") String enabled,
|
||||||
@Param("offset") Integer offset,
|
@Param("offset") Integer offset,
|
||||||
@Param("rows") Integer rows);
|
@Param("rows") Integer rows);
|
||||||
|
|
||||||
Long countsByTenant(
|
Long countsByTenant(
|
||||||
@Param("loginName") String loginName);
|
@Param("loginName") String loginName,
|
||||||
|
@Param("type") String type,
|
||||||
|
@Param("enabled") String enabled);
|
||||||
}
|
}
|
||||||
@@ -34,14 +34,18 @@ public class TenantComponent implements ICommonQuery {
|
|||||||
private List<?> getTenantList(Map<String, String> map)throws Exception {
|
private List<?> getTenantList(Map<String, String> map)throws Exception {
|
||||||
String search = map.get(Constants.SEARCH);
|
String search = map.get(Constants.SEARCH);
|
||||||
String loginName = StringUtil.getInfo(search, "loginName");
|
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
|
@Override
|
||||||
public Long counts(Map<String, String> map)throws Exception {
|
public Long counts(Map<String, String> map)throws Exception {
|
||||||
String search = map.get(Constants.SEARCH);
|
String search = map.get(Constants.SEARCH);
|
||||||
String loginName = StringUtil.getInfo(search, "loginName");
|
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
|
@Override
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ public class TenantService {
|
|||||||
@Value("${tenant.userNumLimit}")
|
@Value("${tenant.userNumLimit}")
|
||||||
private Integer userNumLimit;
|
private Integer userNumLimit;
|
||||||
|
|
||||||
|
@Value("${tenant.tryDayLimit}")
|
||||||
|
private Integer tryDayLimit;
|
||||||
|
|
||||||
public Tenant getTenant(long id)throws Exception {
|
public Tenant getTenant(long id)throws Exception {
|
||||||
Tenant result=null;
|
Tenant result=null;
|
||||||
try{
|
try{
|
||||||
@@ -60,10 +63,10 @@ public class TenantService {
|
|||||||
return list;
|
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<>();
|
List<TenantEx> list= new ArrayList<>();
|
||||||
try{
|
try{
|
||||||
list = tenantMapperEx.selectByConditionTenant(loginName, offset, rows);
|
list = tenantMapperEx.selectByConditionTenant(loginName, type, enabled, offset, rows);
|
||||||
if (null != list) {
|
if (null != list) {
|
||||||
for (TenantEx tenantEx : list) {
|
for (TenantEx tenantEx : list) {
|
||||||
tenantEx.setCreateTimeStr(Tools.getCenternTime(tenantEx.getCreateTime()));
|
tenantEx.setCreateTimeStr(Tools.getCenternTime(tenantEx.getCreateTime()));
|
||||||
@@ -76,10 +79,10 @@ public class TenantService {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long countTenant(String loginName)throws Exception {
|
public Long countTenant(String loginName, String type, String enabled)throws Exception {
|
||||||
Long result=null;
|
Long result=null;
|
||||||
try{
|
try{
|
||||||
result=tenantMapperEx.countsByTenant(loginName);
|
result=tenantMapperEx.countsByTenant(loginName, type, enabled);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
JshException.readFail(logger, e);
|
JshException.readFail(logger, e);
|
||||||
}
|
}
|
||||||
@@ -91,10 +94,13 @@ public class TenantService {
|
|||||||
Tenant tenant = JSONObject.parseObject(obj.toJSONString(), Tenant.class);
|
Tenant tenant = JSONObject.parseObject(obj.toJSONString(), Tenant.class);
|
||||||
int result=0;
|
int result=0;
|
||||||
try{
|
try{
|
||||||
|
tenant.setCreateTime(new Date());
|
||||||
if(tenant.getUserNumLimit()==null) {
|
if(tenant.getUserNumLimit()==null) {
|
||||||
tenant.setUserNumLimit(userNumLimit); //默认用户限制数量
|
tenant.setUserNumLimit(userNumLimit); //默认用户限制数量
|
||||||
}
|
}
|
||||||
tenant.setCreateTime(new Date());
|
if(tenant.getExpireTime()==null) {
|
||||||
|
tenant.setExpireTime(Tools.addDays(new Date(), tryDayLimit)); //租户允许试用的天数
|
||||||
|
}
|
||||||
result=tenantMapper.insertSelective(tenant);
|
result=tenantMapper.insertSelective(tenant);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
JshException.writeFail(logger, e);
|
JshException.writeFail(logger, e);
|
||||||
|
|||||||
@@ -297,9 +297,14 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
Long tenantId = list.get(0).getTenantId();
|
Long tenantId = list.get(0).getTenantId();
|
||||||
Tenant tenant = tenantService.getTenantByTenantId(tenantId);
|
Tenant tenant = tenantService.getTenantByTenantId(tenantId);
|
||||||
if(tenant!=null && tenant.getEnabled()!=null && !tenant.getEnabled()) {
|
if(tenant!=null) {
|
||||||
|
if(tenant.getEnabled()!=null && !tenant.getEnabled()) {
|
||||||
return ExceptionCodeConstants.UserExceptionCode.BLACK_TENANT;
|
return ExceptionCodeConstants.UserExceptionCode.BLACK_TENANT;
|
||||||
}
|
}
|
||||||
|
if(tenant.getExpireTime()!=null && tenant.getExpireTime().getTime()<System.currentTimeMillis()){
|
||||||
|
return ExceptionCodeConstants.UserExceptionCode.EXPIRE_TENANT;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(">>>>>>>>访问验证用户姓名是否存在后台信息异常", e);
|
logger.error(">>>>>>>>访问验证用户姓名是否存在后台信息异常", e);
|
||||||
@@ -516,7 +521,6 @@ public class UserService {
|
|||||||
JSONObject tenantObj = new JSONObject();
|
JSONObject tenantObj = new JSONObject();
|
||||||
tenantObj.put("tenantId", ue.getId());
|
tenantObj.put("tenantId", ue.getId());
|
||||||
tenantObj.put("loginName",ue.getLoginName());
|
tenantObj.put("loginName",ue.getLoginName());
|
||||||
tenantObj.put("userNumLimit",ue.getUserNumLimit());
|
|
||||||
tenantService.insertTenant(tenantObj, request);
|
tenantService.insertTenant(tenantObj, request);
|
||||||
logger.info("===============创建租户信息完成===============");
|
logger.info("===============创建租户信息完成===============");
|
||||||
if (result > 0) {
|
if (result > 0) {
|
||||||
|
|||||||
@@ -34,5 +34,10 @@ public interface ExceptionCodeConstants {
|
|||||||
* 租户被加入黑名单
|
* 租户被加入黑名单
|
||||||
*/
|
*/
|
||||||
public static final int BLACK_TENANT = 6;
|
public static final int BLACK_TENANT = 6;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户已经过期
|
||||||
|
*/
|
||||||
|
public static final int EXPIRE_TENANT = 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -665,6 +665,14 @@ public class Tools {
|
|||||||
return new SimpleDateFormat(pattern).parse(strDate);
|
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
|
* @param length
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ spring.redis.password=1234abcd
|
|||||||
manage.roleId=10
|
manage.roleId=10
|
||||||
#租户允许创建的用户数
|
#租户允许创建的用户数
|
||||||
tenant.userNumLimit=1000000
|
tenant.userNumLimit=1000000
|
||||||
|
#租户允许试用的天数
|
||||||
|
tenant.tryDayLimit=3000
|
||||||
#演示模式开关-默认关闭:false
|
#演示模式开关-默认关闭:false
|
||||||
demonstrate.open=false
|
demonstrate.open=false
|
||||||
#插件配置
|
#插件配置
|
||||||
|
|||||||
@@ -13,6 +13,12 @@
|
|||||||
<bind name="bindLoginName" value="'%'+loginName+'%'"/>
|
<bind name="bindLoginName" value="'%'+loginName+'%'"/>
|
||||||
and login_name like #{bindLoginName}
|
and login_name like #{bindLoginName}
|
||||||
</if>
|
</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
|
order by id desc
|
||||||
<if test="offset != null and rows != null">
|
<if test="offset != null and rows != null">
|
||||||
limit #{offset},#{rows}
|
limit #{offset},#{rows}
|
||||||
@@ -27,5 +33,11 @@
|
|||||||
<bind name="bindLoginName" value="'%'+loginName+'%'"/>
|
<bind name="bindLoginName" value="'%'+loginName+'%'"/>
|
||||||
and login_name like #{bindLoginName}
|
and login_name like #{bindLoginName}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="type != null and type != ''">
|
||||||
|
and type = #{type}
|
||||||
|
</if>
|
||||||
|
<if test="enabled != null and enabled != ''">
|
||||||
|
and enabled = #{enabled}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user