ClientService.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package cn.cslg.permission.service;
  2. import cn.cslg.permission.common.model.dto.ClientDTO;
  3. import cn.cslg.permission.common.model.vo.PersonnelVO;
  4. import cn.cslg.permission.common.utils.*;
  5. import cn.cslg.permission.domain.Client;
  6. import cn.cslg.permission.domain.Personnel;
  7. import cn.cslg.permission.mapper.ClientMapper;
  8. import cn.cslg.permission.service.associate.AssoTenantClientService;
  9. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10. import com.baomidou.mybatisplus.core.metadata.IPage;
  11. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  12. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  13. import lombok.RequiredArgsConstructor;
  14. import org.springframework.context.annotation.Lazy;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. import java.util.stream.Collectors;
  22. /**
  23. * <p>
  24. * 委托方表 服务类
  25. * </p>
  26. *
  27. * @author 王岩
  28. * @since 2022-02-17
  29. */
  30. @Service
  31. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  32. public class ClientService extends ServiceImpl<ClientMapper, Client> {
  33. private final LoginUtils loginUtils;
  34. private final PersonnelService personnelService;
  35. private final AssoTenantClientService assoTenantClientService;
  36. private final CacheUtils cacheUtils;
  37. /**
  38. * @author lrj
  39. * @param params
  40. * @description 分页获得客户列表
  41. * @return
  42. */
  43. public IPage<Client> getPageList(ClientDTO params) {
  44. if(params.getTenantId()== null){
  45. PersonnelVO personnel = cacheUtils.getLoginUser(loginUtils.getId());
  46. params.setTenantId(personnel.getTenantId());
  47. }
  48. IPage<Client> lst = this.baseMapper.getClientPageList( new Page<>(params.getCurrent(), params.getSize()),params);
  49. List<Client> list =lst.getRecords();
  50. this.loadClient(list);
  51. lst.setRecords(list);
  52. return lst;
  53. }
  54. public List<Client> getNoTenantClients() {
  55. List<Client> lst = this.baseMapper.getNoTenantClients();
  56. this.loadClient(lst);
  57. return lst;
  58. }
  59. public List<Client> queryList(Integer tenantId) {
  60. if(tenantId== null){
  61. PersonnelVO personnel = cacheUtils.getLoginUser(loginUtils.getId());
  62. tenantId= personnel.getTenantId();
  63. }
  64. List<Client> lst = this.baseMapper.queryList(tenantId);
  65. return lst;
  66. }
  67. public Client getClientByName(String name) {
  68. LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<>();
  69. queryWrapper.eq(Client::getName, name);
  70. return this.getOne(queryWrapper);
  71. }
  72. /**
  73. * @autor lrj
  74. * @param client
  75. * @return
  76. * @descrption 添加客户
  77. */
  78. @Transactional(rollbackFor = Exception.class)
  79. public String add(Client client) {
  80. client.setCreateUser(loginUtils.getId());
  81. client.setStatus(1);
  82. client.insert();
  83. PersonnelVO personnel = cacheUtils.getLoginUser(loginUtils.getId());
  84. Integer tenantId= personnel.getTenantId();
  85. assoTenantClientService.addTenantClient(client.getId(),tenantId);
  86. return Response.success(client.getId());
  87. }
  88. /**
  89. * @autor lrj
  90. * @param id
  91. * @return
  92. * @description 删除客户
  93. */
  94. @Transactional(rollbackFor = Exception.class)
  95. public String delete(Integer id) {
  96. //删除客户的关联信息
  97. assoTenantClientService.deleteApplicationTenant(id,null);
  98. this.removeById(id);
  99. return Response.success(true);
  100. }
  101. /**
  102. * @autor lrj
  103. * @param client
  104. * @return
  105. * @description 修改客户
  106. */
  107. public String edit(Client client) {
  108. Client temp = this.getClientByName(client.getName());
  109. if (temp != null && !temp.getId().equals(client.getId())) {
  110. return Response.error("客户名称已存在");
  111. }
  112. client.updateById();
  113. return Response.success();
  114. }
  115. /**
  116. * @author 李仁杰
  117. * @description 装载客户
  118. */
  119. public void loadClient(List<Client> clients) {
  120. List<Integer> personIds = clients.stream().map(Client::getCreateUser).collect(Collectors.toList());
  121. if (personIds.size() != 0) {
  122. LambdaQueryWrapper<Personnel> queryWrapper = new LambdaQueryWrapper<>();
  123. queryWrapper.in(Personnel::getId, personIds);
  124. List<Personnel> personnels = personnelService.list(queryWrapper);
  125. for (Client client : clients) {
  126. for (Personnel personnel : personnels) {
  127. if (client.getCreateUser() != null) {
  128. if (client.getCreateUser().equals(personnel.getId())) {
  129. client.setPersonnelName(personnel.getPersonnelName());
  130. }
  131. }
  132. }
  133. }
  134. }
  135. }
  136. }