package com.by4cloud.platformx.business.invoice.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.by4cloud.platformx.business.entity.SaleCredit; import com.by4cloud.platformx.business.entity.invoice.FileBip; import com.by4cloud.platformx.business.invoice.mapper.FileBipMapper; import com.by4cloud.platformx.business.invoice.service.FileUploadService; import com.by4cloud.platformx.business.invoice.utils.BipHttpUtil; import com.by4cloud.platformx.business.service.SaleCreditService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.List; /** * @author kdq * @version 1.0.0 * @ClassName FileUploadServiceImpl.java * @Description TODO * @createTime 2024年09月03日 10:06:00 */ @Service public class FileUploadServiceImpl implements FileUploadService { @Autowired private SaleCreditService saleCreditService; @Autowired private FileBipMapper fileBipMapper; @Autowired private BipHttpUtil bipHttpUtil; @Value("${bip.filePath}") private String bipFilePath; @Override public String uploadToBip(Long railwayEntrustId,String businessId,String filename) { String s = bipHttpUtil.postUploadFile(businessId, filename); SaleCredit saleCredit = saleCreditService.getById(railwayEntrustId); JSONObject result = JSON.parseObject(s) ; String code = (String) result.get("code"); if(code.equals("200")){ // 使用JSON.parseObject()来解析JSON对象 JSONObject jsonObject = JSON.parseObject(s); JSONObject data = jsonObject.getJSONObject("data"); JSONArray jsonArray = data.getJSONArray("data"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = jsonArray.getJSONObject(i); FileBip fileBip = new FileBip(); fileBip.setFileId(obj.get("fileId").toString()); fileBip.setFilePath(obj.get("filePath").toString()); fileBip.setFileCTime(obj.get("ctime")+""); fileBip.setFileUTime(obj.get("utime")+""); fileBip.setFileBipId(obj.get("id").toString()); fileBip.setFileExtension(obj.get("fileExtension").toString()); fileBip.setFileSize((Integer)obj.get("fileSize")); fileBip.setFileSizeText(obj.get("fileSizeText").toString()); fileBip.setFileName(obj.get("fileName").toString()); fileBip.setName(obj.get("name").toString()); fileBip.setYhtUserId(obj.get("yhtUserId").toString()); fileBip.setTenantId(obj.get("tenantId").toString()); fileBip.setSign(obj.get("sign").toString()); fileBip.setCopy(obj.get("copy")+""); fileBip.setEntrustId(railwayEntrustId); fileBip.setEntrustCode(saleCredit.getEntrustCode()); fileBip.setFileLocalPath("/yunxiao/filebip/local/"+filename); fileBipMapper.insert(fileBip); } } return s; } @Override public String uploadUrlToBip(Long railwayEntrustId, String businessId, String fileUrl) { String s = bipHttpUtil.postUploadFileUrl(businessId, fileUrl); SaleCredit saleCredit = saleCreditService.getById(railwayEntrustId); JSONObject result = JSON.parseObject(s) ; String code = (String) result.get("code"); if(code.equals("200")){ // 使用JSON.parseObject()来解析JSON对象 JSONObject jsonObject = JSON.parseObject(s); JSONObject data = jsonObject.getJSONObject("data"); JSONArray jsonArray = data.getJSONArray("data"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = jsonArray.getJSONObject(i); FileBip fileBip = new FileBip(); fileBip.setFileId(obj.get("fileId").toString()); fileBip.setFilePath(obj.get("filePath").toString()); fileBip.setFileCTime(obj.get("ctime")+""); fileBip.setFileUTime(obj.get("utime")+""); fileBip.setFileBipId(obj.get("id").toString()); fileBip.setFileExtension(obj.get("fileExtension").toString()); fileBip.setFileSize((Integer)obj.get("fileSize")); fileBip.setFileSizeText(obj.get("fileSizeText").toString()); fileBip.setFileName(obj.get("fileName").toString()); fileBip.setName(obj.get("name").toString()); fileBip.setYhtUserId(obj.get("yhtUserId").toString()); fileBip.setTenantId(obj.get("tenantId").toString()); fileBip.setSign(obj.get("sign").toString()); fileBip.setCopy(obj.get("copy")+""); fileBip.setEntrustId(railwayEntrustId); fileBip.setEntrustCode(saleCredit.getEntrustCode()); fileBip.setFileLocalPath(fileUrl); fileBipMapper.insert(fileBip); } } return s; } @Override public String deleteFileBip(Integer railwayEntrustId,String businessId, String fid) { String s = bipHttpUtil.postDeleteFile(businessId, fid); JSONObject result = JSON.parseObject(s) ; String code = (String) result.get("code"); if(code.equals("200")){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(FileBip::getFileBipId,fid); List fileBips = fileBipMapper.selectList(wrapper); if(!fileBips.isEmpty() && fileBips.size()>0){ for (FileBip fileBip : fileBips) { fileBipMapper.deleteById(fileBip); } } } return s; } }