package com.panzhihua.service_dangjian.service.impl;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.exceptions.PartyBuildingMemberException;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.partybuilding.*;
|
import com.panzhihua.service_dangjian.dao.*;
|
import com.panzhihua.service_dangjian.model.dos.*;
|
import com.panzhihua.service_dangjian.service.ComPbMemberService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.ValueOperations;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.ObjectUtils;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.concurrent.TimeUnit;
|
import java.util.stream.Collectors;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 党员
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-11-30 10:53
|
**/
|
@Slf4j
|
@Service
|
public class ComPbMemberServiceImpl extends ServiceImpl<ComPbMemberDAO,ComPbMemberDO> implements ComPbMemberService {
|
@Resource
|
private ComPbMemberDAO comPbMemberDAO;
|
@Resource
|
private StringRedisTemplate stringRedisTemplate;
|
@Resource
|
private ComPbOrgDAO comPbOrgDAO;
|
@Resource
|
private ComPbMemberRoleDAO comPbMemberRoleDAO;
|
@Resource
|
private ComPbDynDAO comPbDynDAO;
|
@Resource
|
private ComPbDynUserDAO comPbDynUserDAO;
|
|
|
private final String REDIS_ORG_ALL="ogrlist";
|
|
/**
|
* 新增党员
|
*
|
* @param partyBuildingMemberVO 党员基本信息
|
* @return 新增结果
|
*/
|
@Override
|
public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
|
String idCard = partyBuildingMemberVO.getIdCard();
|
ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard, idCard));
|
if (!ObjectUtils.isEmpty(comPbMemberDO)) {
|
return R.fail("身份证已经存在");
|
}
|
ComPbMemberDO comPbMemberDO1=new ComPbMemberDO();
|
BeanUtils.copyProperties(partyBuildingMemberVO,comPbMemberDO1);
|
Date date=new Date();
|
comPbMemberDO1.setCreateAt(date);
|
comPbMemberDO1.setUpdateAt(date);
|
int insert = comPbMemberDAO.insert(comPbMemberDO1);
|
if (insert>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 批量新增党员
|
*
|
* @param list 党员集合
|
* @return 新增结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list) {
|
Boolean aBoolean = stringRedisTemplate.hasKey(REDIS_ORG_ALL);
|
ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
|
List<PartyOrganizationVO> partyOrganizationVOS=new ArrayList<>();
|
if (aBoolean) {
|
String orgs = valueOperations.get(REDIS_ORG_ALL);
|
if (!ObjectUtils.isEmpty(orgs)) {
|
partyOrganizationVOS= JSONArray.parseArray(orgs,PartyOrganizationVO.class);
|
}
|
} else {
|
List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(null);
|
if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
|
List<PartyOrganizationVO> partyOrganizationVOList=new ArrayList<>();
|
comPbOrgDOS.forEach(comPbOrgDO -> {
|
PartyOrganizationVO partyOrganizationVO=new PartyOrganizationVO();
|
partyOrganizationVO.setId(comPbOrgDO.getId());
|
partyOrganizationVO.setName(comPbOrgDO.getName());
|
partyOrganizationVOList.add(partyOrganizationVO);
|
});
|
partyOrganizationVOS= partyOrganizationVOList;
|
}
|
valueOperations.set(REDIS_ORG_ALL,JSONArray.toJSONString(partyOrganizationVOS),24, TimeUnit.HOURS);
|
}
|
List<ComPbMemberDO> comPbMemberDOS=new ArrayList<>();
|
if (!ObjectUtils.isEmpty(list)) {
|
List<PartyOrganizationVO> partyOrganizationVOArrayList=partyOrganizationVOS;
|
list.forEach(partyBuildingMemberExcelVO -> {
|
ComPbMemberDO comPbMemberDO=new ComPbMemberDO();
|
Date date=new Date();
|
comPbMemberDO.setUpdateAt(date);
|
comPbMemberDO.setCreateAt(date);
|
String orgName = partyBuildingMemberExcelVO.getOrgName();
|
List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream().filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName())).collect(Collectors.toList());
|
if (ObjectUtils.isEmpty(collect)) {
|
throw new PartyBuildingMemberException("导入失败,组织不存在"+partyBuildingMemberExcelVO.getOrgName());
|
}else{
|
comPbMemberDO.setOrgId(collect.get(0).getId());
|
}
|
comPbMemberDO.setEmploymentTime(partyBuildingMemberExcelVO.getEmploymentTime());
|
comPbMemberDO.setJoinTime(partyBuildingMemberExcelVO.getJoinTime());
|
comPbMemberDO.setName(partyBuildingMemberExcelVO.getName());
|
comPbMemberDO.setIdCard(partyBuildingMemberExcelVO.getIdCard());
|
comPbMemberDOS.add(comPbMemberDO);
|
});
|
}
|
try {
|
this.saveBatch(comPbMemberDOS);
|
} catch (Exception e) {
|
if (e.getMessage().contains("unique_id_card_community_id")) {
|
throw new PartyBuildingMemberException("导入失败,身份证已经存在");
|
}
|
throw new PartyBuildingMemberException("导入失败,存入数据库错误");
|
}
|
return R.ok();
|
}
|
|
/**
|
* 分页党员
|
*
|
* @param pagePartyOrganizationVO 查询信息
|
* @return 分页数据
|
*/
|
@Override
|
public R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO) {
|
Page page=new Page<>();
|
Long pageNum = pagePartyOrganizationVO.getPageNum();
|
Long pageSize = pagePartyOrganizationVO.getPageSize();
|
if (null==pageNum||0==pageNum) {
|
pageNum=1l;
|
}
|
if (null==pageSize||0==pageSize) {
|
pageSize=10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<PartyBuildingMemberVO> iPage=comPbMemberDAO.pagePartyOrganization(page, pagePartyOrganizationVO);
|
return R.ok(iPage);
|
}
|
|
/**
|
* 编辑党员信息 新增字段均可编辑
|
*
|
* @param partyBuildingMemberVO 编辑字段
|
* @return 编辑结果
|
*/
|
@Override
|
public R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
|
ComPbMemberDO comPbMemberDO=new ComPbMemberDO();
|
Long orgId = partyBuildingMemberVO.getOrgId();
|
if (null!=orgId&&0==orgId) {
|
partyBuildingMemberVO.setOrgId(null);
|
}
|
BeanUtils.copyProperties(partyBuildingMemberVO,comPbMemberDO);
|
int i = comPbMemberDAO.updateById(comPbMemberDO);
|
if (i>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 查询指定社区的所有党员
|
*
|
* @param communityId 社区id
|
* @return 党员列表
|
*/
|
@Override
|
public R listPartyMember(Long communityId) {
|
// List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getCommunityId,communityId));
|
// 查询社区所有已经注册的党员
|
List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectListRegister(communityId);
|
if (ObjectUtils.isEmpty(comPbMemberDOS)) {
|
return R.ok(new ArrayList<>());
|
}
|
List<PartyBuildingMemberVO> partyBuildingMemberVOS=new ArrayList<>();
|
comPbMemberDOS.forEach(comPbMemberDO -> {
|
PartyBuildingMemberVO partyBuildingMemberVO=new PartyBuildingMemberVO();
|
BeanUtils.copyProperties(comPbMemberDO,partyBuildingMemberVO);
|
partyBuildingMemberVOS.add(partyBuildingMemberVO);
|
});
|
return R.ok(partyBuildingMemberVOS);
|
}
|
|
/**
|
* 新增党委
|
*
|
* @param partyCommitteeVO 新增信息
|
* @return 新增结果
|
*/
|
@Override
|
public R addPartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
Long partyMemberId = partyCommitteeVO.getPartyMemberId();
|
if (null==partyMemberId||0==partyMemberId) {
|
return R.fail("党员id不能为空");
|
}
|
ComPbMemberRoleDO comPbMemberRoleDO1 = comPbMemberRoleDAO.selectOne(new QueryWrapper<ComPbMemberRoleDO>().lambda().eq(ComPbMemberRoleDO::getMemberId, partyMemberId));
|
if (!ObjectUtils.isEmpty(comPbMemberRoleDO1)) {
|
return R.fail("党员身份已经存在");
|
}
|
ComPbMemberRoleDO comPbMemberRoleDO=new ComPbMemberRoleDO();
|
comPbMemberRoleDO.setCommunityId(partyCommitteeVO.getCommunityId());
|
comPbMemberRoleDO.setMemberId(partyMemberId);
|
comPbMemberRoleDO.setRoleId(partyCommitteeVO.getRoleId());
|
int insert = comPbMemberRoleDAO.insert(comPbMemberRoleDO);
|
if (insert>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 编辑党委
|
*
|
* @param partyCommitteeVO 编辑信息
|
* @return 编辑结果
|
*/
|
@Override
|
public R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
ComPbMemberRoleDO comPbMemberRoleDO=new ComPbMemberRoleDO();
|
comPbMemberRoleDO.setCommunityId(partyCommitteeVO.getCommunityId());
|
comPbMemberRoleDO.setMemberId(partyCommitteeVO.getPartyMemberId());
|
comPbMemberRoleDO.setRoleId(partyCommitteeVO.getRoleId());
|
comPbMemberRoleDO.setId(partyCommitteeVO.getId());
|
int update = comPbMemberRoleDAO.updateById(comPbMemberRoleDO);
|
if (update>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 删除党委
|
*
|
* @param partyCommitteeVO 删除id
|
* @return 删除结果
|
*/
|
@Override
|
public R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
int delete = comPbMemberRoleDAO.deleteById(partyCommitteeVO.getId());
|
if (delete>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 分页社区党委查询
|
*
|
* @param partyCommitteeVO 查询参数
|
* @return 分页集合
|
*/
|
@Override
|
public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
Page page=new Page<>();
|
Long pageNum = partyCommitteeVO.getPageNum();
|
Long pageSize = partyCommitteeVO.getPageSize();
|
if (null==pageNum||0==pageNum) {
|
pageNum=1l;
|
}
|
if (null==pageSize||0==pageSize) {
|
pageSize=10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<PartyCommitteeVO> iPage=comPbMemberRoleDAO.pagePartyOrganization(page, partyCommitteeVO);
|
return R.ok(iPage);
|
}
|
|
/**
|
* 新建党建动态
|
*
|
* @param partyCommitteeVO 动态内容
|
* @return 新增结果
|
*/
|
@Override
|
public R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
|
ComPbDynDO comPbDynDO=new ComPbDynDO();
|
BeanUtils.copyProperties(partyCommitteeVO,comPbDynDO);
|
comPbDynDO.setCreateAt(new Date());
|
int insert = comPbDynDAO.insert(comPbDynDO);
|
if (insert>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 编辑动态
|
*
|
* @param partyCommitteeVO 编辑内容
|
* @return 编辑结果
|
*/
|
@Override
|
public R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
|
ComPbDynDO comPbDynDO=new ComPbDynDO();
|
BeanUtils.copyProperties(partyCommitteeVO,comPbDynDO);
|
int insert = comPbDynDAO.updateById(comPbDynDO);
|
if (insert>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 动态详情
|
*
|
* @param id 动态主键
|
* @return 详情
|
*/
|
@Override
|
public R infoYnamic(Integer id) {
|
ComPbDynDO comPbDynDO = comPbDynDAO.selectById(id);
|
if (ObjectUtils.isEmpty(comPbDynDO)) {
|
return R.fail("动态不存在");
|
}
|
PartyBuildingComPbDynVO partyBuildingComPbDynVO=new PartyBuildingComPbDynVO();
|
Long createBy = comPbDynDO.getCreateBy();
|
// ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(createBy);
|
String name = comPbMemberDAO.selectNameByUserId(createBy);
|
if (ObjectUtils.isEmpty(name)) {
|
// return R.fail("发布人不存在");
|
name="后台发布";
|
}
|
Integer integer = comPbDynUserDAO.selectCount(new QueryWrapper<ComPbDynUserDO>().lambda().eq(ComPbDynUserDO::getDynId, id));
|
BeanUtils.copyProperties(comPbDynDO,partyBuildingComPbDynVO);
|
partyBuildingComPbDynVO.setCreateByName(name);
|
partyBuildingComPbDynVO.setReadingVolume(null==integer?0:integer);
|
return R.ok(partyBuildingComPbDynVO);
|
}
|
|
/**
|
* 分页查询党员动态
|
*
|
* @param partyBuildingComPbDynVO 查询参数
|
* @return 分页数据
|
*/
|
@Override
|
public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
|
Page page=new Page<>();
|
Long pageNum = partyBuildingComPbDynVO.getPageNum();
|
Long pageSize = partyBuildingComPbDynVO.getPageSize();
|
if (null==pageNum) {
|
pageNum=1l;
|
}
|
if (null==pageSize) {
|
pageSize=10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<PartyBuildingComPbDynVO> iPage=comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO);
|
return R.ok(iPage);
|
}
|
|
/**
|
* 删除动态
|
*
|
* @param id 动态主键
|
* @return 删除结果
|
*/
|
@Override
|
public R deleteYnamic(Integer id) {
|
int delete = comPbDynDAO.deleteById(id);
|
if (delete>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 增加阅读记录
|
*
|
* @param comPbDynUserVO 阅读记录
|
* @return 增加结果
|
*/
|
@Override
|
public R addDynUser(ComPbDynUserVO comPbDynUserVO) {
|
ComPbDynUserDO comPbDynUserDO = comPbDynUserDAO.selectOne(new QueryWrapper<ComPbDynUserDO>().lambda().eq(ComPbDynUserDO::getDynId,comPbDynUserVO.getDynId()).eq(ComPbDynUserDO::getUserId,comPbDynUserVO.getUserId()));
|
if (ObjectUtils.isEmpty(comPbDynUserDO)) {
|
comPbDynUserDO=new ComPbDynUserDO();
|
BeanUtils.copyProperties(comPbDynUserVO,comPbDynUserDO);
|
comPbDynUserDAO.insert(comPbDynUserDO);
|
}
|
return R.ok();
|
}
|
|
/**
|
* 删除党员
|
*
|
* @param id 党员主键
|
* @return 删除结果
|
*/
|
@Override
|
public R deleteDynUser(Integer id) {
|
int delete = comPbMemberDAO.deleteById(id);
|
if (delete>0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 定时任务刷新党建动态发布状态
|
*
|
* @return 刷新数据数量
|
*/
|
@Override
|
public R timedTaskPartyBuildingStatus() {
|
int num=comPbDynDAO.timedTaskPartyBuildingStatus();
|
log.info("定时任务更新党建动态发布状态数量【{}】",num);
|
return R.ok(num);
|
}
|
|
|
}
|