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);
|
}
|
|
}
|