TemplateUseNumServiceImpl.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package jnpf.flowable.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.github.yulichang.toolkit.JoinWrappers;
  5. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  6. import jnpf.base.Pagination;
  7. import jnpf.base.UserInfo;
  8. import jnpf.base.service.SuperServiceImpl;
  9. import jnpf.flowable.entity.TemplateEntity;
  10. import jnpf.flowable.entity.TemplateUseNumEntity;
  11. import jnpf.flowable.mapper.TemplateUseNumMapper;
  12. import jnpf.flowable.model.template.TemplateUseNumVo;
  13. import jnpf.flowable.model.util.FlowNature;
  14. import jnpf.flowable.service.TemplateUseNumService;
  15. import jnpf.flowable.util.ServiceUtil;
  16. import jnpf.util.StringUtil;
  17. import jnpf.util.UserProvider;
  18. import jnpf.util.context.RequestContext;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import java.util.Date;
  22. import java.util.List;
  23. @Service
  24. public class TemplateUseNumServiceImpl extends SuperServiceImpl<TemplateUseNumMapper, TemplateUseNumEntity> implements TemplateUseNumService {
  25. @Autowired
  26. private ServiceUtil serviceUtil;
  27. @Override
  28. public Boolean insertOrUpdateUseNum(String templateId) {
  29. UserInfo user = UserProvider.getUser();
  30. LambdaQueryWrapper<TemplateUseNumEntity> queryWrapper = new LambdaQueryWrapper<>();
  31. queryWrapper.eq(TemplateUseNumEntity::getTemplateId, templateId);
  32. queryWrapper.eq(TemplateUseNumEntity::getUserId, user.getUserId());
  33. TemplateUseNumEntity userNumEntity = this.getOne(queryWrapper);
  34. if (userNumEntity == null) {
  35. userNumEntity = new TemplateUseNumEntity();
  36. userNumEntity.setUserId(user.getUserId());
  37. userNumEntity.setTemplateId(templateId);
  38. userNumEntity.setUseNum(1);
  39. userNumEntity.setLastModifyTime(new Date());
  40. return this.save(userNumEntity);
  41. }
  42. userNumEntity.setUseNum(userNumEntity.getUseNum() + 1);
  43. userNumEntity.setLastModifyTime(null);
  44. return this.updateById(userNumEntity);
  45. }
  46. @Override
  47. public void deleteUseNum(String templateId, String userId) {
  48. if (StringUtil.isNotEmpty(templateId)) {
  49. LambdaQueryWrapper<TemplateUseNumEntity> queryWrapper = new LambdaQueryWrapper<>();
  50. queryWrapper.eq(TemplateUseNumEntity::getTemplateId, templateId);
  51. if (StringUtil.isNotEmpty(userId)) {
  52. queryWrapper.eq(TemplateUseNumEntity::getUserId, userId);
  53. }
  54. this.remove(queryWrapper);
  55. }
  56. }
  57. @Override
  58. public List<TemplateUseNumVo> getMenuUseNum(int i, List<String> authFlowList) {
  59. Pagination pagination = new Pagination();
  60. pagination.setPageSize(12);
  61. UserInfo user = UserProvider.getUser();
  62. String systemId = serviceUtil.getSystemCodeById(RequestContext.getAppCode());
  63. MPJLambdaWrapper<TemplateUseNumEntity> wrapper = JoinWrappers.lambda(TemplateUseNumEntity.class)
  64. .select(TemplateEntity::getId, TemplateEntity::getFullName, TemplateEntity::getEnCode,
  65. TemplateEntity::getType, TemplateEntity::getIcon, TemplateEntity::getIconBackground
  66. )
  67. .leftJoin(TemplateEntity.class, TemplateEntity::getId, TemplateUseNumEntity::getTemplateId)
  68. .eq(TemplateUseNumEntity::getUserId, user.getUserId())
  69. .eq(TemplateEntity::getEnabledMark, 1);
  70. if (i == 0) {
  71. wrapper.orderByDesc(TemplateUseNumEntity::getUseNum);
  72. } else if (i == 1) {
  73. wrapper.orderByDesc(TemplateUseNumEntity::getLastModifyTime);
  74. }
  75. if (StringUtil.isNotEmpty(systemId)) {
  76. wrapper.eq(TemplateEntity::getSystemId, systemId);
  77. }
  78. //流程有权限(包含通用)
  79. wrapper.and(t -> t.eq(TemplateEntity::getVisibleType, FlowNature.All)
  80. .or().in(!authFlowList.isEmpty(), TemplateEntity::getId, authFlowList)
  81. );
  82. Page<TemplateUseNumVo> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
  83. Page<TemplateUseNumVo> iPage = this.selectJoinListPage(page, TemplateUseNumVo.class, wrapper);
  84. return pagination.setData(iPage.getRecords(), page.getTotal());
  85. }
  86. }