Commit 847fa5f2 authored by liwei's avatar liwei

修改了留言限制次数

parent e691ed50
package org.rcisoft.business.memLeaveMessage.bean;
/**
* Created with family.
* author: cy
* Date: 2024/5/25
* Time: 8:43 AM
* description:
*/
public class MemLeaveMessageRedisBean {
//留言次数
public static final String USER_LEAVE_MESSAGE = "user:leaveMessage:";
}
......@@ -81,5 +81,12 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
*/
@TableField(exist = false)
private String delStatus;
/**
* 是否花费金币发送留言
* 1花费 0花费
*/
@TableField(exist = false)
private String isPay;
}
......@@ -3,14 +3,22 @@ package org.rcisoft.business.memLeaveMessage.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.rcisoft.business.memInfo.bean.MemberInfoRedisBean;
import org.rcisoft.business.memLeaveMessage.bean.MemLeaveMessageRedisBean;
import org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository;
import org.rcisoft.business.memLeaveMessage.entity.*;
import org.rcisoft.business.memLeaveMessage.service.MemLeaveMessageService;
import org.rcisoft.core.exception.CyServiceException;
import org.rcisoft.core.model.CyPageInfo;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.service.CyRedisService;
import org.rcisoft.core.service.impl.CyRedisServiceImpl;
import org.rcisoft.core.util.CyIdGenUtil;
import org.rcisoft.core.util.CyUserUtil;
import org.rcisoft.sys.dictionary.entity.DictData;
import org.rcisoft.sys.dictionary.service.impl.DictionaryServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
......@@ -34,6 +42,15 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
@Autowired
private MemLeaveMessageRepository memLeaveMessageRepository;
@Autowired
private DictionaryServiceImpl dictionaryService;
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private CyRedisServiceImpl cyRedisServiceImpl;
/**
* 留言
* @param memLeaveMessage
......@@ -42,40 +59,63 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
@Override
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public CyPersistModel leaveMessage(MemLeaveMessage memLeaveMessage) {
String userId = CyUserUtil.getAuthenBusinessId();
//获取留言每天限制条数
List<DictData> articleConfig = dictionaryService.selectByTypes("leave_message_config");
DictData dictData = articleConfig.stream().filter(item -> item.getDictLabel().equals("leave_message_limit_count")).findFirst().orElse(null);
Integer leaveMessageLimitCount = Integer.valueOf(dictData.getDictValue());
//判断留言次数是否大于等于leaveMessageLimitCount
Object redisLeaveMessageCount = cyRedisServiceImpl.hget(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()));
if (redisLeaveMessageCount != null && Integer.parseInt(redisLeaveMessageCount.toString()) >= leaveMessageLimitCount){
//超出留言次数
throw new CyServiceException("留言次数超出限制");
} else {
//未超出留言次数
//先插入到留言表
memLeaveMessage.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memLeaveMessage.setUpdateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memLeaveMessage.setCreateBy(Integer.valueOf(userId));
memLeaveMessage.setUpdateBy(Integer.valueOf(userId));
memLeaveMessage.setCreateDate(new Date());
memLeaveMessage.setUpdateDate(new Date());
int line = memLeaveMessageRepository.insert(memLeaveMessage);
//修改对话表
//查询是否已存在对话
MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(CyUserUtil.getAuthenBusinessId()),memLeaveMessage.getTargetId());
MemLeaveMessage memUserTalks = memLeaveMessageRepository.queryUserTalk(Integer.valueOf(userId),memLeaveMessage.getTargetId());
if (memUserTalks != null){
//如果已经存在该对话,则只更新信息
MemLeaveMessage memUserTalk = new MemLeaveMessage();
memUserTalk.setBusinessId(memUserTalks.getBusinessId());
memUserTalk.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memUserTalk.setUpdateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memUserTalk.setCreateBy(Integer.valueOf(userId));
memUserTalk.setUpdateBy(Integer.valueOf(userId));
memUserTalk.setTargetId(memLeaveMessage.getTargetId());
memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date());
memUserTalk.setDelStatus("0");
int line1 = memLeaveMessageRepository.updateUserTalk(memUserTalk);
if (line1 > 0) {
//插入对话表成功,则更新redis
this.redisTemplate.opsForHash().increment(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()), (double) 1L);
//底下的暂时有bug 暂时无法解决
//cyRedisServiceImpl.hincr(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()), (double) 1L);
}
} else {
MemLeaveMessage memUserTalk = new MemLeaveMessage();
memUserTalk.setCreateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memUserTalk.setUpdateBy(Integer.valueOf(CyUserUtil.getAuthenBusinessId()));
memUserTalk.setCreateBy(Integer.valueOf(userId));
memUserTalk.setUpdateBy(Integer.valueOf(userId));
memUserTalk.setCreateDate(new Date());
memUserTalk.setUpdateDate(new Date());
memUserTalk.setTargetId(memLeaveMessage.getTargetId());
memUserTalk.setContent(memLeaveMessage.getContent());
memUserTalk.setDelStatus("0");
int line1 = memLeaveMessageRepository.insertUserTalk(memUserTalk);
if (line1 > 0){
//插入对话表成功,则更新redis
cyRedisServiceImpl.hset(MemLeaveMessageRedisBean.USER_LEAVE_MESSAGE + userId, String.valueOf(memLeaveMessage.getTargetId()), 1L);
}
}
return new CyPersistModel(line);
}
}
/**
* 分页查询对话列表
......
......@@ -3,7 +3,7 @@
<mapper namespace="org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository">
<insert id="insertUserTalk">
insert into mem_user_talk (target_id,create_by,create_date,update_by,update_date,content,del_status)
values(#{targetId},#{createBy},#{createDate},#{createBy},#{updateDate},#{content})
values(#{targetId},#{createBy},#{createDate},#{createBy},#{updateDate},#{content},#{delStatus})
</insert>
<update id="updateUserTalk">
update mem_user_talk
......
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