| | |
| | | package com.yeshi.fanli.service.impl.msg;
|
| | |
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.msg.UserSystemMsgMapper;
|
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
|
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.system.SystemZnx;
|
| | | import com.yeshi.fanli.exception.msg.UserSystemMsgException;
|
| | | import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | @Service
|
| | | public class UserSystemMsgServiceImpl implements UserSystemMsgService {
|
| | |
|
| | | @Resource
|
| | | private UserSystemMsgMapper userSystemMsgMapper;
|
| | |
|
| | | @Override
|
| | | public void addUserSystemMsg(Long uid, UserSystemMsgTypeEnum type, String title, String content, int timeTag,
|
| | | SystemZnx sz) throws UserSystemMsgException {
|
| | | if (sz == null && (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content) || uid == null))
|
| | | throw new UserSystemMsgException(1, "信息不完整");
|
| | | UserSystemMsg msg = new UserSystemMsg();
|
| | | if (sz != null) {
|
| | | if (userSystemMsgMapper.selectBySystemZNXId(sz.getId()) == null) {
|
| | | msg.setCreateTime(new Date(sz.getCreateTime()));
|
| | | msg.setRead(false);
|
| | | msg.setSolved(false);
|
| | | msg.setSystemZNX(sz);
|
| | | msg.setUser(new UserInfo(uid));
|
| | | msg.setType(type);
|
| | | msg.setTimeTag(timeTag);
|
| | | } else
|
| | | throw new UserSystemMsgException(1, "消息已存在");
|
| | | } else {
|
| | | msg.setCreateTime(new Date());
|
| | | msg.setRead(false);
|
| | | msg.setSolved(false);
|
| | | msg.setContent(content);
|
| | | msg.setTitle(title);
|
| | | msg.setUser(new UserInfo(uid));
|
| | | msg.setType(type);
|
| | | msg.setTimeTag(timeTag);
|
| | | }
|
| | | userSystemMsgMapper.insertSelective(msg);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserSystemMsg getLatestUserSystemMsg(Long uid) {
|
| | | UserSystemMsg msg = userSystemMsgMapper.selectLatestUserSystemMsg(uid);
|
| | | if (msg.getSystemZNX() != null) {
|
| | | msg.setTitle(msg.getSystemZNX().getTitle());
|
| | | msg.setContent(msg.getSystemZNX().getContent());
|
| | | }
|
| | | return msg;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<UserSystemMsg> listUserSystemMsg(Long uid, int page, int pageSize) {
|
| | | List<UserSystemMsg> list = userSystemMsgMapper.listByUid(uid, (page - 1) * pageSize, pageSize);
|
| | | if (list != null)
|
| | | for (UserSystemMsg msg : list) {
|
| | | if (msg.getSystemZNX() != null) {
|
| | | msg.setTitle(msg.getSystemZNX().getTitle());
|
| | | msg.setContent(msg.getSystemZNX().getContent());
|
| | | }
|
| | | }
|
| | |
|
| | | return list;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countUserSystemMsg(Long uid) {
|
| | | return userSystemMsgMapper.countByUid(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void setSystemMsgSolved(Long uid, Long id) throws UserSystemMsgException {
|
| | | UserSystemMsg msg = userSystemMsgMapper.selectByPrimaryKey(id);
|
| | | if (msg.getUser().getId() != uid.longValue())
|
| | | throw new UserSystemMsgException(2, "不是自己的消息");
|
| | | UserSystemMsg update = new UserSystemMsg();
|
| | | update.setId(id);
|
| | | update.setSolved(true);
|
| | | update.setUpdateTime(new Date());
|
| | | userSystemMsgMapper.updateByPrimaryKeySelective(update);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void readMsgByUid(Long uid) {
|
| | | userSystemMsgMapper.setMsgReadByUid(uid);
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.msg; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.yeshi.fanli.dao.mybatis.UserInfoMapper; |
| | | import com.yeshi.fanli.dao.mybatis.msg.UserSystemMsgMapper; |
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsg; |
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum; |
| | | import com.yeshi.fanli.entity.bus.user.UserInfo; |
| | | import com.yeshi.fanli.entity.system.SystemZnx; |
| | | import com.yeshi.fanli.exception.msg.UserSystemMsgException; |
| | | import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService; |
| | | import com.yeshi.fanli.service.inter.msg.UserSystemMsgService; |
| | | import com.yeshi.fanli.service.inter.user.SystemZnxService; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | |
| | | @Service |
| | | public class UserSystemMsgServiceImpl implements UserSystemMsgService { |
| | | |
| | | @Resource |
| | | private UserSystemMsgMapper userSystemMsgMapper; |
| | | |
| | | @Resource |
| | | private UserMsgReadStateService userMsgReadStateService; |
| | | |
| | | @Resource |
| | | private UserInfoMapper userInfoMapper; |
| | | |
| | | @Resource |
| | | private SystemZnxService systemZnxService; |
| | | |
| | | @Transactional(rollbackFor=Exception.class) |
| | | @Override |
| | | public void addUserSystemMsg(Long uid, UserSystemMsgTypeEnum type, String title, String content, int timeTag, |
| | | SystemZnx sz) throws UserSystemMsgException { |
| | | if (sz == null && (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content) || uid == null)) |
| | | throw new UserSystemMsgException(1, "信息不完整"); |
| | | UserSystemMsg msg = new UserSystemMsg(); |
| | | if (sz != null) { |
| | | if (userSystemMsgMapper.selectBySystemZNXId(sz.getId(), uid) == null) { |
| | | msg.setCreateTime(new Date(sz.getCreateTime())); |
| | | msg.setRead(false); |
| | | msg.setSolved(false); |
| | | msg.setSystemZNX(sz); |
| | | msg.setUser(new UserInfo(uid)); |
| | | msg.setType(type); |
| | | msg.setTimeTag(timeTag); |
| | | msg.setTitle(sz.getTitle()); |
| | | msg.setContent(sz.getContent()); |
| | | } else |
| | | throw new UserSystemMsgException(1, "消息已存在"); |
| | | } else { |
| | | msg.setCreateTime(new Date()); |
| | | msg.setRead(false); |
| | | msg.setSolved(false); |
| | | msg.setContent(content); |
| | | msg.setTitle(title); |
| | | msg.setUser(new UserInfo(uid)); |
| | | msg.setType(type); |
| | | msg.setTimeTag(timeTag); |
| | | } |
| | | userSystemMsgMapper.insertSelective(msg); |
| | | userMsgReadStateService.addSystemMsgUnReadCount(uid, 1); |
| | | } |
| | | |
| | | @Override |
| | | public UserSystemMsg getLatestUserSystemMsg(Long uid) { |
| | | UserSystemMsg msg = userSystemMsgMapper.selectLatestUserSystemMsg(uid); |
| | | if (msg != null) |
| | | if (msg.getSystemZNX() != null) { |
| | | msg.setTitle(msg.getSystemZNX().getTitle()); |
| | | msg.setContent(msg.getSystemZNX().getContent()); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | @Override |
| | | public List<UserSystemMsg> listUserSystemMsg(Long uid, int page, int pageSize) { |
| | | List<UserSystemMsg> list = userSystemMsgMapper.listByUid(uid, (page - 1) * pageSize, pageSize); |
| | | if (list != null) |
| | | for (UserSystemMsg msg : list) { |
| | | if (msg.getSystemZNX() != null) { |
| | | msg.setTitle(msg.getSystemZNX().getTitle()); |
| | | msg.setContent(msg.getSystemZNX().getContent()); |
| | | } |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<UserSystemMsg> listDetail(List<Long> ids) { |
| | | return userSystemMsgMapper.listByPrimaryKeys(ids); |
| | | } |
| | | |
| | | @Override |
| | | public long countUserSystemMsg(Long uid) { |
| | | return userSystemMsgMapper.countByUid(uid); |
| | | } |
| | | |
| | | @Override |
| | | public void setSystemMsgSolved(Long uid, Long id) throws UserSystemMsgException { |
| | | UserSystemMsg msg = userSystemMsgMapper.selectByPrimaryKey(id); |
| | | if (msg.getUser().getId() != uid.longValue()) |
| | | throw new UserSystemMsgException(2, "不是自己的消息"); |
| | | UserSystemMsg update = new UserSystemMsg(); |
| | | update.setId(id); |
| | | update.setSolved(true); |
| | | update.setUpdateTime(new Date()); |
| | | userSystemMsgMapper.updateByPrimaryKeySelective(update); |
| | | } |
| | | |
| | | @Override |
| | | public void readMsgByUid(Long uid) { |
| | | userSystemMsgMapper.setMsgReadByUid(uid); |
| | | } |
| | | |
| | | @Override |
| | | public void syncSystemZNX(Long uid) { |
| | | UserInfo user = userInfoMapper.selectAvailableByPrimaryKey(uid); |
| | | if (user == null) |
| | | return; |
| | | long createTime = user.getCreatetime(); |
| | | List<SystemZnx> list = systemZnxService.listbyCreateTime(createTime); |
| | | if (list != null && list.size() > 0) { |
| | | for (SystemZnx znx : list) { |
| | | UserSystemMsg msg = userSystemMsgMapper.selectBySystemZNXId(znx.getId(), uid); |
| | | if (msg == null) |
| | | try { |
| | | addUserSystemMsg(uid, UserSystemMsgTypeEnum.common, null, null, UserSystemMsg.TIME_TAG_COMMON, |
| | | znx); |
| | | } catch (UserSystemMsgException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |