Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cust-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李伟
cust-api
Commits
847fa5f2
Commit
847fa5f2
authored
Feb 11, 2025
by
liwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了留言限制次数
parent
e691ed50
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
32 deletions
+92
-32
MemLeaveMessageRedisBean.java
...siness/memLeaveMessage/bean/MemLeaveMessageRedisBean.java
+13
-0
MemLeaveMessage.java
...soft/business/memLeaveMessage/entity/MemLeaveMessage.java
+7
-0
MemLeaveMessageServiceImpl.java
...LeaveMessage/service/impl/MemLeaveMessageServiceImpl.java
+71
-31
MemLeaveMessageMapper.xml
...business/memLeaveMessage/mapper/MemLeaveMessageMapper.xml
+1
-1
No files found.
src/main/java/org/rcisoft/business/memLeaveMessage/bean/MemLeaveMessageRedisBean.java
0 → 100644
View file @
847fa5f2
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:"
;
}
src/main/java/org/rcisoft/business/memLeaveMessage/entity/MemLeaveMessage.java
View file @
847fa5f2
...
@@ -81,5 +81,12 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
...
@@ -81,5 +81,12 @@ public class MemLeaveMessage extends CyIdIncreNotDataEntity<MemLeaveMessage> {
*/
*/
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
private
String
delStatus
;
private
String
delStatus
;
/**
* 是否花费金币发送留言
* 1花费 0花费
*/
@TableField
(
exist
=
false
)
private
String
isPay
;
}
}
src/main/java/org/rcisoft/business/memLeaveMessage/service/impl/MemLeaveMessageServiceImpl.java
View file @
847fa5f2
...
@@ -3,14 +3,22 @@ package org.rcisoft.business.memLeaveMessage.service.impl;
...
@@ -3,14 +3,22 @@ package org.rcisoft.business.memLeaveMessage.service.impl;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
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.dao.MemLeaveMessageRepository
;
import
org.rcisoft.business.memLeaveMessage.entity.*
;
import
org.rcisoft.business.memLeaveMessage.entity.*
;
import
org.rcisoft.business.memLeaveMessage.service.MemLeaveMessageService
;
import
org.rcisoft.business.memLeaveMessage.service.MemLeaveMessageService
;
import
org.rcisoft.core.exception.CyServiceException
;
import
org.rcisoft.core.model.CyPageInfo
;
import
org.rcisoft.core.model.CyPageInfo
;
import
org.rcisoft.core.model.CyPersistModel
;
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.CyIdGenUtil
;
import
org.rcisoft.core.util.CyUserUtil
;
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.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Isolation
;
import
org.springframework.transaction.annotation.Isolation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
...
@@ -34,6 +42,15 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
...
@@ -34,6 +42,15 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
@Autowired
@Autowired
private
MemLeaveMessageRepository
memLeaveMessageRepository
;
private
MemLeaveMessageRepository
memLeaveMessageRepository
;
@Autowired
private
DictionaryServiceImpl
dictionaryService
;
@Autowired
private
StringRedisTemplate
redisTemplate
;
@Autowired
private
CyRedisServiceImpl
cyRedisServiceImpl
;
/**
/**
* 留言
* 留言
* @param memLeaveMessage
* @param memLeaveMessage
...
@@ -42,39 +59,62 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
...
@@ -42,39 +59,62 @@ public class MemLeaveMessageServiceImpl extends ServiceImpl<MemLeaveMessageRepos
@Override
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
isolation
=
Isolation
.
DEFAULT
)
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
isolation
=
Isolation
.
DEFAULT
)
public
CyPersistModel
leaveMessage
(
MemLeaveMessage
memLeaveMessage
)
{
public
CyPersistModel
leaveMessage
(
MemLeaveMessage
memLeaveMessage
)
{
//先插入到留言表
String
userId
=
CyUserUtil
.
getAuthenBusinessId
();
memLeaveMessage
.
setCreateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
//获取留言每天限制条数
memLeaveMessage
.
setUpdateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
List
<
DictData
>
articleConfig
=
dictionaryService
.
selectByTypes
(
"leave_message_config"
);
memLeaveMessage
.
setCreateDate
(
new
Date
());
DictData
dictData
=
articleConfig
.
stream
().
filter
(
item
->
item
.
getDictLabel
().
equals
(
"leave_message_limit_count"
)).
findFirst
().
orElse
(
null
);
memLeaveMessage
.
setUpdateDate
(
new
Date
());
Integer
leaveMessageLimitCount
=
Integer
.
valueOf
(
dictData
.
getDictValue
());
int
line
=
memLeaveMessageRepository
.
insert
(
memLeaveMessage
);
//判断留言次数是否大于等于leaveMessageLimitCount
//修改对话表
Object
redisLeaveMessageCount
=
cyRedisServiceImpl
.
hget
(
MemLeaveMessageRedisBean
.
USER_LEAVE_MESSAGE
+
userId
,
String
.
valueOf
(
memLeaveMessage
.
getTargetId
()));
//查询是否已存在对话
if
(
redisLeaveMessageCount
!=
null
&&
Integer
.
parseInt
(
redisLeaveMessageCount
.
toString
())
>=
leaveMessageLimitCount
){
MemLeaveMessage
memUserTalks
=
memLeaveMessageRepository
.
queryUserTalk
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()),
memLeaveMessage
.
getTargetId
());
//超出留言次数
if
(
memUserTalks
!=
null
){
throw
new
CyServiceException
(
"留言次数超出限制"
);
//如果已经存在该对话,则只更新信息
MemLeaveMessage
memUserTalk
=
new
MemLeaveMessage
();
memUserTalk
.
setBusinessId
(
memUserTalks
.
getBusinessId
());
memUserTalk
.
setCreateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
memUserTalk
.
setUpdateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
memUserTalk
.
setTargetId
(
memLeaveMessage
.
getTargetId
());
memUserTalk
.
setContent
(
memLeaveMessage
.
getContent
());
memUserTalk
.
setCreateDate
(
new
Date
());
memUserTalk
.
setUpdateDate
(
new
Date
());
memUserTalk
.
setDelStatus
(
"0"
);
int
line1
=
memLeaveMessageRepository
.
updateUserTalk
(
memUserTalk
);
}
else
{
}
else
{
MemLeaveMessage
memUserTalk
=
new
MemLeaveMessage
();
//未超出留言次数
memUserTalk
.
setCreateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
//先插入到留言表
memUserTalk
.
setUpdateBy
(
Integer
.
valueOf
(
CyUserUtil
.
getAuthenBusinessId
()));
memLeaveMessage
.
setCreateBy
(
Integer
.
valueOf
(
userId
));
memUserTalk
.
setCreateDate
(
new
Date
());
memLeaveMessage
.
setUpdateBy
(
Integer
.
valueOf
(
userId
));
memUserTalk
.
setUpdateDate
(
new
Date
());
memLeaveMessage
.
setCreateDate
(
new
Date
());
memUserTalk
.
setTargetId
(
memLeaveMessage
.
getTargetId
());
memLeaveMessage
.
setUpdateDate
(
new
Date
());
memUserTalk
.
setContent
(
memLeaveMessage
.
getContent
());
int
line
=
memLeaveMessageRepository
.
insert
(
memLeaveMessage
);
memUserTalk
.
setDelStatus
(
"0"
);
//修改对话表
int
line1
=
memLeaveMessageRepository
.
insertUserTalk
(
memUserTalk
);
//查询是否已存在对话
MemLeaveMessage
memUserTalks
=
memLeaveMessageRepository
.
queryUserTalk
(
Integer
.
valueOf
(
userId
),
memLeaveMessage
.
getTargetId
());
if
(
memUserTalks
!=
null
){
//如果已经存在该对话,则只更新信息
MemLeaveMessage
memUserTalk
=
new
MemLeaveMessage
();
memUserTalk
.
setBusinessId
(
memUserTalks
.
getBusinessId
());
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
(
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
);
}
}
return
new
CyPersistModel
(
line
);
}
}
/**
/**
...
...
src/main/resources/mapper/business/memLeaveMessage/mapper/MemLeaveMessageMapper.xml
View file @
847fa5f2
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository"
>
<mapper
namespace=
"org.rcisoft.business.memLeaveMessage.dao.MemLeaveMessageRepository"
>
<insert
id=
"insertUserTalk"
>
<insert
id=
"insertUserTalk"
>
insert into mem_user_talk (target_id,create_by,create_date,update_by,update_date,content,del_status)
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>
</insert>
<update
id=
"updateUserTalk"
>
<update
id=
"updateUserTalk"
>
update mem_user_talk
update mem_user_talk
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment