GroupsService.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.maxkey.persistence.service;
  17. import java.time.LocalDateTime;
  18. import java.time.LocalTime;
  19. import java.util.List;
  20. import org.apache.mybatis.jpa.persistence.JpaBaseService;
  21. import org.maxkey.domain.Groups;
  22. import org.maxkey.persistence.mapper.GroupsMapper;
  23. import org.maxkey.util.StringUtils;
  24. import org.slf4j.Logger;
  25. import org.slf4j.LoggerFactory;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.beans.factory.annotation.Qualifier;
  28. import org.springframework.stereotype.Repository;
  29. @Repository
  30. public class GroupsService extends JpaBaseService<Groups>{
  31. final static Logger _logger = LoggerFactory.getLogger(GroupsService.class);
  32. @Autowired
  33. @Qualifier("groupMemberService")
  34. GroupMemberService groupMemberService;
  35. public GroupsService() {
  36. super(GroupsMapper.class);
  37. }
  38. /* (non-Javadoc)
  39. * @see com.connsec.db.service.BaseService#getMapper()
  40. */
  41. @Override
  42. public GroupsMapper getMapper() {
  43. // TODO Auto-generated method stub
  44. return (GroupsMapper)super.getMapper();
  45. }
  46. public List<Groups> queryDynamicGroups(Groups groups){
  47. return this.getMapper().queryDynamicGroups(groups);
  48. }
  49. public boolean deleteById(String groupId) {
  50. this.remove(groupId);
  51. groupMemberService.deleteByGroupId(groupId);
  52. return true;
  53. }
  54. public void refreshDynamicGroups(Groups dynamicGroup){
  55. if(dynamicGroup.getDynamic().equals("1")) {
  56. boolean isDynamicTimeSupport = false;
  57. boolean isBetweenEffectiveTime = false;
  58. if(dynamicGroup.getResumeTime()!=null&&dynamicGroup.getResumeTime().equals("")
  59. &&dynamicGroup.getSuspendTime()!=null&&dynamicGroup.getSuspendTime().equals("")) {
  60. LocalTime currentTime = LocalDateTime.now().toLocalTime();
  61. LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
  62. LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
  63. _logger.info("currentTime: " + currentTime
  64. + " , resumeTime : " + resumeTime
  65. + " , suspendTime: " + suspendTime);
  66. isDynamicTimeSupport = true;
  67. if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
  68. isBetweenEffectiveTime = true;
  69. }
  70. }
  71. if(dynamicGroup.getOrgIdsList()!=null && !dynamicGroup.getOrgIdsList().equals("")) {
  72. dynamicGroup.setOrgIdsList("'"+dynamicGroup.getOrgIdsList().replace(",", "','")+"'");
  73. }
  74. String filters = dynamicGroup.getFilters();
  75. if(StringUtils.filtersSQLInjection(filters.toLowerCase())) {
  76. _logger.info("filters include SQL Injection Attack Risk.");
  77. return;
  78. }
  79. filters = filters.replace("&", " AND ");
  80. filters = filters.replace("|", " OR ");
  81. dynamicGroup.setFilters(filters);
  82. if(isDynamicTimeSupport) {
  83. if(isBetweenEffectiveTime) {
  84. groupMemberService.deleteDynamicGroupMember(dynamicGroup);
  85. groupMemberService.addDynamicGroupMember(dynamicGroup);
  86. }else {
  87. groupMemberService.deleteDynamicGroupMember(dynamicGroup);
  88. }
  89. }else{
  90. groupMemberService.deleteDynamicGroupMember(dynamicGroup);
  91. groupMemberService.addDynamicGroupMember(dynamicGroup);
  92. }
  93. }
  94. }
  95. }