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<ComActColumnDao, ComActColumn> 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<ComActAnnouncement>().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<ComActSocialWorker> workerList = comActSocialWorkerDao.selectIncludeSkillWorkerList(id);
|
if (!workerList.isEmpty()) {
|
workerList.forEach(e -> {
|
String skillType = e.getSkillType();
|
if (isNotBlank(skillType)) {
|
List<String> skillList = Arrays.asList(skillType.split(","));
|
List<String> list = new ArrayList<String>(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);
|
}
|
});
|
}
|
}
|
|
}
|