Commit 51060b06 authored by liwei's avatar liwei

新增了会员热度定时任务,修改了移除黑名单接口

parent f52a2a01
......@@ -191,5 +191,20 @@ public interface MemInfoRepository extends CyBaseMapper<MemInfo> {
* 查询互换微信任务记录
*/
MemUserTaskDTO selectWeChatTask(@Param("entity") MemUserTaskDTO memUserTaskDTO);
/**
* 查询所有用户id
*/
List<Integer> selectUserIdList();
/**
* 查询当前用户的总被点赞数
*/
Integer selectUserLikedCount(Integer userId);
/**
* 查询当前用户的总被点赞数
*/
Integer selectUserFollowedCount(Integer userId);
}
......@@ -625,6 +625,7 @@ public class MemInfoServiceImpl extends ServiceImpl<MemInfoRepository,MemInfo>
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT)
@Override
public CyPersistModel addFollow(MemFollowDTO followDTO){
//添加到关注表
int line = baseMapper.addFollow(followDTO);
return new CyPersistModel(line);
}
......@@ -653,6 +654,7 @@ public class MemInfoServiceImpl extends ServiceImpl<MemInfoRepository,MemInfo>
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT)
@Override
public CyPersistModel deleteFollow(MemFollowDTO followDTO){
//删除关注
Integer line = baseMapper.deleteFollow(followDTO);
return new CyPersistModel(line);
}
......@@ -962,4 +964,39 @@ public class MemInfoServiceImpl extends ServiceImpl<MemInfoRepository,MemInfo>
MemUserTaskDTO memUserTaskDTO1 = baseMapper.selectWeChatTask(memUserTaskDTO);
return memUserTaskDTO1;
}
/**
* 查询点赞表和关注表 定时更新会员表的被点赞数和被关注数
*/
public void refreshMemLikeAndFollowCountSchedule() {
try {
//查询所有用户
List<Integer> userIdList = memInfoRepository.selectUserIdList();
//查询用户点赞表 和 关注表
for (Integer userId : userIdList) {
//根据userId 查询截止到目前为止的总被点赞数 同步到会员表
MemInfo memInfo = memInfoRepository.getInfoByUserId(String.valueOf(userId));
if (memInfo != null){
Integer likedCount = memInfoRepository.selectUserLikedCount(userId);//被点赞数
Integer followedCount = memInfoRepository.selectUserFollowedCount(userId);//被关注数
memInfo.setMemLikedCount(likedCount);
memInfo.setMemFollowedCount(followedCount);
memInfoRepository.updateById(memInfo);
}
}
SysScheduledTaskLog sysScheduledTaskLog = new SysScheduledTaskLog();
sysScheduledTaskLog.setTaskName("定时更新会员表的被点赞数和被关注数定时任务");
sysScheduledTaskLog.setTaskState("成功");
sysScheduledTaskLog.setTaskTime("每4小时执行一次");
sysScheduledTaskLog.setCreateDate(new Date());
sysScheduledTaskLogServiceImpl.persist(sysScheduledTaskLog);
} catch (Exception e){
SysScheduledTaskLog sysScheduledTaskLog = new SysScheduledTaskLog();
sysScheduledTaskLog.setTaskName("定时更新会员表的被点赞数和被关注数定时任务");
sysScheduledTaskLog.setTaskState("失败");
sysScheduledTaskLog.setTaskTime("每4小时执行一次");
sysScheduledTaskLog.setCreateDate(new Date());
sysScheduledTaskLogServiceImpl.persist(sysScheduledTaskLog);
}
}
}
......@@ -88,10 +88,22 @@ public class OpmBlackListServiceImpl extends ServiceImpl<OpmBlackListRepository,
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT)
@Override
public CyPersistModel remove(OpmBlackList opmBlackList){
//删除黑名单
int line = baseMapper.realDelete(opmBlackList);
log.debug(CyUserUtil.getAuthenUsername()+"删除了ID为"+
opmBlackList.getBusinessId()+"的黑名单表信息");
return new CyPersistModel(line);
//修改对话表 拉黑状态
MemLeaveMessage userTalk = memLeaveMessageRepository.queryUserTalk(opmBlackList.getUserId().intValue(), opmBlackList.getTargetId().intValue());
if (userTalk != null){
//互相拉黑了 不做修改
return new CyPersistModel(line);
} else if(userTalk.getBlackUser().equals(opmBlackList.getUserId())){
//当前登录人拉黑了对方 修改为互相都没拉黑的情况
userTalk.setBlackUser(0);
memLeaveMessageRepository.updateTalkBlack(userTalk);
return new CyPersistModel(line);
} else {
//对方拉黑了当前登录人 不做修改
return new CyPersistModel(line);
}
}
/**
......
......@@ -115,4 +115,11 @@ public class ScheduleTasks {
opmTopicServiceImpl.opmTopicSchedule();
}
/**
* 定时更新会员表 刷新会员的被关注数和被点赞数
* 每4小时执行一次
*/
@Scheduled(cron = "0 0 */4 * * ?")
public void refreshMemLikeAndFollowCountSchedule() { memInfoService.refreshMemLikeAndFollowCountSchedule(); }
}
......@@ -787,4 +787,23 @@
(mut.create_by = #{entity.createBy} and mut.target_id = #{entity.targetId})
OR (mut.create_by = #{entity.targetId} and mut.target_id = #{entity.createBy})
</select>
<select id="selectUserIdList" resultType="java.lang.Integer">
select sys_user.business_id
from sys_user
where 1=1
and del_flag = '0'
</select>
<select id="selectUserLikedCount" resultType="java.lang.Integer">
select SUM(like_count)
from opm_user_like
where 1=1
and target_id = #{userId}
GROUP BY target_id
</select>
<select id="selectUserFollowedCount" resultType="java.lang.Integer">
select count(business_id)
from opm_user_follow
where 1=1
and target_id = #{userId}
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment