package com.ruoyi.sy.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Predicate; import java.util.stream.Collectors; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.mapper.ArdSyUserMapper; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.httpclient.SYCarClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.domain.ArdSyCar; import com.ruoyi.sy.service.IArdSyCarService; import javax.annotation.Resource; /** * 三一车辆Service业务层处理 * * @author ard * @date 2023-06-26 */ @Service public class ArdSyCarServiceImpl implements IArdSyCarService { @Resource private ArdSyCarMapper ardSyCarMapper; @Resource private SysConfigMapper sysConfigMapper; @Resource private ArdSyUserMapper ardSyUserMapper; /** * 查询三一车辆 * * @param id 三一车辆主键 * @return 三一车辆 */ @Override public ArdSyCar selectArdSyCarById(String id) { return ardSyCarMapper.selectArdSyCarById(id); } /** * 查询三一车辆列表 * * @param ardSyCar 三一车辆 * @return 三一车辆 */ @Override public List selectArdSyCarList(ArdSyCar ardSyCar) { return ardSyCarMapper.selectArdSyCarList(ardSyCar); } /** * 新增三一车辆 * * @param ardSyCar 三一车辆 * @return 结果 */ @Override public int insertArdSyCar(ArdSyCar ardSyCar) { return ardSyCarMapper.insertArdSyCar(ardSyCar); } /** * 修改三一车辆 * * @param ardSyCar 三一车辆 * @return 结果 */ @Override public int updateArdSyCar(ArdSyCar ardSyCar) { return ardSyCarMapper.updateArdSyCar(ardSyCar); } /** * 批量删除三一车辆 * * @param ids 需要删除的三一车辆主键 * @return 结果 */ @Override public int deleteArdSyCarByIds(String[] ids) { return ardSyCarMapper.deleteArdSyCarByIds(ids); } /** * 删除三一车辆信息 * * @param id 三一车辆主键 * @return 结果 */ @Override public int deleteArdSyCarById(String id) { return ardSyCarMapper.deleteArdSyCarById(id); } /** * 获取未挂接权限的三一车辆 */ @Override public Map getArdSyCarNoRight(String userId) { SysConfig config = new SysConfig(); config.setConfigKey("syCarPT"); List sysConfigResult = sysConfigMapper.selectConfigList(config); String syURL = ""; Map result = new HashMap(); if(sysConfigResult.size() == 0){ result.put("data","三一车辆url没有录入"); result.put("code","500"); return result; }else{ syURL = sysConfigResult.get(0).getConfigValue(); ArdSyUser ardSyUserPara = new ArdSyUser(); ardSyUserPara.setSysUserId(userId); List ardSyUserList = ardSyUserMapper.selectArdSyUserList(ardSyUserPara); if(ardSyUserList.size() == 0){ result.put("data","用户未挂接三一车辆"); result.put("code","500"); return result; }else{ ArdSyUser ardSyUser = ardSyUserList.get(0); Map LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword()); String sessionId = (String) LogInResult.get("sessionId"); Map carListMap = SYCarClient.getCarList(syURL,sessionId); if(((String)carListMap.get("rspCode")).equals("1")){ List> list = (List>) carListMap.get("list"); ArdSyCar ardSyCar = new ArdSyCar(); List ardSyCarList = ardSyCarMapper.selectArdSyCarList(ardSyCar); List carIdList = new ArrayList(); for(ArdSyCar innerArdSyCar : ardSyCarList){ carIdList.add(innerArdSyCar.getCarId()); } List> carList = list.stream().filter(new Predicate>(){ @Override public boolean test(Map map) { return !carIdList.contains((String)map.get("carId")); } }).collect(Collectors.toList()); result.put("data",carList); result.put("code","200"); return result; }else{ result.put("data","三一车辆平台出错"); result.put("code","500"); return result; } } } } }