SysUserLinkDxUserIdServiceImpl.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package com.ydtech.modules.admin.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.ydtech.core.page.HttpResult;
  6. import com.ydtech.modules.admin.dao.SysUserLinkDxUserIdMapper;
  7. import com.ydtech.modules.admin.model.dto.*;
  8. import com.ydtech.modules.admin.model.po.SysUserLinkDxUserId;
  9. import com.ydtech.modules.admin.model.po.Uuser;
  10. import com.ydtech.modules.admin.model.vo.DxDataVo;
  11. import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
  12. import com.ydtech.modules.admin.model.vo.UserQueryVo;
  13. import com.ydtech.modules.admin.service.SysUserLinkDxUserIdService;
  14. import com.ydtech.modules.admin.utils.DxApiConfigurationProperties;
  15. import com.ydtech.modules.base.controller.BaseController;
  16. import com.ydtech.modules.order.entity.BasePageResult;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.core.ParameterizedTypeReference;
  20. import org.springframework.http.*;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.web.client.RestTemplate;
  23. import java.util.ArrayList;
  24. import java.util.Date;
  25. import java.util.List;
  26. /**
  27. * @author Administrator
  28. * @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
  29. * @createDate 2024-09-06 18:13:19
  30. */
  31. @Service
  32. public class SysUserLinkDxUserIdServiceImpl extends ServiceImpl<SysUserLinkDxUserIdMapper, SysUserLinkDxUserId>
  33. implements SysUserLinkDxUserIdService {
  34. @Autowired
  35. private SysUserLinkDxUserIdMapper sysUserLinkDxUserIdMapper;
  36. @Autowired
  37. private RestTemplate restTemplate;
  38. @Autowired
  39. private DxApiConfigurationProperties dxApiConfigurationProperties;
  40. /**
  41. * @version
  42. * @author: hxl
  43. * @Date: 2024/9/6 19:47
  44. * @Description: 添加掌柜鼎的绑定的用户id
  45. */
  46. @Override
  47. public void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
  48. LambdaQueryWrapper<SysUserLinkDxUserId> lqw = new LambdaQueryWrapper<>();
  49. lqw.eq( SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
  50. SysUserLinkDxUserId one = this.getOne(lqw);
  51. if(one!=null){
  52. one.setDxUserId(sysUserLinkZzbUserIdVo.getLinkUserId());
  53. one.setCreateTime(new Date());
  54. one.setCreateUserId(new BaseController().getUserId());
  55. this.updateById(one);
  56. }else{
  57. SysUserLinkDxUserId sysUserLinkDxUserId =new SysUserLinkDxUserId(null,sysUserLinkZzbUserIdVo.getUserId(), sysUserLinkZzbUserIdVo.getLinkUserId(), new Date(), new BaseController().getUserId());
  58. this.save(sysUserLinkDxUserId);
  59. }
  60. }
  61. /**
  62. * @version
  63. * @author: hxl
  64. * @Date: 2024/9/6 19:46
  65. * @Description: 通过用户id删除数据
  66. */
  67. @Override
  68. public void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
  69. LambdaQueryWrapper<SysUserLinkDxUserId> lqw = new LambdaQueryWrapper<>();
  70. lqw.eq(SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
  71. int rows = this.baseMapper.delete(lqw);
  72. }
  73. /**
  74. * @version
  75. * @author: hxl
  76. * @Date: 2024/9/9 8:54
  77. * @Description: 通过用户关联数据查询返回用户集合
  78. */
  79. @Override
  80. public BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
  81. Page<SysUserLinkUserDto> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
  82. Page<SysUserLinkUserDto> sysUserLinkUserDtoBasePageResult = sysUserLinkDxUserIdMapper.queryPage(page, sysUserLinkQueryUserDto);
  83. List<SysUserLinkUserDto> records = sysUserLinkUserDtoBasePageResult.getRecords();
  84. List<SysUserLinkUserDto> newRecords = new ArrayList<>();
  85. if(records!=null && records.size()>0){
  86. for(SysUserLinkUserDto sysUserLinkUserDto : records){
  87. if(StringUtils.isBlank(sysUserLinkUserDto.getLinkUserId())){
  88. sysUserLinkUserDto.setLinkUserName("");
  89. }else{
  90. Uuser uuser = getDataByGet(sysUserLinkUserDto.getLinkUserId(), dxApiConfigurationProperties.getFindUserById());
  91. sysUserLinkUserDto.setLinkUserName(uuser ==null? "":uuser.getNickname());
  92. }
  93. newRecords.add(sysUserLinkUserDto);
  94. }
  95. }
  96. sysUserLinkUserDtoBasePageResult.setRecords(newRecords);
  97. return new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
  98. sysUserLinkUserDtoBasePageResult.getRecords());
  99. }
  100. /**
  101. * @version
  102. * @author: hxl
  103. * @Date: 2024/9/10 14:53
  104. * @Description: 查询掌柜鼎数据
  105. */
  106. @Override
  107. public BasePageResult<Uuser> queryUserDxPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
  108. Page<Uuser> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(),
  109. sysUserLinkQueryUserDto.getPageSize());
  110. UserQueryVo userQueryVo =new UserQueryVo(sysUserLinkQueryUserDto.getUserName(),sysUserLinkQueryUserDto.getMobile(),sysUserLinkQueryUserDto.getPageSize(), sysUserLinkQueryUserDto.getPageNum());
  111. BasePageResult<Uuser> result = getDataByPost(userQueryVo, dxApiConfigurationProperties.getFindUserListByPage());
  112. if(result!=null ){
  113. return result;
  114. }
  115. return new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), 0, page.getPages(),
  116. new ArrayList<Uuser>());
  117. }
  118. /**
  119. * @version
  120. * @author: hxl
  121. * @Date: 2024/9/9 14:43
  122. * @Description: 分页查询电销用户数据
  123. */
  124. public BasePageResult<Uuser> getDataByPost(UserQueryVo userQueryVo, String url){
  125. HttpHeaders httpHeaders = new HttpHeaders();
  126. httpHeaders.setContentType(MediaType.APPLICATION_JSON);
  127. HttpEntity<UserQueryVo> requestEntity = new HttpEntity<>(userQueryVo,httpHeaders);
  128. ParameterizedTypeReference<HttpResult<BasePageResult<Uuser>>> responseType =
  129. new ParameterizedTypeReference<HttpResult<BasePageResult<Uuser>>>() {};
  130. ResponseEntity<HttpResult<BasePageResult<Uuser>>> response = restTemplate.exchange(
  131. url,
  132. HttpMethod.POST,
  133. requestEntity,
  134. responseType
  135. );
  136. if(response!=null) {
  137. HttpResult<BasePageResult<Uuser>> body = response.getBody();
  138. if (body.getCode() == 200) {
  139. BasePageResult<Uuser> data = body.getData();
  140. return data;
  141. }
  142. }
  143. return null;
  144. }
  145. public DxDataDto getDataByPost(DxDataVo dxDataVo, String url){
  146. HttpHeaders httpHeaders = new HttpHeaders();
  147. httpHeaders.setContentType(MediaType.APPLICATION_JSON);
  148. HttpEntity<DxDataVo> requestEntity = new HttpEntity<>(dxDataVo,httpHeaders);
  149. ResponseEntity<HttpResult<DxDataDto>> response =null;
  150. ParameterizedTypeReference<HttpResult<DxDataDto>> typeRef = new ParameterizedTypeReference<HttpResult<DxDataDto>>() {};
  151. try{
  152. response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, typeRef);
  153. }catch(Exception e){
  154. }
  155. if(response!=null) {
  156. HttpResult<DxDataDto> body = response.getBody();
  157. if (body.getCode() == 200) {
  158. DxDataDto data = body.getData();
  159. return new DxDataDto(dxDataVo.getDateTime(),data.getExhaleDuration(), data.getOutgoingCallsNumber(), data.getConnectionsNumber(), data.getCallSuccessRate());
  160. }
  161. }
  162. return new DxDataDto(dxDataVo.getDateTime(),"-", "-", "-", "-");
  163. }
  164. /**
  165. * @version
  166. * @author: hxl
  167. * @Date: 2024/9/9 14:43
  168. * @Description: 根据用户id查询用户数据
  169. */
  170. public Uuser getDataByGet(String userId, String url){
  171. url = url + "?userId=" + userId;
  172. ResponseEntity<HttpResult<Uuser>> response =null;
  173. ParameterizedTypeReference<HttpResult<Uuser>> typeRef = new ParameterizedTypeReference<HttpResult<Uuser>>() {};
  174. try{
  175. response = restTemplate.exchange(url, HttpMethod.GET, null, typeRef);
  176. }catch(Exception e){
  177. }
  178. if(response!=null) {
  179. HttpResult<Uuser> body = response.getBody();
  180. if (body.getCode() == 200) {
  181. Uuser data = body.getData();
  182. return data;
  183. }
  184. }
  185. return new Uuser();
  186. }
  187. }