package com.mossle.humantask.web.portal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.List; import javax.annotation.Resource; import com.mossle.api.humantask.HumanTaskConnector; import com.mossle.api.humantask.HumanTaskDTO; import com.mossle.api.tenant.TenantHolder; import com.mossle.api.user.UserConnector; import com.mossle.core.auth.CurrentUserHolder; import com.mossle.core.auth.CurrentUserHolder; import com.mossle.core.page.Page; import com.mossle.msg.persistence.domain.MsgInfo; import com.mossle.msg.persistence.manager.MsgInfoManager; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("msg/portal") public class MsgPortalController { private static Logger logger = LoggerFactory .getLogger(MsgPortalController.class); private MsgInfoManager msgInfoManager; private TenantHolder tenantHolder; private CurrentUserHolder currentUserHolder; private UserConnector userConnector; @RequestMapping("msg") public String msg() throws Exception { String userId = currentUserHolder.getUserId(); String hql = "from MsgInfo where receiverId=? and status=0 order by createTime desc"; List<MsgInfo> msgInfos = (List<MsgInfo>) msgInfoManager.pagedQuery(hql, 1, 10, userId).getResult(); StringBuilder buff = new StringBuilder(); buff.append("<table class='table table-hover'>"); buff.append(" <thead>"); buff.append(" <tr>"); buff.append(" <th>发送人</th>"); buff.append(" <th>时间</th>"); buff.append(" <th>消息</th>"); buff.append(" </tr>"); buff.append(" </thead>"); buff.append(" <tbody>"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (MsgInfo msgInfo : msgInfos) { buff.append(" <tr>"); buff.append(" <td>" + this.findDisplayName(msgInfo.getSenderId()) + "</td>"); buff.append(" <td>" + dateFormat.format(msgInfo.getCreateTime()) + "</td>"); buff.append(" <td>"); buff.append(" <a href='" + ".." + "/msg/msg-info-view.do?id=" + msgInfo.getId() + "'>" + this.substr(msgInfo.getContent()) + "</a>"); buff.append(" </td>"); buff.append(" </tr>"); } buff.append(" </tbody>"); buff.append("</table>"); return buff.toString(); } public String findDisplayName(String userId) { if (StringUtils.isBlank(userId)) { return ""; } return userConnector.findById(userId.trim()).getDisplayName(); } public String substr(String text) { if (StringUtils.isBlank(text)) { return ""; } if (text.trim().length() < 10) { return text.trim(); } return text.trim().substring(0, 10) + "..."; } @Resource public void setMsgInfoManager(MsgInfoManager msgInfoManager) { this.msgInfoManager = msgInfoManager; } @Resource public void setTenantHolder(TenantHolder tenantHolder) { this.tenantHolder = tenantHolder; } @Resource public void setCurrentUserHolder(CurrentUserHolder currentUserHolder) { this.currentUserHolder = currentUserHolder; } @Resource public void setUserConnector(UserConnector userConnector) { this.userConnector = userConnector; } }