101captain
2022-07-20 c40f8e3d2e08e108780091776437242528bf61d6
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActColumnServiceImpl.java
@@ -1,5 +1,19 @@
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;
@@ -7,10 +21,13 @@
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.dao.ComActColumnDao;
import com.panzhihua.service_community.entity.ComActSocialWorker;
import com.panzhihua.service_community.service.ComActColumnService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -29,6 +46,10 @@
    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));
@@ -39,12 +60,102 @@
        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);
                }
            });
        }
    }
}