package com.panzhihua.service_community.service.impl; import static java.util.Objects.nonNull; import static org.apache.commons.lang3.StringUtils.isNotBlank; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.annotation.Resource; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.model.dos.ComActDO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActColumnVO; import com.panzhihua.service_community.dao.ComActAnnouncementDao; import com.panzhihua.service_community.dao.ComActColumnDao; import com.panzhihua.service_community.dao.ComActSocialWorkerDao; import com.panzhihua.service_community.entity.ComActAnnouncement; import com.panzhihua.service_community.entity.ComActColumn; import com.panzhihua.service_community.entity.ComActSocialWorker; import com.panzhihua.service_community.service.ComActColumnService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * 分类列表(ComActColumn)表服务实现类 * * @author makejava * @since 2021-11-01 14:38:25 */ @Slf4j @Service public class ComActColumnServiceImpl extends ServiceImpl implements ComActColumnService { @Resource private ComActColumnDao comActColumnDao; @Resource private ComActAnnouncementDao comActAnnouncementDao; @Resource private ComActSocialWorkerDao comActSocialWorkerDao; @Resource private ComActDAO comActDAO; @Override public R pageList(CommonPage commonPage) { return R.ok(this.comActColumnDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage)); } @Override public R delete(Long id) { if(!comActAnnouncementDao.selectList(new QueryWrapper().lambda().eq(ComActAnnouncement::getColumnId,id)).isEmpty()){ return R.fail("当前类型无法删除,请先处理绑定数据"); } ComActColumn comActColumn = comActColumnDao.selectById(id); if (nonNull(comActColumn) && comActColumn.getType().equals(2)) { //社工技能 updateWorkerSkill(id); } return R.ok(comActColumnDao.deleteById(id)); } @Override public R queryLevel(ComActColumnVO comActColumnVO) { Integer type = comActColumnVO.getType(); Long communityId = comActColumnVO.getCommunityId(); if (nonNull(type) && type.equals(4) && nonNull(communityId)) { ComActDO comActDO = comActDAO.selectById(communityId); if (nonNull(comActDO)) { comActColumnVO.setStreetId(comActDO.getStreetId()); } } return R.ok(this.comActColumnDao.queryLevel(comActColumnVO)); } /** * 修改数据 * * @param comActColumnVO 实体对象 * @return 修改结果 */ @Override public R updateColumn(ComActColumnVO comActColumnVO) { ComActColumn comActColumn = this.baseMapper.selectById(comActColumnVO.getId()); BeanUtils.copyProperties(comActColumnVO, comActColumn); int result = this.baseMapper.updateById(comActColumn); if (result > 0) { if (comActColumn.getType().equals(2)) { //社工技能 updateWorkerSkill(comActColumn.getId()); } return R.ok(); } return R.fail("操作失败,请重新尝试"); } /** * 新增数据 * * @param comActColumnVO 实体对象 * @return 新增结果 */ @Override public R addColumn(ComActColumnVO comActColumnVO) { ComActColumn comActColumn = new ComActColumn(); BeanUtils.copyProperties(comActColumnVO, comActColumn); Long communityId = comActColumnVO.getCommunityId(); if (nonNull(communityId)) { ComActDO comActDO = comActDAO.selectById(communityId); if (nonNull(comActDO)) { comActColumn.setStreetId(comActDO.getStreetId()); } } int result = this.baseMapper.insert(comActColumn); if (result > 0) { return R.ok(); } return R.fail("操作失败,请重新尝试"); } private void updateWorkerSkill(Long id) { List workerList = comActSocialWorkerDao.selectIncludeSkillWorkerList(id); if (!workerList.isEmpty()) { workerList.forEach(e -> { String skillType = e.getSkillType(); if (isNotBlank(skillType)) { List skillList = Arrays.asList(skillType.split(",")); List list = new ArrayList(skillList); list.remove(id.toString()); StringBuilder sb = new StringBuilder(); StringBuilder sb1 = new StringBuilder(); for (int i = 0; i < list.size(); i++) { String skillId = list.get(i); ComActColumn skillColumn = comActColumnDao.selectById(skillId); if (i < list.size() - 1) { sb.append(skillId); sb.append(","); sb1.append(skillColumn.getName()); sb1.append(","); } else { sb.append(skillId); sb1.append(skillColumn.getName()); } } e.setSkillType(sb.toString()); e.setSkillTypeName(sb1.toString()); comActSocialWorkerDao.updateById(e); } }); } } }