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<ComActMessageDAO, ComActMessageDO>
|
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<PageComActMessageVO> iPage = comActMessageDAO.pageMyMessageApplets(page, comActMessageVO);
|
List<PageComActMessageVO> records = iPage.getRecords();
|
if (!ObjectUtils.isEmpty(records)) {
|
records.forEach(comActMessageVO1 -> {
|
Long id = comActMessageVO1.getId();
|
List<ComActMessageBackVO> 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<PageComActMessageVO> iPage = null;
|
return R.ok(iPage);
|
}
|
IPage<PageComActMessageVO> iPage = comActMessageDAO.pageSendMeMessageApplets(page, comActMessageVO);
|
List<PageComActMessageVO> records = iPage.getRecords();
|
if (!ObjectUtils.isEmpty(records)) {
|
records.forEach(comActMessageVO1 -> {
|
Long id = comActMessageVO1.getId();
|
List<ComActMessageBackVO> 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<PageComActMessageVO> iPage = comActMessageDAO.pageMyCommunityMessageApplets(page, comActMessageVO);
|
List<PageComActMessageVO> records = iPage.getRecords();
|
if (!ObjectUtils.isEmpty(records)) {
|
records.forEach(comActMessageVO1 -> {
|
Long id = comActMessageVO1.getId();
|
List<ComActMessageBackVO> 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<String, String> map = comActActSignDAO.getUserOpenId(selectById.getUserId());
|
if (map != null) {
|
String openid = map.get("openid");
|
WxXCXTempSend util = new WxXCXTempSend();
|
ComActDO comActDO=comActDAO.selectById(comActMessageBackVO.getCommunityId());
|
R<SysTemplateConfigVO> 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<PageComActMessageVO> iPage = comActMessageDAO.pageMessageByUserApplets(page, comActMessageVO);
|
List<PageComActMessageVO> records = iPage.getRecords();
|
if (!ObjectUtils.isEmpty(records)) {
|
records.forEach(comActMessageVO1 -> {
|
Long id = comActMessageVO1.getId();
|
List<ComActMessageBackVO> 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<ComActMessageBackVO> 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<Long> 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<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
|
vo.setBackList(list);
|
// TODO Auto-generated method stub
|
return R.ok(vo);
|
}
|
|
}
|