diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ILicenseClickService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ILicenseClickService.java new file mode 100644 index 0000000..5911842 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ILicenseClickService.java @@ -0,0 +1,28 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +/** + * @Description : + * 授权检查 + * @Reference : + * @Author : wei.peng + * @CreateDate : 20-3-23 下午5:12 + * @Modify: + **/ +public interface ILicenseClickService { + + /** + * 检查用户数量 + */ + void checkLicenseNumberUser(); + + /** + * 检查 组织数量 + */ + void checkLicenseNumberOrganize(); + + /** + * 检查 登录数量 + */ + void checkLicenseNumberLogin(); + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java index cca5f45..c1fe314 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java @@ -65,7 +65,7 @@ public class ShiroAuthConfiguration { private CacheManager getEhCacheManage; //平台控制会话 - @Resource(name = "imppSessionManager") + @Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER) private DefaultWebSessionManager getSessionManage; @Bean diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java index b9c684f..ba52ccb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java @@ -1,21 +1,27 @@ package cn.estsh.i3plus.core.apiservice.controller; import cn.estsh.i3plus.platform.common.tool.HttpClientTool; +import cn.estsh.i3plus.platform.common.tool.SerializeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; +import cn.estsh.i3plus.platform.plugin.license.ImppLicense; +import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool; +import cn.estsh.i3plus.platform.plugin.license.serviceimpl.SenseLockUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; +import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Base64; import java.util.HashMap; import java.util.List; @@ -48,4 +54,39 @@ public class DemoController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + + @GetMapping(value = "/license") + @ApiOperation(value = "添加操作日志", notes = "添加操作日志,可用于国际化") + public ResultBean license() { + try{ + ImppLicense license = ImppLicenseTool.getLicense(); + +// SenseLockUtil lockUtil = SenseLockUtil.getSenseLockUtil(10086); +//// lockUtil.checkAPIKey(); +// String readValue = lockUtil.getReadValue(); +// System.out.println(readValue); +// ImppLicense readLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(readValue)); +// System.out.println(JSON.toJSONString(readLicense)); +// +// String writeValue = lockUtil.getWriteValue(); +// System.out.println(writeValue); +// ImppLicense writeLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(writeValue)); +// System.out.println(JSON.toJSONString(writeLicense)); +// +// String publicValue = lockUtil.getPublicValue(); +// System.out.println(publicValue); +// ImppLicense publicLicense = (ImppLicense) SerializeTool.deserializationByte(Base64.getDecoder().decode(publicValue)); +// System.out.println(JSON.toJSONString(publicLicense)); +// System.out.println("Hello World ~!"); + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(license); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep).build(); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java index 571f58c..0a6a89e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java @@ -6,6 +6,8 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; import cn.estsh.i3plus.platform.common.tool.SerializeTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.platform.plugin.license.ImppLicense; +import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; @@ -14,6 +16,7 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -105,4 +108,27 @@ public class BackstageController extends CoreBaseController { } } + @GetMapping(value = "/license") + @ApiOperation(value = "重新加载授权数据",notes = "重新加载授权数据") + public ResultBean updateLicense(ImppLicense license){ + try { + ValidatorBean.beginValid(license) + .checkNotZero("licenseMaxOrganize",license.getLicenseMaxOrganize()) + .checkNotZero("licenseMaxWarehouse",license.getLicenseMaxWarehouse()) + .checkNotZero("licenseMaxProductionLine",license.getLicenseMaxProductionLine()) + .checkNotZero("licenseMaxUser",license.getLicenseMaxUser()) + .checkNotZero("licenseMaxUserSession",license.getLicenseMaxUserSession()) + .notNull("licenseUpdateUserName",license.getLicenseUpdateUserName()) + .notNull("licenseUpdateDateTime",license.getLicenseUpdateDateTime()) + .notNull("licenseDescription",license.getLicenseDescription()); + + ImppLicenseTool.updateImppLicense(license); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 37fbb61..8b5a7d6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -91,6 +91,9 @@ public class WhiteController extends CoreBaseController { @Resource(name="redisRes") private ImppRedis redisRes; + @Autowired + private ILicenseClickService licenseClickService; + @GetMapping(value = "/sys-locale-language/list") @ApiOperation(value = "查询可用语言",notes = "查询可用语言") public ResultBean listSysLocaleLanguage(){ @@ -140,6 +143,7 @@ public class WhiteController extends CoreBaseController { @RequestParam(required = false) String deviceId){ Long startTime = System.currentTimeMillis(); startMultiService(); + licenseClickService.checkLicenseNumberLogin(); LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode); ResultBean result = null; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index 7b5177b..b48c330 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; @@ -58,6 +59,9 @@ public class PersonnelController extends CoreBaseController { @Autowired private ISysRoleService sysRoleService; + @Autowired + private ILicenseClickService licenseClickService; + /** * 添加用户信息 * @param model 用户信息 @@ -68,6 +72,7 @@ public class PersonnelController extends CoreBaseController { public ResultBean insertUserDetailModel(UserDetailModel model) { try { startMultiService(); + licenseClickService.checkLicenseNumberUser(); SysUser user = model.getSysUser(); SysUserInfo info = model.getSysUserInfo(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java index 852cc6b..29fadb0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java @@ -44,7 +44,7 @@ public class SysDashboardController extends CoreBaseController { @Autowired private ISysDashboardService sysDashboardService; - @Resource(name = "imppSessionManager") + @Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER) private DefaultWebSessionManager webSessionManager; @Resource(name = CommonConstWords.IMPP_REDIS_CORE) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java index 6f17f3b..2d920a1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java @@ -19,13 +19,14 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; -import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.persistence.EntityManager; @@ -33,6 +34,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; /** * @Description : 系统日志服务 @@ -249,7 +251,9 @@ public class SysLogSystemController extends CoreBaseController{ if (zipFile != null) { FileTool.deleteFile(zipFile.getPath()); } - FileTool.deleteFile(excelDir.getPath()); + if(Objects.nonNull(excelDir)){ + FileTool.deleteFile(excelDir.getPath()); + } } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java index 61172bc..7d45ff3 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrganizeController.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; +import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService; import cn.estsh.i3plus.icloud.wms.sdk.IWmsActionGroupCloud; @@ -14,6 +15,7 @@ import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import cn.estsh.i3plus.pojo.platform.bean.SysOrganize; @@ -64,6 +66,9 @@ public class SysOrganizeController extends CoreBaseController{ @Autowired private IWmsActionGroupCloud wmsActionGroupCloud; + @Autowired + private ILicenseClickService licenseClickService; + /** * 新增组织 * @param organize 组织 @@ -86,6 +91,10 @@ public class SysOrganizeController extends CoreBaseController{ organize.setParentNameRdd("顶级组织"); } + if(organize.getOrganizeType().equals(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue())){ + licenseClickService.checkLicenseNumberOrganize(); + } + organize = organizeService.insertSysOrganize(organize); String resutl = "组织已创建完成"; @@ -125,6 +134,10 @@ public class SysOrganizeController extends CoreBaseController{ sysOrganize.setParentNameRdd("顶级组织"); } + if(organize.getOrganizeType().equals(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue())){ + licenseClickService.checkLicenseNumberOrganize(); + } + sysOrganize.setName(organize.getName()); sysOrganize.setOrganizeType(organize.getOrganizeType()); sysOrganize.setOrganizeAddress(organize.getOrganizeAddress()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index 7dfdd6a..92af16b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -51,6 +51,9 @@ public class SysUserInfoController extends CoreBaseController{ public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoController.class); @Autowired + private ILicenseClickService licenseClickService; + + @Autowired private ISysUserInfoService sysUserInfoService; @Autowired @@ -89,6 +92,7 @@ public class SysUserInfoController extends CoreBaseController{ public ResultBean insertSysUserInfo(SysUserInfo userInfo){ try { startMultiService(); + licenseClickService.checkLicenseNumberUser(); //登陆用户 SessionUser user = AuthUtil.getSessionUser(); @@ -100,11 +104,8 @@ public class SysUserInfoController extends CoreBaseController{ userInfo.setUserLoginNum(0); sysUserInfoService.checkSysUserInfoOnly(userInfo); - SysUserInfo info = sysUserInfoService.insertSysUserInfo(userInfo); - sysUserInfoService.refreshRefUserOrganize(info.getId(), userInfo.getDepartment().getOrganizeId(),user.getUserName()); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(info); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysDashboardDataJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysDashboardDataJob.java index 00b5ef2..e2dd8b8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysDashboardDataJob.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/SysDashboardDataJob.java @@ -53,7 +53,7 @@ public class SysDashboardDataJob extends BaseImppScheduleJob { @Resource(name = CommonConstWords.IMPP_REDIS_CORE) private ImppRedis redisCore; - @Resource(name = "imppSessionManager") + @Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER) private DefaultWebSessionManager webSessionManager; @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/LicenseClickService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/LicenseClickService.java new file mode 100644 index 0000000..68b682b --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/LicenseClickService.java @@ -0,0 +1,60 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ILicenseClickService; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.plugin.license.ImppLicenseTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysUserInfoRepository; +import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @Description : + * @Reference : + * @Author : wei.peng + * @CreateDate : 20-3-23 下午5:16 + * @Modify: + **/ +@Service +public class LicenseClickService implements ILicenseClickService { + + private static final Logger LOGGER = LoggerFactory.getLogger(LicenseClickService.class); + + @Autowired + private SysUserInfoRepository userInfoRDao; + + @Autowired + private SysOrganizeRepository organizeRDao; + + @Resource(name = CommonConstWords.IMPP_BEAN_SESSION_MANAGER) + private DefaultWebSessionManager webSessionManager; + + @Override + public void checkLicenseNumberUser() { + int count = userInfoRDao.findByHqlWhereCount(DdlPackBean.getDdlPackBean()); + ImppLicenseTool.checkUser(count); + } + + @Override + public void checkLicenseNumberOrganize() { + DdlPackBean bean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getNumEqualPack(ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue(),"organizeType",bean); + + ImppLicenseTool.checkOrganize(organizeRDao.findByHqlWhereCount(bean)); + } + + @Override + public void checkLicenseNumberLogin() { + int count = webSessionManager.getSessionDAO().getActiveSessions().size(); + ImppLicenseTool.checkUserSession(count); + } + +}