|  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
|---|
|  |  |  | import com.core.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.common.*; | 
|---|
|  |  |  | 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.utils.RandomValidateCodeUtil; | 
|---|
|  |  |  | import com.zy.system.entity.*; | 
|---|
|  |  |  | import com.zy.system.entity.license.LicenseVerify; | 
|---|
|  |  |  | import com.zy.system.service.*; | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword()); | 
|---|
|  |  |  | userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId())); | 
|---|
|  |  |  | UserLogin userLogin = new UserLogin(); | 
|---|
|  |  |  | userLogin.setUserId(user.getId()); | 
|---|
|  |  |  | userLogin.setToken(token); | 
|---|
|  |  |  | userLogin.setCreateTime(new Date()); | 
|---|
|  |  |  | userLoginService.insert(userLogin); | 
|---|
|  |  |  | Map<String, Object> res = new HashMap<>(); | 
|---|
|  |  |  | res.put("username", user.getUsername()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok(userService.selectById(getUserId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/menu/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "首页菜单") | 
|---|
|  |  |  | public R menu(){ | 
|---|
|  |  |  | // 获取所有一级菜单 | 
|---|
|  |  |  | List<Resource> oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort")); | 
|---|
|  |  |  | User user = null; | 
|---|
|  |  |  | Wrapper<Resource> resourceWrapper; | 
|---|
|  |  |  | if (getUserId() == 9527) { | 
|---|
|  |  |  | resourceWrapper = new EntityWrapper<Resource>().eq("level", 2).eq("status", 1).orderBy("sort"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 获取当前用户的所有二级菜单 | 
|---|
|  |  |  | user = userService.selectById(getUserId()); | 
|---|
|  |  |  | List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", user.getRoleId())); | 
|---|
|  |  |  | List<Long> resourceIds = new ArrayList<>(); | 
|---|
|  |  |  | roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId())); | 
|---|
|  |  |  | if (resourceIds.isEmpty()){ | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | resourceWrapper = new EntityWrapper<Resource>().in("id", resourceIds).eq("level", 2).eq("status", 1).orderBy("sort"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Resource> twoLevel = resourceService.selectList(resourceWrapper); | 
|---|
|  |  |  | List<Map<String, Object>> result = new ArrayList<>(); | 
|---|
|  |  |  | for (Resource menu : oneLevel) { | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | List<Resource> subMenu = new ArrayList<>(); | 
|---|
|  |  |  | Iterator<Resource> iterator = twoLevel.iterator(); | 
|---|
|  |  |  | while (iterator.hasNext()) { | 
|---|
|  |  |  | Resource resource = iterator.next(); | 
|---|
|  |  |  | if (resource.getResourceId() != null && resource.getResourceId().equals(menu.getId())) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 是否拥有查看权限 | 
|---|
|  |  |  | if (getUserId() != 9527) { | 
|---|
|  |  |  | Resource view = resourceService.selectOne(new EntityWrapper<Resource>().eq("resource_id", resource.getId()).like("code", "view")); | 
|---|
|  |  |  | if (!Cools.isEmpty(view)){ | 
|---|
|  |  |  | RoleResource param = new RoleResource(); | 
|---|
|  |  |  | param.setResourceId(view.getId()); | 
|---|
|  |  |  | param.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | if (null == roleResourceService.selectOne(new EntityWrapper<>(param))){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | subMenu.add(resource); | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (subMenu.isEmpty()) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | map.put("menuId", menu.getId()); | 
|---|
|  |  |  | map.put("menuCode", menu.getCode()); | 
|---|
|  |  |  | map.put("menu", menu.getName()); | 
|---|
|  |  |  | map.put("subMenu", subMenu); | 
|---|
|  |  |  | result.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(result); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    @RequestMapping("/menu/auth") | 
|---|
|  |  |  | //    @ManagerAuth | 
|---|
|  |  |  | //    public R menu(){ | 
|---|
|  |  |  | //        // 获取所有一级菜单 | 
|---|
|  |  |  | //        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())); | 
|---|
|  |  |  | //            List<Long> resourceIds = new ArrayList<>(); | 
|---|
|  |  |  | //            roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId())); | 
|---|
|  |  |  | //            if (resourceIds.isEmpty()){ | 
|---|
|  |  |  | //                return R.ok(); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            resourceWrapper = new EntityWrapper<Resource>().in("id", resourceIds).eq("level", 2).eq("status", 1).orderBy("sort"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        List<Resource> twoLevel = resourceService.selectList(resourceWrapper); | 
|---|
|  |  |  | //        List<Map<String, Object>> result = new ArrayList<>(); | 
|---|
|  |  |  | //        for (Resource menu : oneLevel) { | 
|---|
|  |  |  | //            Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | //            List<Resource> subMenu = new ArrayList<>(); | 
|---|
|  |  |  | //            Iterator<Resource> iterator = twoLevel.iterator(); | 
|---|
|  |  |  | //            while (iterator.hasNext()) { | 
|---|
|  |  |  | //                Resource resource = iterator.next(); | 
|---|
|  |  |  | //                if (resource.getResourceId() != null && resource.getResourceId().equals(menu.getId())) { | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                    // 是否拥有查看权限 | 
|---|
|  |  |  | //                    if (getUserId() != 9527) { | 
|---|
|  |  |  | //                        Resource view = resourceService.selectOne(new EntityWrapper<Resource>().eq("resource_id", resource.getId()).like("code", "#view")); | 
|---|
|  |  |  | //                        if (!Cools.isEmpty(view)){ | 
|---|
|  |  |  | //                            RoleResource param = new RoleResource(); | 
|---|
|  |  |  | //                            param.setResourceId(view.getId()); | 
|---|
|  |  |  | //                            param.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | //                            if (null == roleResourceService.selectOne(new EntityWrapper<>(param))){ | 
|---|
|  |  |  | //                                continue; | 
|---|
|  |  |  | //                            } | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | //                    } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                    subMenu.add(resource); | 
|---|
|  |  |  | //                    iterator.remove(); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (subMenu.isEmpty()) { | 
|---|
|  |  |  | //                continue; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            map.put("menuId", menu.getId()); | 
|---|
|  |  |  | //            map.put("menuCode", menu.getCode()); | 
|---|
|  |  |  | //            map.put("menuIcon", HtmlNavIconType.get(menu.getCode())); | 
|---|
|  |  |  | //            map.put("menu", menu.getName()); | 
|---|
|  |  |  | //            map.put("subMenu", subMenu); | 
|---|
|  |  |  | //            result.add(map); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        return R.ok(result); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/power/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|