发表于: 2019-11-05 19:24:15
1 929
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
一、【11:30】
1、定时推送 未完成
二、【15:30】
1.定时推送 已完成
2、学习dubbo调用服务原理 进行中
三、【20:30】
1、整理dubbo服务调用原理 未完成
//TODO 定时推送
@Override
public void update() {
logger.error("开始调用定时推送");
//先调用搜索出需要推送的消息
List<Message> messages=messageMapper.selectByPushTime(new Date().getTime());
logger.error("需要推送的消息有:"+messages.toString());
//遍历所有的消息,将所有的定时推送的任务的拿出来判断
for (Message message:messages){
//只有是定时推送,状态为未推送的消息,进行推送,一是改变推送状态为已推送,二是将消息添加到message_user表,也就是推送到前台
//这里只管未推送的,已推送的不管
message.setPushStatus("已推送");
//这里更新message
int result=messageMapper.updateByPrimaryKeySelective(message);
logger.error("更新推送状态的结果为:"+result);
//然后是将消息推送到前台消息
//推送到message_user表
List<Integer> list= messageMapper.selectUserIdByMessageTitle(message.getTitle());
//这里得到对应等级的用户的id
for (int i=0;i<list.size();i++){
//遍历整个数组
//增加到消息用户表
MessageUser messageUser=new MessageUser();
logger.error("需要推送的用户id为:"+String.valueOf(list));//这里打印有哪些用户需要推送(id)
messageUser.setUserId(Long.valueOf(list.get(i)));
messageUser.setMessageId(message.getId());
//这里设置成未阅读,未删除
messageUser.setIsread(0);
messageUser.setIsdelete(0);
messageUserMapper.insertSelective(messageUser);
}
}
}
<select id="selectByPushTime" resultType="com.ptteng.academy.pojo.Message">
select
<include refid="Base_Column_List" />
from message
where push_time <![CDATA[ <= ]]> #{now}
and type=1 and push_status="未推送"
order by push_time desc
</select>
在每一次的查询消息的接口中先执行定时推送。
//这里先进行定时推送的推送
messageService.update();
插入message_user表失败,其他的逻辑都成功了。
看了一下。逻辑,之前的更新成功了,只是眼花了。
在修改代码,将之前固定的修改人id1改为获取当前登录用户的信息的情况下,出现了报错
org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. This is an invalid application configuration.
只有service想取得当前登录用户信息,失败,controller中取得当前登录用户是可行的。
明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)
评论