From 41283d9939fdc67b119039e0080c761d4c572572 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Wed, 21 Aug 2019 16:54:11 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E7=B3=BB=E7=BB=9F=E5=8A=9F=E8=83=BD?= =?utf8?q?=E5=BC=80=E5=8F=91=EF=BC=8C=E5=B8=90=E5=8F=B7=E3=80=81=E7=94=A8?= =?utf8?q?=E6=88=B7=E7=BB=84=E3=80=81=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../api/v1/admin/AdminAccountController.java | 561 ++++++++++++++++++ .../api/v1/admin/AdminConfigController.java | 9 +- .../api/v1/admin/AdminRoleController.java | 265 +++++++++ .../api/vo/request/AccountCreateRequest.java | 21 + .../api/vo/request/AccountQueryRequest.java | 40 ++ .../request/AccountRelateGroupsRequest.java | 22 + .../vo/request/AccountRelateRolesRequest.java | 22 + .../request/AccountRelatedGroupsRequest.java | 40 ++ .../request/AccountRelatedRolesRequest.java | 40 ++ .../api/vo/request/AccountUpdateRequest.java | 28 + .../api/vo/request/RoleCreateRequest.java | 21 + .../api/vo/request/RoleQueryRequest.java | 40 ++ .../vo/request/RoleRelateAccountsRequest.java | 22 + .../vo/request/RoleRelateGroupsRequest.java | 22 + .../request/RoleRelatedAccountsRequest.java | 40 ++ .../vo/request/RoleRelatedGroupsRequest.java | 40 ++ .../api/vo/request/RoleUpdateRequest.java | 28 + .../response/AccountCreateResponseData.java | 33 ++ .../vo/response/AccountLoadResponseData.java | 33 ++ .../vo/response/AccountQueryResponseData.java | 80 +++ .../AccountRelateGroupsResponseData.java | 29 + .../AccountRelateRolesResponseData.java | 29 + .../AccountRelatedGroupsResponseData.java | 80 +++ .../AccountRelatedRolesResponseData.java | 80 +++ .../response/AccountRemoveResponseData.java | 34 ++ .../response/AccountUpdateResponseData.java | 34 ++ .../vo/response/ConfigRemoveResponseData.java | 3 - .../vo/response/RoleCreateResponseData.java | 33 ++ .../api/vo/response/RoleLoadResponseData.java | 33 ++ .../vo/response/RoleQueryResponseData.java | 80 +++ .../RoleRelateAccountsResponseData.java | 29 + .../RoleRelateGroupsResponseData.java | 29 + .../RoleRelatedAccountsResponseData.java | 80 +++ .../RoleRelatedGroupsResponseData.java | 80 +++ .../vo/response/RoleRemoveResponseData.java | 34 ++ .../vo/response/RoleUpdateResponseData.java | 34 ++ .../backend/system/domain/entity/Account.java | 154 +++++ .../system/domain/entity/AccountGroup.java | 46 ++ .../system/domain/entity/AccountRole.java | 46 ++ .../backend/system/domain/entity/Group.java | 74 +++ .../system/domain/entity/GroupRole.java | 46 ++ .../backend/system/domain/entity/Role.java | 74 +++ .../domain/repo/AccountGroupRepository.java | 191 ++++++ .../system/domain/repo/AccountRepository.java | 115 ++++ .../domain/repo/AccountRoleRepository.java | 191 ++++++ .../system/domain/repo/GroupRepository.java | 41 ++ .../domain/repo/GroupRoleRepository.java | 191 ++++++ .../system/domain/repo/RoleRepository.java | 93 +++ .../system/domain/service/AccountService.java | 172 ++++++ .../system/domain/service/ConfigService.java | 6 +- .../system/domain/service/GroupService.java | 19 + .../system/domain/service/RoleService.java | 171 ++++++ 52 files changed, 3748 insertions(+), 10 deletions(-) create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountCreateRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountQueryRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateGroupsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateRolesRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedGroupsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedRolesRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountUpdateRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleCreateRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleQueryRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateAccountsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateGroupsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedAccountsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedGroupsRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleUpdateRequest.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountCreateResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountLoadResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountQueryResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateGroupsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateRolesResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedGroupsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedRolesResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRemoveResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountUpdateResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleCreateResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleLoadResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleQueryResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateAccountsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateGroupsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedAccountsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedGroupsResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRemoveResponseData.java create mode 100644 system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleUpdateResponseData.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Account.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountGroup.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountRole.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Group.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/GroupRole.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Role.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountGroupRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRoleRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRoleRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/RoleRepository.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/AccountService.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/GroupService.java create mode 100644 system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/RoleService.java diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminAccountController.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminAccountController.java index d23f7c9..0d5f4d6 100644 --- a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminAccountController.java +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminAccountController.java @@ -1,5 +1,566 @@ package com.supwisdom.institute.backend.system.api.v1.admin; +import java.util.HashMap; + +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.http.HttpStatus; +import org.springframework.util.MimeTypeUtils; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; +import com.supwisdom.institute.backend.system.api.vo.request.AccountCreateRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountQueryRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountRelateGroupsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountRelateRolesRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountRelatedGroupsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountRelatedRolesRequest; +import com.supwisdom.institute.backend.system.api.vo.request.AccountUpdateRequest; +import com.supwisdom.institute.backend.system.api.vo.response.AccountCreateResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountLoadResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountQueryResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountRelateGroupsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountRelateRolesResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountRelatedGroupsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountRelatedRolesResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountRemoveResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.AccountUpdateResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; +import com.supwisdom.institute.backend.system.domain.entity.AccountGroup; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; +import com.supwisdom.institute.backend.system.domain.service.AccountService; + +@Api(value = "SystemAdminAccount", tags = { "SystemAdminAccount" }, description = "帐号的操作接口") +@Slf4j +@RestController +@RequestMapping("/v1/admin/accounts") public class AdminAccountController { + + @Autowired + private AccountService accountService; + + /** + * + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts?pageIndex=2&pageSize=50' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts?pageIndex=0&pageSize=20&mapBean[username]=username&mapBean[name]=name&mapBean[status]=1' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts?pageIndex=0&pageSize=20&mapBean[username]=username&mapBean[name]=name&mapBean[status]=0' + * + * response success: + * + *
+   * {
+   *   "pageIndex":0,
+   *   "pageSize":20,
+   *   "mapBean":null,
+   *   "pageCount":1,
+   *   "recordCount":1,
+   *   "items":[
+   *     {
+   *       "id":"ff80808164feb8990164feba0de50000",
+   *       "companyId":"1",
+   *       "deleted":false,
+   *       "addAccount":"account","addTime":"2018-08-03T07:39:23.000+0000",
+   *       "editAccount":null,"editTime":null,
+   *       "deleteAccount":null,"deleteTime":null,
+   *       "accountname":"test001",
+   *       "password":"test001",
+   *       "enabled":true,
+   *       "accountNonExpired":true,
+   *       "accountNonLocked":true,
+   *       "credentialsNonExpired":true,
+   *       "name":"测试001",
+   *       "status":"1",
+   *       "mobile":null,
+   *       "email":null
+   *     }
+   *   ]
+   * }
+   * 
+ * + * response error 401: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:48:25.777+0000",
+   *   "status":401,
+   *   "error":"Http Status 401",
+   *   "message":"Unauthorized",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * @param pagerRequestModel + * @return + */ + @GetMapping(produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse query(AccountQueryRequest queryRequest) { + + Page page = accountService.selectPageList( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy()); + + AccountQueryResponseData data = AccountQueryResponseData.of(queryRequest).build(page); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1' + * + * response success: + * + *
+   * {
+   *   "id":"ff80808164feb8990164feba0de50000",
+   *   "companyId":"1",
+   *   "deleted":false,
+   *   "addAccount":"account","addTime":"2018-08-03T07:39:23.000+0000",
+   *   "editAccount":null,"editTime":null,
+   *   "deleteAccount":null,"deleteTime":null,
+   *   "username":"test001",
+   *   "password":"test001",
+   *   "enabled":true,
+   *   "accountNonExpired":true,
+   *   "accountNonLocked":true,
+   *   "credentialsNonExpired":true,
+   *   "name":"测试001",
+   *   "status":"1",
+   *   "mobile":null,
+   *   "email":null
+   * }
+   * 
+ * + * response error 401: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:43:26.080+0000",
+   *   "status":401,
+   *   "error":"Http Status 401",
+   *   "message":"Unauthorized",
+   *   "path":"/api/v1/admin/accounts/ff80808164fecf640164fed269480000"
+   * }
+   * 
+ * + * response error 500: + * + *
+   * {
+   *   "timestamp":"2018-08-03T07:44:07.963+0000",
+   *   "status":500,
+   *   "error":"Internal Server Error",
+   *   "exception":"java.lang.RuntimeException",
+   *   "message":"exception.get.domain.not.exist",
+   *   "path":"/api/v1/admin/accounts/1"
+   * }
+   * 
+ * + * @param id + * @return + */ + @GetMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse load(@PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Account account = accountService.selectById(id); + + if (account == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + AccountLoadResponseData data = AccountLoadResponseData.of(account); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts' \ + * -d '{"accountname":"test001","password":"test001","enabled":true,"accountNonExpired":true,"accountNonLocked":true,"credentialsNonExpired":true,"name":"测试001","status":"1"}' + * + * response success: + * + *
+   * {
+   *   "success":"info.create.success"
+   * }
+   * 
+ * + * response error 401: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:48:25.777+0000",
+   *   "status":401,
+   *   "error":"Http Status 401",
+   *   "message":"Unauthorized",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * response error: // FIXME: save error + * + *
+   * {
+   *   "timestamp":"2018-08-03T07:45:43.436+0000",
+   *   "status":500,
+   *   "error":"Internal Server Error",
+   *   "exception":"org.springframework.dao.DataIntegrityViolationException",
+   *   "message":"could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * @param account + * @return + */ + @PostMapping(consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse create( + @RequestBody AccountCreateRequest createRequest) { + + // FIXME: 验证数据有效性 + + Account account = createRequest.getEntity(); + + if (account.getPassword() !=null && account.getPassword().length() > 0 && !account.getPassword().startsWith("{")) { + //account.setPassword(passwordEncoder.encode(account.getPassword())); + } + + Account ret = accountService.insert(account); + + AccountCreateResponseData data = AccountCreateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X PUT -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts' \ + * -d '{"id":"1","status":"0"}' + * + * response success: + * + *
+   * {
+   *   "success":"info.update.success"
+   * }
+   * 
+ * + * response error 401: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:48:25.777+0000",
+   *   "status":401,
+   *   "error":"Http Status 401",
+   *   "message":"Unauthorized",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * curl -i -s -X PUT -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts' \ + * -d '{"status":"0"}' + * + * response error: + * + *
+   * {
+   *   "timestamp":"2018-08-03T07:50:52.327+0000",
+   *   "status":500,
+   *   "error":"Internal Server Error",
+   *   "exception":"java.lang.RuntimeException",
+   *   "message":"exception.update.id.must.not.empty",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * curl -i -s -X PUT -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts' \ + * -d '{"id":"1","status":"0"}' + * + * response error: + * + *
+   * {
+   *   "timestamp":"2018-08-03T07:48:24.774+0000",
+   *   "status":500,
+   *   "error":"Internal Server Error",
+   *   "exception":"java.lang.RuntimeException",
+   *   "message":"exception.update.domain.not.exist",
+   *   "path":"/api/v1/admin/accounts"
+   * }
+   * 
+ * + * @param account + * @return + */ + @PutMapping(path = "/{id}", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse update( + @PathVariable("id") String id, + @RequestBody AccountUpdateRequest updateRequest) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.update.id.must.not.empty"); + } + + Account tmp = accountService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.update.domain.not.exist"); + } + + Account account = updateRequest.getEntity(); + account.setId(id); + + if (account.getPassword() !=null && account.getPassword().length() > 0 && !account.getPassword().startsWith("{")) { + //account.setPassword(passwordEncoder.encode(account.getPassword())); + } + + account = EntityUtils.merge(tmp, account); + + Account ret = accountService.update(account); + + AccountUpdateResponseData data = AccountUpdateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + + /** + * + * curl -i -s -X DELETE -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1' + * + * response success: + * + *
+   * {
+   *   "success":"info.delete.success"
+   * }
+   * 
+ * + * response error 401: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:48:25.777+0000",
+   *   "status":401,
+   *   "error":"Http Status 401",
+   *   "message":"Unauthorized",
+   *   "path":"/api/v1/admin/accounts/1"
+   * }
+   * 
+ * + * response error 500: + * + *
+   * {
+   *   "timestamp":"2018-08-03T08:03:16.364+0000",
+   *   "status":500,
+   *   "error":"Internal Server Error",
+   *   "exception":"java.lang.RuntimeException",
+   *   "message":"exception.delete.domain.not.exist",
+   *   "path":"/api/v1/admin/accounts/1"
+   * }
+   * 
+ * + * @param id + * @return + */ + @DeleteMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse delete( + @PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.delete.id.must.not.empty"); // FIXME: RestException + } + + Account tmp = accountService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.delete.domain.not.exist"); // FIXME: RestException + } + + accountService.deleteById(id); + + AccountRemoveResponseData data = AccountRemoveResponseData.build(tmp); + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/groups' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/groups?pageIndex=2&pageSize=50' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/groups?pageIndex=0&pageSize=20&mapBean[groupCode]=groupCode&mapBean[groupName]=groupName' + * + * + * + * @param id + * @param pagerRequestModel + * @return + */ + @RequestMapping(method = RequestMethod.GET, path = "/{id}/groups", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse accountGroups( + @PathVariable("id") String id, + AccountRelatedGroupsRequest request) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Account account = accountService.selectById(id); + + if (account == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + if (request.getMapBean() == null) { + request.setMapBean(new HashMap()); + } + request.getMapBean().put("accountId", account.getId()); + + Page page = accountService.selectAccountGroups(request.getPageIndex(), + request.getPageSize(), request.getMapBean()); + + AccountRelatedGroupsResponseData data = AccountRelatedGroupsResponseData.of(request).build(page); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/groups' \ + * -d '{"groupAccounts":[{"groupId":"1"},{"groupId":"2"}]}' + * + * + * @param id + * @param groupAccounts + * @return + */ + @RequestMapping(method = RequestMethod.POST, path = "/{id}/groups", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse relateGroups( + @PathVariable("id") String id, + @RequestBody AccountRelateGroupsRequest accountGroups) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Account tmp = accountService.selectById(id); + + if (tmp == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + accountService.relateAccountGroups(tmp, accountGroups.getAccountGroups()); + + AccountRelateGroupsResponseData data = AccountRelateGroupsResponseData.of("info.relate.success"); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/roles' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/roles?pageIndex=2&pageSize=50' + * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/roles?pageIndex=0&pageSize=20&mapBean[roleCode]=roleCode&mapBean[roleName]=roleName' + * + * + * + * @param id + * @param pagerRequestModel + * @return + */ + @RequestMapping(method = RequestMethod.GET, path = "/{id}/roles", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse accountRoles( + @PathVariable("id") String id, + AccountRelatedRolesRequest request) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Account account = accountService.selectById(id); + + if (account == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + if (request.getMapBean() == null) { + request.setMapBean(new HashMap()); + } + request.getMapBean().put("accountId", account.getId()); + + Page page = accountService.selectAccountRoles(request.getPageIndex(), + request.getPageSize(), request.getMapBean()); + + AccountRelatedRolesResponseData data = AccountRelatedRolesResponseData.of(request).build(page); + + return new DefaultApiResponse(data); + } + + /** + * + * curl -i -s -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' 'http://localhost:8081/api/v1/admin/accounts/1/roles' \ + * -d '{"accountRoles":[{"roleId":"1"},{"roleId":"2"}]}' + * + * + * @param id + * @param accountRoles + * @return + */ + @RequestMapping(method = RequestMethod.POST, path = "/{id}/roles", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse relateRoles( + @PathVariable("id") String id, + @RequestBody AccountRelateRolesRequest accountRoles) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Account account = accountService.selectById(id); + + if (account == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + accountService.relateAccountRoles(account, accountRoles.getAccountRoles()); + + AccountRelateRolesResponseData data = AccountRelateRolesResponseData.of("info.relate.success"); + + return new DefaultApiResponse(data); + } } diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminConfigController.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminConfigController.java index b67493a..10a5c64 100644 --- a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminConfigController.java +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminConfigController.java @@ -131,13 +131,11 @@ public class AdminConfigController { @PathVariable("id") String id, @RequestBody ConfigUpdateRequest configUpdateRequest) { - Config entity = configUpdateRequest.getEntity(); - - if (entity.getId() == null || entity.getId().length() == 0) { + if (id == null || id.length() == 0) { throw new ConfigException().newInstance("exception.update.id.must.not.empty"); } - Config tmp = configService.selectById(entity.getId()); + Config tmp = configService.selectById(id); if (tmp == null) { throw new ConfigException().newInstance("exception.update.domain.not.exist"); } @@ -146,6 +144,9 @@ public class AdminConfigController { throw new ConfigException().newInstance("exception.editable.can.not.update"); } + Config entity = configUpdateRequest.getEntity(); + entity.setId(id); + entity = EntityUtils.merge(tmp, entity); // if (tmp.getEditable().booleanValue() != entity.getEditable().booleanValue()) { diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminRoleController.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminRoleController.java index 4a7a517..34fb317 100644 --- a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminRoleController.java +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/v1/admin/AdminRoleController.java @@ -1,5 +1,270 @@ package com.supwisdom.institute.backend.system.api.v1.admin; +import java.util.HashMap; + +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.http.HttpStatus; +import org.springframework.util.MimeTypeUtils; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; +import com.supwisdom.institute.backend.system.api.vo.request.RoleCreateRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleRelateAccountsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleRelateGroupsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleRelatedAccountsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleRelatedGroupsRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleUpdateRequest; +import com.supwisdom.institute.backend.system.api.vo.request.RoleQueryRequest; +import com.supwisdom.institute.backend.system.api.vo.response.RoleCreateResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleLoadResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleRelateAccountsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleRelateGroupsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleRelatedAccountsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleRelatedGroupsResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleRemoveResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleUpdateResponseData; +import com.supwisdom.institute.backend.system.api.vo.response.RoleQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; +import com.supwisdom.institute.backend.system.domain.entity.GroupRole; +import com.supwisdom.institute.backend.system.domain.entity.Role; +import com.supwisdom.institute.backend.system.domain.service.RoleService; + +@Api(value = "SystemAdminRole", tags = { "SystemAdminRole" }, description = "角色的操作接口") +@Slf4j +@RestController +@RequestMapping("/v1/admin/roles") public class AdminRoleController { + @Autowired + private RoleService roleService; + + @GetMapping(produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse query(RoleQueryRequest queryRequest) { + + Page page = roleService.selectPageList( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy()); + + RoleQueryResponseData data = RoleQueryResponseData.of(queryRequest).build(page); + + return new DefaultApiResponse(data); + } + + @GetMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse load(@PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Role role = roleService.selectById(id); + + if (role == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + RoleLoadResponseData data = RoleLoadResponseData.of(role); + + return new DefaultApiResponse(data); + } + + @PostMapping(consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse create( + @RequestBody RoleCreateRequest createRequest) { + + // FIXME: 验证数据有效性 + + Role role = createRequest.getEntity(); + + Role ret = roleService.insert(role); + + RoleCreateResponseData data = RoleCreateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + @PutMapping(path = "/{id}", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse update( + @PathVariable("id") String id, + @RequestBody RoleUpdateRequest updateRequest) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.update.id.must.not.empty"); + } + + Role tmp = roleService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.update.domain.not.exist"); + } + + Role role = updateRequest.getEntity(); + role.setId(id); + + role = EntityUtils.merge(tmp, role); + + Role ret = roleService.update(role); + + RoleUpdateResponseData data = RoleUpdateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + @DeleteMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse delete( + @PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.delete.id.must.not.empty"); // FIXME: RestException + } + + Role tmp = roleService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.delete.domain.not.exist"); // FIXME: RestException + } + + roleService.deleteById(id); + + RoleRemoveResponseData data = RoleRemoveResponseData.build(tmp); + return new DefaultApiResponse(data); + } + + + @RequestMapping(method = RequestMethod.GET, path = "/{id}/accounts", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse roleAccounts( + @PathVariable("id") String id, + RoleRelatedAccountsRequest request) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Role role = roleService.selectById(id); + + if (role == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + if (request.getMapBean() == null) { + request.setMapBean(new HashMap()); + } + request.getMapBean().put("roleId", role.getId()); + + Page page = roleService.selectRoleAccounts( + request.getPageIndex(), + request.getPageSize(), + request.getMapBean()); + + RoleRelatedAccountsResponseData data = RoleRelatedAccountsResponseData.of(request).build(page); + + return new DefaultApiResponse(data); + } + + @RequestMapping(method = RequestMethod.POST, path = "/{id}/accounts", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse relateAccounts( + @PathVariable("id") String id, + @RequestBody RoleRelateAccountsRequest roleAccounts) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Role role = roleService.selectById(id); + + if (role == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + roleService.relateRoleAccounts(role, roleAccounts.getRoleAccounts()); + + RoleRelateAccountsResponseData data = RoleRelateAccountsResponseData.of("info.relate.success"); + + return new DefaultApiResponse(data); + } + + + @RequestMapping(method = RequestMethod.GET, path = "/{id}/groups", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse roleGroups( + @PathVariable("id") String id, + RoleRelatedGroupsRequest request) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Role role = roleService.selectById(id); + + if (role == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + if (request.getMapBean() == null) { + request.setMapBean(new HashMap()); + } + request.getMapBean().put("roleId", role.getId()); + + Page page = roleService.selectRoleGroups( + request.getPageIndex(), + request.getPageSize(), + request.getMapBean()); + + RoleRelatedGroupsResponseData data = RoleRelatedGroupsResponseData.of(request).build(page); + + return new DefaultApiResponse(data); + } + + @RequestMapping(method = RequestMethod.POST, path = "/{id}/groups", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseBody + public DefaultApiResponse relateGroups( + @PathVariable("id") String id, + @RequestBody RoleRelateGroupsRequest accountGroups) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Role role = roleService.selectById(id); + + if (role == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + roleService.relateRoleGroups(role, accountGroups.getRoleGroups()); + + RoleRelateGroupsResponseData data = RoleRelateGroupsResponseData.of("info.relate.success"); + + return new DefaultApiResponse(data); + } + + } diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountCreateRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountCreateRequest.java new file mode 100644 index 0000000..abdd2c1 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountCreateRequest.java @@ -0,0 +1,21 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiCreateRequest; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +/** + * @author loie + */ +public class AccountCreateRequest extends Account implements IApiCreateRequest { + + /** + * + */ + private static final long serialVersionUID = 3708476811446308442L; + + public Account getEntity() { + return EntityUtils.copy(this, new Account()); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountQueryRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountQueryRequest.java new file mode 100644 index 0000000..21e0d5f --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountQueryRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class AccountQueryRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -8594346811904818135L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateGroupsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateGroupsRequest.java new file mode 100644 index 0000000..bc0e913 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateGroupsRequest.java @@ -0,0 +1,22 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiRequest; +import com.supwisdom.institute.backend.system.domain.entity.AccountGroup; + +public class AccountRelateGroupsRequest implements IApiRequest { + + /** + * + */ + private static final long serialVersionUID = 5685421340396797488L; + + @Getter + @Setter + private List accountGroups; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateRolesRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateRolesRequest.java new file mode 100644 index 0000000..7054a7f --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelateRolesRequest.java @@ -0,0 +1,22 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiRequest; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; + +public class AccountRelateRolesRequest implements IApiRequest { + + /** + * + */ + private static final long serialVersionUID = 6612833201128786481L; + + @Getter + @Setter + private List accountRoles; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedGroupsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedGroupsRequest.java new file mode 100644 index 0000000..a6e17a8 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedGroupsRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class AccountRelatedGroupsRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -1998794079137356318L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedRolesRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedRolesRequest.java new file mode 100644 index 0000000..608c5ca --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountRelatedRolesRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class AccountRelatedRolesRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -2118300523470868823L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountUpdateRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountUpdateRequest.java new file mode 100644 index 0000000..64d4e1b --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/AccountUpdateRequest.java @@ -0,0 +1,28 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiUpdateRequest; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class AccountUpdateRequest extends Account implements IApiUpdateRequest { + + /** + * + */ + private static final long serialVersionUID = -7297542338912221083L; + + @Getter + @Setter + private String id; + + public Account getEntity() { + return EntityUtils.copy(this, new Account()); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleCreateRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleCreateRequest.java new file mode 100644 index 0000000..f8dfc33 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleCreateRequest.java @@ -0,0 +1,21 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiCreateRequest; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +/** + * @author loie + */ +public class RoleCreateRequest extends Role implements IApiCreateRequest { + + /** + * + */ + private static final long serialVersionUID = -5891171833738647843L; + + public Role getEntity() { + return EntityUtils.copy(this, new Role()); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleQueryRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleQueryRequest.java new file mode 100644 index 0000000..76a3f9e --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleQueryRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class RoleQueryRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -8717113985995182773L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateAccountsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateAccountsRequest.java new file mode 100644 index 0000000..69a0b4d --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateAccountsRequest.java @@ -0,0 +1,22 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiRequest; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; + +public class RoleRelateAccountsRequest implements IApiRequest { + + /** + * + */ + private static final long serialVersionUID = -7935779803020137819L; + + @Getter + @Setter + private List roleAccounts; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateGroupsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateGroupsRequest.java new file mode 100644 index 0000000..b31c4d2 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelateGroupsRequest.java @@ -0,0 +1,22 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiRequest; +import com.supwisdom.institute.backend.system.domain.entity.GroupRole; + +public class RoleRelateGroupsRequest implements IApiRequest { + + /** + * + */ + private static final long serialVersionUID = 9206282464451171269L; + + @Getter + @Setter + private List roleGroups; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedAccountsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedAccountsRequest.java new file mode 100644 index 0000000..0480258 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedAccountsRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class RoleRelatedAccountsRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -1798385113493396290L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedGroupsRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedGroupsRequest.java new file mode 100644 index 0000000..52126ab --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleRelatedGroupsRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class RoleRelatedGroupsRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = 7253046382409370442L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleUpdateRequest.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleUpdateRequest.java new file mode 100644 index 0000000..b5adc41 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/request/RoleUpdateRequest.java @@ -0,0 +1,28 @@ +package com.supwisdom.institute.backend.system.api.vo.request; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiUpdateRequest; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class RoleUpdateRequest extends Role implements IApiUpdateRequest { + + /** + * + */ + private static final long serialVersionUID = -7272388577177587142L; + + @Getter + @Setter + private String id; + + public Role getEntity() { + return EntityUtils.copy(this, new Role()); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountCreateResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountCreateResponseData.java new file mode 100644 index 0000000..49b5383 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountCreateResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiCreateResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class AccountCreateResponseData extends Account implements IApiCreateResponseData { + + /** + * + */ + private static final long serialVersionUID = -8882701323050726169L; + + @Getter + @Setter + private String id; + + private AccountCreateResponseData() { + + } + + public static AccountCreateResponseData build(Account entity) { + AccountCreateResponseData data = new AccountCreateResponseData(); + + return EntityUtils.copy(entity, data); + } +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountLoadResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountLoadResponseData.java new file mode 100644 index 0000000..d8f2c43 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountLoadResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiLoadResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class AccountLoadResponseData extends Account implements IApiLoadResponseData { + + /** + * + */ + private static final long serialVersionUID = -8236721435440256832L; + + @Getter + @Setter + private String id; + + private AccountLoadResponseData() { + + } + + public static AccountLoadResponseData of(Account entity) { + AccountLoadResponseData data = new AccountLoadResponseData(); + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountQueryResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountQueryResponseData.java new file mode 100644 index 0000000..723dc26 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountQueryResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +/** + * @author loie + */ +public class AccountQueryResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 3949426339318397970L; + + private AccountQueryResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static AccountQueryResponseData of(IApiQueryRequest queryRequest) { + AccountQueryResponseData configQueryResponse = new AccountQueryResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public AccountQueryResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateGroupsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateGroupsResponseData.java new file mode 100644 index 0000000..b1d8b43 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateGroupsResponseData.java @@ -0,0 +1,29 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class AccountRelateGroupsResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -720047649055920794L; + + @Getter + @Setter + private String message; + + public AccountRelateGroupsResponseData(String message) { + this.message = message; + } + + public static AccountRelateGroupsResponseData of(String message) { + AccountRelateGroupsResponseData data = new AccountRelateGroupsResponseData(message); + + return data; + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateRolesResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateRolesResponseData.java new file mode 100644 index 0000000..1d9c932 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelateRolesResponseData.java @@ -0,0 +1,29 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class AccountRelateRolesResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -5011147266134585651L; + + @Getter + @Setter + private String message; + + public AccountRelateRolesResponseData(String message) { + this.message = message; + } + + public static AccountRelateRolesResponseData of(String message) { + AccountRelateRolesResponseData data = new AccountRelateRolesResponseData(message); + + return data; + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedGroupsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedGroupsResponseData.java new file mode 100644 index 0000000..01c9884 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedGroupsResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.AccountGroup; + +/** + * @author loie + */ +public class AccountRelatedGroupsResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 3949426339318397970L; + + private AccountRelatedGroupsResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static AccountRelatedGroupsResponseData of(IApiQueryRequest queryRequest) { + AccountRelatedGroupsResponseData configQueryResponse = new AccountRelatedGroupsResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public AccountRelatedGroupsResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedRolesResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedRolesResponseData.java new file mode 100644 index 0000000..fc6c1c0 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRelatedRolesResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; + +/** + * @author loie + */ +public class AccountRelatedRolesResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 4933467585328478547L; + + private AccountRelatedRolesResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static AccountRelatedRolesResponseData of(IApiQueryRequest queryRequest) { + AccountRelatedRolesResponseData configQueryResponse = new AccountRelatedRolesResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public AccountRelatedRolesResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRemoveResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRemoveResponseData.java new file mode 100644 index 0000000..4d89768 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountRemoveResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiRemoveResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +/** + * @author loie + */ +public class AccountRemoveResponseData implements IApiRemoveResponseData { + + /** + * + */ + private static final long serialVersionUID = 8510464738198696332L; + + @Getter + @Setter + private String id; + + private AccountRemoveResponseData() { + + } + + public static AccountRemoveResponseData build(Account entity) { + AccountRemoveResponseData data = new AccountRemoveResponseData(); + + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountUpdateResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountUpdateResponseData.java new file mode 100644 index 0000000..4b637dc --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/AccountUpdateResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiUpdateResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class AccountUpdateResponseData extends Account implements IApiUpdateResponseData { + + /** + * + */ + private static final long serialVersionUID = -7885193620877829529L; + + @Getter + @Setter + private String id; + + private AccountUpdateResponseData() { + + } + + public static AccountUpdateResponseData build(Account entity) { + AccountUpdateResponseData data = new AccountUpdateResponseData(); + + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/ConfigRemoveResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/ConfigRemoveResponseData.java index d593ed4..26f9a35 100644 --- a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/ConfigRemoveResponseData.java +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/ConfigRemoveResponseData.java @@ -3,8 +3,6 @@ package com.supwisdom.institute.backend.system.api.vo.response; import lombok.Getter; import lombok.Setter; -import javax.persistence.Id; - import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiRemoveResponseData; import com.supwisdom.institute.backend.system.domain.entity.Config; @@ -21,7 +19,6 @@ public class ConfigRemoveResponseData implements IApiRemoveResponseData { @Getter @Setter - @Id private String id; private ConfigRemoveResponseData() { diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleCreateResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleCreateResponseData.java new file mode 100644 index 0000000..7d4ee1c --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleCreateResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiCreateResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class RoleCreateResponseData extends Role implements IApiCreateResponseData { + + /** + * + */ + private static final long serialVersionUID = -6548339240060091209L; + + @Getter + @Setter + private String id; + + private RoleCreateResponseData() { + + } + + public static RoleCreateResponseData build(Role entity) { + RoleCreateResponseData data = new RoleCreateResponseData(); + + return EntityUtils.copy(entity, data); + } +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleLoadResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleLoadResponseData.java new file mode 100644 index 0000000..628920a --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleLoadResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiLoadResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class RoleLoadResponseData extends Role implements IApiLoadResponseData { + + /** + * + */ + private static final long serialVersionUID = 57708002489387653L; + + @Getter + @Setter + private String id; + + private RoleLoadResponseData() { + + } + + public static RoleLoadResponseData of(Role entity) { + RoleLoadResponseData data = new RoleLoadResponseData(); + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleQueryResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleQueryResponseData.java new file mode 100644 index 0000000..83bab25 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleQueryResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +/** + * @author loie + */ +public class RoleQueryResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 2542992897241822185L; + + private RoleQueryResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static RoleQueryResponseData of(IApiQueryRequest queryRequest) { + RoleQueryResponseData configQueryResponse = new RoleQueryResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public RoleQueryResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateAccountsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateAccountsResponseData.java new file mode 100644 index 0000000..5bb6838 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateAccountsResponseData.java @@ -0,0 +1,29 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class RoleRelateAccountsResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -1732402839300368775L; + + @Getter + @Setter + private String message; + + public RoleRelateAccountsResponseData(String message) { + this.message = message; + } + + public static RoleRelateAccountsResponseData of(String message) { + RoleRelateAccountsResponseData data = new RoleRelateAccountsResponseData(message); + + return data; + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateGroupsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateGroupsResponseData.java new file mode 100644 index 0000000..3548655 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelateGroupsResponseData.java @@ -0,0 +1,29 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class RoleRelateGroupsResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -248658847598115689L; + + @Getter + @Setter + private String message; + + public RoleRelateGroupsResponseData(String message) { + this.message = message; + } + + public static RoleRelateGroupsResponseData of(String message) { + RoleRelateGroupsResponseData data = new RoleRelateGroupsResponseData(message); + + return data; + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedAccountsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedAccountsResponseData.java new file mode 100644 index 0000000..eeb44d2 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedAccountsResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; + +/** + * @author loie + */ +public class RoleRelatedAccountsResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 5272966183728979505L; + + private RoleRelatedAccountsResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static RoleRelatedAccountsResponseData of(IApiQueryRequest queryRequest) { + RoleRelatedAccountsResponseData configQueryResponse = new RoleRelatedAccountsResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public RoleRelatedAccountsResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedGroupsResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedGroupsResponseData.java new file mode 100644 index 0000000..7f4865e --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRelatedGroupsResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; +import com.supwisdom.institute.backend.system.domain.entity.GroupRole; + +/** + * @author loie + */ +public class RoleRelatedGroupsResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = -1327331843770679868L; + + private RoleRelatedGroupsResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static RoleRelatedGroupsResponseData of(IApiQueryRequest queryRequest) { + RoleRelatedGroupsResponseData configQueryResponse = new RoleRelatedGroupsResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public RoleRelatedGroupsResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRemoveResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRemoveResponseData.java new file mode 100644 index 0000000..cf7f3ba --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleRemoveResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiRemoveResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +/** + * @author loie + */ +public class RoleRemoveResponseData implements IApiRemoveResponseData { + + /** + * + */ + private static final long serialVersionUID = -2556956704425975795L; + + @Getter + @Setter + private String id; + + private RoleRemoveResponseData() { + + } + + public static RoleRemoveResponseData build(Role entity) { + RoleRemoveResponseData data = new RoleRemoveResponseData(); + + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleUpdateResponseData.java b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleUpdateResponseData.java new file mode 100644 index 0000000..ea2cd26 --- /dev/null +++ b/system/api/src/main/java/com/supwisdom/institute/backend/system/api/vo/response/RoleUpdateResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.system.api.vo.response; + +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiUpdateResponseData; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class RoleUpdateResponseData extends Role implements IApiUpdateResponseData { + + /** + * + */ + private static final long serialVersionUID = -7822437040348157286L; + + @Getter + @Setter + private String id; + + private RoleUpdateResponseData() { + + } + + public static RoleUpdateResponseData build(Role entity) { + RoleUpdateResponseData data = new RoleUpdateResponseData(); + + return EntityUtils.copy(entity, data); + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Account.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Account.java new file mode 100644 index 0000000..71e863f --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Account.java @@ -0,0 +1,154 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_U_ACCOUNT") +public class Account extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = 7955624268022038897L; + + /** + * 用户名 + */ + @Column(name = "USERNAME", unique = true) + private String username; + + /** + * 密码 + */ + @Column(name = "PASSWORD") + private String password; + + /** + * 是否可用,1 可用,0 不可用,默认:1 + */ + @Column(name = "ENABLED") + private Boolean enabled; + /** + * 账号未过期,1 未过期,0 过期,默认:1 + */ + @Column(name = "ACCOUNT_NON_EXPIRED") + private Boolean accountNonExpired; + /** + * 账号未锁定,1 未锁定,0 锁定,默认:1 + */ + @Column(name = "ACCOUNT_NON_LOCKED") + private Boolean accountNonLocked; + /** + * 密码未过期,1 未过期,0 过期,默认:1 + */ + @Column(name = "CREDENTIALS_NON_EXPIRED") + private Boolean credentialsNonExpired; + + /** + * 姓名 + */ + @Column(name = "NAME") + private String name; + + /** + * 状态(1 启用,0 停用) + */ + @Column(name = "STATUS") + private String status; + + /** + * 登录手机 + */ + @Column(name = "MOBILE", nullable = true) + private String mobile; + /** + * 登录邮箱 + */ + @Column(name = "EMAIL", nullable = true) + private String email; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public Boolean getAccountNonExpired() { + return accountNonExpired; + } + + public void setAccountNonExpired(Boolean accountNonExpired) { + this.accountNonExpired = accountNonExpired; + } + + public Boolean getAccountNonLocked() { + return accountNonLocked; + } + + public void setAccountNonLocked(Boolean accountNonLocked) { + this.accountNonLocked = accountNonLocked; + } + + public Boolean getCredentialsNonExpired() { + return credentialsNonExpired; + } + + public void setCredentialsNonExpired(Boolean credentialsNonExpired) { + this.credentialsNonExpired = credentialsNonExpired; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountGroup.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountGroup.java new file mode 100644 index 0000000..f7ae973 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountGroup.java @@ -0,0 +1,46 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_U_ACCOUNT_GROUP") +public class AccountGroup extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = -4239845385965871983L; + + /** + * 帐号ID + */ + @Column(name = "ACCOUNT_ID") + private String accountId; + + /** + * 用户组ID + */ + @Column(name = "GROUP_ID") + private String groupId; + + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountRole.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountRole.java new file mode 100644 index 0000000..a91b367 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/AccountRole.java @@ -0,0 +1,46 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_U_ACCOUNT_ROLE") +public class AccountRole extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = -6158470486381850942L; + + /** + * 帐号ID + */ + @Column(name = "ACCOUNT_ID") + private String accountId; + + /** + * 角色ID + */ + @Column(name = "ROLE_ID") + private String roleId; + + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Group.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Group.java new file mode 100644 index 0000000..d1de8a2 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Group.java @@ -0,0 +1,74 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity(name = "Group_") +@Table(name = "TB_U_GROUP") +public class Group extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = 4260326816456622523L; + + /** + * 代码 + */ + @Column(name = "CODE") + private String code; + + /** + * 名称 + */ + @Column(name = "NAME") + private String name; + + /** + * 备注 + */ + @Column(name = "MEMO") + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + @Column(name = "STATUS") + private String status; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/GroupRole.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/GroupRole.java new file mode 100644 index 0000000..1addd93 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/GroupRole.java @@ -0,0 +1,46 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_U_GROUP_ROLE") +public class GroupRole extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = -3141266845902556712L; + + /** + * 用户组ID + */ + @Column(name = "GROUP_ID") + private String groupId; + + /** + * 角色ID + */ + @Column(name = "ROLE_ID") + private String roleId; + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Role.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Role.java new file mode 100644 index 0000000..d2f57e7 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/entity/Role.java @@ -0,0 +1,74 @@ +package com.supwisdom.institute.backend.system.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_U_ROLE") +public class Role extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = 5470129732727732514L; + + /** + * 代码 + */ + @Column(name = "CODE") + private String code; + + /** + * 名称 + */ + @Column(name = "NAME") + private String name; + + /** + * 备注 + */ + @Column(name = "MEMO") + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + @Column(name = "STATUS") + private String status; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountGroupRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountGroupRepository.java new file mode 100644 index 0000000..e4239ff --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountGroupRepository.java @@ -0,0 +1,191 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Group; +import com.supwisdom.institute.backend.system.domain.entity.Account; +import com.supwisdom.institute.backend.system.domain.entity.AccountGroup; + +@Repository +public interface AccountGroupRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + AccountGroup probe = new AccountGroup(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + public default Page selectAccountGroups(int pageIndex, int pageSize, Map mapBean) { + + AccountGroup probe = new AccountGroup(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = this.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public default void relateAccountGroups(Account account, List accountGroups) { + + List existAccountGroups = this.selectListByAccountId(account.getId()); + + Map existMapAccountGroups = new LinkedHashMap(); + for (AccountGroup accountGroup : existAccountGroups) { + String k = String.format("%s", accountGroup.getGroupId()); + existMapAccountGroups.put(k, accountGroup); + } + + for (AccountGroup accountGroup : accountGroups) { + String k = String.format("%s", accountGroup.getGroupId()); + + if (existMapAccountGroups.containsKey(k)) { + existMapAccountGroups.remove(k); + } else { + accountGroup.setCompanyId(account.getCompanyId()); + accountGroup.setAccountId(account.getId()); + + this.insert(accountGroup); + } + } + + for (AccountGroup accountGroup : existMapAccountGroups.values()) { + this.deleteById(accountGroup.getId()); + } + } + + public default List selectListByAccountId(String accountId) { + + AccountGroup probe = new AccountGroup(); + probe.setAccountId(accountId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountGroups = this.findAll(example); + + return accountGroups; + } + + public default void relateGroupAccounts(Group group, List accountGroups) { + + List existGroupAccounts = this.selectListByGroupId(group.getId()); + + Map existMapGroupAccounts = new LinkedHashMap(); + for (AccountGroup accountGroup : existGroupAccounts) { + String k = String.format("%s", accountGroup.getAccountId()); + existMapGroupAccounts.put(k, accountGroup); + } + + for (AccountGroup accountGroup : accountGroups) { + String k = String.format("%s", accountGroup.getAccountId()); + + if (existMapGroupAccounts.containsKey(k)) { + existMapGroupAccounts.remove(k); + } else { + accountGroup.setCompanyId(group.getCompanyId()); + accountGroup.setGroupId(group.getId()); + + this.insert(accountGroup); + } + } + + for (AccountGroup accountGroup : existMapGroupAccounts.values()) { + this.deleteById(accountGroup.getId()); + } + } + + public default List selectListByGroupId(String groupId) { + + AccountGroup probe = new AccountGroup(); + probe.setGroupId(groupId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountGroups = this.findAll(example); + + return accountGroups; + } + + public default AccountGroup selectOneByAccountGroup(String accountId, String groupId) { + + AccountGroup probe = new AccountGroup(); + probe.setAccountId(accountId); + probe.setGroupId(groupId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + ; + + Example example = Example.of(probe, matcher); + + Optional o = this.findOne(example); + + return o.isPresent() ? o.get() : null; + } + + public default void addAccountGroup(String accountId, String groupId) { + + AccountGroup accountGroup = this.selectOneByAccountGroup(accountId, groupId); + + if (accountGroup == null) { + accountGroup = new AccountGroup(); + //accountGroup.setCompanyId(companyId); + accountGroup.setAccountId(accountId); + accountGroup.setGroupId(groupId); + + this.insert(accountGroup); + } + } + + public default void removeAccountGroup(String accountId, String groupId) { + + AccountGroup accountGroup = this.selectOneByAccountGroup(accountId, groupId); + + if (accountGroup != null) { + this.deleteById(accountGroup.getId()); + } + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRepository.java new file mode 100644 index 0000000..526350f --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRepository.java @@ -0,0 +1,115 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.Map; +import java.util.Optional; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Account; + +@Repository +public interface AccountRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Account probe) { + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("username", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("status", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + Account probe = new Account(); + if (mapBean != null) { + probe.setUsername(MapBeanUtils.getString(mapBean, "username")); + probe.setName(MapBeanUtils.getString(mapBean, "name")); + probe.setStatus(MapBeanUtils.getString(mapBean, "status")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("username", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("status", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + /* + public default User selectById(String id) { + + try { + Optional entity = this.findById(id); + + return entity.get(); + } catch(RuntimeException e) { + System.out.println("RuntimeException:"+e.getMessage()); + } catch(Exception e) { + System.out.println("Exception:"+e.getMessage()); + } + + return null; + } + + public default User insert(User entity) { + + if (entity.getCompanyId() == null || entity.getCompanyId().isEmpty()) { + entity.setCompanyId("1"); + } + + entity.setDeleted(false); + //entity.setAddAccount(AuthUtil.getRemoteUser()); + entity.setAddTime(Calendar.getInstance().getTime()); + + User e = this.save(entity); + + return e; + } + + public default User update(User entity) { + + //entity.setEditAccount(AuthUtil.getRemoteUser()); + entity.setEditTime(Calendar.getInstance().getTime()); + + User e = this.save(entity); + + return e; + } + */ + + public default Account selectByUsername(String username) { + Account probe = new Account(); + probe.setUsername(username); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("username", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + Optional u = this.findOne(example); + + if (u.isPresent()) { + return u.get(); + } + + return null; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRoleRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRoleRepository.java new file mode 100644 index 0000000..822bd9f --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/AccountRoleRepository.java @@ -0,0 +1,191 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Role; +import com.supwisdom.institute.backend.system.domain.entity.Account; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; + +@Repository +public interface AccountRoleRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + + AccountRole probe = new AccountRole(); + if (mapBean != null) { + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + public default Page selectAccountRoles(int pageIndex, int pageSize, Map mapBean) { + + AccountRole probe = new AccountRole(); + if (mapBean != null) { + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = this.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public default void relateAccountRoles(Account account, List accountRoles) { + + List existAccountRoles = this.selectListByAccountId(account.getId()); + + Map existMapAccountRoles = new LinkedHashMap(); + for (AccountRole accountRole : existAccountRoles) { + String k = String.format("%s", accountRole.getRoleId()); + existMapAccountRoles.put(k, accountRole); + } + + for (AccountRole accountRole : accountRoles) { + String k = String.format("%s", accountRole.getRoleId()); + + if (existMapAccountRoles.containsKey(k)) { + existMapAccountRoles.remove(k); + } else { + accountRole.setCompanyId(account.getCompanyId()); + accountRole.setAccountId(account.getId()); + + this.insert(accountRole); + } + } + + for (AccountRole accountRole : existMapAccountRoles.values()) { + this.deleteById(accountRole.getId()); + } + } + + public default List selectListByAccountId(String accountId) { + + AccountRole probe = new AccountRole(); + probe.setAccountId(accountId); + + ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("accountId", + ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountRoles = this.findAll(example); + + return accountRoles; + } + + public default void relateRoleAccounts(Role role, List accountRoles) { + + List existRoleAccounts = this.selectListByRoleId(role.getId()); + + Map existMapRoleAccounts = new LinkedHashMap(); + for (AccountRole accountRole : existRoleAccounts) { + String k = String.format("%s", accountRole.getAccountId()); + existMapRoleAccounts.put(k, accountRole); + } + + for (AccountRole accountRole : accountRoles) { + String k = String.format("%s", accountRole.getAccountId()); + + if (existMapRoleAccounts.containsKey(k)) { + existMapRoleAccounts.remove(k); + } else { + accountRole.setCompanyId(role.getCompanyId()); + accountRole.setRoleId(role.getId()); + + this.insert(accountRole); + } + } + + for (AccountRole accountRole : existMapRoleAccounts.values()) { + this.deleteById(accountRole.getId()); + } + } + + public default List selectListByRoleId(String roleId) { + + AccountRole probe = new AccountRole(); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("roleId", + ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountRoles = this.findAll(example); + + return accountRoles; + } + + public default AccountRole selectOneByAccountRole(String accountId, String roleId) { + + AccountRole probe = new AccountRole(); + probe.setAccountId(accountId); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()) + ; + + Example example = Example.of(probe, matcher); + + Optional o = this.findOne(example); + + return o.isPresent() ? o.get() : null; + } + + public default void addAccountRole(String accountId, String roleId) { + + AccountRole accountRole = this.selectOneByAccountRole(accountId, roleId); + + if (accountRole == null) { + accountRole = new AccountRole(); + //accountRole.setCompanyId(companyId); + accountRole.setAccountId(accountId); + accountRole.setRoleId(roleId); + + this.insert(accountRole); + } + } + + public default void removeAccountRole(String accountId, String roleId) { + + AccountRole accountRole = this.selectOneByAccountRole(accountId, roleId); + + if (accountRole != null) { + this.deleteById(accountRole.getId()); + } + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRepository.java new file mode 100644 index 0000000..ba8607a --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRepository.java @@ -0,0 +1,41 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.Map; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Group; + +@Repository +public interface GroupRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + Group probe = new Group(); + if (mapBean != null) { + probe.setCode(MapBeanUtils.getString(mapBean, "code")); + probe.setName(MapBeanUtils.getString(mapBean, "name")); + probe.setMemo(MapBeanUtils.getString(mapBean, "memo")); + probe.setStatus(MapBeanUtils.getString(mapBean, "status")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("code", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("memo", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("status", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRoleRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRoleRepository.java new file mode 100644 index 0000000..8f0386e --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/GroupRoleRepository.java @@ -0,0 +1,191 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Group; +import com.supwisdom.institute.backend.system.domain.entity.GroupRole; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +@Repository +public interface GroupRoleRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + GroupRole probe = new GroupRole(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + public default Page selectGroupRoles(int pageIndex, int pageSize, Map mapBean) { + + GroupRole probe = new GroupRole(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = this.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public default void relateGroupRoles(Group group, List groupRoles) { + + List existGroupRoles = this.selectListByGroupId(group.getId()); + + Map existMapGroupRoles = new LinkedHashMap(); + for (GroupRole groupRole : existGroupRoles) { + String k = String.format("%s", groupRole.getRoleId()); + existMapGroupRoles.put(k, groupRole); + } + + for (GroupRole groupRole : groupRoles) { + String k = String.format("%s", groupRole.getRoleId()); + + if (existMapGroupRoles.containsKey(k)) { + existMapGroupRoles.remove(k); + } else { + groupRole.setCompanyId(group.getCompanyId()); + groupRole.setGroupId(group.getId()); + + this.insert(groupRole); + } + } + + for (GroupRole groupRole : existMapGroupRoles.values()) { + this.deleteById(groupRole.getId()); + } + } + + public default List selectListByGroupId(String groupId) { + + GroupRole probe = new GroupRole(); + probe.setGroupId(groupId); + + ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("groupId", + ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List groupRoles = this.findAll(example); + + return groupRoles; + } + + + public default void relateRoleGroups(Role role, List groupRoles) { + + List existRoleGroups = this.selectListByRoleId(role.getCode()); + + Map existMapRoleGroups = new LinkedHashMap(); + for (GroupRole groupRole : existRoleGroups) { + String k = String.format("%s", groupRole.getGroupId()); + existMapRoleGroups.put(k, groupRole); + } + + for (GroupRole groupRole : groupRoles) { + String k = String.format("%s", groupRole.getGroupId()); + + if (existMapRoleGroups.containsKey(k)) { + existMapRoleGroups.remove(k); + } else { + groupRole.setCompanyId(role.getCompanyId()); + groupRole.setRoleId(role.getId()); + + this.insert(groupRole); + } + } + + for (GroupRole groupRole : existMapRoleGroups.values()) { + this.deleteById(groupRole.getId()); + } + } + + public default List selectListByRoleId(String roleId) { + + GroupRole probe = new GroupRole(); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List groupRoles = this.findAll(example); + + return groupRoles; + } + + public default GroupRole selectOneByGroupRole(String groupId, String roleId) { + + GroupRole probe = new GroupRole(); + probe.setGroupId(groupId); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()) + ; + + Example example = Example.of(probe, matcher); + + Optional o = this.findOne(example); + + return o.isPresent() ? o.get() : null; + } + + public default void addGroupRole(String groupId, String roleId) { + + GroupRole groupRole = this.selectOneByGroupRole(groupId, roleId); + + if (groupRole == null) { + groupRole = new GroupRole(); + //groupRole.setCompanyId(companyId); + groupRole.setGroupId(groupId); + groupRole.setRoleId(roleId); + + this.insert(groupRole); + } + } + + public default void removeGroupRole(String groupId, String roleId) { + + GroupRole groupRole = this.selectOneByGroupRole(groupId, roleId); + + if (groupRole != null) { + this.deleteById(groupRole.getId()); + } + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/RoleRepository.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/RoleRepository.java new file mode 100644 index 0000000..44787bb --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/repo/RoleRepository.java @@ -0,0 +1,93 @@ +package com.supwisdom.institute.backend.system.domain.repo; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Role; + +@Repository +public interface RoleRepository extends BaseJpaRepository { + + public default Page selectPageList(int pageIndex, int pageSize, Map mapBean) { + Role probe = new Role(); + if (mapBean != null) { + probe.setCode(MapBeanUtils.getString(mapBean, "code")); + probe.setName(MapBeanUtils.getString(mapBean, "name")); + probe.setMemo(MapBeanUtils.getString(mapBean, "memo")); + probe.setStatus(MapBeanUtils.getString(mapBean, "status")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("code", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("memo", ExampleMatcher.GenericPropertyMatchers.contains()) + .withMatcher("status", ExampleMatcher.GenericPropertyMatchers.exact()); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + Example example = Example.of(probe, matcher); + + Page page = this.findAll(example, pageRequest); + + return page; + } + + + public default Role selectByCode(String code) { + Role probe = new Role(); + probe.setCode(code); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("code", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + Optional o = this.findOne(example); + + if (o.isPresent()) { + return o.get(); + } + + return null; + } + + @Query(value = "select r from Role r " + + "inner join AccountRole ar on r.id=ar.roleId " + + "inner join Account a on ar.accountId=a.id " + + "where a.username=:username " + + "and r.status='1' and a.status='1' and a.enabled=1 ") + public List selectAccountRoleByUsername(@Param("username") String username); + + @Query(value = "select r from Role r " + + "inner join GroupRole gr on r.id=gr.roleId " + + "inner join Group_ g on gr.groupId=g.id " + + "inner join AccountGroup ag on g.id=ag.groupId " + + "inner join Account a on ag.accountId=a.id " + + "where a.username=:username " + + "and r.status='1' and g.status='1' and a.status='1' and a.enabled=1 ") + public List selectAccountGroupRoleByUsername(@Param("username") String username); + + public default List selectByUsername(String username) { + List roles = new ArrayList(); + + List userRoles = selectAccountRoleByUsername(username); + roles.addAll(userRoles); + + List userGroupRoles = selectAccountGroupRoleByUsername(username); + roles.addAll(userGroupRoles); + + return roles; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/AccountService.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/AccountService.java new file mode 100644 index 0000000..e59b9fd --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/AccountService.java @@ -0,0 +1,172 @@ +package com.supwisdom.institute.backend.system.domain.service; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Service; + +import com.supwisdom.institute.backend.common.framework.service.ABaseService; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.Account; +import com.supwisdom.institute.backend.system.domain.entity.AccountGroup; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; +import com.supwisdom.institute.backend.system.domain.repo.AccountGroupRepository; +import com.supwisdom.institute.backend.system.domain.repo.AccountRepository; +import com.supwisdom.institute.backend.system.domain.repo.AccountRoleRepository; + +@Service +public class AccountService extends ABaseService { + + @Override + public AccountRepository getRepo() { + return accountRepository; + } + + @Autowired + private AccountRepository accountRepository; + + @Autowired + private AccountGroupRepository accountGroupRepository; + + @Autowired + private AccountRoleRepository accountRoleRepository; + + + + public Page selectAccountGroups(int pageIndex, int pageSize, Map mapBean) { + + AccountGroup probe = new AccountGroup(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = accountGroupRepository.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public void relateAccountGroups(Account account, List accountGroups) { + + List existAccountGroups = this.selectAccountGroupsByAccountId(account.getId()); + + Map existMapAccountGroups = new LinkedHashMap(); + for (AccountGroup accountGroup : existAccountGroups) { + String k = String.format("%s", accountGroup.getGroupId()); + existMapAccountGroups.put(k, accountGroup); + } + + for (AccountGroup accountGroup : accountGroups) { + String k = String.format("%s", accountGroup.getGroupId()); + + if (existMapAccountGroups.containsKey(k)) { + existMapAccountGroups.remove(k); + } else { + accountGroup.setCompanyId(account.getCompanyId()); + accountGroup.setAccountId(account.getId()); + + accountGroupRepository.insert(accountGroup); + } + } + + for (AccountGroup accountGroup : existMapAccountGroups.values()) { + this.deleteById(accountGroup.getId()); + } + } + + public List selectAccountGroupsByAccountId(String accountId) { + + AccountGroup probe = new AccountGroup(); + probe.setAccountId(accountId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountGroups = accountGroupRepository.findAll(example); + + return accountGroups; + } + + + + public Page selectAccountRoles(int pageIndex, int pageSize, Map mapBean) { + + AccountRole probe = new AccountRole(); + if (mapBean != null) { + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = accountRoleRepository.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public void relateAccountRoles(Account account, List accountRoles) { + + List existAccountRoles = this.selectAccountRolesByAccountId(account.getId()); + + Map existMapAccountRoles = new LinkedHashMap(); + for (AccountRole accountRole : existAccountRoles) { + String k = String.format("%s", accountRole.getRoleId()); + existMapAccountRoles.put(k, accountRole); + } + + for (AccountRole accountRole : accountRoles) { + String k = String.format("%s", accountRole.getRoleId()); + + if (existMapAccountRoles.containsKey(k)) { + existMapAccountRoles.remove(k); + } else { + accountRole.setCompanyId(account.getCompanyId()); + accountRole.setAccountId(account.getId()); + + accountRoleRepository.insert(accountRole); + } + } + + for (AccountRole accountRole : existMapAccountRoles.values()) { + this.deleteById(accountRole.getId()); + } + } + + public List selectAccountRolesByAccountId(String accountId) { + + AccountRole probe = new AccountRole(); + probe.setAccountId(accountId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountRoles = accountRoleRepository.findAll(example); + + return accountRoles; + } + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/ConfigService.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/ConfigService.java index 858da54..55ba8ed 100644 --- a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/ConfigService.java +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/ConfigService.java @@ -10,14 +10,14 @@ import com.supwisdom.institute.backend.system.domain.repo.ConfigRepository; @Service public class ConfigService extends ABaseService { - @Autowired - private ConfigRepository configRepository; - @Override public ConfigRepository getRepo() { return configRepository; } + @Autowired + private ConfigRepository configRepository; + public Config selectByCategoryKey(String categoryCode, String configKey) { return configRepository.selectByCategoryKey(categoryCode, configKey); diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/GroupService.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/GroupService.java new file mode 100644 index 0000000..4290954 --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/GroupService.java @@ -0,0 +1,19 @@ +package com.supwisdom.institute.backend.system.domain.service; + +import org.springframework.beans.factory.annotation.Autowired; + +import com.supwisdom.institute.backend.common.framework.service.ABaseService; +import com.supwisdom.institute.backend.system.domain.entity.Group; +import com.supwisdom.institute.backend.system.domain.repo.GroupRepository; + +public class GroupService extends ABaseService { + + @Override + public GroupRepository getRepo() { + return groupRepository; + } + + @Autowired + private GroupRepository groupRepository; + +} diff --git a/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/RoleService.java b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/RoleService.java new file mode 100644 index 0000000..41952ed --- /dev/null +++ b/system/domain/src/main/java/com/supwisdom/institute/backend/system/domain/service/RoleService.java @@ -0,0 +1,171 @@ +package com.supwisdom.institute.backend.system.domain.service; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.ExampleMatcher; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +import com.supwisdom.institute.backend.common.framework.service.ABaseService; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; +import com.supwisdom.institute.backend.system.domain.entity.AccountRole; +import com.supwisdom.institute.backend.system.domain.entity.GroupRole; +import com.supwisdom.institute.backend.system.domain.entity.Role; +import com.supwisdom.institute.backend.system.domain.repo.AccountRoleRepository; +import com.supwisdom.institute.backend.system.domain.repo.GroupRoleRepository; +import com.supwisdom.institute.backend.system.domain.repo.RoleRepository; + +public class RoleService extends ABaseService { + + @Override + public RoleRepository getRepo() { + return roleRepository; + } + + @Autowired + private RoleRepository roleRepository; + + @Autowired + private AccountRoleRepository accountRoleRepository; + + @Autowired + private GroupRoleRepository groupRoleRepository; + + + + public Page selectRoleAccounts(int pageIndex, int pageSize, Map mapBean) { + + AccountRole probe = new AccountRole(); + if (mapBean != null) { + probe.setAccountId(MapBeanUtils.getString(mapBean, "accountId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("accountId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = accountRoleRepository.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public void relateRoleAccounts(Role role, List roleAccounts) { + + List existRoleAccounts = this.selectRoleAccountsByRoleId(role.getId()); + + Map existMapRoleAccounts = new LinkedHashMap(); + for (AccountRole accountRole : existRoleAccounts) { + String k = String.format("%s", accountRole.getAccountId()); + existMapRoleAccounts.put(k, accountRole); + } + + for (AccountRole accountRole : roleAccounts) { + String k = String.format("%s", accountRole.getAccountId()); + + if (existMapRoleAccounts.containsKey(k)) { + existMapRoleAccounts.remove(k); + } else { + accountRole.setCompanyId(role.getCompanyId()); + accountRole.setRoleId(role.getId()); + + accountRoleRepository.insert(accountRole); + } + } + + for (AccountRole accountRole : existMapRoleAccounts.values()) { + this.deleteById(accountRole.getId()); + } + } + + public List selectRoleAccountsByRoleId(String roleId) { + + AccountRole probe = new AccountRole(); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List accountRoles = accountRoleRepository.findAll(example); + + return accountRoles; + } + + + + public Page selectRoleGroups(int pageIndex, int pageSize, Map mapBean) { + + GroupRole probe = new GroupRole(); + if (mapBean != null) { + probe.setGroupId(MapBeanUtils.getString(mapBean, "groupId")); + probe.setRoleId(MapBeanUtils.getString(mapBean, "roleId")); + } + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact()) + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + PageRequest pageRequest = PageRequest.of(pageIndex, pageSize); + + Page page = groupRoleRepository.findAll(example, pageRequest); // FIXME: 多表关联查询 + + return page; + } + + public void relateRoleGroups(Role role, List groupRoles) { + + List existRoleGroups = this.selectRoleGroupsByRoleId(role.getCode()); + + Map existMapRoleGroups = new LinkedHashMap(); + for (GroupRole groupRole : existRoleGroups) { + String k = String.format("%s", groupRole.getGroupId()); + existMapRoleGroups.put(k, groupRole); + } + + for (GroupRole groupRole : groupRoles) { + String k = String.format("%s", groupRole.getGroupId()); + + if (existMapRoleGroups.containsKey(k)) { + existMapRoleGroups.remove(k); + } else { + groupRole.setCompanyId(role.getCompanyId()); + groupRole.setRoleId(role.getId()); + + groupRoleRepository.insert(groupRole); + } + } + + for (GroupRole groupRole : existMapRoleGroups.values()) { + this.deleteById(groupRole.getId()); + } + } + + public List selectRoleGroupsByRoleId(String roleId) { + + GroupRole probe = new GroupRole(); + probe.setRoleId(roleId); + + ExampleMatcher matcher = ExampleMatcher.matching() + .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact()); + + Example example = Example.of(probe, matcher); + + List groupRoles = groupRoleRepository.findAll(example); + + return groupRoles; + } + + +} -- 2.17.1