79192ffd6a5525dfd9bd153612c86cb350abbb71.svn-base 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package cn.com.goldenwater.dcproj.service.impl.base;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.AttAdBaseDao;
  4. import cn.com.goldenwater.dcproj.dto.AdUpDto;
  5. import cn.com.goldenwater.dcproj.model.AttAdBase;
  6. import cn.com.goldenwater.dcproj.param.AttAdBaseParam;
  7. import cn.com.goldenwater.dcproj.service.AttAdBaseService;
  8. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  9. import cn.com.goldenwater.dcproj.utils.Constant;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import org.springframework.util.CollectionUtils;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import java.util.stream.Collectors;
  18. /**
  19. * @author lune
  20. * @date 2019-2-18
  21. */
  22. @Service
  23. @Transactional(rollbackFor = Exception.class)
  24. public class AttAdBaseServiceImpl extends AbstractCrudService<AttAdBase, AttAdBaseParam> implements AttAdBaseService {
  25. @Autowired
  26. private AttAdBaseDao attAdBaseDao;
  27. @Autowired
  28. private OlBisInspOrgService olBisInspOrgService;
  29. public AttAdBaseServiceImpl(AttAdBaseDao attAdBaseDao) {
  30. super(attAdBaseDao);
  31. this.attAdBaseDao = attAdBaseDao;
  32. }
  33. @Override
  34. public List<AttAdBase> getProvincialAdList() {
  35. //查询所有省级行政区划
  36. AttAdBaseParam attAdBaseParam = new AttAdBaseParam();
  37. attAdBaseParam.setAdCode("__0000000000");
  38. List<AttAdBase> list = attAdBaseDao.findList(attAdBaseParam);
  39. list.remove(0);
  40. return list;
  41. }
  42. @Override
  43. public List<AttAdBase> getAdData(String adCode) {
  44. return this.attAdBaseDao.getAdData(adCode);
  45. }
  46. @Override
  47. public AdUpDto getAdUp(String adCode) {
  48. AdUpDto adUpBean = null;
  49. List<AdUpDto> list = new ArrayList();
  50. int j = 0;
  51. AdUpDto adUpBean1 = attAdBaseDao.fingAdUp(adCode);
  52. for (int i = 0; i < 8; i++) {
  53. adUpBean = attAdBaseDao.fingAdUp(adCode);
  54. if (adUpBean == null) {
  55. break;
  56. } else {
  57. j++;
  58. }
  59. if (adUpBean.getAdFcode() == "000000000000" || adUpBean.getAdFcode() == null || "000000000000".equals(adUpBean.getAdFcode())) {
  60. if (j > 1) {
  61. break;
  62. }
  63. break;
  64. } else {
  65. AdUpDto ab1 = attAdBaseDao.fingAdUp(adUpBean.getAdFcode());
  66. list.add(ab1);
  67. adCode = ab1.getAdCode();
  68. }
  69. }
  70. adUpBean1.setAdUpDtoList(list);
  71. return adUpBean1;
  72. }
  73. @Override
  74. public AttAdBase getByAdcode(String adCode) {
  75. return attAdBaseDao.getByAdcode(adCode);
  76. }
  77. @Override
  78. public Boolean whetherTheCityOrCounty(String orgId) {
  79. AttAdBase byAdcode = this.getByAdcode(olBisInspOrgService.getRlProvince(orgId));
  80. return StringUtils.equalsAny(byAdcode.getAdGrad(), Constant.STRING_THREE, Constant.STRING_FORE);
  81. }
  82. @Override
  83. public List<AttAdBase> getAllChildByCode(String code) {
  84. return attAdBaseDao.getAllChildByCode(code);
  85. }
  86. @Override
  87. public List<AdUpDto> getTreeByUser(String adCode ,String code) {
  88. List<AdUpDto> list = attAdBaseDao.getAllChildren(adCode);
  89. if(CollectionUtils.isEmpty(list)){
  90. return new ArrayList<AdUpDto>();
  91. }
  92. List<AdUpDto> rootAdList = new ArrayList<>();
  93. for(AdUpDto adBase : list){
  94. if(code.equals(adBase.getAdCode())){
  95. rootAdList.add(adBase);
  96. }
  97. }
  98. List<AdUpDto> adTreeList = new ArrayList<>();
  99. for (AdUpDto rootAd : rootAdList) {
  100. AdUpDto adBase = buildUserTree(list, rootAd);
  101. adTreeList.add(adBase);
  102. }
  103. return adTreeList;
  104. }
  105. public AdUpDto buildUserTree(List<AdUpDto> AdDataList, AdUpDto adBase) {
  106. List<AdUpDto> childrenList = new ArrayList<>();
  107. for (AdUpDto adUpDto : AdDataList) {
  108. // 当前数据的 parentId 等于 父节点的 id,则该数据是当前父级节点的子级。
  109. if (adUpDto.getAdFcode().equals(adBase.getAdCode())) {
  110. // 递归调用
  111. childrenList.add(buildUserTree(AdDataList, adUpDto));
  112. }
  113. }
  114. adBase.setAdUpDtoList(childrenList);
  115. return adBase;
  116. }
  117. }