初始化
This commit is contained in:
74
src/main/java/org/chenyon/message/Message.java
Normal file
74
src/main/java/org/chenyon/message/Message.java
Normal file
@@ -0,0 +1,74 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
import org.rcy.framework.api.entity.BaseEntity;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@Entity
|
||||
@Table(name = "MESSAGE")
|
||||
public class Message extends BaseEntity {
|
||||
private String title;
|
||||
private MessageType messageType;
|
||||
private String messageContent;
|
||||
private String messageTime;
|
||||
private String messageReceiver;
|
||||
private String bizId;
|
||||
private Boolean hasRead = false;
|
||||
|
||||
public MessageType getMessageType() {
|
||||
return messageType;
|
||||
}
|
||||
|
||||
public void setMessageType(MessageType messageType) {
|
||||
this.messageType = messageType;
|
||||
}
|
||||
|
||||
public String getMessageContent() {
|
||||
return messageContent;
|
||||
}
|
||||
|
||||
public void setMessageContent(String messageContent) {
|
||||
this.messageContent = messageContent;
|
||||
}
|
||||
|
||||
public String getMessageTime() {
|
||||
return messageTime;
|
||||
}
|
||||
|
||||
public void setMessageTime(String messageTime) {
|
||||
this.messageTime = messageTime;
|
||||
}
|
||||
|
||||
public String getMessageReceiver() {
|
||||
return messageReceiver;
|
||||
}
|
||||
|
||||
public void setMessageReceiver(String messageReceiver) {
|
||||
this.messageReceiver = messageReceiver;
|
||||
}
|
||||
|
||||
public String getBizId() {
|
||||
return bizId;
|
||||
}
|
||||
|
||||
public void setBizId(String bizId) {
|
||||
this.bizId = bizId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public Boolean getHasRead() {
|
||||
return hasRead;
|
||||
}
|
||||
|
||||
public void setHasRead(Boolean hasRead) {
|
||||
this.hasRead = hasRead;
|
||||
}
|
||||
}
|
||||
80
src/main/java/org/chenyon/message/MessageController.java
Normal file
80
src/main/java/org/chenyon/message/MessageController.java
Normal file
@@ -0,0 +1,80 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
import org.chenyon.user.LoginCheck;
|
||||
import org.chenyon.user.UserContext;
|
||||
import org.rcy.framework.api.entity.PageResult;
|
||||
import org.rcy.framework.api.entity.ResultMessage;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@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){
|
||||
return ResultMessage.success();
|
||||
}
|
||||
}
|
||||
10
src/main/java/org/chenyon/message/MessageDao.java
Normal file
10
src/main/java/org/chenyon/message/MessageDao.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
import org.rcy.framework.data.dao.BaseDao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MessageDao extends BaseDao<Message> {
|
||||
List<Message> pageQuery(MessageQueryCondition condition);
|
||||
Long countCondition(MessageQueryCondition condition);
|
||||
}
|
||||
31
src/main/java/org/chenyon/message/MessageDao.xml
Normal file
31
src/main/java/org/chenyon/message/MessageDao.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="org.chenyon.message.MessageDao">
|
||||
<select id="queryPage" resultType="Message" parameterType="MessageQueryCondition">
|
||||
select * from message
|
||||
<include refid="whereSQL"/>
|
||||
<if test="limit != null and offset != null">
|
||||
limit #{offset}, #{limit}
|
||||
</if>
|
||||
order by `createTime` desc
|
||||
</select>
|
||||
<select id="countCondition" resultType="Message" parameterType="MessageQueryCondition">
|
||||
select count(*) from message
|
||||
<include refid="whereSQL"/>
|
||||
</select>
|
||||
|
||||
<sql id="whereSQL">
|
||||
<where>
|
||||
1 = 1
|
||||
<if test="bizId != null">
|
||||
AND bizId = #{bizId}
|
||||
</if>
|
||||
<if test="messageReceiver != null">
|
||||
AND messageReceiver = #{messageReceiver}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
</sql>
|
||||
</mapper>
|
||||
16
src/main/java/org/chenyon/message/MessageQueryCondition.java
Normal file
16
src/main/java/org/chenyon/message/MessageQueryCondition.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
import org.rcy.framework.api.entity.PageQueryRequest;
|
||||
|
||||
public class MessageQueryCondition extends PageQueryRequest {
|
||||
|
||||
private String messageReceiver;
|
||||
|
||||
public String getMessageReceiver() {
|
||||
return messageReceiver;
|
||||
}
|
||||
|
||||
public void setMessageReceiver(String messageReceiver) {
|
||||
this.messageReceiver = messageReceiver;
|
||||
}
|
||||
}
|
||||
73
src/main/java/org/chenyon/message/MessageService.java
Normal file
73
src/main/java/org/chenyon/message/MessageService.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
import org.chenyon.wx.AesException;
|
||||
import org.chenyon.wx.WXBizMsgCrypt;
|
||||
import org.rcy.framework.api.entity.PageResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class MessageService {
|
||||
|
||||
@Autowired
|
||||
private MessageDao messageDao;
|
||||
|
||||
|
||||
public MessageVo detail(Long id) {
|
||||
Message message = messageDao.get(id);
|
||||
MessageVo messageVo = new MessageVo();
|
||||
if(message != null) {
|
||||
messageVo.setMessageContent(message.getMessageContent());
|
||||
messageVo.setTitle(message.getTitle());
|
||||
messageVo.setMessageTime(message.getMessageTime());
|
||||
}
|
||||
return messageVo;
|
||||
}
|
||||
|
||||
public void read(Long id) {
|
||||
Message message = messageDao.get(id);
|
||||
message.setHasRead(true);
|
||||
messageDao.updateByPrimaryKeySelective(message);
|
||||
}
|
||||
|
||||
public Integer countUnread(String cusNo){
|
||||
MessageQueryCondition messageQueryCondition = new MessageQueryCondition();
|
||||
messageQueryCondition.setMessageReceiver(cusNo);
|
||||
Long count = messageDao.countCondition(messageQueryCondition);
|
||||
return count.intValue();
|
||||
}
|
||||
|
||||
public PageResult queryPage(MessageQueryCondition condition) {
|
||||
List<Message> messages = messageDao.pageQuery(condition);
|
||||
Long count = messageDao.countCondition(condition);
|
||||
PageResult<Message> pageResult = new PageResult<>();
|
||||
pageResult.setResult(messages);
|
||||
pageResult.setRecordTotal(count);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
public void send(MessageVo messageVo) throws AesException, ParserConfigurationException {
|
||||
// 消息入库
|
||||
//
|
||||
String urlSend = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
|
||||
|
||||
|
||||
// 需要加密的明文
|
||||
String encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG";
|
||||
String token = "pamtest";
|
||||
String timestamp = "1409304348";
|
||||
String nonce = "xxxxxx";
|
||||
String appId = "wxb11529c136998cb6";
|
||||
String replyMsg = " 中文<xml><ToUserName><![CDATA[oia2TjjewbmiOUlr6X-1crbLOvLw]]></ToUserName><FromUserName><![CDATA[gh_7f083739789a]]></FromUserName><CreateTime>1407743423</CreateTime><MsgType><![CDATA[video]]></MsgType><Video><MediaId><![CDATA[eYJ1MbwPRJtOvIEabaxHs7TX2D-HV71s79GUxqdUkjm6Gs2Ed1KF3ulAOA9H1xG0]]></MediaId><Title><![CDATA[testCallBackReplyVideo]]></Title><Description><![CDATA[testCallBackReplyVideo]]></Description></Video></xml>";
|
||||
|
||||
WXBizMsgCrypt pc = new WXBizMsgCrypt(token, encodingAesKey, appId);
|
||||
String mingwen = pc.encryptMsg(replyMsg, timestamp, nonce);
|
||||
System.out.println("加密后: " + mingwen);
|
||||
|
||||
}
|
||||
}
|
||||
11
src/main/java/org/chenyon/message/MessageType.java
Normal file
11
src/main/java/org/chenyon/message/MessageType.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
public enum MessageType {
|
||||
SIGN("合同签署"),
|
||||
BILL("账单催缴"),
|
||||
;
|
||||
private String desc;
|
||||
MessageType(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
76
src/main/java/org/chenyon/message/MessageVo.java
Normal file
76
src/main/java/org/chenyon/message/MessageVo.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package org.chenyon.message;
|
||||
|
||||
public class MessageVo {
|
||||
private String id;
|
||||
private String title;
|
||||
private String messageType;
|
||||
private String messageContent;
|
||||
private String messageTime;
|
||||
private String messageReceiver;
|
||||
private String bizId;
|
||||
private Boolean hasRead;
|
||||
|
||||
public String getMessageType() {
|
||||
return messageType;
|
||||
}
|
||||
|
||||
public void setMessageType(String messageType) {
|
||||
this.messageType = messageType;
|
||||
}
|
||||
|
||||
public String getMessageContent() {
|
||||
return messageContent;
|
||||
}
|
||||
|
||||
public void setMessageContent(String messageContent) {
|
||||
this.messageContent = messageContent;
|
||||
}
|
||||
|
||||
public String getMessageTime() {
|
||||
return messageTime;
|
||||
}
|
||||
|
||||
public void setMessageTime(String messageTime) {
|
||||
this.messageTime = messageTime;
|
||||
}
|
||||
|
||||
public String getMessageReceiver() {
|
||||
return messageReceiver;
|
||||
}
|
||||
|
||||
public void setMessageReceiver(String messageReceiver) {
|
||||
this.messageReceiver = messageReceiver;
|
||||
}
|
||||
|
||||
public String getBizId() {
|
||||
return bizId;
|
||||
}
|
||||
|
||||
public void setBizId(String bizId) {
|
||||
this.bizId = bizId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Boolean getHasRead() {
|
||||
return hasRead;
|
||||
}
|
||||
|
||||
public void setHasRead(Boolean hasRead) {
|
||||
this.hasRead = hasRead;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user