Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
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
quanku
qk_backend
Commits
5f34f277
Commit
5f34f277
authored
Jan 22, 2025
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
安全识别
parent
c0676efd
Changes
23
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
2535 additions
and
60 deletions
+2535
-60
ch-core/src/main/java/com/wwdz/ch/core/api/qiandao/QdWxAppletApi.java
...main/java/com/wwdz/ch/core/api/qiandao/QdWxAppletApi.java
+44
-14
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
...ore/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
+5
-0
ch-core/src/main/java/com/wwdz/ch/core/consts/qiandao/WxCheckEnum.java
...ain/java/com/wwdz/ch/core/consts/qiandao/WxCheckEnum.java
+41
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/QdUserSignInNoteDao.java
.../java/com/wwdz/ch/db/dao/qiandao/QdUserSignInNoteDao.java
+1
-1
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/SignInTaskDao.java
...c/main/java/com/wwdz/ch/db/dao/qiandao/SignInTaskDao.java
+2
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/WxCheckRecordDao.java
...ain/java/com/wwdz/ch/db/dao/qiandao/WxCheckRecordDao.java
+15
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/WxCheckRecord.java
...ain/java/com/wwdz/ch/db/domain/qiandao/WxCheckRecord.java
+293
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/WxCheckRecordExample.java
...a/com/wwdz/ch/db/domain/qiandao/WxCheckRecordExample.java
+1389
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/QdUserSignInNoteDaoImpl.java
.../com/wwdz/ch/db/impl/qiandao/QdUserSignInNoteDaoImpl.java
+3
-2
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/SignInTaskDaoImpl.java
...n/java/com/wwdz/ch/db/impl/qiandao/SignInTaskDaoImpl.java
+6
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/WxCheckRecordDaoImpl.java
...ava/com/wwdz/ch/db/impl/qiandao/WxCheckRecordDaoImpl.java
+43
-0
ch-dao/src/main/java/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.java
...va/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.java
+69
-0
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.xml
...ces/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.xml
+353
-0
ch-dao/src/main/resources/generatorConfig_new.xml
ch-dao/src/main/resources/generatorConfig_new.xml
+1
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/QdAppletCallbackController.java
...n/java/com/wwdz/ch/wx/api/QdAppletCallbackController.java
+80
-3
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdHomePageServiceImpl.java
...va/com/wwdz/ch/wx/impl/qiandao/QdHomePageServiceImpl.java
+11
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdSignInTaskServiceImpl.java
.../com/wwdz/ch/wx/impl/qiandao/QdSignInTaskServiceImpl.java
+25
-4
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserServiceImpl.java
...n/java/com/wwdz/ch/wx/impl/qiandao/QdUserServiceImpl.java
+17
-6
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserSignInNoteServiceImpl.java
.../wwdz/ch/wx/impl/qiandao/QdUserSignInNoteServiceImpl.java
+65
-4
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserSignInServiceImpl.java
.../com/wwdz/ch/wx/impl/qiandao/QdUserSignInServiceImpl.java
+48
-22
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/qiandao/QdHomePageService.java
...ava/com/wwdz/ch/wx/service/qiandao/QdHomePageService.java
+7
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/qiandao/QdHomePageController.java
...java/com/wwdz/ch/wx/web/qiandao/QdHomePageController.java
+14
-0
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
...pi/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
+3
-3
No files found.
ch-core/src/main/java/com/wwdz/ch/core/api/qiandao/QdWxAppletApi.java
View file @
5f34f277
...
@@ -67,6 +67,7 @@ public class QdWxAppletApi {
...
@@ -67,6 +67,7 @@ public class QdWxAppletApi {
public
String
checkMedia
(
WxCheckMediaRequestDto
dto
)
{
public
String
checkMedia
(
WxCheckMediaRequestDto
dto
)
{
try
{
String
accessToken
=
qdWxLoginManager
.
getAccessToken
();
String
accessToken
=
qdWxLoginManager
.
getAccessToken
();
String
url
=
String
.
format
(
MEDIA_CHECK_URL
,
accessToken
);
String
url
=
String
.
format
(
MEDIA_CHECK_URL
,
accessToken
);
OkHttpUtil
okHttpUtil
=
OkHttpUtil
.
builder
().
url
(
url
);
OkHttpUtil
okHttpUtil
=
OkHttpUtil
.
builder
().
url
(
url
);
...
@@ -80,7 +81,36 @@ public class QdWxAppletApi {
...
@@ -80,7 +81,36 @@ public class QdWxAppletApi {
okHttpUtil
.
post
(
true
);
okHttpUtil
.
post
(
true
);
String
responseStr
=
okHttpUtil
.
async
();
String
responseStr
=
okHttpUtil
.
async
();
logger
.
info
(
"[checkMedia] response :{}"
,
responseStr
);
logger
.
info
(
"[checkMedia] response :{}"
,
responseStr
);
return
responseStr
;
String
traceId
=
JsonUtils
.
getValueByPath
(
responseStr
,
"trace_id"
);
return
traceId
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"checkMedia error : {}"
,
e
);
}
return
null
;
}
public
String
checkAudio
(
WxCheckMediaRequestDto
dto
)
{
try
{
String
accessToken
=
qdWxLoginManager
.
getAccessToken
();
String
url
=
String
.
format
(
MEDIA_CHECK_URL
,
accessToken
);
OkHttpUtil
okHttpUtil
=
OkHttpUtil
.
builder
().
url
(
url
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"media_url"
,
dto
.
getMediaUrl
());
map
.
put
(
"media_type"
,
dto
.
getMediaType
());
map
.
put
(
"version"
,
2
);
map
.
put
(
"scene"
,
4
);
map
.
put
(
"openid"
,
dto
.
getWxOpenId
());
okHttpUtil
.
addParams
(
map
);
okHttpUtil
.
post
(
true
);
String
responseStr
=
okHttpUtil
.
async
();
logger
.
info
(
"[checkAudio] response :{}"
,
responseStr
);
String
traceId
=
JsonUtils
.
getValueByPath
(
responseStr
,
"trace_id"
);
return
traceId
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"checkAudio error : {}"
,
e
);
}
return
null
;
}
}
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
View file @
5f34f277
...
@@ -54,6 +54,11 @@ public interface CommConsts {
...
@@ -54,6 +54,11 @@ public interface CommConsts {
*/
*/
public
static
final
String
AUCTION_LOCK_KEY_PRE
=
"AUCTION:OFFER:"
;
public
static
final
String
AUCTION_LOCK_KEY_PRE
=
"AUCTION:OFFER:"
;
/**
* 微信内容安全检测结果缓存
*/
public
static
final
String
QIANDAO_CHECK_RESULT_KEY
=
"qiandao:check:result:key:"
;
/**
/**
* 拍卖保证金额度更新的锁
* 拍卖保证金额度更新的锁
*/
*/
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/qiandao/WxCheckEnum.java
0 → 100644
View file @
5f34f277
package
com.wwdz.ch.core.consts.qiandao
;
public
class
WxCheckEnum
{
/**
* 检测类型
*/
public
enum
TypeEnum
{
SIGN_IN_IMAGE
(
1
,
"签到笔记图片"
),
SIGN_IN_AUDIO
(
2
,
"签到笔记音频"
),
USER_AVATAR
(
3
,
"用户头像"
),
USER_TASK
(
4
,
"用户创建的任务"
),
;
private
int
code
;
private
String
des
;
TypeEnum
(
int
code
,
String
des
)
{
this
.
code
=
code
;
this
.
des
=
des
;
}
public
static
String
getNameByCode
(
int
code
)
{
for
(
SignInTaskEnum
.
TypeEnum
typeEnum
:
SignInTaskEnum
.
TypeEnum
.
values
())
{
if
(
code
==
typeEnum
.
getCode
())
{
return
typeEnum
.
getDes
();
}
}
return
null
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getDes
()
{
return
des
;
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/QdUserSignInNoteDao.java
View file @
5f34f277
...
@@ -7,7 +7,7 @@ import java.util.List;
...
@@ -7,7 +7,7 @@ import java.util.List;
public
interface
QdUserSignInNoteDao
{
public
interface
QdUserSignInNoteDao
{
boolean
insert
(
QdUserSignInNote
qdUserSignInNote
);
long
insert
(
QdUserSignInNote
qdUserSignInNote
);
List
<
QdUserSignInNote
>
findByPage
(
QdUserSignInNoteRequestDto
dto
);
List
<
QdUserSignInNote
>
findByPage
(
QdUserSignInNoteRequestDto
dto
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/SignInTaskDao.java
View file @
5f34f277
...
@@ -21,4 +21,6 @@ public interface SignInTaskDao {
...
@@ -21,4 +21,6 @@ public interface SignInTaskDao {
SignInTask
findById
(
long
taskId
);
SignInTask
findById
(
long
taskId
);
boolean
updateByPrimaryKey
(
SignInTask
signInTask
);
boolean
updateByPrimaryKey
(
SignInTask
signInTask
);
boolean
delete
(
long
taskId
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/WxCheckRecordDao.java
0 → 100644
View file @
5f34f277
package
com.wwdz.ch.db.dao.qiandao
;
import
com.wwdz.ch.db.domain.qiandao.SignInTask
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecord
;
public
interface
WxCheckRecordDao
{
boolean
insert
(
WxCheckRecord
wxCheckRecord
);
WxCheckRecord
findByTraceId
(
String
traceId
);
boolean
update
(
WxCheckRecord
wxCheckRecord
);
boolean
updateByPrimaryKey
(
WxCheckRecord
wxCheckRecord
);
}
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/WxCheckRecord.java
0 → 100644
View file @
5f34f277
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/WxCheckRecordExample.java
0 → 100644
View file @
5f34f277
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/QdUserSignInNoteDaoImpl.java
View file @
5f34f277
...
@@ -22,8 +22,9 @@ public class QdUserSignInNoteDaoImpl implements QdUserSignInNoteDao {
...
@@ -22,8 +22,9 @@ public class QdUserSignInNoteDaoImpl implements QdUserSignInNoteDao {
QdUserSignInNoteMapper
qdUserSignInNoteMapper
;
QdUserSignInNoteMapper
qdUserSignInNoteMapper
;
@Override
@Override
public
boolean
insert
(
QdUserSignInNote
qdUserSignInNote
)
{
public
long
insert
(
QdUserSignInNote
qdUserSignInNote
)
{
return
qdUserSignInNoteMapper
.
insert
(
qdUserSignInNote
)
>
0
;
qdUserSignInNoteMapper
.
insert
(
qdUserSignInNote
);
return
qdUserSignInNote
.
getId
();
}
}
@Override
@Override
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/SignInTaskDaoImpl.java
View file @
5f34f277
...
@@ -73,4 +73,10 @@ public class SignInTaskDaoImpl implements SignInTaskDao {
...
@@ -73,4 +73,10 @@ public class SignInTaskDaoImpl implements SignInTaskDao {
public
boolean
updateByPrimaryKey
(
SignInTask
signInTask
)
{
public
boolean
updateByPrimaryKey
(
SignInTask
signInTask
)
{
return
signInTaskMapper
.
updateByPrimaryKeySelective
(
signInTask
)
>
0
;
return
signInTaskMapper
.
updateByPrimaryKeySelective
(
signInTask
)
>
0
;
}
}
@Override
public
boolean
delete
(
long
taskId
)
{
return
signInTaskMapper
.
deleteByPrimaryKey
(
taskId
)
>
0
;
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/WxCheckRecordDaoImpl.java
0 → 100644
View file @
5f34f277
package
com.wwdz.ch.db.impl.qiandao
;
import
com.wwdz.ch.db.dao.qiandao.WxCheckRecordDao
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecord
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecordExample
;
import
com.wwdz.ch.db.mapper.qiandao.WxCheckRecordMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
@Repository
public
class
WxCheckRecordDaoImpl
implements
WxCheckRecordDao
{
@Autowired
WxCheckRecordMapper
wxCheckRecordMapper
;
@Override
public
boolean
insert
(
WxCheckRecord
wxCheckRecord
)
{
return
wxCheckRecordMapper
.
insert
(
wxCheckRecord
)
>
0
;
}
@Override
public
WxCheckRecord
findByTraceId
(
String
traceId
)
{
WxCheckRecordExample
example
=
new
WxCheckRecordExample
();
WxCheckRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andTraceIdEqualTo
(
traceId
);
return
wxCheckRecordMapper
.
selectOneByExample
(
example
);
}
@Override
public
boolean
update
(
WxCheckRecord
wxCheckRecord
)
{
WxCheckRecordExample
example
=
new
WxCheckRecordExample
();
WxCheckRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andTraceIdEqualTo
(
wxCheckRecord
.
getTraceId
());
return
wxCheckRecordMapper
.
updateByExampleSelective
(
wxCheckRecord
,
example
)
>
0
;
}
@Override
public
boolean
updateByPrimaryKey
(
WxCheckRecord
wxCheckRecord
)
{
return
wxCheckRecordMapper
.
updateByPrimaryKeySelective
(
wxCheckRecord
)
>
0
;
}
}
ch-dao/src/main/java/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.java
0 → 100644
View file @
5f34f277
package
com.wwdz.ch.db.mapper.qiandao
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecord
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecordExample
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
@Mapper
public
interface
WxCheckRecordMapper
{
long
countByExample
(
WxCheckRecordExample
example
);
int
deleteByExample
(
WxCheckRecordExample
example
);
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
WxCheckRecord
record
);
int
insertSelective
(
WxCheckRecord
record
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table wx_check_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
WxCheckRecord
selectOneByExample
(
WxCheckRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table wx_check_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
WxCheckRecord
selectOneByExampleSelective
(
@Param
(
"example"
)
WxCheckRecordExample
example
,
@Param
(
"selective"
)
WxCheckRecord
.
Column
...
selective
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table wx_check_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List
<
WxCheckRecord
>
selectByExampleSelective
(
@Param
(
"example"
)
WxCheckRecordExample
example
,
@Param
(
"selective"
)
WxCheckRecord
.
Column
...
selective
);
List
<
WxCheckRecord
>
selectByExample
(
WxCheckRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table wx_check_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
WxCheckRecord
selectByPrimaryKeySelective
(
@Param
(
"id"
)
Long
id
,
@Param
(
"selective"
)
WxCheckRecord
.
Column
...
selective
);
WxCheckRecord
selectByPrimaryKey
(
Long
id
);
int
updateByExampleSelective
(
@Param
(
"record"
)
WxCheckRecord
record
,
@Param
(
"example"
)
WxCheckRecordExample
example
);
int
updateByExample
(
@Param
(
"record"
)
WxCheckRecord
record
,
@Param
(
"example"
)
WxCheckRecordExample
example
);
int
updateByPrimaryKeySelective
(
WxCheckRecord
record
);
int
updateByPrimaryKey
(
WxCheckRecord
record
);
}
\ No newline at end of file
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/qiandao/WxCheckRecordMapper.xml
0 → 100644
View file @
5f34f277
This diff is collapsed.
Click to expand it.
ch-dao/src/main/resources/generatorConfig_new.xml
View file @
5f34f277
...
@@ -72,7 +72,7 @@
...
@@ -72,7 +72,7 @@
<javaClientGenerator
type=
"XMLMAPPER"
targetPackage=
"com.wwdz.ch.db.mapper.qiandao"
<javaClientGenerator
type=
"XMLMAPPER"
targetPackage=
"com.wwdz.ch.db.mapper.qiandao"
targetProject=
"ch-dao/src/main/java"
/>
targetProject=
"ch-dao/src/main/java"
/>
<table
tableName=
"
sign_in_task
"
enableCountByExample=
"true"
enableUpdateByExample=
"true"
enableDeleteByExample=
"true"
enableSelectByExample=
"true"
selectByExampleQueryId=
"true"
>
<table
tableName=
"
wx_check_record
"
enableCountByExample=
"true"
enableUpdateByExample=
"true"
enableDeleteByExample=
"true"
enableSelectByExample=
"true"
selectByExampleQueryId=
"true"
>
<generatedKey
column=
"id"
sqlStatement=
"Mysql"
identity=
"true"
/>
<generatedKey
column=
"id"
sqlStatement=
"Mysql"
identity=
"true"
/>
</table>
</table>
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/QdAppletCallbackController.java
View file @
5f34f277
...
@@ -2,13 +2,19 @@ package com.wwdz.ch.wx.api;
...
@@ -2,13 +2,19 @@ package com.wwdz.ch.wx.api;
import
com.wwdz.ch.core.api.QdOfficialAccountApi
;
import
com.wwdz.ch.core.api.QdOfficialAccountApi
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.OfficalAccountEnum
;
import
com.wwdz.ch.core.consts.OfficalAccountEnum
;
import
com.wwdz.ch.core.consts.qiandao.WxCheckEnum
;
import
com.wwdz.ch.core.util.RedisUtils
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.dao.qiandao.QdUserSignInNoteDao
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.dao.qiandao.SignInTaskDao
;
import
com.wwdz.ch.db.dao.qiandao.WxCheckRecordDao
;
import
com.wwdz.ch.db.domain.qiandao.*
;
import
com.wwdz.ch.wx.api.aes.AesException
;
import
com.wwdz.ch.wx.api.aes.AesException
;
import
com.wwdz.ch.wx.api.aes.WXBizMsgCrypt
;
import
com.wwdz.ch.wx.api.aes.WXBizMsgCrypt
;
import
com.wwdz.ch.wx.service.qiandao.QdOfficialAccountSubscribeRecordService
;
import
com.wwdz.ch.wx.service.qiandao.QdOfficialAccountSubscribeRecordService
;
import
com.xxdxxs.utils.JsonUtils
;
import
com.xxdxxs.utils.StringUtils
;
import
com.xxdxxs.utils.StringUtils
;
import
com.xxdxxs.utils.XmlUtils
;
import
com.xxdxxs.utils.XmlUtils
;
import
org.dom4j.DocumentException
;
import
org.dom4j.DocumentException
;
...
@@ -50,6 +56,17 @@ public class QdAppletCallbackController {
...
@@ -50,6 +56,17 @@ public class QdAppletCallbackController {
@Autowired
@Autowired
QdUserDao
qdUserDao
;
QdUserDao
qdUserDao
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
WxCheckRecordDao
wxCheckRecordDao
;
@Autowired
QdUserSignInNoteDao
qdUserSignInNoteDao
;
@Autowired
SignInTaskDao
signInTaskDao
;
@RequestMapping
(
value
=
"/getNotice"
)
@RequestMapping
(
value
=
"/getNotice"
)
public
Object
getNotice
(
@RequestParam
(
required
=
false
,
name
=
"signature"
)
String
signature
,
public
Object
getNotice
(
@RequestParam
(
required
=
false
,
name
=
"signature"
)
String
signature
,
...
@@ -57,10 +74,70 @@ public class QdAppletCallbackController {
...
@@ -57,10 +74,70 @@ public class QdAppletCallbackController {
@RequestParam
(
required
=
false
,
name
=
"nonce"
)
String
nonce
,
@RequestParam
(
required
=
false
,
name
=
"nonce"
)
String
nonce
,
@RequestParam
(
required
=
false
,
name
=
"echostr"
)
String
echostr
,
@RequestParam
(
required
=
false
,
name
=
"echostr"
)
String
echostr
,
HttpServletRequest
request
,
HttpServletResponse
response
){
HttpServletRequest
request
,
HttpServletResponse
response
){
logger
.
info
(
"接收
小程序推送信息
校验 -> appid: {}, signature:{}, timestamp:{}, nonce:{}, echostr : {}"
,
APPID
,
signature
,
timestamp
,
nonce
,
echostr
);
logger
.
info
(
"接收
微信内容安全审核异步通知
校验 -> appid: {}, signature:{}, timestamp:{}, nonce:{}, echostr : {}"
,
APPID
,
signature
,
timestamp
,
nonce
,
echostr
);
if
(
StringUtils
.
hasLength
(
echostr
))
{
if
(
StringUtils
.
hasLength
(
echostr
))
{
return
Long
.
valueOf
(
echostr
.
trim
());
return
Long
.
valueOf
(
echostr
.
trim
());
}
}
ByteArrayOutputStream
output
=
null
;
InputStream
input
=
null
;
try
{
output
=
new
ByteArrayOutputStream
();
input
=
request
.
getInputStream
();
byte
[]
by
=
new
byte
[
1024
];
int
length
=
0
;
while
((
length
=
input
.
read
(
by
))
!=
-
1
)
{
output
.
write
(
by
,
0
,
length
);
}
String
noticeStr
=
new
String
(
output
.
toByteArray
(),
"UTF-8"
);
String
result
=
JsonUtils
.
getValueByPath
(
noticeStr
,
"result/suggest"
);
String
traceId
=
JsonUtils
.
getValueByPath
(
noticeStr
,
"trace_id"
);
WxCheckRecord
wxCheckRecord
=
wxCheckRecordDao
.
findByTraceId
(
traceId
);
int
type
=
wxCheckRecord
.
getType
();
long
sourceId
=
wxCheckRecord
.
getSourceId
();
long
userId
=
wxCheckRecord
.
getUserId
();
if
(
wxCheckRecord
!=
null
)
{
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSuggest
(
result
);
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecordDao
.
updateByPrimaryKey
(
wxCheckRecord
);
}
if
(!
"pass"
.
equals
(
result
))
{
//审核不通过,redis记录并标记
if
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_IMAGE
.
getCode
()
==
type
||
WxCheckEnum
.
TypeEnum
.
SIGN_IN_AUDIO
.
getCode
()
==
type
)
{
QdUserSignInNote
qdUserSignInNote
=
new
QdUserSignInNote
();
qdUserSignInNote
.
setId
(
sourceId
);
qdUserSignInNote
.
setIsDeleted
(
true
);
qdUserSignInNoteDao
.
updateByPrimaryKey
(
qdUserSignInNote
);
}
else
if
(
WxCheckEnum
.
TypeEnum
.
USER_AVATAR
.
getCode
()
==
type
)
{
QdUser
qdUser
=
new
QdUser
();
qdUser
.
setId
(
sourceId
);
qdUser
.
setAvatar
(
CommConsts
.
QIANDAO_DEFAULT_AVATAR_URL
);
qdUserDao
.
updateById
(
qdUser
);
}
else
if
(
WxCheckEnum
.
TypeEnum
.
USER_TASK
.
getCode
()
==
type
)
{
signInTaskDao
.
delete
(
sourceId
);
}
String
key
=
CommConsts
.
QIANDAO_CHECK_RESULT_KEY
+
userId
;
redisUtils
.
set
(
key
,
result
);
}
logger
.
info
(
"微信内容安全审核异步通知原文:{}"
,
noticeStr
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"微信公众号通知回调接口 error : {}"
,
e
);
}
finally
{
if
(
output
!=
null
)
{
try
{
output
.
close
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
if
(
input
!=
null
)
{
try
{
input
.
close
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
return
"success"
;
return
"success"
;
}
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdHomePageServiceImpl.java
View file @
5f34f277
...
@@ -199,4 +199,15 @@ public class QdHomePageServiceImpl implements QdHomePageService {
...
@@ -199,4 +199,15 @@ public class QdHomePageServiceImpl implements QdHomePageService {
}
}
return
Result
.
failed
();
return
Result
.
failed
();
}
}
@Override
public
Result
check
(
QdUserSignInRequestDto
dto
)
{
String
key
=
CommConsts
.
QIANDAO_CHECK_RESULT_KEY
+
dto
.
getUserId
();
if
(
redisUtils
.
hasKey
(
key
))
{
redisUtils
.
delete
(
key
);
return
Result
.
failed
();
}
return
Result
.
success
();
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdSignInTaskServiceImpl.java
View file @
5f34f277
...
@@ -4,22 +4,22 @@ import com.github.pagehelper.PageInfo;
...
@@ -4,22 +4,22 @@ import com.github.pagehelper.PageInfo;
import
com.wwdz.ch.core.api.qiandao.QdWxAppletApi
;
import
com.wwdz.ch.core.api.qiandao.QdWxAppletApi
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.qiandao.SignInTaskEnum
;
import
com.wwdz.ch.core.consts.qiandao.SignInTaskEnum
;
import
com.wwdz.ch.core.consts.qiandao.WxCheckEnum
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.dao.qiandao.*
;
import
com.wwdz.ch.db.dao.qiandao.QdUserSignInDao
;
import
com.wwdz.ch.db.dao.qiandao.QdUserSignInTaskDao
;
import
com.wwdz.ch.db.dao.qiandao.SignInTaskDao
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignIn
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignIn
;
import
com.wwdz.ch.db.domain.qiandao.SignInTask
;
import
com.wwdz.ch.db.domain.qiandao.SignInTask
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecord
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.SignInTaskRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.SignInTaskRequestDto
;
import
com.wwdz.ch.wx.entity.vo.qiandao.SignInTaskVo
;
import
com.wwdz.ch.wx.entity.vo.qiandao.SignInTaskVo
;
import
com.wwdz.ch.wx.service.qiandao.QdSignInTaskService
;
import
com.wwdz.ch.wx.service.qiandao.QdSignInTaskService
;
import
com.wwdz.ch.wx.service.qiandao.QdUserSignInTaskService
;
import
com.wwdz.ch.wx.service.qiandao.QdUserSignInTaskService
;
import
com.xxdxxs.utils.EntityMapper
;
import
com.xxdxxs.utils.EntityMapper
;
import
com.xxdxxs.utils.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -59,6 +59,9 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
...
@@ -59,6 +59,9 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
@Autowired
@Autowired
QdWxAppletApi
qdWxAppletApi
;
QdWxAppletApi
qdWxAppletApi
;
@Autowired
WxCheckRecordDao
wxCheckRecordDao
;
@Override
@Override
public
Result
add
(
SignInTaskRequestDto
dto
)
{
public
Result
add
(
SignInTaskRequestDto
dto
)
{
try
{
try
{
...
@@ -97,6 +100,24 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
...
@@ -97,6 +100,24 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
return
Result
.
failed
(
"创建任务后默认加入失败"
);
return
Result
.
failed
(
"创建任务后默认加入失败"
);
}
}
}
}
if
(
StringUtils
.
hasLength
(
dto
.
getImage
()))
{
//微信音频内容安全识别
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getImage
());
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
if
(
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
taskId
);
wxCheckRecord
.
setUserId
(
dto
.
getCreatorId
());
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_IMAGE
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
logger
.
info
(
"=========== 微信图片内容安全识别接口调用成功 ==========="
);
}
return
Result
.
success
();
return
Result
.
success
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"创建签到任务失败 error:{}"
,
e
);
logger
.
error
(
"创建签到任务失败 error:{}"
,
e
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserServiceImpl.java
View file @
5f34f277
...
@@ -6,6 +6,7 @@ import com.wwdz.ch.core.api.WxAppletApi;
...
@@ -6,6 +6,7 @@ import com.wwdz.ch.core.api.WxAppletApi;
import
com.wwdz.ch.core.api.qiandao.QdWxAppletApi
;
import
com.wwdz.ch.core.api.qiandao.QdWxAppletApi
;
import
com.wwdz.ch.core.api.qiandao.QdWxLoginManager
;
import
com.wwdz.ch.core.api.qiandao.QdWxLoginManager
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.qiandao.WxCheckEnum
;
import
com.wwdz.ch.core.entity.QdUserInfo
;
import
com.wwdz.ch.core.entity.QdUserInfo
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.notify.AliSmsSender
;
import
com.wwdz.ch.core.notify.AliSmsSender
;
...
@@ -16,7 +17,9 @@ import com.wwdz.ch.core.type.Result;
...
@@ -16,7 +17,9 @@ import com.wwdz.ch.core.type.Result;
import
com.wwdz.ch.core.util.*
;
import
com.wwdz.ch.core.util.*
;
import
com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder
;
import
com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.dao.qiandao.WxCheckRecordDao
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.WxCheckRecord
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserRequestDto
;
import
com.wwdz.ch.wx.constant.CacheCodeConstants
;
import
com.wwdz.ch.wx.constant.CacheCodeConstants
;
import
com.wwdz.ch.wx.dao.UserInfo
;
import
com.wwdz.ch.wx.dao.UserInfo
;
...
@@ -90,6 +93,9 @@ public class QdUserServiceImpl implements QdUserService {
...
@@ -90,6 +93,9 @@ public class QdUserServiceImpl implements QdUserService {
@Autowired
@Autowired
QdWxAppletApi
qdWxAppletApi
;
QdWxAppletApi
qdWxAppletApi
;
@Autowired
WxCheckRecordDao
wxCheckRecordDao
;
@Override
@Override
public
Result
regCaptcha
(
QdUserRequestDto
dto
)
{
public
Result
regCaptcha
(
QdUserRequestDto
dto
)
{
try
{
try
{
...
@@ -289,13 +295,18 @@ public class QdUserServiceImpl implements QdUserService {
...
@@ -289,13 +295,18 @@ public class QdUserServiceImpl implements QdUserService {
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getAvatar
());
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getAvatar
());
wxCheckMediaRequestDto
.
setWxOpenId
(
user
.
getWxOpenid
());
wxCheckMediaRequestDto
.
setWxOpenId
(
user
.
getWxOpenid
());
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
logger
.
info
(
"=========== 微信图片内容安全识别接口调用成功 ==========="
);
if
(
com
.
xxdxxs
.
utils
.
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
user
.
getId
());
wxCheckRecord
.
setUserId
(
user
.
getId
());
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_IMAGE
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
}
String
key
=
dto
.
getUserId
()
+
"_updateAvatar"
;
logger
.
info
(
"=========== 微信图片内容安全识别接口调用成功 ==========="
);
if
(!
redisUtils
.
hasKey
(
key
))
{
redisUtils
.
set
(
key
,
key
,
30
);
return
Result
.
failed
(
"头像安全检测有风险,请更换"
);
}
}
user
.
setAvatar
(
dto
.
getAvatar
());
user
.
setAvatar
(
dto
.
getAvatar
());
qdUserDao
.
updateById
(
user
);
qdUserDao
.
updateById
(
user
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserSignInNoteServiceImpl.java
View file @
5f34f277
package
com.wwdz.ch.wx.impl.qiandao
;
package
com.wwdz.ch.wx.impl.qiandao
;
import
com.github.pagehelper.PageInfo
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.api.qiandao.QdWxAppletApi
;
import
com.wwdz.ch.core.consts.qiandao.WxCheckEnum
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.RedisUtils
;
import
com.wwdz.ch.db.dao.qiandao.*
;
import
com.wwdz.ch.db.dao.qiandao.*
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.*
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignIn
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignInNote
;
import
com.wwdz.ch.db.domain.qiandao.SignInTask
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInNoteRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInNoteRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto
;
import
com.wwdz.ch.wx.entity.vo.qiandao.QdSignInNoteVo
;
import
com.wwdz.ch.wx.entity.vo.qiandao.QdSignInNoteVo
;
...
@@ -19,6 +20,7 @@ import org.slf4j.Logger;
...
@@ -19,6 +20,7 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -49,6 +51,15 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
...
@@ -49,6 +51,15 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
@Autowired
@Autowired
QdGiveLikeRecordDao
qdGiveLikeRecordDao
;
QdGiveLikeRecordDao
qdGiveLikeRecordDao
;
@Autowired
QdWxAppletApi
qdWxAppletApi
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
WxCheckRecordDao
wxCheckRecordDao
;
@Override
@Override
public
Result
findSignInNoteList
(
QdUserSignInNoteRequestDto
dto
)
{
public
Result
findSignInNoteList
(
QdUserSignInNoteRequestDto
dto
)
{
try
{
try
{
...
@@ -173,6 +184,10 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
...
@@ -173,6 +184,10 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
@Override
@Override
public
Result
update
(
QdUserSignInRequestDto
dto
)
{
public
Result
update
(
QdUserSignInRequestDto
dto
)
{
try
{
try
{
QdUserSignInNote
note
=
qdUserSignInNoteDao
.
findByNoteId
(
dto
.
getId
());
long
sourceId
=
dto
.
getId
();
long
userId
=
note
.
getUserId
();
//保存签到笔记
//保存签到笔记
QdUserSignInNote
qdUserSignInNote
=
new
QdUserSignInNote
();
QdUserSignInNote
qdUserSignInNote
=
new
QdUserSignInNote
();
qdUserSignInNote
.
setId
(
dto
.
getId
());
qdUserSignInNote
.
setId
(
dto
.
getId
());
...
@@ -184,6 +199,52 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
...
@@ -184,6 +199,52 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
qdUserSignInNote
.
setUpdateTime
(
new
Date
());
qdUserSignInNote
.
setUpdateTime
(
new
Date
());
qdUserSignInNote
.
setIsPrivate
(
dto
.
getIsPrivate
());
qdUserSignInNote
.
setIsPrivate
(
dto
.
getIsPrivate
());
qdUserSignInNoteDao
.
updateByPrimaryKey
(
qdUserSignInNote
);
qdUserSignInNoteDao
.
updateByPrimaryKey
(
qdUserSignInNote
);
WxCheckMediaRequestDto
wxCheckMediaRequestDto
=
new
WxCheckMediaRequestDto
();
QdUser
user
=
qdUserDao
.
queryById
(
dto
.
getUserId
());
wxCheckMediaRequestDto
.
setWxOpenId
(
user
.
getWxOpenid
());
if
(
StringUtils
.
hasLength
(
dto
.
getContent
()))
{
//查询用户openid
wxCheckMediaRequestDto
.
setWordStr
(
dto
.
getContent
());
boolean
result
=
qdWxAppletApi
.
checkWord
(
wxCheckMediaRequestDto
);
logger
.
info
(
"=========== 微信文字内容安全识别接口调用成功 ==========="
);
if
(!
result
)
{
return
Result
.
failed
(
"发布的文字内容识别有风险,不可发布"
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getImages
()))
{
//微信音频内容安全识别
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getImages
().
get
(
0
));
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
if
(
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
sourceId
);
wxCheckRecord
.
setUserId
(
userId
);
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_IMAGE
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
logger
.
info
(
"=========== 微信图片内容安全识别接口调用成功 ==========="
);
}
if
(!
StringUtils
.
isEmpty
(
dto
.
getAudio
()))
{
wxCheckMediaRequestDto
.
setMediaType
(
1
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getAudio
());
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
if
(
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
sourceId
);
wxCheckRecord
.
setUserId
(
userId
);
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_AUDIO
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
logger
.
info
(
"=========== 微信音频内容安全识别接口调用成功 ==========="
);
}
return
Result
.
success
();
return
Result
.
success
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"修改笔记 error:{}"
,
e
);
logger
.
error
(
"修改笔记 error:{}"
,
e
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdUserSignInServiceImpl.java
View file @
5f34f277
...
@@ -7,6 +7,7 @@ import com.wwdz.ch.core.consts.CommConsts;
...
@@ -7,6 +7,7 @@ import com.wwdz.ch.core.consts.CommConsts;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.SigninEnum
;
import
com.wwdz.ch.core.consts.SigninEnum
;
import
com.wwdz.ch.core.consts.qiandao.SignInTaskEnum
;
import
com.wwdz.ch.core.consts.qiandao.SignInTaskEnum
;
import
com.wwdz.ch.core.consts.qiandao.WxCheckEnum
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.entity.WxCheckMediaRequestDto
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.IdUtils
;
import
com.wwdz.ch.core.util.IdUtils
;
...
@@ -15,13 +16,11 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
...
@@ -15,13 +16,11 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import
com.wwdz.ch.db.dao.qiandao.*
;
import
com.wwdz.ch.db.dao.qiandao.*
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.domain.qiandao.*
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignIn
;
import
com.wwdz.ch.db.domain.qiandao.QdUserSignInNote
;
import
com.wwdz.ch.db.domain.qiandao.SignInTask
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto
;
import
com.wwdz.ch.wx.service.qiandao.QdUserSignInService
;
import
com.wwdz.ch.wx.service.qiandao.QdUserSignInService
;
import
com.xxdxxs.utils.DateUtils
;
import
com.xxdxxs.utils.DateUtils
;
import
com.xxdxxs.utils.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -69,6 +68,9 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
...
@@ -69,6 +68,9 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
@Autowired
@Autowired
RedisUtils
redisUtils
;
RedisUtils
redisUtils
;
@Autowired
WxCheckRecordDao
wxCheckRecordDao
;
@Override
@Override
public
Result
check
(
QdUserSignInRequestDto
dto
)
{
public
Result
check
(
QdUserSignInRequestDto
dto
)
{
try
{
try
{
...
@@ -143,25 +145,15 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
...
@@ -143,25 +145,15 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
//查询用户openid
//查询用户openid
QdUser
user
=
qdUserDao
.
queryById
(
dto
.
getUserId
());
QdUser
user
=
qdUserDao
.
queryById
(
dto
.
getUserId
());
wxCheckMediaRequestDto
.
setWxOpenId
(
user
.
getWxOpenid
());
wxCheckMediaRequestDto
.
setWxOpenId
(
user
.
getWxOpenid
());
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getImages
()))
{
//微信音频内容安全识别
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getImages
().
get
(
0
));
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
logger
.
info
(
"=========== 微信音频内容安全识别接口调用成功 ==========="
);
String
key
=
dto
.
getUserId
()
+
"_signIn"
;
if
(!
redisUtils
.
hasKey
(
key
))
{
redisUtils
.
set
(
key
,
key
,
30
);
return
Result
.
failed
(
"图片安全检测有风险,请更换"
);
}
}
if
(
StringUtils
.
hasLength
(
dto
.
getContent
()))
{
wxCheckMediaRequestDto
.
setWordStr
(
dto
.
getContent
());
wxCheckMediaRequestDto
.
setWordStr
(
dto
.
getContent
());
boolean
result
=
qdWxAppletApi
.
checkWord
(
wxCheckMediaRequestDto
);
boolean
result
=
qdWxAppletApi
.
checkWord
(
wxCheckMediaRequestDto
);
logger
.
info
(
"=========== 微信文字内容安全识别接口调用成功 ==========="
);
logger
.
info
(
"=========== 微信文字内容安全识别接口调用成功 ==========="
);
if
(!
result
)
{
if
(!
result
)
{
return
Result
.
failed
(
"发布的文字内容识别有风险,不可发布"
);
return
Result
.
failed
(
"发布的文字内容识别有风险,不可发布"
);
}
}
}
//签到记录id
//签到记录id
Long
recordId
=
null
;
Long
recordId
=
null
;
//今天尚未签到,则进行记录,先查询昨天的打卡记录,有则再连续打卡天数上+1,没有则算签到第一天
//今天尚未签到,则进行记录,先查询昨天的打卡记录,有则再连续打卡天数上+1,没有则算签到第一天
...
@@ -211,7 +203,41 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
...
@@ -211,7 +203,41 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
qdUserSignInNote
.
setUpdateTime
(
now
);
qdUserSignInNote
.
setUpdateTime
(
now
);
qdUserSignInNote
.
setIsPrivate
(
dto
.
getIsPrivate
());
qdUserSignInNote
.
setIsPrivate
(
dto
.
getIsPrivate
());
qdUserSignInNote
.
setIsDeleted
(
false
);
qdUserSignInNote
.
setIsDeleted
(
false
);
qdUserSignInNoteDao
.
insert
(
qdUserSignInNote
);
long
id
=
qdUserSignInNoteDao
.
insert
(
qdUserSignInNote
);
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getImages
()))
{
//微信音频内容安全识别
wxCheckMediaRequestDto
.
setMediaType
(
2
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getImages
().
get
(
0
));
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
if
(
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
id
);
wxCheckRecord
.
setUserId
(
userId
);
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_IMAGE
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
logger
.
info
(
"=========== 微信图片内容安全识别接口调用成功 ==========="
);
}
if
(!
StringUtils
.
isEmpty
(
dto
.
getAudio
()))
{
wxCheckMediaRequestDto
.
setMediaType
(
1
);
wxCheckMediaRequestDto
.
setMediaUrl
(
dto
.
getAudio
());
String
traceId
=
qdWxAppletApi
.
checkMedia
(
wxCheckMediaRequestDto
);
if
(
StringUtils
.
hasLength
(
traceId
))
{
//保存该检测任务
WxCheckRecord
wxCheckRecord
=
new
WxCheckRecord
();
wxCheckRecord
.
setTraceId
(
traceId
);
wxCheckRecord
.
setSourceId
(
id
);
wxCheckRecord
.
setUserId
(
userId
);
wxCheckRecord
.
setCreateTime
(
new
Date
());
wxCheckRecord
.
setType
(
WxCheckEnum
.
TypeEnum
.
SIGN_IN_AUDIO
.
getCode
());
wxCheckRecordDao
.
insert
(
wxCheckRecord
);
}
logger
.
info
(
"=========== 微信音频内容安全识别接口调用成功 ==========="
);
}
return
Result
.
success
();
return
Result
.
success
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"乾岛签到失败 error:{}"
,
e
);
logger
.
error
(
"乾岛签到失败 error:{}"
,
e
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/qiandao/QdHomePageService.java
View file @
5f34f277
...
@@ -35,4 +35,11 @@ public interface QdHomePageService {
...
@@ -35,4 +35,11 @@ public interface QdHomePageService {
* @return
* @return
*/
*/
Result
getShareInfo
(
QdUserSignInRequestDto
dto
);
Result
getShareInfo
(
QdUserSignInRequestDto
dto
);
/**
* 检测是否有内容安全检测不通过的情况给予提示
* @param dto
* @return
*/
Result
check
(
QdUserSignInRequestDto
dto
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/qiandao/QdHomePageController.java
View file @
5f34f277
...
@@ -66,4 +66,18 @@ public class QdHomePageController {
...
@@ -66,4 +66,18 @@ public class QdHomePageController {
return
qdHomePageService
.
getShareInfo
(
dto
);
return
qdHomePageService
.
getShareInfo
(
dto
);
}
}
@ApiOperation
(
value
=
"检测是否有内容安全检测不通过的情况给予提示"
)
@PostMapping
(
"/check"
)
public
Result
check
(
@RequestBody
QdUserSignInRequestDto
dto
)
{
logger
.
info
(
"【请求开始】检测是否有内容安全检测不通过的情况给予提示,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"userId"
,
"用户id"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
qdHomePageService
.
check
(
dto
);
}
}
}
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
View file @
5f34f277
...
@@ -89,12 +89,12 @@ public class WxPayServiceTest {
...
@@ -89,12 +89,12 @@ public class WxPayServiceTest {
@Test
@Test
public
void
refund
()
{
public
void
refund
()
{
List
<
String
>
list
=
Arrays
.
asList
(
"DA2
412231422109063526
"
);
List
<
String
>
list
=
Arrays
.
asList
(
"DA2
501081948572456638
"
);
list
.
forEach
(
orderId
->{
list
.
forEach
(
orderId
->{
DistributionOrderRequestDto
dto
=
new
DistributionOrderRequestDto
();
DistributionOrderRequestDto
dto
=
new
DistributionOrderRequestDto
();
dto
.
setDistributionOrderId
(
orderId
);
dto
.
setDistributionOrderId
(
orderId
);
dto
.
setAmount
(
"1
0
"
);
dto
.
setAmount
(
"1
28
"
);
dto
.
setRefundPrice
(
"1
0
"
);
dto
.
setRefundPrice
(
"1
28
"
);
Result
result
=
wxPayServiceApi
.
refund
(
dto
);
Result
result
=
wxPayServiceApi
.
refund
(
dto
);
logger
.
info
(
"申请微信支付退款:{}"
,
result
);
logger
.
info
(
"申请微信支付退款:{}"
,
result
);
});
});
...
...
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