package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.aliyun.oss.ServiceException;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.modular.system.dao.TravelCardPackageMapper;
|
import com.stylefeng.guns.modular.system.model.TravelCardPackage;
|
import com.stylefeng.guns.modular.system.service.ITravelCardPackageService;
|
import com.stylefeng.guns.modular.system.service.ITravelCardService;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Optional;
|
|
/**
|
* <p>
|
* 出行卡包,服务实现类
|
* </p>
|
* @author Lux
|
* @version 1.0.0
|
* @since 2026/6/17 18:21
|
*/
|
@Slf4j
|
@Service
|
@AllArgsConstructor
|
public class TravelCardPackageServiceImpl extends ServiceImpl<TravelCardPackageMapper, TravelCardPackage> implements ITravelCardPackageService {
|
|
private final ITravelCardService travelCardService;
|
|
/**
|
* 获取出行卡包列表
|
*
|
* @param page 分页
|
* @param name 卡包名称
|
* @return 列表数据
|
*/
|
public List<Map<String, Object>> getTravelCardPackageList(Page<Map<String, Object>> page, String name) {
|
List<Map<String, Object>> dataList = this.baseMapper.getTravelCardPackageList(page, name);
|
dataList.forEach(data -> {
|
Integer packageId = Optional.ofNullable(data.get("id")).map(String::valueOf).map(Integer::parseInt).orElse(null);
|
Integer recharge = Optional.ofNullable(travelCardService.rechargeCount(packageId)).orElse(0);
|
data.put("rechargeCount", recharge);
|
});
|
return dataList;
|
}
|
|
/**
|
* 保存出行卡包
|
*
|
* @param travelCardPackage 卡包信息
|
*/
|
@Transactional
|
public Integer saveTravelCard(TravelCardPackage travelCardPackage) {
|
Optional.ofNullable(travelCardPackage).orElseThrow(() -> new RuntimeException("保存出行卡包数据不能为空!"));
|
this.baseMapper.insert(travelCardPackage);
|
// 生成出行卡
|
boolean flag = travelCardService.generateTravelCard(travelCardPackage.getId(), travelCardPackage.getAmount(), travelCardPackage.getTotal());
|
log.info("出行卡包保存,生成出行卡结果:{}", flag);
|
if(!flag) {
|
throw new ServiceException("生成出行卡异常");
|
}
|
return travelCardPackage.getId();
|
}
|
}
|