艾金辉
2023-07-21 c7fe55130816044f71f423727fc8ef734dfae13a
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -15,8 +15,6 @@
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.GetPresignedObjectUrlArgs;
import io.minio.ListObjectsArgs;
@@ -24,7 +22,6 @@
import io.minio.Result;
import io.minio.http.Method;
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;
@@ -49,6 +46,7 @@
    @Resource
    private ArdSyUserMapper ardSyUserMapper;
    /**
     * 查询三一车辆
@@ -102,6 +100,14 @@
     */
    @Override
    public int deleteArdSyCarByIds(String[] ids) {
        List<ArdSyCar> result = ardSyCarMapper.selectArdSyCarByIds(ids);
        List<String> objectNames = new ArrayList();
        for(ArdSyCar ardSyCar : result){
            if(ardSyCar.getCarPicture() != null && !ardSyCar.getCarPicture().equals("")){
                objectNames.add(ardSyCar.getCarPicture().split("/sycar/")[1]);
            }
        }
        MinioUtils.removeObjects("sycar", objectNames);
        return ardSyCarMapper.deleteArdSyCarByIds(ids);
    }
@@ -172,6 +178,59 @@
    }
    @Override
    public Map<String, Object> getArdSyCarAll(String userId) {
        SysConfig config = new SysConfig();
        config.setConfigKey("syCarPT");
        List<SysConfig> sysConfigResult = sysConfigMapper.selectConfigList(config);
        String syURL = "";
        Map<String,Object> 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<ArdSyUser> ardSyUserList = ardSyUserMapper.selectArdSyUserList(ardSyUserPara);
            if(ardSyUserList.size() == 0){
                result.put("data","用户未挂接三一车辆");
                result.put("code","500");
                return result;
            }else{
                ArdSyUser ardSyUser = ardSyUserList.get(0);
                Map<String,Object> LogInResult = SYCarClient.logIn(syURL,ardSyUser.getUserId(), ardSyUser.getPassword());
                String sessionId = (String) LogInResult.get("sessionId");
                Map<String,Object> carListMap = SYCarClient.getCarList(syURL,sessionId);
                if(((String)carListMap.get("rspCode")).equals("1")){
                    List<Map<String,Object>> list = (List<Map<String,Object>>) carListMap.get("list");
                    /*ArdSyCar ardSyCar = new ArdSyCar();
                    List<ArdSyCar> ardSyCarList = ardSyCarMapper.selectArdSyCarList(ardSyCar);
                    List<String> carIdList = new ArrayList();
                    for(ArdSyCar innerArdSyCar : ardSyCarList){
                        carIdList.add(innerArdSyCar.getCarId());
                    }
                    List<Map<String,Object>> carList = list.stream().filter(new Predicate<Map<String,Object>>(){
                        @Override
                        public boolean test(Map<String,Object> map) {
                            return !carIdList.contains((String)map.get("carId"));
                        }
                    }).collect(Collectors.toList());
                    result.put("data",carList);*/
                    result.put("data",list);
                    result.put("code","200");
                    return result;
                }else{
                    result.put("data","三一车辆平台出错");
                    result.put("code","500");
                    return result;
                }
            }
        }
    }
    @Override
    public List<Map<String,String>> getAllCarModel() {
        boolean exsit = MinioUtils.exitsBucket("sycar");
        if (exsit) {
@@ -211,7 +270,15 @@
    @Override
    public String uploadCarPicture(String id, MultipartFile carPicture) {
        //String url = MinioUtils.putObjectAndGetUrl("sycar",carPicture);
        if(id != null && !id.equals("")){//id为非必要
            ArdSyCar ardSyCarr = ardSyCarMapper.selectArdSyCarById(id);
            List<String> objectNames = new ArrayList();
            if(ardSyCarr.getCarPicture() != null || !ardSyCarr.getCarPicture().equals("")){
                String objectName = ardSyCarr.getCarPicture().split("/sycar/")[1];
                objectNames.add(objectName);
                MinioUtils.removeObjects("sycar", objectNames);
            }
        }
        //判断文件是否为空
        if (null == carPicture || 0 == carPicture.getSize()) {
            return "";
@@ -245,13 +312,20 @@
                    .build();
            String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
            String ObjectUrl  = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
            ArdSyCar ardSyCar = new ArdSyCar();
            ardSyCar.setId(id);
            ardSyCar.setCarPicture(ObjectUrl);
            ardSyCarMapper.updateArdSyCar(ardSyCar);
            if(id != null && !id.equals("")){//id为非必要
                ArdSyCar ardSyCar = new ArdSyCar();
                ardSyCar.setId(id);
                ardSyCar.setCarPicture(ObjectUrl);
                ardSyCarMapper.updateArdSyCar(ardSyCar);
            }
            return ObjectUrl;
        } catch (Exception ex) {
            return "";
        }
    }
    @Override
    public List<ArdSyCar> carListById(String id) {
        return ardSyCarMapper.carListById(id);
    }
}