Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
43f4c6e7
Commit
43f4c6e7
authored
Mar 29, 2022
by
李健华
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/kdsp_and_max-2022-03-16' into 'master'
Feature/kdsp and max 2022 03 16 See merge request
!56
parents
c995610e
65bed963
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
318 additions
and
15 deletions
+318
-15
RecordType.java
src/main/java/cn/quantgroup/user/enums/RecordType.java
+24
-0
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+14
-4
WeChatController.java
...quantgroup/xyqb/controller/external/WeChatController.java
+39
-3
LoginRecord.java
src/main/java/cn/quantgroup/xyqb/entity/LoginRecord.java
+49
-0
WechatInfoRelation.java
...in/java/cn/quantgroup/xyqb/entity/WechatInfoRelation.java
+5
-8
ILoginRecordRepository.java
...cn/quantgroup/xyqb/repository/ILoginRecordRepository.java
+16
-0
IWeChatInfoRelationRepository.java
...tgroup/xyqb/repository/IWeChatInfoRelationRepository.java
+2
-0
IWeChatUserRepository.java
.../cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
+12
-0
UserRegisterServiceImpl.java
...p/xyqb/service/register/impl/UserRegisterServiceImpl.java
+8
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+12
-0
ILoginRecordService.java
.../cn/quantgroup/xyqb/service/user/ILoginRecordService.java
+25
-0
LoginRecordServiceImpl.java
...tgroup/xyqb/service/user/impl/LoginRecordServiceImpl.java
+86
-0
IWechatFollowService.java
.../quantgroup/xyqb/service/wechat/IWechatFollowService.java
+4
-0
IWechatService.java
...ava/cn/quantgroup/xyqb/service/wechat/IWechatService.java
+6
-0
WechatFollowServiceImpl.java
...oup/xyqb/service/wechat/impl/WechatFollowServiceImpl.java
+5
-0
WechatServiceImpl.java
...uantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
+11
-0
No files found.
src/main/java/cn/quantgroup/user/enums/RecordType.java
0 → 100644
View file @
43f4c6e7
package
cn
.
quantgroup
.
user
.
enums
;
/**
* Created by FrankChow on 15/7/15.
*/
public
enum
RecordType
{
LOGINRECORD
(
"login"
),
REGISTERRECORD
(
"register"
);
private
String
name
;
RecordType
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName
()
{
return
name
;
}
@Override
public
String
toString
()
{
return
name
;
}
}
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
43f4c6e7
...
...
@@ -7,10 +7,7 @@ import cn.quantgroup.xyqb.aspect.captcha.LoginInterceptor;
import
cn.quantgroup.xyqb.aspect.limit.PasswordFreeAccessValidator
;
import
cn.quantgroup.xyqb.aspect.lock.PasswordErrorFiniteValidator
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserAttached
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.exception.UserNotExistException
;
import
cn.quantgroup.xyqb.exception.VerificationCodeErrorException
;
import
cn.quantgroup.xyqb.model.*
;
...
...
@@ -96,6 +93,9 @@ public class UserController implements IBaseController {
@Autowired
private
IHttpService
httpService
;
@Autowired
private
ILoginRecordService
loginRecordService
;
/**
* 登录(账号 + 密码)
...
...
@@ -832,4 +832,14 @@ public class UserController implements IBaseController {
return
JsonResult
.
buildSuccessResult
(
"登出成功"
);
}
@RequestMapping
(
value
=
"/kdsp/loginRecord"
,
method
=
RequestMethod
.
POST
)
public
JsonResult
loginRecord
(
@RequestParam
(
required
=
true
)
String
deviceId
)
{
if
(
null
==
deviceId
||
""
.
equals
(
deviceId
))
{
return
JsonResult
.
buildErrorStateResult
(
"请传入正确的设备ID"
,
null
);
}
LoginRecord
loginRecord
=
loginRecordService
.
findFirstLoginRecord
(
deviceId
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginRecord
);
}
}
src/main/java/cn/quantgroup/xyqb/controller/external/WeChatController.java
View file @
43f4c6e7
...
...
@@ -6,13 +6,16 @@ import cn.quantgroup.xyqb.entity.Merchant;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.model.AuthBean
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.LoginProperties
;
import
cn.quantgroup.xyqb.model.webchat.AccessTokenResponse
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatFollowService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.util.EmojiUtil
;
import
cn.quantgroup.xyqb.util.TenantUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.google.common.base.Joiner
;
...
...
@@ -23,9 +26,7 @@ import org.apache.commons.lang.StringUtils;
import
org.apache.http.HttpStatus
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
...
...
@@ -37,6 +38,7 @@ import java.net.MalformedURLException;
import
java.net.URL
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
...
...
@@ -83,6 +85,9 @@ public class WeChatController implements IBaseController {
*/
@Value
(
"${m.https}"
)
private
String
xjdDomain
;
@Autowired
private
IWechatFollowService
wechatFollowService
;
/**
* 开发者资质认证,有必要吗?
*
...
...
@@ -447,4 +452,35 @@ public class WeChatController implements IBaseController {
}
@RequestMapping
(
"/userIdToUnionId"
)
public
JsonResult
userIdToUnionId
(
@RequestParam
Long
userId
)
{
List
<
WechatUserInfo
>
wechatUserInfoList
=
null
;
if
(
userId
!=
null
&&
userId
>
0
)
{
wechatUserInfoList
=
wechatService
.
queryListByUserId
(
userId
);
}
return
JsonResult
.
buildSuccessResult
(
"通过用户ID查询的绑定微信相关信息"
,
wechatUserInfoList
);
}
@RequestMapping
(
"/unionIdToUserId"
)
public
JsonResult
unionIdToUserId
(
@RequestParam
String
unionId
)
{
List
<
WechatUserInfo
>
wechatUserInfoList
=
null
;
if
(
unionId
!=
null
&&
!
""
.
equals
(
unionId
))
{
wechatUserInfoList
=
wechatService
.
queryListByUnionId
(
unionId
);
}
return
JsonResult
.
buildSuccessResult
(
"通过unionId查询的绑定微信相关信息"
,
wechatUserInfoList
);
}
@PostMapping
(
"/getByUnionIdsToUserIds"
)
public
JsonResult
getByUnionIdsToUserIds
(
@RequestBody
Map
<
String
,
Object
>
params
)
{
log
.
info
(
"根据unionIds获取企业绑定用户信息 {}"
,
params
);
List
<
String
>
unionIds
=
(
List
<
String
>)
params
.
get
(
"unionIds"
);
if
(
unionIds
.
size
()
>
500
)
{
unionIds
=
unionIds
.
subList
(
0
,
500
);
}
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"YYYYMMdd"
);
String
period
=
simpleDateFormat
.
format
(
new
Date
());
return
JsonResult
.
buildSuccessResultGeneric
(
wechatFollowService
.
findByUnionIdsToUserIds
(
unionIds
,
period
));
}
}
src/main/java/cn/quantgroup/xyqb/entity/LoginRecord.java
0 → 100644
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
/**
* Created by 11 on 2017/3/22.
*/
@Data
@Entity
@Table
(
name
=
"login_record"
)
public
class
LoginRecord
extends
BaseEntity
implements
Serializable
{
@Column
(
name
=
"user_id"
)
private
Long
userId
;
@Column
(
name
=
"type"
)
private
String
type
;
@Column
(
name
=
"qg_tenant_id"
)
private
Long
qgTenantId
;
@Column
(
name
=
"vcc_channel"
)
private
Long
vccChannel
;
@Column
(
name
=
"user_terminal"
)
private
String
userTerminal
;
@Column
(
name
=
"ip"
)
private
String
ip
;
@Column
(
name
=
"app_name"
)
private
String
appName
;
@Column
(
name
=
"version"
)
private
String
version
;
@Column
(
name
=
"user_agent"
)
private
String
userAgent
;
@Column
(
name
=
"device_id"
)
private
String
deviceId
;
@Column
(
name
=
"app_channel"
)
private
String
appChannel
;
}
src/main/java/cn/quantgroup/xyqb/entity/WechatInfoRelation.java
View file @
43f4c6e7
...
...
@@ -6,6 +6,7 @@ import org.springframework.beans.BeanUtils;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Date
;
import
java.sql.Timestamp
;
/**
...
...
@@ -23,14 +24,10 @@ public class WechatInfoRelation extends BaseEntity implements Serializable {
private
String
openId
;
@Column
(
name
=
"union_id"
)
private
String
unionId
;
@Column
(
name
=
"is_follow_wechat"
)
private
Integer
isFollowWechat
;
@Column
(
name
=
"is_follow_enterprise_wechat"
)
private
Integer
isFollowEnterpriseWechat
;
@Column
(
name
=
"is_followed_wechat"
)
private
Integer
isFollowedWechat
;
@Column
(
name
=
"is_followed_enterprise_wechat"
)
private
Integer
isFollowedEnterpriseWechat
;
@Column
(
name
=
"type"
)
private
Integer
type
;
@Column
(
name
=
"task_period"
)
private
String
taskPeriod
;
}
src/main/java/cn/quantgroup/xyqb/repository/ILoginRecordRepository.java
0 → 100644
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
repository
;
import
cn.quantgroup.xyqb.entity.LoginRecord
;
import
cn.quantgroup.xyqb.entity.User
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
public
interface
ILoginRecordRepository
extends
JpaRepository
<
LoginRecord
,
Long
>,
JpaSpecificationExecutor
<
LoginRecord
>
{
LoginRecord
findFirstByDeviceIdOrderByCreatedAtDesc
(
String
deviceId
);
}
src/main/java/cn/quantgroup/xyqb/repository/IWeChatInfoRelationRepository.java
View file @
43f4c6e7
...
...
@@ -19,4 +19,6 @@ public interface IWeChatInfoRelationRepository extends JpaRepository<WechatInfoR
@Query
(
value
=
"update wechat_info_relation as wir set wir.is_follow_wechat = 1 where wir.open_id IN (?1)"
,
nativeQuery
=
true
)
void
updateIsFollowWechatInOpenIdList
(
List
<
String
>
openIdList
);
List
<
WechatInfoRelation
>
findByUnionIdInAndTaskPeriodAndType
(
List
<
String
>
unionIdList
,
String
period
,
Integer
type
);
}
src/main/java/cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
View file @
43f4c6e7
...
...
@@ -7,6 +7,8 @@ import org.springframework.data.jpa.repository.Modifying;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
static
org
.
springframework
.
transaction
.
annotation
.
Propagation
.
MANDATORY
;
/**
...
...
@@ -88,4 +90,14 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
@Transactional
void
deleteByUserId
(
Long
userId
);
/**
* 通过userId查询相关绑定微信记录
*/
List
<
WechatUserInfo
>
findByUserId
(
Long
userId
);
/**
* 通过unionId查询相关绑定微信记录
*/
List
<
WechatUserInfo
>
findByUnionId
(
String
unionId
);
}
src/main/java/cn/quantgroup/xyqb/service/register/impl/UserRegisterServiceImpl.java
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
service
.
register
.
impl
;
import
cn.quantgroup.user.enums.RecordType
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.Address
;
import
cn.quantgroup.xyqb.entity.Contact
;
...
...
@@ -10,6 +11,7 @@ import cn.quantgroup.xyqb.exception.UserRegisterLoginException;
import
cn.quantgroup.xyqb.model.UserRegisterParam
;
import
cn.quantgroup.xyqb.service.register.IUserDeregisterService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.user.ILoginRecordService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.DateUtils
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
...
...
@@ -40,6 +42,9 @@ public class UserRegisterServiceImpl implements IUserRegisterService {
@Resource
private
IUserService
userService
;
@Resource
private
ILoginRecordService
loginRecordService
;
@Resource
private
IUserDeregisterService
userDeregisterService
;
...
...
@@ -155,6 +160,9 @@ public class UserRegisterServiceImpl implements IUserRegisterService {
user
.
setPassword
(
PasswordUtil
.
MD5WithSalt
(
password
));
}
user
=
userService
.
saveUser
(
user
);
// 注册添加日志
loginRecordService
.
saveLoginRecord
(
user
.
getId
(),
RecordType
.
REGISTERRECORD
.
getName
());
userRegisterParam
.
setUser
(
user
);
return
user
;
}
...
...
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
service
.
session
.
impl
;
import
cn.quantgroup.user.enums.RecordType
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.AuthBean
;
...
...
@@ -9,6 +10,7 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
cn.quantgroup.xyqb.service.user.ILoginRecordService
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
cn.quantgroup.xyqb.util.TenantUtil
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -21,8 +23,11 @@ import org.springframework.data.redis.core.RedisTemplate;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.sql.Timestamp
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -38,6 +43,9 @@ public class SessionServiceImpl implements ISessionService {
@Resource
private
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
@Resource
private
ILoginRecordService
loginRecordService
;
@Value
(
"${token.prefix}"
)
private
String
prefix
;
...
...
@@ -74,6 +82,10 @@ public class SessionServiceImpl implements ISessionService {
authBean
.
setUuid
(
uuid
);
authBean
.
setHasPassword
(
user
.
getHasPassword
());
log
.
info
(
"用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{},channelId:{}"
,
properties
.
getCreatedFrom
(),
user
.
getPhoneNo
(),
properties
.
getAppChannel
(),
properties
.
getChannelId
());
// 添加登陆日志
loginRecordService
.
saveLoginRecord
(
user
.
getId
(),
RecordType
.
LOGINRECORD
.
getName
());
return
authBean
;
}
...
...
src/main/java/cn/quantgroup/xyqb/service/user/ILoginRecordService.java
0 → 100644
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
service
.
user
;
import
cn.quantgroup.user.enums.RecordType
;
import
cn.quantgroup.xyqb.controller.internal.user.resp.UserFullResp
;
import
cn.quantgroup.xyqb.entity.LoginRecord
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.LoginProperties
;
import
cn.quantgroup.xyqb.model.UserInfo
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by Miraculous on 15/7/5.
*/
public
interface
ILoginRecordService
{
void
saveLoginRecord
(
Long
id
,
String
name
);
LoginRecord
findFirstLoginRecord
(
String
deviceId
);
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/LoginRecordServiceImpl.java
0 → 100644
View file @
43f4c6e7
package
cn
.
quantgroup
.
xyqb
.
service
.
user
.
impl
;
import
cn.quantgroup.tech.db.DSType
;
import
cn.quantgroup.tech.db.TargetDataSource
;
import
cn.quantgroup.user.enums.BizType
;
import
cn.quantgroup.user.enums.IncomeRangeEnum
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.aspect.lock.RedisLock
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.controller.internal.user.resp.UserFullResp
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.event.PhoneNoUpdateEvent
;
import
cn.quantgroup.xyqb.exception.DataException
;
import
cn.quantgroup.xyqb.exception.UserNotExistException
;
import
cn.quantgroup.xyqb.exception.UserRegisterLoginException
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.repository.*
;
import
cn.quantgroup.xyqb.service.register.IUserDeregisterService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.util.*
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.sensorsdata.analytics.javasdk.ISensorsAnalytics
;
import
com.sensorsdata.analytics.javasdk.bean.EventRecord
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Caching
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
/**
* Created by Miraculous on 15/7/5.
*/
@Service
@Slf4j
public
class
LoginRecordServiceImpl
implements
ILoginRecordService
,
IBaseController
{
@Autowired
private
ILoginRecordRepository
loginRecordRepository
;
@Override
public
void
saveLoginRecord
(
Long
userId
,
String
name
)
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
LoginRecord
loginRecord
=
new
LoginRecord
();
loginRecord
.
setUserId
(
userId
);
loginRecord
.
setType
(
name
);
String
qgTenantId
=
request
.
getHeader
(
"qg-tenant-id"
);
String
vccChannel
=
request
.
getHeader
(
"vccChannel"
);
if
(
null
!=
qgTenantId
&&
!
""
.
equals
(
qgTenantId
))
{
loginRecord
.
setQgTenantId
(
Long
.
parseLong
(
qgTenantId
));
}
if
(
null
!=
vccChannel
&&
!
""
.
equals
(
vccChannel
))
{
loginRecord
.
setVccChannel
(
Long
.
parseLong
(
vccChannel
));
}
loginRecord
.
setUserTerminal
(
request
.
getHeader
(
"x-user-terminal"
));
loginRecord
.
setIp
(
request
.
getHeader
(
"x-original-client-ip"
));
loginRecord
.
setAppName
(
request
.
getHeader
(
"appName"
));
loginRecord
.
setVersion
(
request
.
getHeader
(
"version"
));
loginRecord
.
setUserAgent
(
request
.
getHeader
(
"User-Agent"
));
loginRecord
.
setDeviceId
(
request
.
getHeader
(
"scDeviceId"
));
loginRecord
.
setAppChannel
(
request
.
getHeader
(
"appChannel"
));
loginRecordRepository
.
saveAndFlush
(
loginRecord
);
}
@Override
public
LoginRecord
findFirstLoginRecord
(
String
deviceId
)
{
return
loginRecordRepository
.
findFirstByDeviceIdOrderByCreatedAtDesc
(
deviceId
);
}
}
src/main/java/cn/quantgroup/xyqb/service/wechat/IWechatFollowService.java
View file @
43f4c6e7
...
...
@@ -4,10 +4,14 @@ import cn.quantgroup.xyqb.entity.WechatUserInfo;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.webchat.AccessTokenResponse
;
import
java.util.List
;
public
interface
IWechatFollowService
{
AccessTokenResponse
getToken
();
JsonResult
executeWechatFollowStatus
(
String
nextOpenId
,
String
period
);
void
executeTask
();
Object
findByUnionIdsToUserIds
(
List
<
String
>
unionIds
,
String
period
);
}
src/main/java/cn/quantgroup/xyqb/service/wechat/IWechatService.java
View file @
43f4c6e7
...
...
@@ -3,6 +3,8 @@ package cn.quantgroup.xyqb.service.wechat;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.model.webchat.AccessTokenResponse
;
import
java.util.List
;
/**
* Created by Miraculous on 2017/1/19.
*/
...
...
@@ -47,4 +49,8 @@ public interface IWechatService {
* @return 禁用结果
*/
int
forbiddenXyqbAndWuxiUserByUserId
(
Long
userId
);
List
<
WechatUserInfo
>
queryListByUserId
(
Long
userId
);
List
<
WechatUserInfo
>
queryListByUnionId
(
String
unionId
);
}
src/main/java/cn/quantgroup/xyqb/service/wechat/impl/WechatFollowServiceImpl.java
View file @
43f4c6e7
...
...
@@ -181,6 +181,11 @@ public class WechatFollowServiceImpl implements IWechatFollowService {
executeEnterpriseFollowStatus
(
""
,
period
);
}
@Override
public
Object
findByUnionIdsToUserIds
(
List
<
String
>
unionIds
,
String
period
)
{
return
weChatInfoRelationRepository
.
findByUnionIdInAndTaskPeriodAndType
(
unionIds
,
period
,
ENTERPRISE_WECHAT
);
}
private
JsonResult
executeEnterpriseFollowStatus
(
String
s
,
String
period
)
{
try
{
...
...
src/main/java/cn/quantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
View file @
43f4c6e7
...
...
@@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -251,4 +252,14 @@ public class WechatServiceImpl implements IWechatService {
public
int
forbiddenXyqbAndWuxiUserByUserId
(
Long
userId
)
{
return
weChatUserRepository
.
forbiddenXyqbAndWuxiUserByUserId
(
userId
);
}
@Override
public
List
<
WechatUserInfo
>
queryListByUserId
(
Long
userId
)
{
return
weChatUserRepository
.
findByUserId
(
userId
);
}
@Override
public
List
<
WechatUserInfo
>
queryListByUnionId
(
String
unionId
)
{
return
weChatUserRepository
.
findByUnionId
(
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