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.device.hiksdk.config.MinioClientSingleton; import com.ruoyi.device.hiksdk.util.minio.MinioUtils; 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 io.minio.ListObjectsArgs; import io.minio.Result; import io.minio.messages.Item; 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; } } } } @Override public List> getAllCarModel() { //List result = MinioUtils.getBucketObjectName("sycar"); boolean exsit = MinioUtils.exitsBucket("sycar"); if (exsit) { List> listObjetcName = new ArrayList<>(); try { ListObjectsArgs listObjectsArgs = ListObjectsArgs.builder().prefix("carmodel/").bucket("sycar").build(); Iterable> myObjects = MinioClientSingleton.getMinioClient().listObjects(listObjectsArgs); for (Result result : myObjects) { Item item = result.get(); Map map = new HashMap(); map.put("carModel","sycar/" + item.objectName()); switch(item.objectName()){ case "carmodel/aodi.glb":map.put("carType","奥迪");break; case "carmodel/baolai.glb":map.put("carType","宝来");break; case "carmodel/bieke.glb":map.put("carType","别克");break; case "carmodel/bus1.glb":map.put("carType","大客车");break; case "carmodel/car.glb":map.put("carType","小型车");break; case "carmodel/fire(1).glb":map.put("carType","消防车");break; case "carmodel/fute.glb":map.put("carType","福特");break; case "carmodel/jingche_a.glb":map.put("carType","警车");break; case "carmodel/jiuhu.glb":map.put("carType","救护车");break; case "carmodel/oil.glb":map.put("carType","油罐车");break; case "carmodel/truck.glb":map.put("carType","工程用车");break; case "carmodel/van1.glb":map.put("carType","大货车");break; default: break; } listObjetcName.add(map); } return listObjetcName; /*List result = new ArrayList(); for(String file : listObjetcName){ String path = MinioUtils.getBucketObjectUrl("sycar", "carpicture/" + file); result.add(path); } return result;*/ } catch (Exception ex) { //log.error("minio获取桶下对象异常:" + ex.getMessage()); } } return null; } }