ProvinceServiceImpl.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. package jnpf.base.service.impl;
  2. import jnpf.base.model.province.PaginationProvince;
  3. import jnpf.base.service.SuperServiceImpl;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import jnpf.base.Page;
  7. import jnpf.base.entity.ProvinceEntity;
  8. import jnpf.base.mapper.ProvinceMapper;
  9. import jnpf.base.service.ProvinceService;
  10. import jnpf.util.RandomUtil;
  11. import jnpf.util.StringUtil;
  12. import jnpf.util.UserProvider;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import com.baomidou.dynamic.datasource.annotation.DSTransactional;
  16. import org.springframework.util.ObjectUtils;
  17. import java.util.ArrayList;
  18. import java.util.Date;
  19. import java.util.List;
  20. import java.util.Objects;
  21. /**
  22. * 行政区划
  23. *
  24. * @author JNPF开发平台组
  25. * @version V3.1.0
  26. * @copyright 引迈信息技术有限公司
  27. * @date 2019年9月27日 上午9:18
  28. */
  29. @Service
  30. public class ProvinceServiceImpl extends SuperServiceImpl<ProvinceMapper, ProvinceEntity> implements ProvinceService {
  31. @Override
  32. public boolean isExistByFullName(String fullName, String id) {
  33. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  34. queryWrapper.lambda().eq(ProvinceEntity::getFullName, fullName);
  35. if (!StringUtil.isEmpty(id)) {
  36. queryWrapper.lambda().ne(ProvinceEntity::getId, id);
  37. }
  38. return this.count(queryWrapper) > 0 ? true : false;
  39. }
  40. @Override
  41. public boolean isExistByEnCode(String enCode, String id) {
  42. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  43. queryWrapper.lambda().eq(ProvinceEntity::getEnCode, enCode);
  44. if (!StringUtil.isEmpty(id)) {
  45. queryWrapper.lambda().ne(ProvinceEntity::getId, id);
  46. }
  47. return this.count(queryWrapper) > 0 ? true : false;
  48. }
  49. @Override
  50. public List<ProvinceEntity> getList(String parentId) {
  51. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  52. queryWrapper.lambda().eq(ProvinceEntity::getParentId, parentId);
  53. // 排序
  54. queryWrapper.lambda().orderByDesc(ProvinceEntity::getCreatorTime);
  55. return this.list(queryWrapper);
  56. }
  57. @Override
  58. public List<ProvinceEntity> getList(String parentId, PaginationProvince page) {
  59. // 定义变量判断是否需要使用修改时间倒序
  60. boolean flag = false;
  61. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  62. // 模糊查询
  63. if (Objects.nonNull(page) && StringUtil.isNotEmpty(page.getKeyword())) {
  64. flag = true;
  65. queryWrapper.lambda().and(
  66. t->t.like(ProvinceEntity::getFullName, page.getKeyword()).or()
  67. .like(ProvinceEntity::getEnCode, page.getKeyword())
  68. );
  69. }
  70. if (page.getEnabledMark() != null) {
  71. queryWrapper.lambda().eq(ProvinceEntity::getEnabledMark, page.getEnabledMark());
  72. }
  73. queryWrapper.lambda().eq(ProvinceEntity::getParentId, parentId);
  74. // 排序
  75. queryWrapper.lambda().orderByAsc(ProvinceEntity::getSortCode).orderByDesc(ProvinceEntity::getCreatorTime);
  76. if (flag) {
  77. queryWrapper.lambda().orderByDesc(ProvinceEntity::getLastModifyTime);
  78. }
  79. return this.list(queryWrapper);
  80. }
  81. @Override
  82. public List<ProvinceEntity> getAllList() {
  83. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  84. queryWrapper.lambda().orderByDesc(ProvinceEntity::getSortCode).orderByAsc(ProvinceEntity::getCreatorTime);
  85. return this.list(queryWrapper);
  86. }
  87. @Override
  88. public List<ProvinceEntity> getProListBytype(String type) {
  89. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  90. queryWrapper.lambda().select(ProvinceEntity::getId,ProvinceEntity::getFullName).eq(ProvinceEntity::getType,type);
  91. return this.list(queryWrapper);
  92. }
  93. @Override
  94. public List<ProvinceEntity> getProList(List<String> ProIdList) {
  95. if (ProIdList.size()>0){
  96. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  97. queryWrapper.lambda().select(ProvinceEntity::getId,ProvinceEntity::getFullName).in(ProvinceEntity::getId,ProIdList);
  98. return this.list(queryWrapper);
  99. }
  100. return new ArrayList<>();
  101. }
  102. @Override
  103. public ProvinceEntity getInfo(String id) {
  104. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  105. queryWrapper.lambda().eq(ProvinceEntity::getId, id);
  106. return this.getOne(queryWrapper);
  107. }
  108. @Override
  109. public ProvinceEntity getInfo(String fullName,List<String> parentId) {
  110. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  111. queryWrapper.lambda().eq(ProvinceEntity::getFullName, fullName);
  112. if (parentId.size() > 0) {
  113. queryWrapper.lambda().in(ProvinceEntity::getParentId, parentId);
  114. }
  115. return this.getOne(queryWrapper);
  116. }
  117. @Override
  118. public void delete(ProvinceEntity entity) {
  119. this.removeById(entity.getId());
  120. }
  121. @Override
  122. public void create(ProvinceEntity entity) {
  123. entity.setId(RandomUtil.uuId());
  124. entity.setCreatorUserId(UserProvider.getUser().getUserId());
  125. this.save(entity);
  126. }
  127. @Override
  128. public boolean update(String id, ProvinceEntity entity) {
  129. entity.setId(id);
  130. entity.setLastModifyTime(new Date());
  131. entity.setLastModifyUserId(UserProvider.getUser().getUserId());
  132. return this.updateById(entity);
  133. }
  134. @Override
  135. @DSTransactional
  136. public boolean first(String id) {
  137. boolean isOk = false;
  138. //获取要上移的那条数据的信息
  139. ProvinceEntity upEntity = this.getById(id);
  140. Long upSortCode = upEntity.getSortCode() == null ? 0 : upEntity.getSortCode();
  141. //查询上几条记录
  142. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  143. queryWrapper.lambda()
  144. .lt(ProvinceEntity::getSortCode, upSortCode)
  145. .eq(ProvinceEntity::getParentId, upEntity.getParentId())
  146. .orderByDesc(ProvinceEntity::getSortCode);
  147. List<ProvinceEntity> downEntity = this.list(queryWrapper);
  148. if (downEntity.size() > 0) {
  149. //交换两条记录的sort值
  150. Long temp = upEntity.getSortCode();
  151. upEntity.setSortCode(downEntity.get(0).getSortCode());
  152. downEntity.get(0).setSortCode(temp);
  153. updateById(downEntity.get(0));
  154. updateById(upEntity);
  155. isOk = true;
  156. }
  157. return isOk;
  158. }
  159. @Override
  160. @DSTransactional
  161. public boolean next(String id) {
  162. boolean isOk = false;
  163. //获取要下移的那条数据的信息
  164. ProvinceEntity downEntity = this.getById(id);
  165. Long upSortCode = downEntity.getSortCode() == null ? 0 : downEntity.getSortCode();
  166. //查询下几条记录
  167. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  168. queryWrapper.lambda()
  169. .gt(ProvinceEntity::getSortCode, upSortCode)
  170. .eq(ProvinceEntity::getParentId, downEntity.getParentId())
  171. .orderByAsc(ProvinceEntity::getSortCode);
  172. List<ProvinceEntity> upEntity = this.list(queryWrapper);
  173. if (upEntity.size() > 0) {
  174. //交换两条记录的sort值
  175. Long temp = downEntity.getSortCode();
  176. downEntity.setSortCode(upEntity.get(0).getSortCode());
  177. upEntity.get(0).setSortCode(temp);
  178. updateById(upEntity.get(0));
  179. updateById(downEntity);
  180. isOk = true;
  181. }
  182. return isOk;
  183. }
  184. @Override
  185. public List<ProvinceEntity> infoList(List<String> lists) {
  186. List<ProvinceEntity> list =new ArrayList<>();
  187. if(!ObjectUtils.isEmpty(lists)){
  188. QueryWrapper<ProvinceEntity> queryWrapper = new QueryWrapper<>();
  189. queryWrapper.lambda().in(ProvinceEntity::getId, lists);
  190. list = this.list(queryWrapper);
  191. }
  192. return list;
  193. }
  194. }