From be9786087fe74d496acfca88b148304711303db9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Wed, 25 Aug 2021 00:44:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E7=A7=9F=E6=88=B7=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jshERP-boot/docs/jsh_erp.sql | 4 +-- .../docs/数据库更新记录-首次安装请勿使用.txt | 2 +- .../jsh/erp/controller/UserController.java | 32 +++++++++++++++++++ .../jsh/erp/datasource/entities/UserEx.java | 10 ------ .../datasource/mappers/TenantMapperEx.java | 6 +++- .../erp/service/tenant/TenantComponent.java | 8 +++-- .../jsh/erp/service/tenant/TenantService.java | 16 +++++++--- .../com/jsh/erp/service/user/UserService.java | 10 ++++-- .../jsh/erp/utils/ExceptionCodeConstants.java | 5 +++ .../main/java/com/jsh/erp/utils/Tools.java | 8 +++++ .../src/main/resources/application.properties | 2 ++ .../resources/mapper_xml/TenantMapperEx.xml | 12 +++++++ 12 files changed, 91 insertions(+), 24 deletions(-) diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index ca33fb3a9..a04d383ac 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -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', '2000', '1', '', '2021-02-17 23:19:17', '2099-02-17 23:19:17'); -- ---------------------------- -- Table structure for jsh_unit diff --git a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt index 861666add..d6a892178 100644 --- a/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt +++ b/jshERP-boot/docs/数据库更新记录-首次安装请勿使用.txt @@ -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 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java index 6f5c324b3..d97820477 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java @@ -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 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; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java index 1bd5d6140..79987311f 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/UserEx.java @@ -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; - } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/TenantMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/TenantMapperEx.java index 9089aeadf..25c880791 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/TenantMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/TenantMapperEx.java @@ -10,9 +10,13 @@ public interface TenantMapperEx { List 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 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantComponent.java b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantComponent.java index 7b3f0d722..eae6397da 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantComponent.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantComponent.java @@ -34,14 +34,18 @@ public class TenantComponent implements ICommonQuery { private List getTenantList(Map 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 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 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java index 461af9a92..09732ec1b 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/tenant/TenantService.java @@ -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 select(String loginName, int offset, int rows)throws Exception { + public List select(String loginName, String type, String enabled, int offset, int rows)throws Exception { List 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); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java index 6d2fc639b..75da1018f 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/user/UserService.java @@ -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() 0) { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExceptionCodeConstants.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExceptionCodeConstants.java index c19f69624..63abf82cd 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExceptionCodeConstants.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExceptionCodeConstants.java @@ -34,5 +34,10 @@ public interface ExceptionCodeConstants { * 租户被加入黑名单 */ public static final int BLACK_TENANT = 6; + + /** + * 租户已经过期 + */ + public static final int EXPIRE_TENANT = 7; } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java index dc5a1019e..3170c377d 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java @@ -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 diff --git a/jshERP-boot/src/main/resources/application.properties b/jshERP-boot/src/main/resources/application.properties index 2b3c2d62e..ad63977a0 100644 --- a/jshERP-boot/src/main/resources/application.properties +++ b/jshERP-boot/src/main/resources/application.properties @@ -18,6 +18,8 @@ spring.redis.password=1234abcd manage.roleId=10 #租户允许创建的用户数 tenant.userNumLimit=1000000 +#租户允许试用的天数 +tenant.tryDayLimit=3000 #演示模式开关-默认关闭:false demonstrate.open=false #插件配置 diff --git a/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml index ad956e963..f2add9484 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml @@ -13,6 +13,12 @@ and login_name like #{bindLoginName} + + and type = #{type} + + + and enabled = #{enabled} + order by id desc limit #{offset},#{rows} @@ -27,5 +33,11 @@ and login_name like #{bindLoginName} + + and type = #{type} + + + and enabled = #{enabled} + \ No newline at end of file