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
80514973
Commit
80514973
authored
Jan 08, 2025
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
公众号通知回调
parent
e065d866
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
2369 additions
and
21 deletions
+2369
-21
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/QdOfficialAccountSubscribeRecordDao.java
...h/db/dao/qiandao/QdOfficialAccountSubscribeRecordDao.java
+16
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/QdOfficialAccountSubscribeRecord.java
...h/db/domain/qiandao/QdOfficialAccountSubscribeRecord.java
+293
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/QdOfficialAccountSubscribeRecordExample.java
...main/qiandao/QdOfficialAccountSubscribeRecordExample.java
+1389
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/QdOfficialAccountSubscribeRecordDaoImpl.java
...impl/qiandao/QdOfficialAccountSubscribeRecordDaoImpl.java
+56
-0
ch-dao/src/main/java/com/wwdz/ch/db/mapper/qiandao/QdOfficialAccountSubscribeRecordMapper.java
...apper/qiandao/QdOfficialAccountSubscribeRecordMapper.java
+69
-0
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/qiandao/QdOfficialAccountSubscribeRecordMapper.xml
...mapper/qiandao/QdOfficialAccountSubscribeRecordMapper.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/QdOfficialAccountCallbackController.java
...m/wwdz/ch/wx/api/QdOfficialAccountCallbackController.java
+16
-20
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/QdOfficialAccountSubscribeRecordServiceImpl.java
.../qiandao/QdOfficialAccountSubscribeRecordServiceImpl.java
+81
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/qiandao/QdOfficialAccountSubscribeRecordService.java
...vice/qiandao/QdOfficialAccountSubscribeRecordService.java
+31
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/qiandao/QdOfficialAccountController.java
...m/wwdz/ch/wx/web/qiandao/QdOfficialAccountController.java
+53
-0
No files found.
ch-dao/src/main/java/com/wwdz/ch/db/dao/qiandao/QdOfficialAccountSubscribeRecordDao.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.db.dao.qiandao
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
public
interface
QdOfficialAccountSubscribeRecordDao
{
boolean
insert
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
);
boolean
update
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
);
boolean
isExisted
(
String
openid
);
boolean
isSubscribed
(
String
unionid
);
QdOfficialAccountSubscribeRecord
findOne
(
String
unionid
);
}
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/QdOfficialAccountSubscribeRecord.java
0 → 100644
View file @
80514973
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/domain/qiandao/QdOfficialAccountSubscribeRecordExample.java
0 → 100644
View file @
80514973
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/impl/qiandao/QdOfficialAccountSubscribeRecordDaoImpl.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.db.impl.qiandao
;
import
com.wwdz.ch.db.dao.qiandao.QdOfficialAccountSubscribeRecordDao
;
import
com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecordExample
;
import
com.wwdz.ch.db.mapper.qiandao.QdOfficialAccountSubscribeRecordMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
@Repository
public
class
QdOfficialAccountSubscribeRecordDaoImpl
implements
QdOfficialAccountSubscribeRecordDao
{
@Autowired
QdOfficialAccountSubscribeRecordMapper
qdOfficialAccountSubscribeRecordMapper
;
@Override
public
boolean
insert
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
)
{
return
qdOfficialAccountSubscribeRecordMapper
.
insert
(
officialAccountSubscribeRecord
)
>
0
;
}
@Override
public
boolean
update
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
)
{
QdOfficialAccountSubscribeRecordExample
example
=
new
QdOfficialAccountSubscribeRecordExample
();
QdOfficialAccountSubscribeRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andOpenidEqualTo
(
officialAccountSubscribeRecord
.
getOpenid
());
return
qdOfficialAccountSubscribeRecordMapper
.
updateByExampleSelective
(
officialAccountSubscribeRecord
,
example
)
>
0
;
}
@Override
public
boolean
isExisted
(
String
openid
)
{
QdOfficialAccountSubscribeRecordExample
example
=
new
QdOfficialAccountSubscribeRecordExample
();
QdOfficialAccountSubscribeRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andOpenidEqualTo
(
openid
);
return
qdOfficialAccountSubscribeRecordMapper
.
countByExample
(
example
)
>
0
;
}
@Override
public
boolean
isSubscribed
(
String
unionid
)
{
QdOfficialAccountSubscribeRecordExample
example
=
new
QdOfficialAccountSubscribeRecordExample
();
QdOfficialAccountSubscribeRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andUnionidEqualTo
(
unionid
);
criteria
.
andEnabledEqualTo
(
1
);
return
qdOfficialAccountSubscribeRecordMapper
.
countByExample
(
example
)
>
0
;
}
@Override
public
QdOfficialAccountSubscribeRecord
findOne
(
String
unionid
)
{
QdOfficialAccountSubscribeRecordExample
example
=
new
QdOfficialAccountSubscribeRecordExample
();
QdOfficialAccountSubscribeRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andUnionidEqualTo
(
unionid
);
return
qdOfficialAccountSubscribeRecordMapper
.
selectOneByExample
(
example
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/mapper/qiandao/QdOfficialAccountSubscribeRecordMapper.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.db.mapper.qiandao
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecordExample
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
@Mapper
public
interface
QdOfficialAccountSubscribeRecordMapper
{
long
countByExample
(
QdOfficialAccountSubscribeRecordExample
example
);
int
deleteByExample
(
QdOfficialAccountSubscribeRecordExample
example
);
int
deleteByPrimaryKey
(
Integer
id
);
int
insert
(
QdOfficialAccountSubscribeRecord
record
);
int
insertSelective
(
QdOfficialAccountSubscribeRecord
record
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table qd_official_account_subscribe_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
QdOfficialAccountSubscribeRecord
selectOneByExample
(
QdOfficialAccountSubscribeRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table qd_official_account_subscribe_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
QdOfficialAccountSubscribeRecord
selectOneByExampleSelective
(
@Param
(
"example"
)
QdOfficialAccountSubscribeRecordExample
example
,
@Param
(
"selective"
)
QdOfficialAccountSubscribeRecord
.
Column
...
selective
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table qd_official_account_subscribe_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List
<
QdOfficialAccountSubscribeRecord
>
selectByExampleSelective
(
@Param
(
"example"
)
QdOfficialAccountSubscribeRecordExample
example
,
@Param
(
"selective"
)
QdOfficialAccountSubscribeRecord
.
Column
...
selective
);
List
<
QdOfficialAccountSubscribeRecord
>
selectByExample
(
QdOfficialAccountSubscribeRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table qd_official_account_subscribe_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
QdOfficialAccountSubscribeRecord
selectByPrimaryKeySelective
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"selective"
)
QdOfficialAccountSubscribeRecord
.
Column
...
selective
);
QdOfficialAccountSubscribeRecord
selectByPrimaryKey
(
Integer
id
);
int
updateByExampleSelective
(
@Param
(
"record"
)
QdOfficialAccountSubscribeRecord
record
,
@Param
(
"example"
)
QdOfficialAccountSubscribeRecordExample
example
);
int
updateByExample
(
@Param
(
"record"
)
QdOfficialAccountSubscribeRecord
record
,
@Param
(
"example"
)
QdOfficialAccountSubscribeRecordExample
example
);
int
updateByPrimaryKeySelective
(
QdOfficialAccountSubscribeRecord
record
);
int
updateByPrimaryKey
(
QdOfficialAccountSubscribeRecord
record
);
}
\ No newline at end of file
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/qiandao/QdOfficialAccountSubscribeRecordMapper.xml
0 → 100644
View file @
80514973
This diff is collapsed.
Click to expand it.
ch-dao/src/main/resources/generatorConfig_new.xml
View file @
80514973
...
...
@@ -72,7 +72,7 @@
<javaClientGenerator
type=
"XMLMAPPER"
targetPackage=
"com.wwdz.ch.db.mapper.qiandao"
targetProject=
"ch-dao/src/main/java"
/>
<table
tableName=
"qd_
user_sign_in_task
"
enableCountByExample=
"true"
enableUpdateByExample=
"true"
enableDeleteByExample=
"true"
enableSelectByExample=
"true"
selectByExampleQueryId=
"true"
>
<table
tableName=
"qd_
official_account_subscribe_record
"
enableCountByExample=
"true"
enableUpdateByExample=
"true"
enableDeleteByExample=
"true"
enableSelectByExample=
"true"
selectByExampleQueryId=
"true"
>
<generatedKey
column=
"id"
sqlStatement=
"Mysql"
identity=
"true"
/>
</table>
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/QdOfficialAccountCallbackController.java
View file @
80514973
...
...
@@ -3,27 +3,23 @@ package com.wwdz.ch.wx.api;
import
com.wwdz.ch.core.api.QdOfficialAccountApi
;
import
com.wwdz.ch.core.consts.OfficalAccountEnum
;
import
com.wwdz.ch.core.entity.ConsignSaleSubscribeMsg
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dao.qiandao.QdUserDao
;
import
com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.wx.api.aes.AesException
;
import
com.wwdz.ch.wx.api.aes.WXBizMsgCrypt
;
import
com.wwdz.ch.wx.service.OfficialAccountSubscribeRecordService
;
import
com.wwdz.ch.wx.service.
qiandao.Qd
OfficialAccountSubscribeRecordService
;
import
com.xxdxxs.utils.StringUtils
;
import
com.xxdxxs.utils.XmlUtils
;
import
io.swagger.annotations.ApiOperation
;
import
org.dom4j.DocumentException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.ByteArrayOutputStream
;
...
...
@@ -62,7 +58,7 @@ public class QdOfficialAccountCallbackController {
QdOfficialAccountApi
qdOfficialAccountApi
;
@Autowired
OfficialAccountSubscribeRecordService
o
fficialAccountSubscribeRecordService
;
QdOfficialAccountSubscribeRecordService
qdO
fficialAccountSubscribeRecordService
;
@Autowired
QdUserDao
qdUserDao
;
...
...
@@ -102,8 +98,8 @@ public class QdOfficialAccountCallbackController {
Date
date
=
new
Date
(
Long
.
valueOf
(
createTime
)
*
1000L
);
logger
.
info
(
"解析xml得到 openId:{}, event :{}, time:{}"
,
userOpenId
,
event
,
date
);
//新增或更新订阅记录
OfficialAccountSubscribeRecord
officialAccountSubscribeRecord
=
new
OfficialAccountSubscribeRecord
();
o
fficialAccountSubscribeRecord
.
setOpenid
(
userOpenId
);
QdOfficialAccountSubscribeRecord
qdOfficialAccountSubscribeRecord
=
new
Qd
OfficialAccountSubscribeRecord
();
qdO
fficialAccountSubscribeRecord
.
setOpenid
(
userOpenId
);
if
(
SUBSCRIBE_EVENT
.
equals
(
event
))
{
//只有关注了公众号,才可以通过根据openid获取unionid
String
unionid
=
qdOfficialAccountApi
.
getUnionidByOpenid
(
userOpenId
);
...
...
@@ -111,24 +107,24 @@ public class QdOfficialAccountCallbackController {
QdUser
user
=
qdUserDao
.
getUserByUnionId
(
unionid
);
if
(
user
!=
null
)
{
logger
.
info
(
"根据unionid查询手机号, unionid :{}, phone : {}"
,
unionid
,
user
.
getMobile
());
o
fficialAccountSubscribeRecord
.
setPhone
(
user
.
getMobile
());
qdO
fficialAccountSubscribeRecord
.
setPhone
(
user
.
getMobile
());
}
o
fficialAccountSubscribeRecord
.
setUnionid
(
unionid
);
o
fficialAccountSubscribeRecord
.
setEnabled
(
1
);
qdO
fficialAccountSubscribeRecord
.
setUnionid
(
unionid
);
qdO
fficialAccountSubscribeRecord
.
setEnabled
(
1
);
}
else
{
o
fficialAccountSubscribeRecord
.
setEnabled
(
0
);
qdO
fficialAccountSubscribeRecord
.
setEnabled
(
0
);
}
//查询有无历史订阅记录
boolean
isExisted
=
o
fficialAccountSubscribeRecordService
.
isExisted
(
userOpenId
);
boolean
isExisted
=
qdO
fficialAccountSubscribeRecordService
.
isExisted
(
userOpenId
);
if
(
isExisted
)
{
o
fficialAccountSubscribeRecord
.
setUpdateTime
(
date
);
officialAccountSubscribeRecordService
.
update
(
o
fficialAccountSubscribeRecord
);
qdO
fficialAccountSubscribeRecord
.
setUpdateTime
(
date
);
qdOfficialAccountSubscribeRecordService
.
update
(
qdO
fficialAccountSubscribeRecord
);
}
else
{
//没有历史订阅记录
o
fficialAccountSubscribeRecord
.
setCreateTime
(
date
);
o
fficialAccountSubscribeRecord
.
setUpdateTime
(
date
);
o
fficialAccountSubscribeRecord
.
setPlatformType
(
OfficalAccountEnum
.
PlatformTypeEnum
.
WECHAT
.
getCode
());
officialAccountSubscribeRecordService
.
insert
(
o
fficialAccountSubscribeRecord
);
qdO
fficialAccountSubscribeRecord
.
setCreateTime
(
date
);
qdO
fficialAccountSubscribeRecord
.
setUpdateTime
(
date
);
qdO
fficialAccountSubscribeRecord
.
setPlatformType
(
OfficalAccountEnum
.
PlatformTypeEnum
.
WECHAT
.
getCode
());
qdOfficialAccountSubscribeRecordService
.
insert
(
qdO
fficialAccountSubscribeRecord
);
}
logger
.
info
(
"=============== 更新订阅公众号记录成功 =============="
);
}
else
if
(
SUBSCRIBE_MSG_POPUP_EVENT
.
equals
(
event
))
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdHomePageServiceImpl.java
View file @
80514973
...
...
@@ -40,6 +40,9 @@ public class QdHomePageServiceImpl implements QdHomePageService {
@Autowired
QdUserSignInDao
qdUserSignInDao
;
@Autowired
QdOfficialAccountSubscribeRecordDao
qdOfficialAccountSubscribeRecordDao
;
@Override
public
Result
findUserInfo
(
QdHomePageRequestDto
dto
)
{
try
{
...
...
@@ -62,6 +65,14 @@ public class QdHomePageServiceImpl implements QdHomePageService {
List
<
SignInTask
>
signInTaskList
=
signInTaskDao
.
findDataByPage
(
signInTaskRequestDto
);
map
.
put
(
"taskList"
,
signInTaskList
);
}
//用户是否订阅公众号
String
unionid
=
qdUser
.
getWxUnionid
();
if
(
StringUtils
.
hasLength
(
unionid
))
{
boolean
flag
=
qdOfficialAccountSubscribeRecordDao
.
isSubscribed
(
unionid
);
map
.
put
(
"isSubscribed"
,
flag
);
}
else
{
map
.
put
(
"isSubscribed"
,
false
);
}
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询乾岛首页用户信息失败 error:{}"
,
e
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/qiandao/QdOfficialAccountSubscribeRecordServiceImpl.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.wx.impl.qiandao
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dao.qiandao.QdOfficialAccountSubscribeRecordDao
;
import
com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
import
com.wwdz.ch.wx.service.qiandao.QdOfficialAccountSubscribeRecordService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
@Service
public
class
QdOfficialAccountSubscribeRecordServiceImpl
implements
QdOfficialAccountSubscribeRecordService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
QdOfficialAccountSubscribeRecordServiceImpl
.
class
);
private
static
final
String
OFFICAL_ACCOUNT_URL
=
"https://mp.weixin.qq.com/s?__biz=Mzk0MDY4NjkxOQ==&mid=2247485269&idx=1&sn=244235b56cf8632e6ca7184efdb8c82f&chksm=c2dcac7df5ab256ba2c966616168501680a0d8b4625f3c637244f01355fbe34c2c37f7b047ce#rd"
;
@Autowired
QdOfficialAccountSubscribeRecordDao
qdOfficialAccountSubscribeRecordDao
;
@Override
public
Result
insert
(
QdOfficialAccountSubscribeRecord
qdOfficialAccountSubscribeRecord
)
{
try
{
qdOfficialAccountSubscribeRecordDao
.
insert
(
qdOfficialAccountSubscribeRecord
);
return
Result
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"新增公众号订阅记录出错:{}"
,
e
);
}
return
Result
.
failed
();
}
@Override
public
Result
update
(
QdOfficialAccountSubscribeRecord
qdOfficialAccountSubscribeRecord
)
{
try
{
qdOfficialAccountSubscribeRecordDao
.
update
(
qdOfficialAccountSubscribeRecord
);
return
Result
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"新增公众号订阅记录出错:{}"
,
e
);
}
return
Result
.
failed
();
}
@Override
public
boolean
isExisted
(
String
openid
)
{
return
qdOfficialAccountSubscribeRecordDao
.
isExisted
(
openid
);
}
@Override
public
Result
isSubscribed
(
String
unionid
)
{
try
{
boolean
flag
=
qdOfficialAccountSubscribeRecordDao
.
isSubscribed
(
unionid
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
// map.put("isSubscribed", flag);
//暂时先默认为关注
map
.
put
(
"isSubscribed"
,
true
);
map
.
put
(
"url"
,
OFFICAL_ACCOUNT_URL
);
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"isSubscribed error :{}"
,
e
);
}
return
Result
.
failed
();
}
@Override
public
Result
findOne
(
String
unionid
)
{
try
{
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
=
qdOfficialAccountSubscribeRecordDao
.
findOne
(
unionid
);
return
Result
.
success
(
officialAccountSubscribeRecord
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"findOne error :{}"
,
e
);
}
return
Result
.
failed
();
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/qiandao/QdOfficialAccountSubscribeRecordService.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.wx.service.qiandao
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.domain.OfficialAccountSubscribeRecord
;
import
com.wwdz.ch.db.domain.qiandao.QdOfficialAccountSubscribeRecord
;
public
interface
QdOfficialAccountSubscribeRecordService
{
Result
insert
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
);
Result
update
(
QdOfficialAccountSubscribeRecord
officialAccountSubscribeRecord
);
/**
* 是否有历史订阅记录
* @param openid
* @return
*/
boolean
isExisted
(
String
openid
);
/**
* 是否关注过公众号
* @param openid
* @return
*/
Result
isSubscribed
(
String
openid
);
Result
findOne
(
String
openid
);
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/qiandao/QdOfficialAccountController.java
0 → 100644
View file @
80514973
package
com.wwdz.ch.wx.web.qiandao
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.api.OfficialAccountApi
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.domain.qiandao.QdUser
;
import
com.wwdz.ch.db.dto.request.UserRequestDto
;
import
com.wwdz.ch.db.dto.request.qiandao.QdUserRequestDto
;
import
com.wwdz.ch.wx.service.qiandao.QdOfficialAccountSubscribeRecordService
;
import
com.wwdz.ch.wx.service.qiandao.QdUserService
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/wx/qdOfficialAccount"
)
public
class
QdOfficialAccountController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
QdOfficialAccountController
.
class
);
@Autowired
QdOfficialAccountSubscribeRecordService
qdOfficialAccountSubscribeRecordService
;
@Autowired
QdUserService
qdUserService
;
@ApiOperation
(
value
=
"判断用户是否关注过公众号"
)
@PostMapping
(
"/isSubscribed"
)
public
Result
isSubscribed
(
@RequestBody
QdUserRequestDto
dto
)
{
logger
.
info
(
"【请求开始】判断用户是否关注过公众号,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
StringUtils
.
isEmpty
(
dto
.
getUserId
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
Result
<
QdUser
>
result
=
qdUserService
.
queryUserInfo
(
dto
);
String
unionid
=
null
;
if
(
result
.
getSuccess
()
&&
result
.
getData
()
!=
null
)
{
unionid
=
result
.
getData
().
getWxUnionid
();
}
if
(
unionid
==
null
)
{
return
Result
.
failed
(
"该用户没有记录下unionid"
);
}
return
qdOfficialAccountSubscribeRecordService
.
isSubscribed
(
unionid
);
}
}
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