package com.xiaopeng.operation.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.operation.dto.XpRideGuideDTO; import com.xiaopeng.operation.mapper.XpRideGuideMapper; import com.xiaopeng.api.model.operation.XpRideGuide; import com.xiaopeng.operation.service.XpRideGuideService; import com.xiaopeng.operation.vo.XpRideGuideNextVo; import com.xiaopeng.operation.vo.XpRideGuideVo; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.Collections; import java.util.List; /** *

* 乘车指南 服务实现类 *

* * @author liu * @since 2026-02-03 */ @Service public class XpRideGuideServiceImpl extends ServiceImpl implements XpRideGuideService { @Resource private AliOssService aliOssService; /** * 获取rideGuide列表 * @return */ @Override public XpRideGuideVo getXpRideGuideList() { XpRideGuideVo xpRideGuideVo = new XpRideGuideVo(); List list = baseMapper.getXpRideGuideList(); for (XpRideGuideNextVo xpRideGuide : list) { JSONObject jsonObject = JSON.parseObject(xpRideGuide.getBannerImage()); String downloadUrl = null; try { // 1 downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } jsonObject.put("url", downloadUrl); xpRideGuide.setBannerImage(jsonObject.toJSONString()); } xpRideGuideVo.setGuides(list); xpRideGuideVo.setTotal(list.size()); return xpRideGuideVo; } /** * 获取rideGuide列表 * @return */ @Override public List getGideList() { List list = list(); for (XpRideGuide xpRideGuide : list) { JSONObject jsonObject = JSON.parseObject(xpRideGuide.getGuideImage()); String downloadUrl = null; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } jsonObject.put("url", downloadUrl); xpRideGuide.setGuideImage(jsonObject.toJSONString()); } return list; } /** * 保存乘车指南 * @param dto */ @Override @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public void saveGuide(XpRideGuideDTO dto) { //根据类型删除已配置的乘车指南 this.remove(null); List guideList = dto.getGuideList(); List xpRideGuides = BeanUtil.copyToList(guideList, XpRideGuide.class); for (XpRideGuide xpRideGuide : xpRideGuides) { this.save(xpRideGuide); } } }