package com.yeshi.fanli.system.service.impl.msg;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.fanli.facade.system.entity.msg.SystemZnx;
|
import org.fanli.facade.system.entity.msg.UserSystemMsg;
|
import org.fanli.facade.system.entity.msg.UserSystemMsgTypeEnum;
|
import org.fanli.facade.system.exception.msg.UserSystemMsgException;
|
import org.fanli.facade.system.service.msg.SystemZnxService;
|
import org.fanli.facade.system.service.msg.UserMsgReadStateService;
|
import org.fanli.facade.system.service.msg.UserSystemMsgService;
|
import org.springframework.stereotype.Service;
|
import org.yeshi.utils.StringUtil;
|
|
import com.yeshi.fanli.base.entity.user.UserInfo;
|
import com.yeshi.fanli.system.dao.msg.UserSystemMsgMapper;
|
|
@Service
|
public class UserSystemMsgServiceImpl implements UserSystemMsgService {
|
|
@Resource
|
private UserSystemMsgMapper userSystemMsgMapper;
|
|
@Resource
|
private UserMsgReadStateService userMsgReadStateService;
|
|
@Resource
|
private SystemZnxService systemZnxService;
|
|
@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);
|
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 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(UserInfo user) {
|
if (user == null)
|
return;
|
long createtTime = user.getCreatetime();
|
List<SystemZnx> list = systemZnxService.listByMinCreateTime(createtTime);
|
if (list != null && list.size() > 0) {
|
for (SystemZnx znx : list) {
|
UserSystemMsg msg = userSystemMsgMapper.selectBySystemZNXId(znx.getId());
|
if (msg == null)
|
try {
|
addUserSystemMsg(user.getId(), UserSystemMsgTypeEnum.common, null, null,
|
UserSystemMsg.TIME_TAG_COMMON, znx);
|
} catch (UserSystemMsgException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|
|
}
|