package com.xiaopeng.operation.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.operation.dto.XpAgreementDTO; import com.xiaopeng.operation.mapper.XpAgreementMapper; import com.xiaopeng.api.model.operation.XpAgreement; import com.xiaopeng.operation.service.XpAgreementService; import com.xiaopeng.operation.vo.XpAgreementVo; import org.springframework.stereotype.Service; import java.util.*; /** *

* 协议设置 服务实现类 *

* * @author liu * @since 2026-02-03 */ @Service public class XpAgreementServiceImpl extends ServiceImpl implements XpAgreementService { @Override public XpAgreementVo getContentByType(Integer type) { XpAgreement xpAgreement = this.getOne(new LambdaQueryWrapper().eq(XpAgreement::getContentType,type)); if (xpAgreement != null) { XpAgreementVo xpAgreementVo = new XpAgreementVo(); xpAgreementVo.setId(xpAgreement.getId()); xpAgreementVo.setContent(xpAgreement.getContent()); xpAgreementVo.setType(xpAgreement.getContentType()); xpAgreementVo.setVersion(xpAgreement.getVersion()); return xpAgreementVo; } return null; } @Override public List getContentByTypeAll() { List list = this.list(new LambdaQueryWrapper().in(XpAgreement::getContentType, Arrays.asList(1,2,3,4))); List xpAgreementVos = new ArrayList<>(); for (XpAgreement xpAgreement : list) { XpAgreementVo xpAgreementVo = new XpAgreementVo(); xpAgreementVo.setId(xpAgreement.getId()); xpAgreementVo.setContent(xpAgreement.getContent()); xpAgreementVo.setType(xpAgreement.getContentType()); xpAgreementVo.setVersion(xpAgreement.getVersion()); xpAgreementVos.add(xpAgreementVo); } return xpAgreementVos; } /** * 根据类型获取配置 * @param type * @return */ @Override public XpAgreement getAgreementContent(Integer type) { return this.lambdaQuery().eq(XpAgreement::getContentType, type).last("limit 1").one(); } @Override public void saveAgreement(XpAgreementDTO dto) { //根据类型查询协议 Optional opt = this.lambdaQuery().eq(XpAgreement::getContentType, dto.getContentType()).last("limit 1").oneOpt(); //如果存在则更新,不存在则新增 if (opt.isPresent()) { XpAgreement xpAgreement = opt.get(); xpAgreement.setContent(dto.getContent()); updateById(xpAgreement); } else { XpAgreement xpAgreement = BeanUtil.copyProperties(dto, XpAgreement.class); this.save(xpAgreement); } } }