From c84a58af50fc2a966b8fd2420a1c26bb0ef3a916 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 목, 02 12월 2021 20:45:26 +0900 Subject: [PATCH] 이슈 타입에 따라 프로젝트 선택 변경 --- src/main/java/kr/wisestone/owl/vo/UserVo.java | 9 +++ src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | 24 ++++++++ src/main/resources/migration/V1_9__Alter_Table.sql | 1 src/main/java/kr/wisestone/owl/domain/User.java | 9 +++ src/main/java/kr/wisestone/owl/web/controller/UserController.java | 13 ++++ src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java | 12 ++++ src/main/webapp/scripts/app/common/common.controller.js | 41 +++++++++++++ src/main/java/kr/wisestone/owl/web/form/UserForm.java | 9 +++ src/main/java/kr/wisestone/owl/service/UserService.java | 2 src/main/webapp/scripts/components/user/user.service.js | 6 ++ src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | 1 11 files changed, 125 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/domain/User.java b/src/main/java/kr/wisestone/owl/domain/User.java index d3efd00..dd8ccc7 100644 --- a/src/main/java/kr/wisestone/owl/domain/User.java +++ b/src/main/java/kr/wisestone/owl/domain/User.java @@ -36,6 +36,7 @@ private SocialType socialType; private Long lastWorkspaceId; private Long lastProjectId; + private Long lastIssueTypeId; private Date lastLoginDate; private String reservationNotifyTime; // �씠硫붿씪 �븣由� �떆媛� �삁�젙 private String language; @@ -162,6 +163,14 @@ this.lastProjectId = lastProjectId; } + public Long getLastIssueTypeId() { + return lastIssueTypeId; + } + + public void setLastIssueTypeId(Long lastIssueTypeId) { + this.lastIssueTypeId = lastIssueTypeId; + } + public String getAwsKey() { return awsKey; } diff --git a/src/main/java/kr/wisestone/owl/service/UserService.java b/src/main/java/kr/wisestone/owl/service/UserService.java index fc41945..cefe199 100644 --- a/src/main/java/kr/wisestone/owl/service/UserService.java +++ b/src/main/java/kr/wisestone/owl/service/UserService.java @@ -50,6 +50,8 @@ void updateLastProject(Map<String, Object> resJsonData, UserForm userForm); + void updateLastIssueType(Map<String, Object> resJsonData, UserForm userForm); + void updateLastMyWorkspace(User user); void findProjectMember(Map<String, Object> resJsonData, UserCondition userCondition); diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java index 68b8a8c..1e14323 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java @@ -173,6 +173,7 @@ condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); condition.setPageSize(pageable.getPageSize()); condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); + List<Map<String, Object>> results = this.issueTypeMapper.find(condition); Long totalCount = this.issueTypeMapper.count(condition); int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java index 0001712..5cf3422 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java @@ -1064,6 +1064,30 @@ resJsonData.put(Constants.RES_KEY_CONTENTS, userVo); } + // 留덉�留됱쑝濡� �꽑�깮�븳 �씠�뒋 ���엯 �젙蹂대�� ���옣�븳�떎. + @Override + @Transactional + public void updateLastIssueType(Map<String, Object> resJsonData, UserForm userForm) { + User user = this.getUser(this.webAppUtil.getLoginId()); + + if (userForm.getLastIssueTypeId() != null) { + user.setLastIssueTypeId(userForm.getLastIssueTypeId()); + } + + this.userRepository.saveAndFlush(user); + // �꽭�뀡 �뾽�뜲�씠�듃 + SecurityUtils.setUserToSession(user); + // �겢�씪�씠�뼵�듃�쓽 �궗�슜�옄 �젙蹂� �뾽�뜲�씠�듃 + UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password"); + + if (user.getSocialType() != null) { + userVo.setSocialType(user.getSocialType().toString()); + } + + userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); + + resJsonData.put(Constants.RES_KEY_CONTENTS, userVo); + } // �듅�젙 �븘�씠�뵒�뿉 �빐�떦�븯�뒗 �궗�슜�옄 紐⑸줉�쓣 媛��졇�삩�떎. @Override @Transactional(readOnly = true) diff --git a/src/main/java/kr/wisestone/owl/vo/UserVo.java b/src/main/java/kr/wisestone/owl/vo/UserVo.java index 71bf358..574694e 100644 --- a/src/main/java/kr/wisestone/owl/vo/UserVo.java +++ b/src/main/java/kr/wisestone/owl/vo/UserVo.java @@ -20,6 +20,7 @@ private String socialType; private Long lastWorkspaceId; private Long lastProjectId; + private Long lastIssueTypeId; private Long departmentId; private Boolean userSocialLogin = Boolean.FALSE; private List<ProjectVo> projectVos = Lists.newArrayList(); @@ -191,6 +192,14 @@ this.sessionActiveTime = sessionActiveTime; } + public Long getLastIssueTypeId() { + return lastIssueTypeId; + } + + public void setLastIssueTypeId(Long lastIssueTypeId) { + this.lastIssueTypeId = lastIssueTypeId; + } + public Long getLastProjectId() { return lastProjectId; } diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java index a366fa2..772eded 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java @@ -1,8 +1,10 @@ package kr.wisestone.owl.web.condition; +import com.google.common.collect.Lists; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; +import java.util.List; import java.util.Map; /** @@ -24,6 +26,8 @@ private String startDate; private String endDate; + + private List<Long> projectIds = Lists.newArrayList(); public IssueTypeCondition(){} @@ -138,4 +142,12 @@ public void setEndDate(String endDate) { this.endDate = endDate; } + + public List<Long> getProjectIds() { + return projectIds; + } + + public void setProjectIds(List<Long> projectIds) { + this.projectIds = projectIds; + } } diff --git a/src/main/java/kr/wisestone/owl/web/controller/UserController.java b/src/main/java/kr/wisestone/owl/web/controller/UserController.java index 3084944..0cefa21 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/UserController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/UserController.java @@ -181,6 +181,19 @@ return this.setSuccessMessage(resJsonData); } + // �궗�슜�옄�쓽 留덉�留� �젒洹� �씠�뒋 �쑀�삎 �젙蹂� �뾽�뜲�씠�듃 + @RequestMapping(value = "/user/updateLastIssueType", method = RequestMethod.POST) + public + @ResponseBody + Map<String, Object> updateLastIssueType(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.userService.updateLastIssueType(resJsonData, UserForm.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �씪諛� �궗�슜�옄 紐⑸줉 議고쉶 @RequestMapping(value = "/user/findProjectMember", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) public diff --git a/src/main/java/kr/wisestone/owl/web/form/UserForm.java b/src/main/java/kr/wisestone/owl/web/form/UserForm.java index 06d0a08..8e92ff6 100644 --- a/src/main/java/kr/wisestone/owl/web/form/UserForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/UserForm.java @@ -23,6 +23,7 @@ private String socialType; private Long lastWorkspaceId; private Long lastProjectId; + private Long lastIssueTypeId; private String reservationNotifyTime; private String language; private String licensekey; @@ -177,4 +178,12 @@ public void setLicensekey(String licensekey) { this.licensekey = licensekey; } + + public Long getLastIssueTypeId() { + return lastIssueTypeId; + } + + public void setLastIssueTypeId(Long lastIssueTypeId) { + this.lastIssueTypeId = lastIssueTypeId; + } } diff --git a/src/main/resources/migration/V1_9__Alter_Table.sql b/src/main/resources/migration/V1_9__Alter_Table.sql index 4217a77..d11ac0e 100644 --- a/src/main/resources/migration/V1_9__Alter_Table.sql +++ b/src/main/resources/migration/V1_9__Alter_Table.sql @@ -24,6 +24,7 @@ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ALTER TABLE `user` ADD COLUMN `last_project_id` bigint(20) NULL DEFAULT '0'; +ALTER TABLE `user` ADD COLUMN `last_issue_type_id` bigint(20) NULL DEFAULT '0'; ALTER TABLE `user` ADD COLUMN `last_login_date` TIMESTAMP NULL; ALTER TABLE `issue` ADD COLUMN `workflow_status_id` bigint(20) NULL DEFAULT NULL; diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js index 741b63a..1750d6d 100644 --- a/src/main/webapp/scripts/app/common/common.controller.js +++ b/src/main/webapp/scripts/app/common/common.controller.js @@ -22,7 +22,8 @@ sendMessage: sendMessage, moveMenu : moveMenu, findIssueList : findIssueList, // �궗�씠�뱶諛� �씠�뒋 紐⑸줉 媛��졇�삤湲� - changeIssueListMenu : changeIssueListMenu + changeIssueListMenu : changeIssueListMenu, + setLastIssueType : setLastIssueType }; $scope.vm = { @@ -48,6 +49,19 @@ findAllWorkproject(); }); + function setLastIssueType() { + if (User != null) { + User.updateLastIssueType($resourceProvider.getContent( + {lastIssueTypeId: $rootScope.getCurrentIssueTypeId()}, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + + } + }); + } + } + function changeIssueListMenu(issueTypeId) { $rootScope.issueTypeMenu = null; for (var issueType of $rootScope.workIssueTypes) { @@ -56,6 +70,7 @@ break; } } + // sidebar �겢由��떆 �봽濡쒖젥�듃 �븘�씠�뵒 �꽕�젙 $rootScope.changeLastProject($rootScope.issueTypeMenu.projectVo.id); @@ -64,6 +79,11 @@ } $rootScope.$broadcast("changeIssueListMenu", $rootScope.issueTypeMenu); + + if ($rootScope.user.lastIssueTypeId !== issueTypeId) { + $scope.fn.setLastIssueType(issueTypeId); + } + } function moveMenu(stateName) { @@ -222,12 +242,28 @@ useProject : true, deep : "01" // �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �썙�겕�뵆濡쒖슦 �젙蹂대�� 李얜뒗�떎. } - IssueType.find($resourceProvider.getContent(conditions, $resourceProvider.getPageContent(0, 100))).then(function (result) { if (result.data.message.status === "success") { $rootScope.workIssueTypes = result.data.data; + + if ($rootScope.workIssueTypes != null && $rootScope.workIssueTypes.length > 0) { + $rootScope.workIssueTypes.forEach(function (issueType) { + + var selectIssueTypeId = null; + if (issueType.id === $rootScope.user.lastIssueTypeId) { + selectIssueTypeId = issueType.id; + $scope.fn.changeIssueListMenu(issueType.id); + } + + if (selectIssueTypeId == null) { + $scope.fn.changeIssueListMenu($rootScope.workIssueTypes[0].id); + } + }); + } else { + $state.go('dashboards.dashboard'); + } } else { SweetAlert.error($filter("translate")("managementType.failedToIssueTypeList"), result.data.message.message); // "�씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣" @@ -250,6 +286,7 @@ if (result.data.message.status === "success") { $rootScope.user = result.data.data; + $rootScope.setCurrentIssueTypeId() $state.go($state.current, {}, {reload: true}); if ($state.current.name === "dashboards.dashboard") { diff --git a/src/main/webapp/scripts/components/user/user.service.js b/src/main/webapp/scripts/components/user/user.service.js index b9fac63..f6f321b 100644 --- a/src/main/webapp/scripts/components/user/user.service.js +++ b/src/main/webapp/scripts/components/user/user.service.js @@ -40,6 +40,12 @@ return response; }); }, + updateLastIssueType : function (conditions) { + return $http.post("user/updateLastIssueType", conditions).then(function (response) { + $log.debug("�궗�슜�옄媛� 留덉�留됱쑝濡� �꽑�깮�븳 �씠�뒋 �쑀�삎 : ", response); + return response; + }); + }, find : function (conditions) { return $http.post("user/find", conditions).then(function (response) { $log.debug("�궗�슜�옄 紐⑸줉 �뜲�씠�꽣 : ", response); -- Gitblit v1.8.0