Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
601edae4
Commit
601edae4
authored
Jul 15, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加窗口负责人管理窗口数量
parent
826589fc
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
228 additions
and
20 deletions
+228
-20
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/req/DingTalkReq.java
...c/main/java/com/mortals/xhx/busiz/h5/req/DingTalkReq.java
+14
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
...com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
+164
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/FeedbackApiController.java
...a/com/mortals/xhx/busiz/h5/web/FeedbackApiController.java
+16
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/InspectApiController.java
...va/com/mortals/xhx/busiz/h5/web/InspectApiController.java
+1
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/IDingPersonService.java
.../module/dingding/personal/service/IDingPersonService.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
...dingding/personal/service/impl/DingPersonServiceImpl.java
+25
-3
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/req/DingTalkReq.java
0 → 100644
View file @
601edae4
package
com.mortals.xhx.busiz.h5.req
;
import
com.mortals.xhx.busiz.BaseReq
;
import
lombok.Data
;
@Data
public
class
DingTalkReq
extends
BaseReq
{
/**
* 授权码
*/
private
String
code
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
0 → 100644
View file @
601edae4
package
com.mortals.xhx.busiz.h5.web
;
import
cn.hutool.core.util.IdUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.ap.CookieService
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.util.AESUtil
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.HttpUtil
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.login.web.LoginForm
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
import
com.mortals.xhx.base.system.menu.service.MenuService
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.valid.service.ValidCodeService
;
import
com.mortals.xhx.busiz.h5.req.DingTalkReq
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.pdu.HomeStatInfo
;
import
com.mortals.xhx.module.dept.model.DeptQuery
;
import
com.mortals.xhx.module.dept.service.DeptService
;
import
com.mortals.xhx.module.dingding.IDingTalkService
;
import
com.mortals.xhx.module.dingding.personal.service.IDingPersonService
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Set
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ErrorCode
.
ERROR_TOKEN_EXPIRED
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
ErrorCode
.
ERROR_TOKEN_EXPIRED_CONTENT
;
/**
* 钉钉授权登录
*
* @author:
* @date: 2023/7/15 10:26
*/
@RestController
@Slf4j
@RequestMapping
(
"dingtalk"
)
public
class
DingTalkLoginController
extends
BaseCRUDJsonBodyMappingController
<
UserService
,
UserEntity
,
Long
>
{
@Autowired
private
UserService
userService
;
@Autowired
private
ValidCodeService
validCodeService
;
@Autowired
private
ResourceService
resourceService
;
@Autowired
private
MenuService
menuService
;
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
IAuthTokenService
authTokenService
;
@Autowired
private
StaffService
staffService
;
@Autowired
private
DeptService
deptService
;
@Autowired
private
IDingPersonService
dingPersonService
;
@RequestMapping
(
"authlogin"
)
public
String
login
(
@RequestBody
DingTalkReq
req
)
throws
Exception
{
JSONObject
ret
=
new
JSONObject
();
UserEntity
userEntity
=
null
;
try
{
if
(
ObjectUtils
.
isEmpty
(
req
.
getCode
()))
{
throw
new
AppException
(
"钉钉 code 不能为空!"
);
}
//根据code 查询钉钉用户id
Rest
<
String
>
personRest
=
dingPersonService
.
getPersonByCode
(
req
.
getCode
());
if
(
personRest
.
getCode
()
==
YesNoEnum
.
NO
.
getValue
())
{
throw
new
AppException
(
String
.
format
(
"获取钉钉用户异常,{}"
,
personRest
.
getMsg
()));
}
//根据钉钉的用户查询系统绑定的用户
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
// 返回拥有的菜单数据
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
userEntity
.
getId
());
List
<
MenuEntity
>
outlookBarList
=
menuService
.
findTreeMenu
(
userEntity
,
urls
);
String
currUserName
=
userEntity
.
getRealName
();
if
(
currUserName
==
null
||
currUserName
.
trim
().
length
()
==
0
)
{
currUserName
=
"管理员"
;
}
JSONObject
data
=
new
JSONObject
();
data
.
put
(
"currUserName"
,
currUserName
);
data
.
put
(
"barList"
,
outlookBarList
);
data
.
put
(
"id"
,
userEntity
.
getId
());
data
.
put
(
"userType"
,
userEntity
.
getUserType
());
userEntity
.
setLoginTime
(
System
.
currentTimeMillis
());
userEntity
.
setToken
(
IdUtil
.
fastSimpleUUID
());
userEntity
.
setExpireTime
(
DateUtils
.
addCurrDate
(
7
).
getTime
());
// userEntity.setMenuUrl(generateMenuUrlCode(urls));
String
token
=
authTokenService
.
createToken
(
userEntity
);
data
.
put
(
"token"
,
token
);
//设置token 和过期时间
//data.put("expiresTime", DateUtils.addCurrDate(7).getTime());
//this.generateBlackCookie(request, response, loginName, urls);
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
ret
.
put
(
"resources"
,
urls
);
return
ret
.
toJSONString
();
}
catch
(
Exception
e
)
{
log
.
error
(
"dinding login error "
,
e
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
ret
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
return
ret
.
toJSONString
();
}
}
@RequestMapping
(
"logout"
)
public
void
logout
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
recordSysLog
(
request
,
"退出登录"
);
super
.
removeCurrUser
(
request
);
this
.
deleteBlackCookie
(
request
,
response
);
}
protected
void
deleteBlackCookie
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
try
{
CookieService
.
deleteCookieForAuth
(
request
,
response
);
}
catch
(
Throwable
e
)
{
}
}
@RequestMapping
(
"parseToken"
)
public
IUser
parseToken
()
throws
Exception
{
IUser
userEntity
=
authTokenService
.
getLoginUser
(
request
);
if
(!
ObjectUtils
.
isEmpty
(
userEntity
))
{
authTokenService
.
verifyToken
(
userEntity
);
return
userEntity
;
}
return
null
;
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/FeedbackApiController.java
View file @
601edae4
...
@@ -7,6 +7,7 @@ import com.mortals.framework.common.Rest;
...
@@ -7,6 +7,7 @@ import com.mortals.framework.common.Rest;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.Result
;
import
com.mortals.xhx.busiz.h5.req.FeedbackReq
;
import
com.mortals.xhx.busiz.h5.req.FeedbackReq
;
import
com.mortals.xhx.busiz.h5.req.FeedbackSaveReq
;
import
com.mortals.xhx.busiz.h5.req.FeedbackSaveReq
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
...
@@ -75,17 +76,20 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
...
@@ -75,17 +76,20 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
feedbackReq
.
setFeedBackEndDate
(
DateUtil
.
endOfMonth
(
DateUtil
.
parse
(
feedbackReq
.
getFeedBackStartDate
()).
toJdkDate
()).
toDateStr
());
feedbackReq
.
setFeedBackEndDate
(
DateUtil
.
endOfMonth
(
DateUtil
.
parse
(
feedbackReq
.
getFeedBackStartDate
()).
toJdkDate
()).
toDateStr
());
}
}
//PageInfo pageInfo = buildPageInfo(feedbackReq);
//PageInfo pageInfo = buildPageInfo(feedbackReq);
//todo
PageInfo
pageAllInfo
=
buildPageInfo
(
feedbackReq
);
PageInfo
pageAllInfo
=
new
PageInfo
();
if
(
YesNoEnum
.
YES
.
getValue
()
==
feedbackReq
.
getFeedbackStatus
())
{
if
(
YesNoEnum
.
YES
.
getValue
()
==
feedbackReq
.
getFeedbackStatus
())
{
//已反馈
//已反馈
//查询我已经回答过的
//查询我已经回答过的
List
<
Long
>
feedbackIdList
=
answerService
.
find
(
new
FeedbackAnswerQuery
().
staffId
(
context
.
getUser
().
getCustomerId
())).
stream
().
map
(
i
->
i
.
getFeedbackId
()).
distinct
().
collect
(
Collectors
.
toList
());
List
<
Long
>
feedbackIdList
=
answerService
.
find
(
new
FeedbackAnswerQuery
().
staffId
(
context
.
getUser
().
getCustomerId
())).
stream
().
map
(
i
->
i
.
getFeedbackId
()).
distinct
().
collect
(
Collectors
.
toList
());
FeedbackQuery
feedbackQuery
=
new
FeedbackQuery
();
FeedbackQuery
feedbackQuery
=
new
FeedbackQuery
();
feedbackQuery
.
setIdList
(
feedbackIdList
);
feedbackQuery
.
setIdList
(
feedbackIdList
);
List
<
FeedbackEntity
>
feedbackEntities
=
feedbackService
.
find
(
feedbackQuery
);
model
.
put
(
KEY_RESULT_DATA
,
feedbackEntities
);
Result
<
FeedbackEntity
>
result
=
feedbackService
.
find
(
feedbackQuery
,
pageAllInfo
,
null
);
pageAllInfo
.
setTotalResult
(
feedbackEntities
.
size
());
model
.
put
(
PAGEINFO_KEY
,
result
.
getPageInfo
());
model
.
put
(
KEY_RESULT_DATA
,
result
.
getList
());
parsePageInfo
(
model
,
result
.
getPageInfo
());
}
else
{
}
else
{
//未反馈
//未反馈
//查询我的反馈 但是还未回答的
//查询我的反馈 但是还未回答的
...
@@ -96,17 +100,16 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
...
@@ -96,17 +100,16 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
feedbackStaffQuery
.
setStaffId
(
context
.
getUser
().
getCustomerId
());
feedbackStaffQuery
.
setStaffId
(
context
.
getUser
().
getCustomerId
());
List
<
Long
>
unfinFeedbackList
=
feedbackStaffService
.
find
(
feedbackStaffQuery
).
stream
().
map
(
i
->
i
.
getFeedbackId
()).
distinct
().
collect
(
Collectors
.
toList
());
List
<
Long
>
unfinFeedbackList
=
feedbackStaffService
.
find
(
feedbackStaffQuery
).
stream
().
map
(
i
->
i
.
getFeedbackId
()).
distinct
().
collect
(
Collectors
.
toList
());
model
.
put
(
KEY_RESULT_DATA
,
unfinFeedbackList
);
FeedbackQuery
feedbackQuery
=
new
FeedbackQuery
(
);
pageAllInfo
.
setTotalResult
(
unfinFeedbackList
.
size
()
);
feedbackQuery
.
setIdList
(
unfinFeedbackList
);
}
Result
<
FeedbackEntity
>
result
=
feedbackService
.
find
(
feedbackQuery
,
pageAllInfo
,
null
);
pageAllInfo
.
setCurrPage
(
1
);
pageAllInfo
.
setPrePageResult
(-
1
);
model
.
put
(
PAGEINFO_KEY
,
pageAllInfo
);
parsePageInfo
(
model
,
pageAllInfo
);
model
.
put
(
PAGEINFO_KEY
,
result
.
getPageInfo
());
model
.
put
(
KEY_RESULT_DATA
,
result
.
getList
());
parsePageInfo
(
model
,
result
.
getPageInfo
());
}
rest
.
setData
(
model
);
rest
.
setData
(
model
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
busiDesc
,
e
);
log
.
error
(
busiDesc
,
e
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/InspectApiController.java
View file @
601edae4
...
@@ -186,16 +186,13 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
...
@@ -186,16 +186,13 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
PageInfo
pageAllInfo
=
new
PageInfo
();
PageInfo
pageAllInfo
=
new
PageInfo
();
pageAllInfo
.
setTotalResult
(
collect
.
size
());
pageAllInfo
.
setTotalResult
(
collect
.
size
());
pageAllInfo
.
setCurrPage
(
1
);
pageAllInfo
.
setCurrPage
(
1
);
pageAllInfo
.
setPrePageResult
(
-
1
);
pageAllInfo
.
setPrePageResult
(
10
);
model
.
put
(
PAGEINFO_KEY
,
pageAllInfo
);
model
.
put
(
PAGEINFO_KEY
,
pageAllInfo
);
parsePageInfo
(
model
,
pageAllInfo
);
parsePageInfo
(
model
,
pageAllInfo
);
}
}
// model.put(KEY_RESULT_DATA, result.getList());
// model.put(KEY_RESULT_DATA, result.getList());
// model.put(PAGEINFO_KEY, result.getPageInfo());
// model.put(PAGEINFO_KEY, result.getPageInfo());
// parsePageInfo(model, result.getPageInfo());
// parsePageInfo(model, result.getPageInfo());
rest
.
setData
(
model
);
rest
.
setData
(
model
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/IDingPersonService.java
View file @
601edae4
...
@@ -25,6 +25,14 @@ public interface IDingPersonService extends IDingTalkService {
...
@@ -25,6 +25,14 @@ public interface IDingPersonService extends IDingTalkService {
*/
*/
Rest
<
String
>
getPersonByMobile
(
String
mobile
);
Rest
<
String
>
getPersonByMobile
(
String
mobile
);
/**
* 根据code获取钉钉用户id
*
* @param code
* @return
*/
Rest
<
String
>
getPersonByCode
(
String
code
);
/**
/**
* 发送工作消息
* 发送工作消息
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
View file @
601edae4
...
@@ -4,8 +4,10 @@ import com.alibaba.fastjson.JSON;
...
@@ -4,8 +4,10 @@ import com.alibaba.fastjson.JSON;
import
com.dingtalk.api.DingTalkClient
;
import
com.dingtalk.api.DingTalkClient
;
import
com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request
;
import
com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request
;
import
com.dingtalk.api.request.OapiV2UserGetbymobileRequest
;
import
com.dingtalk.api.request.OapiV2UserGetbymobileRequest
;
import
com.dingtalk.api.request.OapiV2UserGetuserinfoRequest
;
import
com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response
;
import
com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response
;
import
com.dingtalk.api.response.OapiV2UserGetbymobileResponse
;
import
com.dingtalk.api.response.OapiV2UserGetbymobileResponse
;
import
com.dingtalk.api.response.OapiV2UserGetuserinfoResponse
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.module.dingding.AbstractDingTalkService
;
import
com.mortals.xhx.module.dingding.AbstractDingTalkService
;
import
com.mortals.xhx.module.dingding.personal.model.req.workmsg.WorkMsgReq
;
import
com.mortals.xhx.module.dingding.personal.model.req.workmsg.WorkMsgReq
;
...
@@ -26,9 +28,9 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
...
@@ -26,9 +28,9 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
DingTalkClient
client
=
getDingTalkClient
(
"/topapi/v2/user/getbymobile"
);
DingTalkClient
client
=
getDingTalkClient
(
"/topapi/v2/user/getbymobile"
);
OapiV2UserGetbymobileRequest
req
=
new
OapiV2UserGetbymobileRequest
();
OapiV2UserGetbymobileRequest
req
=
new
OapiV2UserGetbymobileRequest
();
req
.
setMobile
(
mobile
);
req
.
setMobile
(
mobile
);
log
.
info
(
"getPersonByMobile:{}"
,
mobile
);
log
.
info
(
"getPersonByMobile:{}"
,
mobile
);
OapiV2UserGetbymobileResponse
rsp
=
client
.
execute
(
req
,
getToken
());
OapiV2UserGetbymobileResponse
rsp
=
client
.
execute
(
req
,
getToken
());
log
.
info
(
"OapiV2UserGetbymobileResponse:{}"
,
rsp
.
getBody
());
log
.
info
(
"OapiV2UserGetbymobileResponse:{}"
,
rsp
.
getBody
());
if
(
rsp
.
getErrcode
()
==
0
)
{
if
(
rsp
.
getErrcode
()
==
0
)
{
return
Rest
.
ok
(
rsp
.
getResult
().
getUserid
());
return
Rest
.
ok
(
rsp
.
getResult
().
getUserid
());
}
else
{
}
else
{
...
@@ -40,6 +42,26 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
...
@@ -40,6 +42,26 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
}
}
}
}
@Override
public
Rest
<
String
>
getPersonByCode
(
String
code
)
{
try
{
DingTalkClient
client
=
getDingTalkClient
(
"/topapi/v2/user/getuserinfo"
);
OapiV2UserGetuserinfoRequest
req
=
new
OapiV2UserGetuserinfoRequest
();
req
.
setCode
(
code
);
log
.
info
(
"getPersonByCode:{}"
,
code
);
OapiV2UserGetuserinfoResponse
rsp
=
client
.
execute
(
req
,
getToken
());
log
.
info
(
"OapiV2UserGetuserinfoResponse:{}"
,
rsp
.
getBody
());
if
(
rsp
.
getErrcode
()
==
0
)
{
return
Rest
.
ok
(
rsp
.
getResult
().
getUserid
());
}
else
{
return
Rest
.
fail
(
String
.
format
(
"code:%s,msg:%s"
,
rsp
.
getErrcode
(),
rsp
.
getErrmsg
()));
}
}
catch
(
ApiException
e
)
{
log
.
info
(
"根据code查询人员异常"
,
e
);
return
Rest
.
fail
(
e
.
getMessage
());
}
}
@Override
@Override
public
Rest
<
String
>
sendWorkMsg
(
WorkMsgReq
workMsgReq
)
{
public
Rest
<
String
>
sendWorkMsg
(
WorkMsgReq
workMsgReq
)
{
try
{
try
{
...
@@ -51,7 +73,7 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
...
@@ -51,7 +73,7 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
req
.
setMsg
(
JSON
.
toJSONString
(
workMsgReq
.
getMsg
()));
req
.
setMsg
(
JSON
.
toJSONString
(
workMsgReq
.
getMsg
()));
log
.
info
(
"sendWorkMsg:{}"
,
JSON
.
toJSONString
(
workMsgReq
));
log
.
info
(
"sendWorkMsg:{}"
,
JSON
.
toJSONString
(
workMsgReq
));
OapiMessageCorpconversationAsyncsendV2Response
rsp
=
client
.
execute
(
req
,
getToken
());
OapiMessageCorpconversationAsyncsendV2Response
rsp
=
client
.
execute
(
req
,
getToken
());
log
.
info
(
"OapiMessageResponse:{}"
,
rsp
.
getBody
());
log
.
info
(
"OapiMessageResponse:{}"
,
rsp
.
getBody
());
if
(
rsp
.
getErrcode
()
==
0
)
{
if
(
rsp
.
getErrcode
()
==
0
)
{
return
Rest
.
ok
(
rsp
.
getMsg
(),
rsp
.
getRequestId
());
return
Rest
.
ok
(
rsp
.
getMsg
(),
rsp
.
getRequestId
());
}
else
{
}
else
{
...
...
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