package com.kym.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.github.pagehelper.PageHelper;
import com.kym.common.utils.CommUtil;
import com.kym.entity.StationAccount;
import com.kym.entity.common.PageBean;
import com.kym.entity.queryParams.StationQueryParam;
import com.kym.entity.vo.StationAccountVo;
import com.kym.mapper.StationAccountMapper;
import com.kym.service.StationAccountService;
import com.kym.service.cache.KymCache;
import com.kym.service.mybatisplus.MyBaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
/**
*
* 商户账户表 服务实现类
*
*
* @author skyline
* @since 2025-02-24
*/
@Service
public class StationAccountServiceImpl extends MyBaseServiceImpl implements StationAccountService {
@Override
public StationAccount getStationAccount(String stationId) {
return lambdaQuery().eq(StationAccount::getStationId, stationId).one();
}
@Override
public PageBean listStationAccounts(StationQueryParam params) {
// 判断数据权限
var adminStationIds = KymCache.INSTANCE.getAdminUserStationIds(StpUtil.getLoginIdAsLong());
if (CommUtil.isEmptyOrNull(params.getStationId()) && CommUtil.isNotEmptyAndNull(adminStationIds)) {
params.setStationId(adminStationIds.get(0));
}
if (CommUtil.isNotEmptyAndNull(params.getStationId()) && CommUtil.isNotEmptyAndNull(adminStationIds) && !adminStationIds.contains(params.getStationId())) {
params.setStationId(adminStationIds.get(0));
}
PageHelper.startPage(params.getPageNum(), params.getPageSize());
var res = lambdaQuery()
.eq(CommUtil.isNotEmptyAndNull(params.getStationId()), StationAccount::getStationId, params.getStationId())
.orderByDesc(StationAccount::getId)
.list();
var voList = list().stream().map(item -> {
var vo = new StationAccountVo();
BeanUtils.copyProperties(item, vo);
vo.setStationName(KymCache.INSTANCE.getStationNameById(item.getStationId()));
return vo;
}).toList();
return new PageBean<>(voList);
}
}