package com.mzl.flower.service.supplier; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.dto.response.supplier.StationDTO; import com.mzl.flower.entity.supplier.Station; import com.mzl.flower.entity.system.Employee; import com.mzl.flower.entity.system.User; import com.mzl.flower.mapper.supplier.StationMapper; import com.mzl.flower.mapper.system.UserMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; @Service @Transactional public class StationService { private final StationMapper stationMapper; private final UserMapper userMapper; public StationService(StationMapper stationMapper, UserMapper userMapper) { this.stationMapper = stationMapper; this.userMapper = userMapper; } public void add(Station dto) { if("0".equals(dto.getType())){ //总仓 dto.setFreight(new BigDecimal(0)); } dto.create(SecurityUtils.getUserId()); stationMapper.insert(dto); } public void update(Station dto) { if("0".equals(dto.getType())){ //总仓 dto.setFreight(new BigDecimal(0)); } dto.update(SecurityUtils.getUserId()); stationMapper.updateById(dto); } public void delete(Long id) { stationMapper.deleteById(id); } public StationDTO detail(Long id) { Station station = stationMapper.selectById(id); if(station == null){ return null; } StationDTO dto = new StationDTO(); BeanUtils.copyProperties(station, dto); if(StringUtils.isNotBlank(dto.getUserIds())){ StringBuffer sb = new StringBuffer(); for (String userId : dto.getUserIds().split(",")) { User user = userMapper.selectById(userId); if(user != null){ sb.append(user.getNickName()); sb.append(","); } } dto.setUserNames(sb.toString().substring(0, sb.toString().length() - 1)); } return dto; } public Page queryPage(String name, Page page) { List list = stationMapper.queryPage(page, name); for (StationDTO dto : list) { if(StringUtils.isNotBlank(dto.getUserIds())){ StringBuffer sb = new StringBuffer(); for (String userId : dto.getUserIds().split(",")) { User user = userMapper.selectById(userId); if(user != null){ sb.append(user.getNickName()); sb.append(","); } } dto.setUserNames(sb.toString().substring(0, sb.toString().length() - 1)); } } page.setRecords(list); return page; } public List queryList(String name) { List list = stationMapper.queryList( name); return list; } public Boolean getMainWarehouse(String userId) { return stationMapper.selectCount(new LambdaQueryWrapper().eq(Station::getType,"0").like(Station::getUserIds, userId))>0; } }