package org.chenyon.message; import org.chenyon.user.LoginCheck; import org.chenyon.user.UserContext; import org.chenyon.wx.AesException; import org.rcy.framework.api.entity.PageResult; import org.rcy.framework.api.entity.ResultMessage; import org.rcy.framework.utils.aes.AESUtils; import org.rcy.framework.utils.string.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.xml.parsers.ParserConfigurationException; @RestController @RequestMapping("/message") public class MessageController { private static final Logger log = LoggerFactory.getLogger(MessageController.class); @Autowired private MessageService messageService; @PostMapping("/queryPage") @LoginCheck public ResultMessage queryPage(@RequestBody MessageQueryCondition condition){ UserContext userContext = UserContext.get(); if(userContext == null || userContext.getCusNo() == null) { return ResultMessage.success(new PageResult()); } try { condition.setMessageReceiver(userContext.getCusNo()); return ResultMessage.success(messageService.queryPage(condition)); }catch (Exception e) { log.error(e.getMessage(), e); } return ResultMessage.success(); } @GetMapping("/detail") @LoginCheck public ResultMessage detail(@RequestParam("id") Long id){ try { return ResultMessage.success(messageService.detail(id)); }catch (Exception e) { log.error(e.getMessage(), e); } return ResultMessage.success(); } @GetMapping("/read") @LoginCheck public ResultMessage read(@RequestParam("id") Long id){ try { messageService.read(id); return ResultMessage.success(); }catch (Exception e) { log.error(e.getMessage(), e); } return ResultMessage.success(); } @GetMapping("/countUnread") @LoginCheck public ResultMessage countUnread(){ UserContext userContext = UserContext.get(); if(userContext == null || userContext.getCusNo() == null) { return ResultMessage.success(0); } try { return ResultMessage.success(messageService.countUnread(userContext.getCusNo())); }catch (Exception e) { log.error(e.getMessage(), e); } return ResultMessage.success(0); } @PostMapping("/sendMessage") public ResultMessage sendMessage(@RequestBody MessageVo vo, HttpServletRequest request) throws Exception { String internalToken = request.getHeader("internalToken"); if(StringUtils.isBlank(internalToken)) { return ResultMessage.error("无权限"); } String decrypt = AESUtils.decrypt(internalToken, "rent*123"); if(!"oa".equals(decrypt)){ return ResultMessage.error("无权限"); } messageService.send(vo); return ResultMessage.success(); } }