ModuleColumnServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. package jnpf.base.service.impl;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.google.common.collect.Lists;
  5. import jnpf.base.entity.ModuleFormEntity;
  6. import jnpf.base.service.SuperServiceImpl;
  7. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  8. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  9. import jnpf.base.Pagination;
  10. import jnpf.base.entity.ModuleButtonEntity;
  11. import jnpf.base.entity.ModuleColumnEntity;
  12. import jnpf.base.mapper.ModuleColumnMapper;
  13. import jnpf.base.service.ModuleColumnService;
  14. import jnpf.util.DateUtil;
  15. import jnpf.util.RandomUtil;
  16. import jnpf.util.StringUtil;
  17. import jnpf.util.UserProvider;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import com.baomidou.dynamic.datasource.annotation.DSTransactional;
  21. import java.util.ArrayList;
  22. import java.util.Collections;
  23. import java.util.List;
  24. import java.util.stream.Collectors;
  25. /**
  26. * 列表权限
  27. *
  28. * @author JNPF开发平台组
  29. * @version V3.1.0
  30. * @copyright 引迈信息技术有限公司
  31. * @date 2019年9月27日 上午9:18
  32. */
  33. @Service
  34. public class ModuleColumnServiceImpl extends SuperServiceImpl<ModuleColumnMapper, ModuleColumnEntity> implements ModuleColumnService {
  35. @Override
  36. public List<ModuleColumnEntity> getList() {
  37. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  38. queryWrapper.lambda().eq(ModuleColumnEntity::getEnabledMark,1);
  39. // 排序
  40. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode)
  41. .orderByDesc(ModuleColumnEntity::getCreatorTime);
  42. return this.list(queryWrapper);
  43. }
  44. @Override
  45. public List<ModuleColumnEntity> getEnabledMarkList(String enabledMark) {
  46. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  47. queryWrapper.lambda().eq(ModuleColumnEntity::getEnabledMark, enabledMark);
  48. // 排序
  49. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode)
  50. .orderByDesc(ModuleColumnEntity::getCreatorTime);
  51. return this.list(queryWrapper);
  52. }
  53. @Override
  54. public List<ModuleColumnEntity> getList(String moduleId, Pagination pagination) {
  55. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  56. queryWrapper.lambda().eq(ModuleColumnEntity::getModuleId, moduleId);
  57. if (!StringUtil.isEmpty(pagination.getKeyword())) {
  58. queryWrapper.lambda().and(
  59. t -> t.like(ModuleColumnEntity::getEnCode, pagination.getKeyword()).or().like(ModuleColumnEntity::getFullName, pagination.getKeyword())
  60. );
  61. }
  62. // 排序
  63. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode)
  64. .orderByDesc(ModuleColumnEntity::getCreatorTime);
  65. Page<ModuleColumnEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
  66. IPage<ModuleColumnEntity> iPage = this.page(page, queryWrapper);
  67. return pagination.setData(iPage.getRecords(), iPage.getTotal());
  68. }
  69. @Override
  70. public List<ModuleColumnEntity> getList(String moduleId) {
  71. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  72. queryWrapper.lambda().eq(ModuleColumnEntity::getModuleId, moduleId);
  73. // 排序
  74. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode)
  75. .orderByDesc(ModuleColumnEntity::getCreatorTime);
  76. return this.list(queryWrapper);
  77. }
  78. @Override
  79. public List<ModuleColumnEntity> getListByBindTable(String bindTable) {
  80. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  81. queryWrapper.lambda().eq(ModuleColumnEntity::getBindTable, bindTable);
  82. // 排序
  83. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode)
  84. .orderByDesc(ModuleColumnEntity::getCreatorTime);
  85. List<ModuleColumnEntity> list = this.list(queryWrapper);
  86. return list;
  87. }
  88. @Override
  89. public ModuleColumnEntity getInfo(String id) {
  90. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  91. queryWrapper.lambda().eq(ModuleColumnEntity::getId, id);
  92. return this.getOne(queryWrapper);
  93. }
  94. @Override
  95. public ModuleColumnEntity getInfo(String id, String moduleId) {
  96. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  97. queryWrapper.lambda().eq(ModuleColumnEntity::getId, id);
  98. queryWrapper.lambda().eq(ModuleColumnEntity::getModuleId, moduleId);
  99. return this.getOne(queryWrapper);
  100. }
  101. @Override
  102. public boolean isExistByFullName(String moduleId, String fullName, String id) {
  103. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  104. queryWrapper.lambda().eq(ModuleColumnEntity::getFullName, fullName).eq(ModuleColumnEntity::getModuleId, moduleId);
  105. if (!StringUtil.isEmpty(id)) {
  106. queryWrapper.lambda().ne(ModuleColumnEntity::getId, id);
  107. }
  108. return this.count(queryWrapper) > 0 ? true : false;
  109. }
  110. @Override
  111. public boolean isExistByEnCode(String moduleId, String enCode, String id) {
  112. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  113. queryWrapper.lambda().eq(ModuleColumnEntity::getEnCode, enCode).eq(ModuleColumnEntity::getModuleId, moduleId);
  114. if (!StringUtil.isEmpty(id)) {
  115. queryWrapper.lambda().ne(ModuleColumnEntity::getId, id);
  116. }
  117. return this.count(queryWrapper) > 0 ? true : false;
  118. }
  119. @Override
  120. public void create(ModuleColumnEntity entity) {
  121. entity.setSortCode(entity.getSortCode());
  122. entity.setId(RandomUtil.uuId());
  123. this.save(entity);
  124. }
  125. @Override
  126. @DSTransactional
  127. public void create(List<ModuleColumnEntity> entitys) {
  128. Long sortCode = RandomUtil.parses();
  129. String userId = UserProvider.getUser().getUserId();
  130. for (ModuleColumnEntity entity : entitys) {
  131. entity.setId(RandomUtil.uuId());
  132. entity.setSortCode(sortCode++);
  133. entity.setEnabledMark("1".equals(String.valueOf(entity.getEnabledMark())) ? 0 : 1);
  134. entity.setCreatorUserId(userId);
  135. this.save(entity);
  136. }
  137. }
  138. @Override
  139. public boolean update(String id, ModuleColumnEntity entity) {
  140. entity.setId(id);
  141. entity.setLastModifyTime(DateUtil.getNowDate());
  142. return this.updateById(entity);
  143. }
  144. @Override
  145. public void delete(ModuleColumnEntity entity) {
  146. this.removeById(entity.getId());
  147. }
  148. @Override
  149. @DSTransactional
  150. public boolean first(String id) {
  151. boolean isOk = false;
  152. //获取要上移的那条数据的信息
  153. ModuleColumnEntity upEntity = this.getById(id);
  154. Long upSortCode = upEntity.getSortCode() == null ? 0 : upEntity.getSortCode();
  155. //查询上几条记录
  156. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  157. queryWrapper.lambda()
  158. .eq(ModuleColumnEntity::getModuleId, upEntity.getModuleId())
  159. .eq(ModuleColumnEntity::getBindTable, upEntity.getBindTable())
  160. .lt(ModuleColumnEntity::getSortCode, upSortCode)
  161. .orderByDesc(ModuleColumnEntity::getSortCode);
  162. List<ModuleColumnEntity> downEntity = this.list(queryWrapper);
  163. if (downEntity.size() > 0) {
  164. //交换两条记录的sort值
  165. Long temp = upEntity.getSortCode();
  166. upEntity.setSortCode(downEntity.get(0).getSortCode());
  167. downEntity.get(0).setSortCode(temp);
  168. this.updateById(downEntity.get(0));
  169. this.updateById(upEntity);
  170. isOk = true;
  171. }
  172. return isOk;
  173. }
  174. @Override
  175. @DSTransactional
  176. public boolean next(String id) {
  177. boolean isOk = false;
  178. //获取要下移的那条数据的信息
  179. ModuleColumnEntity downEntity = this.getById(id);
  180. Long upSortCode = downEntity.getSortCode() == null ? 0 : downEntity.getSortCode();
  181. //查询下几条记录
  182. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  183. queryWrapper.lambda()
  184. .eq(ModuleColumnEntity::getModuleId, downEntity.getModuleId())
  185. .eq(ModuleColumnEntity::getBindTable, downEntity.getBindTable())
  186. .gt(ModuleColumnEntity::getSortCode, upSortCode)
  187. .orderByAsc(ModuleColumnEntity::getSortCode);
  188. List<ModuleColumnEntity> upEntity = this.list(queryWrapper);
  189. if (upEntity.size() > 0) {
  190. //交换两条记录的sort值
  191. Long temp = downEntity.getSortCode();
  192. downEntity.setSortCode(upEntity.get(0).getSortCode());
  193. upEntity.get(0).setSortCode(temp);
  194. this.updateById(upEntity.get(0));
  195. this.updateById(downEntity);
  196. isOk = true;
  197. }
  198. return isOk;
  199. }
  200. @Override
  201. public List<ModuleColumnEntity> getListByModuleId(List<String> ids,Integer type) {
  202. if (ids.isEmpty()) {
  203. return new ArrayList<>();
  204. }
  205. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  206. List<List<String>> lists = Lists.partition(ids, 1000);
  207. for (List<String> list : lists) {
  208. queryWrapper.lambda().and(t->{
  209. t.in(ModuleColumnEntity::getModuleId, list).or();
  210. });
  211. }
  212. if (type==1){
  213. queryWrapper.lambda().eq(ModuleColumnEntity::getEnabledMark, 1);
  214. }
  215. queryWrapper.lambda().orderByAsc(ModuleColumnEntity::getSortCode).orderByDesc(ModuleColumnEntity::getCreatorTime);
  216. return this.list(queryWrapper);
  217. }
  218. @Override
  219. public List<ModuleColumnEntity> getListByIds(List<String> ids) {
  220. if (ids.size() == 0) {
  221. return new ArrayList<>();
  222. }
  223. QueryWrapper<ModuleColumnEntity> queryWrapper = new QueryWrapper<>();
  224. List<List<String>> lists = Lists.partition(ids, 1000);
  225. for (List<String> list : lists) {
  226. queryWrapper.lambda().or().in(ModuleColumnEntity::getId, list);
  227. }
  228. queryWrapper.lambda().eq(ModuleColumnEntity::getEnabledMark, 1);
  229. return this.list(queryWrapper);
  230. }
  231. }