From e74403cc7340bf0e2721573cf907a16f27ea957b Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期日, 23 六月 2024 10:11:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/web/AuthController.java | 185 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 147 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java index 1ce49d5..e311882 100644 --- a/src/main/java/com/zy/common/web/AuthController.java +++ b/src/main/java/com/zy/common/web/AuthController.java @@ -3,27 +3,29 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; +import com.core.annotations.ManagerAuth; +import com.core.common.AesUtils; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.R; +import com.core.exception.CoolException; import com.zy.common.CodeRes; import com.zy.common.entity.Parameter; import com.zy.common.model.PowerDto; import com.zy.common.model.enums.HtmlNavIconType; +import com.zy.common.properties.OSinfo; +import com.zy.common.properties.SystemProperties; import com.zy.common.utils.RandomValidateCodeUtil; import com.zy.system.entity.*; import com.zy.system.service.*; -import com.core.annotations.ManagerAuth; -import com.core.common.Cools; -import com.core.common.R; -import com.core.exception.CoolException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; /** * Created by vincent on 2019-07-30 @@ -42,6 +44,8 @@ @Autowired private ResourceService resourceService; @Autowired + private PdaResourceService pdaResourceService; + @Autowired private RoleResourceService roleResourceService; @Autowired private PermissionService permissionService; @@ -50,15 +54,21 @@ @RequestMapping("/login.action") @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍") - public R loginAction(String mobile, String password){ - if (mobile.equals("super") && password.equals(Cools.md5(superPwd))) { + public R loginAction(String username, String password){ + //楠岃瘉璁稿彲璇佹槸鍚︽湁鏁� +// LicenseVerify licenseVerify = new LicenseVerify(); +// boolean verify = licenseVerify.verify(); +// if (!verify) {//璁稿彲璇佸凡澶辨晥 +// return R.parse(CodeRes.SYSTEM_20001); +// } + if (username.equals("super") && password.equals(Cools.md5(superPwd))) { Map<String, Object> res = new HashMap<>(); - res.put("username", mobile); - res.put("token", Cools.enToken(System.currentTimeMillis() + mobile, superPwd)); + res.put("username", username); + res.put("token", Cools.enToken(System.currentTimeMillis() + username, superPwd)); return R.ok(res); } EntityWrapper<User> userWrapper = new EntityWrapper<>(); - userWrapper.eq("mobile", mobile); + userWrapper.eq("username", username); User user = userService.selectOne(userWrapper); if (Cools.isEmpty(user)){ return R.parse(CodeRes.USER_10001); @@ -66,14 +76,16 @@ if (user.getStatus()!=1){ return R.parse(CodeRes.USER_10002); } - if (!Cools.md5(user.getPassword()).equals(password)){ + if (!user.getPassword().equals(password)){ return R.parse(CodeRes.USER_10003); } - String token = Cools.enToken(System.currentTimeMillis() + mobile, user.getPassword()); - userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId())); + String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword()); + userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId()).eq("system", "WMS")); UserLogin userLogin = new UserLogin(); userLogin.setUserId(user.getId()); userLogin.setToken(token); + userLogin.setCreateTime(new Date()); + userLogin.setSystem("WMS"); userLoginService.insert(userLogin); Map<String, Object> res = new HashMap<>(); res.put("username", user.getUsername()); @@ -115,15 +127,21 @@ } @RequestMapping("/menu/auth") - @ManagerAuth(memo = "棣栭〉鑿滃崟") + @ManagerAuth public R menu(){ // 鑾峰彇鎵�鏈変竴绾ц彍鍗� - List<Resource> oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort")); + List<Resource> oneLevel; User user = null; Wrapper<Resource> resourceWrapper; if (getUserId() == 9527) { + oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).orderBy("sort")); resourceWrapper = new EntityWrapper<Resource>().eq("level", 2).eq("status", 1).orderBy("sort"); } else { + // 婵�娲荤爜楠岃瘉 + if (!SystemProperties.SYSTEM_ACTIVATION) { + return R.ok(); + } + oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort")); // 鑾峰彇褰撳墠鐢ㄦ埛鐨勬墍鏈変簩绾ц彍鍗� user = userService.selectById(getUserId()); List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", user.getRoleId())); @@ -214,18 +232,45 @@ // 鍔熻兘妯″潡 Map<String, Object> functions = new HashMap<>(); - functions.put("title", "鎸囧畾鍔熻兘"); + functions.put("title", "pda鍔熻兘"); functions.put("id", "function"); functions.put("spread", true); + functions.put("checked", false); List<Map> funcs = new ArrayList<>(); functions.put("children", funcs); - List<Permission> permissions = permissionService.selectList(new EntityWrapper<Permission>().eq("status", 1)); - for (Permission permission : permissions) { - Map<String, Object> func = new HashMap<>(); - func.put("title", permission.getName()); - func.put("id", permission.getAction()); - func.put("spread", true); - funcs.add(func); + List<PdaResource> oneLevs = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("level", 1).eq("status", 1).orderBy("sort")); + // 涓�绾� + for (PdaResource oneLev : oneLevs) { + List<Map> twoLevelsList = new ArrayList<>(); + Map<String, Object> oneLevelMap = new HashMap<>(); + oneLevelMap.put("title", oneLev.getName()); + oneLevelMap.put("id", oneLev.getId()); + oneLevelMap.put("spread", true); + oneLevelMap.put("checked", true); + oneLevelMap.put("children", twoLevelsList); + + List<PdaResource> twoLevels = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", oneLev.getId()).eq("level", 2).eq("status", 1).orderBy("sort")); + // 浜岀骇 + for (PdaResource twoLevel : twoLevels){ + Map<String, Object> twoLevelMap = new HashMap<>(); + twoLevelMap.put("title", twoLevel.getName()); + twoLevelMap.put("id", twoLevel.getId()); + twoLevelMap.put("spread", false); + twoLevelMap.put("checked", true); + List<Map> threeLevelsList = new ArrayList<>(); + twoLevelMap.put("children", threeLevelsList); + // 涓夌骇 + List<PdaResource> threeLevels = pdaResourceService.selectList(new EntityWrapper<PdaResource>().eq("resource_id", twoLevel.getId()).eq("level", 3).eq("status", 1).orderBy("sort")); + for (PdaResource threeLevel : threeLevels){ + Map<String, Object> threeLevelMap = new HashMap<>(); + threeLevelMap.put("title", threeLevel.getName()); + threeLevelMap.put("id", threeLevel.getId()); + threeLevelMap.put("checked", true); + threeLevelsList.add(threeLevelMap); + } + twoLevelsList.add(twoLevelMap); + } + funcs.add(oneLevelMap); } result.add(functions); @@ -268,19 +313,21 @@ if (!Cools.isEmpty(powers)){ List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class); for (PowerDto dto : dtos) { - Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2)); - if (!Cools.isEmpty(resource)) { - // 鏍¢獙涓婄骇鏉冮檺 - if (leaderId != null) { - RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource.getId())); - if (null == roleResource) { - throw new CoolException(resource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + if (isNumber(dto.getTwo())) { + Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2)); + if (!Cools.isEmpty(resource)) { + // 鏍¢獙涓婄骇鏉冮檺 + if (leaderId != null) { + RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource.getId())); + if (null == roleResource) { + throw new CoolException(resource.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); + } } + RoleResource roleResource = new RoleResource(); + roleResource.setRoleId(roleId); + roleResource.setResourceId(resource.getId()); + roleResourceService.insert(roleResource); } - RoleResource roleResource = new RoleResource(); - roleResource.setRoleId(roleId); - roleResource.setResourceId(resource.getId()); - roleResourceService.insert(roleResource); } else { Permission permission = permissionService.selectOne(new EntityWrapper<Permission>().eq("action", dto.getTwo())); if (!Cools.isEmpty(permission)){ @@ -297,7 +344,7 @@ if (leaderId != null) { RoleResource roleResource = roleResourceService.selectOne(new EntityWrapper<RoleResource>().eq("role_id", leaderId).eq("resource_id", resource1.getId())); if (null == roleResource) { - throw new CoolException(resource.getName().concat("鐨�").concat(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName()))); + throw new CoolException(resource1.getName().concat("鏃犳硶鎺堟潈缁�").concat(role.getName())); } } RoleResource roleResource = new RoleResource(); @@ -326,5 +373,67 @@ return R.ok(resources); } + @GetMapping(value = "/system/activation/auth") + public R activation() { + if (SystemProperties.SYSTEM_ACTIVATION) { + String activationCode = SystemProperties.getActivationCode(OSinfo.getOSname().getActivationCodePath()); + String timeStr = AesUtils.decrypt(activationCode, SystemProperties.SALT); + if (null == timeStr) { + SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE; + return R.error(); + } + Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss); + if (new Date().getTime() < exprTime.getTime()) { + return R.ok().add(DateUtils.convert(exprTime)); + } else { + SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE; + return R.error(); + } + } else { + return R.error(); + } + } + + @PostMapping(value = "/system/secret/auth") + @ManagerAuth + public R systemSecret(@RequestParam(value = "secret") String secret) { + if (Cools.isEmpty(secret)) { + return R.error("璇疯緭鍏ユ縺娲荤爜"); + } + // 楠岃瘉婵�娲荤爜 + String timeStr = AesUtils.decrypt(secret, SystemProperties.SALT); + if (null == timeStr) { + return R.error("婵�娲荤爜閿欒"); + } + Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss); + if (new Date().getTime() >= exprTime.getTime()) { + return R.error("婵�娲荤爜宸插け鏁�"); + } + boolean result = SystemProperties.saveActivationCode(OSinfo.getOSname().getActivationCodePath(), secret); + if (!result) { + return R.error("婵�娲诲け璐�"); + } + SystemProperties.SYSTEM_ACTIVATION = Boolean.TRUE; + return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦"+DateUtils.convert(exprTime)); + } + + @RequestMapping("/menu/pda/auth") + @ManagerAuth + public R menuPda(){ + Long userId = getUserId(); + List<RolePermission> rolePermissions; + if (userId == 9527L) { + rolePermissions = rolePermissionService.selectList(new EntityWrapper<>()); + } else { + Long roleId = getUser().getRoleId(); + rolePermissions = rolePermissionService.selectList(new EntityWrapper<RolePermission>().eq("role_id", roleId)); + } + if (Cools.isEmpty(rolePermissions)) { + return R.ok(); + } + List<Long> collect = rolePermissions.stream().map(RolePermission::getPermissionId).distinct().collect(Collectors.toList()); + List<Permission> permissions = permissionService.selectBatchIds(collect); + return R.ok().add(permissions); + } } -- Gitblit v1.9.1