Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
zhangshaowu
/
pipi-helper
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 4e8fa188
authored
Oct 20, 2022
by
liushuangwu
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Pain
1 parent
88bb9b4f
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
43 additions
and
17 deletions
src/main/java/com/pipihelper/project/feishu/controller/FeiShuEventController.java
src/main/java/com/pipihelper/project/feishu/dao/PainDao.java
src/main/java/com/pipihelper/project/feishu/service/PainService.java
src/main/java/com/pipihelper/project/feishu/service/massage/MassageService.java
src/main/resources/mybatis/PainMapper.xml
src/main/resources/templates/massage-msg-card-rob.json
src/main/java/com/pipihelper/project/feishu/controller/FeiShuEventController.java
View file @
4e8fa18
...
...
@@ -133,8 +133,11 @@ public class FeiShuEventController {
FeiShuMsgDTO
feiShuMsgDTO
=
new
FeiShuMsgDTO
();
feiShuMsgDTO
.
setMsgType
(
"interactive"
);
feiShuMsgDTO
.
setReceiveId
(
feiShuConfig
.
getChatId
());
Integer
givUpPainId
=
painService
.
findByOpenId
(
feiShuMsgCardEventDTO
.
getOpen_id
()).
getId
();
String
fileName
=
String
.
format
(
"/templates/massage-msg-card-rob.json"
);
String
msgCardContent
=
String
.
format
(
massageMsgCardSerivce
.
getInteractiveCardStr
(
fileName
),
feiShuMsgCardEventDTO
.
getOpen_id
());
String
msgCardContent
=
String
.
format
(
massageMsgCardSerivce
.
getInteractiveCardStr
(
fileName
)
,
feiShuMsgCardEventDTO
.
getOpen_id
(),
givUpPainId
);
feiShuMsgDTO
.
setContent
(
msgCardContent
);
feiShuApiService
.
sendMsg
(
feiShuMsgDTO
,
"chat_id"
);
String
fileName1
=
String
.
format
(
"/templates/massage-singel-msg-card-end.json"
);
...
...
@@ -183,15 +186,22 @@ public class FeiShuEventController {
return
null
;
}
public
synchronized
JSONObject
rob
(
FeiShuMsgCardEventDTO
feiShuMsgCardEventDTO
)
{
String
oldUserId
=
feiShuMsgCardEventDTO
.
getAction
().
getValue
().
getKey
().
split
(
"\\."
)[
2
];
String
robUserId
=
feiShuMsgCardEventDTO
.
getOpen_id
();
Employee
employee
=
employeeService
.
findByOpenId
(
robUserId
);
synchronized
(
oldUserId
)
{
massageService
.
robSingle
(
robUserId
,
oldUserId
,
employee
.
getName
());
public
JSONObject
rob
(
FeiShuMsgCardEventDTO
feiShuMsgCardEventDTO
)
{
String
oldOpenId
=
feiShuMsgCardEventDTO
.
getAction
().
getValue
().
getKey
().
split
(
"\\."
)[
2
];
Integer
givUpPainId
=
Integer
.
parseInt
(
feiShuMsgCardEventDTO
.
getAction
().
getValue
().
getKey
().
split
(
"\\."
)[
3
]);
String
robOpenId
=
feiShuMsgCardEventDTO
.
getOpen_id
();
Employee
robEmployee
=
employeeService
.
findByOpenId
(
robOpenId
);
//oldOpenId 放弃人的openId, robOpenId 抢到人 openId
int
update
=
painService
.
updateByOpenId
(
robOpenId
,
robEmployee
.
getName
(),
oldOpenId
);
if
(
update
>=
1
)
{
massageService
.
robSingle
(
robOpenId
,
robEmployee
.
getDepartmentId
(),
givUpPainId
);
}
Pain
pain
=
painService
.
findById
(
givUpPainId
);
String
fileName1
=
String
.
format
(
"/templates/massage-msg-card-rob-end.json"
);
return
getInteractiveCardStr
(
fileName1
,
"已经被"
+
employee
.
getName
()
+
"抢啦,啦啦~"
);
return
getInteractiveCardStr
(
fileName1
,
"已经被"
+
pain
.
getName
()
+
"抢啦,啦啦~"
);
}
...
...
src/main/java/com/pipihelper/project/feishu/dao/PainDao.java
View file @
4e8fa18
...
...
@@ -30,4 +30,6 @@ public interface PainDao {
void
deleteAllByFloor
(
int
floor
);
List
<
Pain
>
findAllByFloor
(
@Param
(
value
=
"floor"
)
int
floor
);
int
updateByOpenId
(
@Param
(
value
=
"robOpenId"
)
String
robOpenId
,
@Param
(
value
=
"robName"
)
String
robName
,
@Param
(
value
=
"oldOpenId"
)
String
oldOpenId
);
}
src/main/java/com/pipihelper/project/feishu/service/PainService.java
View file @
4e8fa18
...
...
@@ -95,6 +95,10 @@ public class PainService {
painDao
.
deleteAllByFloor
(
floor
);
}
public
int
updateByOpenId
(
String
robOpenId
,
String
robName
,
String
oldOpenId
)
{
return
painDao
.
updateByOpenId
(
robOpenId
,
robName
,
oldOpenId
);
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
PindexFloor
{
...
...
src/main/java/com/pipihelper/project/feishu/service/massage/MassageService.java
View file @
4e8fa18
...
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.pipihelper.project.feishu.bo.PushPainBO
;
import
com.pipihelper.project.feishu.dto.FeiShuConfig
;
import
com.pipihelper.project.feishu.dto.chat.FeiShuChatDTO
;
import
com.pipihelper.project.feishu.dto.department.FeiShuDepartmentDTO
;
import
com.pipihelper.project.feishu.dto.msg.FeiShuMsgDTO
;
import
com.pipihelper.project.feishu.entity.ChatMessage
;
import
com.pipihelper.project.feishu.entity.Pain
;
...
...
@@ -125,18 +126,22 @@ public class MassageService {
}
@Async
public
void
robSingle
(
String
robUserId
,
String
oldUserId
,
String
name
)
{
Pain
oldPain
=
painService
.
findByOpenId
(
oldUserId
);
oldPain
.
setOpenId
(
robUserId
);
oldPain
.
setName
(
name
);
painService
.
update
(
oldPain
);
public
void
robSingle
(
String
robOpenId
,
String
robDepartmentId
,
Integer
givUpPainId
)
{
FeiShuChatDTO
feiShuChatDTO
=
new
FeiShuChatDTO
();
feiShuChatDTO
.
setChatId
((
String
)
CacheUtil
.
get
(
"chatId"
));
feiShuChatDTO
.
setIdList
(
new
String
[]{
rob
User
Id
});
feiShuChatDTO
.
setIdList
(
new
String
[]{
rob
Open
Id
});
feiShuApiService
.
joinChatList
(
feiShuChatDTO
);
sendSingle
(
robUserId
);
/**
* 更新部门名
*/
FeiShuDepartmentDTO
department
=
feiShuApiService
.
getDepartment
(
robDepartmentId
);
Pain
pain
=
new
Pain
();
pain
.
setId
(
givUpPainId
);
pain
.
setDepartMentName
(
department
.
getName
());
painService
.
update
(
pain
);
sendSingle
(
robOpenId
);
// 更新大群和按摩群的大卡片,异步
// 大群
updateMassageMsgCardToPiPiChat
(
feiShuConfig
.
getChatId
());
...
...
src/main/resources/mybatis/PainMapper.xml
View file @
4e8fa18
...
...
@@ -65,6 +65,11 @@
</where>
</select>
<update
id=
"updateByOpenId"
parameterType=
"java.lang.Integer"
>
update t_pain set open_id = #{robOpenId},
name = #{robName} where open_id = #{oldOpenId}
</update>
<select
id=
"findByOpenId"
parameterType=
"java.lang.String"
resultMap=
"PainResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
...
...
src/main/resources/templates/massage-msg-card-rob.json
View file @
4e8fa18
...
...
@@ -21,7 +21,7 @@
},
"type"
:
"default"
,
"value"
:
{
"key"
:
"massage-singel.rob.%s"
"key"
:
"massage-singel.rob.%s
.%s
"
}
}
],
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment