package com.panzhihua.service_community.service.impl; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import com.panzhihua.common.model.vos.community.ComActDpcVO; import com.panzhihua.common.model.vos.user.SysTemplateConfigVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComActDpcDAO; import com.panzhihua.service_community.model.dos.ComActDO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; 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.model.vos.R; import com.panzhihua.common.model.vos.community.ComActMessageBackVO; import com.panzhihua.common.model.vos.community.ComActMessageVO; import com.panzhihua.common.model.vos.community.PageComActMessageVO; import com.panzhihua.common.model.vos.community.ResetComActMessageVO; import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO; import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_community.dao.ComActActSignDAO; import com.panzhihua.service_community.dao.ComActMessageBackDAO; import com.panzhihua.service_community.dao.ComActMessageDAO; import com.panzhihua.service_community.model.dos.ComActMessageBackDO; import com.panzhihua.service_community.model.dos.ComActMessageDO; import com.panzhihua.service_community.service.ComActMessageService; import static java.util.Objects.isNull; @Service public class ComActMessageServiceImpl extends ServiceImpl implements ComActMessageService { @Resource private ComActMessageDAO comActMessageDAO; @Resource private ComActMessageBackDAO comActMessageBackDAO; @Resource private ComActActSignDAO comActActSignDAO; @Resource private ComActDAO comActDAO; @Resource private UserService userService; @Resource private ComActDpcDAO comActDpcDAO; @Override public R addMessage(ComActMessageVO comActMessageVO) { Long type = comActMessageVO.getType(); String phone = ""; String sendtoUserName = ""; if (type == 1) { ComPbServiceTeamVO team = comActMessageDAO.selectComPbServiceTeamById(comActMessageVO.getSendtoUserId()); if (ObjectUtils.isEmpty(team)) return R.fail(); phone = team.getPhone(); sendtoUserName = team.getName(); } else if (type == 2) { PartyCommitteeVO party = comActMessageDAO.selectPartyCommitteeById(comActMessageVO.getSendtoUserId()); if (ObjectUtils.isEmpty(party)) return R.fail(); phone = party.getPhone(); sendtoUserName = party.getName(); } else if (type == 3) { ComActDpcVO dpcVO = comActDpcDAO.detailDpc(comActMessageVO.getSendtoUserId()); if (isNull(dpcVO)) { return R.fail(); } phone = dpcVO.getPhone(); sendtoUserName = dpcVO.getName(); } if (ObjectUtils.isEmpty(phone)) return R.fail("未找到联系方式"); comActMessageVO.setPhone(phone); comActMessageVO.setSendtoUserName(sendtoUserName); ComActMessageDO comActMessageDO = new ComActMessageDO(); BeanUtils.copyProperties(comActMessageVO, comActMessageDO); int insert = comActMessageDAO.insert(comActMessageDO); if (insert > 0) { return R.ok(); } return R.fail(); } /** * 我发的留言 */ @Override public R pageMyMessageApplets(ComActMessageVO comActMessageVO) { Page page = new Page<>(); Long pageNum = comActMessageVO.getPageNum(); Long pageSize = comActMessageVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActMessageDAO.pageMyMessageApplets(page, comActMessageVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActMessageVO1 -> { Long id = comActMessageVO1.getId(); List list = comActMessageDAO.selectMsgBackList(id); comActMessageVO1.setBackList(list); }); iPage.setRecords(records); } return R.ok(iPage); } /** * 发给我的留言 */ @Override public R pageSendToMessageApplets(ComActMessageVO comActMessageVO) { Page page = new Page<>(); Long pageNum = comActMessageVO.getPageNum(); Long pageSize = comActMessageVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); String phone = comActMessageVO.getPhone(); if (ObjectUtils.isEmpty(phone)) { IPage iPage = null; return R.ok(iPage); } IPage iPage = comActMessageDAO.pageSendMeMessageApplets(page, comActMessageVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActMessageVO1 -> { Long id = comActMessageVO1.getId(); List list = comActMessageDAO.selectMsgBackList(id); comActMessageVO1.setBackList(list); }); iPage.setRecords(records); } return R.ok(iPage); } /** * 我的社区留言 */ @Override public R pageMyCommunityMessageApplets(ComActMessageVO comActMessageVO) { Page page = new Page<>(); Long pageNum = comActMessageVO.getPageNum(); Long pageSize = comActMessageVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActMessageDAO.pageMyCommunityMessageApplets(page, comActMessageVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActMessageVO1 -> { Long id = comActMessageVO1.getId(); List list = comActMessageDAO.selectMsgBackList(id); if (list != null && list.size() > 0) { list.forEach(vo -> { Long type = comActMessageVO1.getType(); if (type == 1) { ComPbServiceTeamVO team = comActMessageDAO.selectComPbServiceTeamById(comActMessageVO1.getSendtoUserId()); if (!ObjectUtils.isEmpty(team)) { vo.setUserJob(team.getJob()); } } else if (type == 2) { PartyCommitteeVO party = comActMessageDAO.selectPartyCommitteeById(comActMessageVO1.getSendtoUserId()); if (!ObjectUtils.isEmpty(party)) { vo.setUserJob(party.getPosition()); } } }); } comActMessageVO1.setBackList(list); }); iPage.setRecords(records); } return R.ok(iPage); } @Override public R addMessageBack(ComActMessageBackVO comActMessageBackVO) { ComActMessageBackDO comActMessageBackDO = new ComActMessageBackDO(); BeanUtils.copyProperties(comActMessageBackVO, comActMessageBackDO); int insert = comActMessageBackDAO.insert(comActMessageBackDO); if (insert > 0) { ComActMessageDO selectById = comActMessageDAO.selectById(comActMessageBackDO.getMsgId()); selectById.setStatus(2); comActMessageDAO.updateById(selectById); // 回复成功给用户推送订阅消息 Map map = comActActSignDAO.getUserOpenId(selectById.getUserId()); if (map != null) { String openid = map.get("openid"); WxXCXTempSend util = new WxXCXTempSend(); ComActDO comActDO=comActDAO.selectById(comActMessageBackVO.getCommunityId()); R r=userService.selectTemplate(comActDO.getAreaCode(),2); try { WxUtil.sendSubscribeLYHF(openid, util.getAccessToken(), comActMessageBackVO.getUserName(), DateUtils.format(new Date(), DateUtils.ymdhms_format), comActMessageBackVO.getMsgContent(),r.getData().getTemplateId()); } catch (Exception e) { log.error("消息推送失败,失败原因:" + e.getMessage()); } } return R.ok(); } return R.fail(); } @Override public R pageMessageByUserApplets(ComActMessageVO comActMessageVO) { Page page = new Page<>(); Long pageNum = comActMessageVO.getPageNum(); Long pageSize = comActMessageVO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActMessageDAO.pageMessageByUserApplets(page, comActMessageVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActMessageVO1 -> { Long id = comActMessageVO1.getId(); List list = comActMessageDAO.selectMsgBackList(id); comActMessageVO1.setBackList(list); }); iPage.setRecords(records); } return R.ok(iPage); } @Override public R deleteMessage(ComActMessageVO comActMessageVO) { Long id = comActMessageVO.getId(); comActMessageDAO.deleteById(id); comActMessageBackDAO.deleteMsgBackByMsgId(id); // List list = comActMessageDAO.selectMsgBackList(id); // for (ComActMessageBackVO comActMessageBackVO : list) { // comActMessageBackDAO.deleteById(comActMessageBackVO.getId()); // } return R.ok(); } @Override public R resetMessagePublic(ResetComActMessageVO resetComActMessageVO) { if (ObjectUtils.isEmpty(resetComActMessageVO)) return R.fail(); Integer ispublic = resetComActMessageVO.getIspublic(); if (ispublic == null || (ispublic != 1 && ispublic != 2)) return R.fail("状态错误"); List list = resetComActMessageVO.getIds(); for (Long id : list) { comActMessageDAO.updatePublic(ispublic, id); } return R.ok(); } @Override public R detailMessage(Long id) { ComActMessageDO comActMessageDO = comActMessageDAO.selectById(id); PageComActMessageVO vo = new PageComActMessageVO(); BeanUtils.copyProperties(comActMessageDO, vo); List list = comActMessageDAO.selectMsgBackList(id); vo.setBackList(list); // TODO Auto-generated method stub return R.ok(vo); } }