package org.springblade.modules.property.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.flowable.idm.engine.impl.persistence.entity.UserEntity; import org.springblade.core.tool.utils.Func; import org.springblade.modules.property.entity.PropertyCompanyDistrictEntity; import org.springblade.modules.property.entity.PropertyDistrictUserEntity; import org.springblade.modules.property.service.IPropertyDistrictUserService; import org.springblade.modules.property.vo.PropertyCompanyDistrictVO; import org.springblade.modules.property.mapper.PropertyCompanyDistrictMapper; import org.springblade.modules.property.service.IPropertyCompanyDistrictService; import org.springblade.modules.system.entity.UserDept; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * 物业派驻小区表 服务实现类 * * @author BladeX * @since 2023-11-23 */ @Service public class PropertyCompanyDistrictServiceImpl extends ServiceImpl implements IPropertyCompanyDistrictService { @Autowired private IPropertyDistrictUserService propertyDistrictUserService; /** * 自定义分页查询 * @param page * @param propertyCompanyDistrict * @return */ @Override public IPage selectPropertyCompanyDistrictPage(IPage page, PropertyCompanyDistrictVO propertyCompanyDistrict) { return page.setRecords(baseMapper.selectPropertyCompanyDistrictPage(page, propertyCompanyDistrict)); } /** * 物业派驻小区表 自定义新增或修改 * @param propertyCompanyDistrict * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdatePropertyCompanyDistrict(PropertyCompanyDistrictEntity propertyCompanyDistrict) { if (null != propertyCompanyDistrict.getId()) { return updateById(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict); }else { return save(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict); } } /** * 关联关系维护 * @param propertyCompanyDistrict * @return */ private boolean submitPropertyDistrictUser(PropertyCompanyDistrictEntity propertyCompanyDistrict) { List userIdList = Func.toLongList(propertyCompanyDistrict.getUserId()); List propertyDistrictUserEntityList = new ArrayList<>(); userIdList.forEach(userId -> { PropertyDistrictUserEntity propertyDistrictUserEntity = new PropertyDistrictUserEntity(); propertyDistrictUserEntity.setUserId(userId); propertyDistrictUserEntity.setPropertyCompanyDistrictId(propertyCompanyDistrict.getId()); propertyDistrictUserEntityList.add(propertyDistrictUserEntity); }); // 先删除 propertyDistrictUserService.remove(Wrappers.update().lambda().eq(PropertyDistrictUserEntity::getPropertyCompanyDistrictId, propertyCompanyDistrict.getId())); // 再新增 return propertyDistrictUserService.saveBatch(propertyDistrictUserEntityList); } @Override public List getDistictUserByCode(String houseCode) { return baseMapper.getDistictUserByCode(houseCode); } }