package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.admin.dao.SysUserLinkDxUserIdMapper; import com.ydtech.modules.admin.model.dto.*; import com.ydtech.modules.admin.model.po.SysUserLinkDxUserId; import com.ydtech.modules.admin.model.po.Uuser; import com.ydtech.modules.admin.model.vo.DxDataVo; import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo; import com.ydtech.modules.admin.model.vo.UserQueryVo; import com.ydtech.modules.admin.service.SysUserLinkDxUserIdService; import com.ydtech.modules.admin.utils.DxApiConfigurationProperties; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.order.entity.BasePageResult; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author Administrator * @description 针对表【sys_user(用户信息表)】的数据库操作Service实现 * @createDate 2024-09-06 18:13:19 */ @Service public class SysUserLinkDxUserIdServiceImpl extends ServiceImpl implements SysUserLinkDxUserIdService { @Autowired private SysUserLinkDxUserIdMapper sysUserLinkDxUserIdMapper; @Autowired private RestTemplate restTemplate; @Autowired private DxApiConfigurationProperties dxApiConfigurationProperties; /** * @version * @author: hxl * @Date: 2024/9/6 19:47 * @Description: 添加掌柜鼎的绑定的用户id */ @Override public void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq( SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId()); SysUserLinkDxUserId one = this.getOne(lqw); if(one!=null){ one.setDxUserId(sysUserLinkZzbUserIdVo.getLinkUserId()); one.setCreateTime(new Date()); one.setCreateUserId(new BaseController().getUserId()); this.updateById(one); }else{ SysUserLinkDxUserId sysUserLinkDxUserId =new SysUserLinkDxUserId(null,sysUserLinkZzbUserIdVo.getUserId(), sysUserLinkZzbUserIdVo.getLinkUserId(), new Date(), new BaseController().getUserId()); this.save(sysUserLinkDxUserId); } } /** * @version * @author: hxl * @Date: 2024/9/6 19:46 * @Description: 通过用户id删除数据 */ @Override public void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId()); int rows = this.baseMapper.delete(lqw); } /** * @version * @author: hxl * @Date: 2024/9/9 8:54 * @Description: 通过用户关联数据查询返回用户集合 */ @Override public BasePageResult queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) { Page page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize()); Page sysUserLinkUserDtoBasePageResult = sysUserLinkDxUserIdMapper.queryPage(page, sysUserLinkQueryUserDto); List records = sysUserLinkUserDtoBasePageResult.getRecords(); List newRecords = new ArrayList<>(); if(records!=null && records.size()>0){ for(SysUserLinkUserDto sysUserLinkUserDto : records){ if(StringUtils.isBlank(sysUserLinkUserDto.getLinkUserId())){ sysUserLinkUserDto.setLinkUserName(""); }else{ Uuser uuser = getDataByGet(sysUserLinkUserDto.getLinkUserId(), dxApiConfigurationProperties.getFindUserById()); sysUserLinkUserDto.setLinkUserName(uuser ==null? "":uuser.getNickname()); } newRecords.add(sysUserLinkUserDto); } } sysUserLinkUserDtoBasePageResult.setRecords(newRecords); return new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(), sysUserLinkUserDtoBasePageResult.getRecords()); } /** * @version * @author: hxl * @Date: 2024/9/10 14:53 * @Description: 查询掌柜鼎数据 */ @Override public BasePageResult queryUserDxPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) { Page page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize()); UserQueryVo userQueryVo =new UserQueryVo(sysUserLinkQueryUserDto.getUserName(),sysUserLinkQueryUserDto.getMobile(),sysUserLinkQueryUserDto.getPageSize(), sysUserLinkQueryUserDto.getPageNum()); BasePageResult result = getDataByPost(userQueryVo, dxApiConfigurationProperties.getFindUserListByPage()); if(result!=null ){ return result; } return new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), 0, page.getPages(), new ArrayList()); } /** * @version * @author: hxl * @Date: 2024/9/9 14:43 * @Description: 分页查询电销用户数据 */ public BasePageResult getDataByPost(UserQueryVo userQueryVo, String url){ HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); HttpEntity requestEntity = new HttpEntity<>(userQueryVo,httpHeaders); ParameterizedTypeReference>> responseType = new ParameterizedTypeReference>>() {}; ResponseEntity>> response = restTemplate.exchange( url, HttpMethod.POST, requestEntity, responseType ); if(response!=null) { HttpResult> body = response.getBody(); if (body.getCode() == 200) { BasePageResult data = body.getData(); return data; } } return null; } public DxDataDto getDataByPost(DxDataVo dxDataVo, String url){ HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); HttpEntity requestEntity = new HttpEntity<>(dxDataVo,httpHeaders); ResponseEntity> response =null; ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() {}; try{ response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, typeRef); }catch(Exception e){ } if(response!=null) { HttpResult body = response.getBody(); if (body.getCode() == 200) { DxDataDto data = body.getData(); return new DxDataDto(dxDataVo.getDateTime(),data.getExhaleDuration(), data.getOutgoingCallsNumber(), data.getConnectionsNumber(), data.getCallSuccessRate()); } } return new DxDataDto(dxDataVo.getDateTime(),"-", "-", "-", "-"); } /** * @version * @author: hxl * @Date: 2024/9/9 14:43 * @Description: 根据用户id查询用户数据 */ public Uuser getDataByGet(String userId, String url){ url = url + "?userId=" + userId; ResponseEntity> response =null; ParameterizedTypeReference> typeRef = new ParameterizedTypeReference>() {}; try{ response = restTemplate.exchange(url, HttpMethod.GET, null, typeRef); }catch(Exception e){ } if(response!=null) { HttpResult body = response.getBody(); if (body.getCode() == 200) { Uuser data = body.getData(); return data; } } return new Uuser(); } }