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
4d71199d
Commit
4d71199d
authored
May 27, 2020
by
董建华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加快速登录的新注册标识
parent
9bd10fb3
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
218 additions
and
5 deletions
+218
-5
AppletController.java
...n/quantgroup/xyqb/controller/applet/AppletController.java
+33
-0
WxController.java
...ntgroup/xyqb/controller/middleoffice/wx/WxController.java
+2
-0
AppletParamEntry.java
...main/java/cn/quantgroup/xyqb/entity/AppletParamEntry.java
+73
-0
AuthBean.java
src/main/java/cn/quantgroup/xyqb/model/AuthBean.java
+1
-0
LoginProperties.java
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
+1
-0
IAppletService.java
...ava/cn/quantgroup/xyqb/service/applet/IAppletService.java
+14
-0
AppletServiceImpl.java
...uantgroup/xyqb/service/applet/impl/AppletServiceImpl.java
+76
-0
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+6
-5
WechatTest.java
src/test/java/wechat/WechatTest.java
+12
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/applet/AppletController.java
0 → 100644
View file @
4d71199d
package
cn
.
quantgroup
.
xyqb
.
controller
.
applet
;
import
cn.quantgroup.xyqb.entity.AppletParamEntry
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author :dongjianhua
* @date :Created in 2020/5/27 17:24
* @description:小程序控制器
* @modified By:
* @version: 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
"/middle_office/applet"
)
public
class
AppletController
{
/**
*
* @return
*/
@PostMapping
(
"/relevance"
)
public
JsonResult
relevance
(
@Validated
@RequestBody
AppletParamEntry
appletParamEntry
){
return
JsonResult
.
buildSuccessResult
();
}
}
src/main/java/cn/quantgroup/xyqb/controller/middleoffice/wx/WxController.java
View file @
4d71199d
package
cn
.
quantgroup
.
xyqb
.
controller
.
middleoffice
.
wx
;
import
cn.quantgroup.xyqb.entity.AppletParamEntry
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
src/main/java/cn/quantgroup/xyqb/entity/AppletParamEntry.java
0 → 100644
View file @
4d71199d
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
/**
* @author :dongjianhua
* @date :Created in 2020/5/27 16:02
* @description:小程序关联入口参数实体
* @modified By:
* @version: 1.0
*/
@Getter
@Setter
public
class
AppletParamEntry
{
/**
* 应用标识
*/
@NotNull
(
message
=
"01:appName 不能为空"
)
private
String
appName
;
/**
* 应用对应的渠道号
*/
@NotNull
(
message
=
"02:channelId 不能为空"
)
private
Long
channelId
;
/**
* 小程序openid
*/
@NotNull
(
message
=
"03:openId 不能为空"
)
private
String
openId
;
/**
* 手机号
*/
@NotNull
(
message
=
"04:mobile 不能为空"
)
@Pattern
(
regexp
=
"/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$/"
,
message
=
"手机号格式不对"
)
private
String
mobile
;
/**
* 用户全局唯一标识
*/
private
String
unionId
;
/**
* 昵称
*/
private
String
nickName
;
/**
* 用户头像
*/
private
String
avatarUrl
;
/**
* 性别1男2女0未知
*/
private
short
gender
;
/**
* 国家
*/
private
String
country
;
/**
* 省份
*/
private
String
province
;
/**
* 城市
*/
private
String
city
;
/**
* 语言
*/
private
String
language
;
}
src/main/java/cn/quantgroup/xyqb/model/AuthBean.java
View file @
4d71199d
...
...
@@ -17,6 +17,7 @@ public class AuthBean {
private
String
phoneNo
;
private
String
uuid
;
private
boolean
hasPassword
;
private
boolean
register
=
false
;
public
AuthBean
(
String
token
,
Principal
user
)
{
this
.
token
=
token
;
...
...
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
View file @
4d71199d
...
...
@@ -13,6 +13,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@Builder
public
class
LoginProperties
{
/**
* 维度
* 形如:"app|app名称|平台|应用市场名字"
...
...
src/main/java/cn/quantgroup/xyqb/service/applet/IAppletService.java
0 → 100644
View file @
4d71199d
package
cn
.
quantgroup
.
xyqb
.
service
.
applet
;
import
cn.quantgroup.xyqb.entity.AppletParamEntry
;
/**
* @author :dongjianhua
* @date :Created in 2020/5/27 17:22
* @description:小程序服务层
* @modified By:
* @version: 1.0
*/
public
interface
IAppletService
{
Long
relevance
(
AppletParamEntry
appletParamEntry
);
}
src/main/java/cn/quantgroup/xyqb/service/applet/impl/AppletServiceImpl.java
0 → 100644
View file @
4d71199d
package
cn
.
quantgroup
.
xyqb
.
service
.
applet
.
impl
;
import
cn.quantgroup.xyqb.entity.AppletParamEntry
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.repository.IWeChatUserRepository
;
import
cn.quantgroup.xyqb.service.applet.IAppletService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author :dongjianhua
* @date :Created in 2020/5/27 17:27
* @description:小程序服务层
* @modified By:
* @version: 1.0
*/
@Slf4j
@Service
public
class
AppletServiceImpl
implements
IAppletService
{
private
final
IWeChatUserRepository
iWeChatUserRepository
;
private
final
IUserRegisterService
iUserRegisterService
;
private
final
IUserService
userService
;
@Autowired
public
AppletServiceImpl
(
IWeChatUserRepository
iWeChatUserRepository
,
IUserRegisterService
iUserRegisterService
,
IUserService
userService
)
{
this
.
iWeChatUserRepository
=
iWeChatUserRepository
;
this
.
iUserRegisterService
=
iUserRegisterService
;
this
.
userService
=
userService
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Long
relevance
(
AppletParamEntry
appletParamEntry
)
{
WechatUserInfo
wechatUserInfo
=
iWeChatUserRepository
.
findByOpenIdAndAppName
(
appletParamEntry
.
getOpenId
(),
appletParamEntry
.
getAppName
());
//这个接口先不考虑更换手机号的情况只要有userid就直接返回
if
(
null
!=
wechatUserInfo
&&
null
!=
wechatUserInfo
.
getUserId
())
{
return
wechatUserInfo
.
getUserId
();
}
wechatUserInfo
=
new
WechatUserInfo
();
wechatUserInfo
.
setNickName
(
appletParamEntry
.
getNickName
());
wechatUserInfo
.
setCity
(
appletParamEntry
.
getCity
());
wechatUserInfo
.
setCountry
(
appletParamEntry
.
getCountry
());
wechatUserInfo
.
setProvince
(
appletParamEntry
.
getProvince
());
wechatUserInfo
.
setAppName
(
appletParamEntry
.
getAppName
());
wechatUserInfo
.
setHeadImgUrl
(
appletParamEntry
.
getAvatarUrl
());
wechatUserInfo
.
setLanguage
(
appletParamEntry
.
getLanguage
());
wechatUserInfo
.
setOpenId
(
appletParamEntry
.
getOpenId
());
wechatUserInfo
.
setSex
(
appletParamEntry
.
getGender
());
wechatUserInfo
.
setUnionId
(
appletParamEntry
.
getUnionId
());
User
user
=
userService
.
findByPhoneInDb
(
appletParamEntry
.
getMobile
());
//如果不存在就去注册一下
if
(
null
==
user
)
{
user
=
iUserRegisterService
.
register
(
appletParamEntry
.
getChannelId
(),
appletParamEntry
.
getMobile
());
}
//如果存在就更新在微信表里
Long
id
=
user
.
getId
();
wechatUserInfo
.
setUserId
(
id
);
wechatUserInfo
.
setPhoneNo
(
user
.
getPhoneNo
());
iWeChatUserRepository
.
save
(
wechatUserInfo
);
return
id
;
}
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
4d71199d
...
...
@@ -15,10 +15,7 @@ import cn.quantgroup.xyqb.entity.UserHashPhoneNoIdNoMapping;
import
cn.quantgroup.xyqb.event.PhoneNoUpdateEvent
;
import
cn.quantgroup.xyqb.exception.DataException
;
import
cn.quantgroup.xyqb.exception.UserNotExistException
;
import
cn.quantgroup.xyqb.model.FindByMd5Enum
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.LoginProperties
;
import
cn.quantgroup.xyqb.model.UserInfo
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.repository.IUserHashMappingRepository
;
import
cn.quantgroup.xyqb.repository.IUserHashPhoneNoIdNoMappingRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
...
...
@@ -300,6 +297,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
@RedisLock
(
prefix
=
"lock:login:fast:"
,
key
=
"#this[8]"
)
public
JsonResult
loginFast
(
Long
channelId
,
String
appChannel
,
Long
createdFrom
,
Long
btRegisterChannelId
,
String
dimension
,
String
clickId
,
HttpServletRequest
request
,
Merchant
merchant
,
String
phoneNo
)
{
Boolean
register
=
false
;
User
user
=
findByPhoneWithCache
(
phoneNo
);
if
(
user
!=
null
&&
!
user
.
getEnable
())
{
log
.
info
(
"用户不存在,或者已经注销,phoneNo:{}"
,
phoneNo
);
...
...
@@ -313,12 +311,15 @@ public class UserServiceImpl implements IUserService, IBaseController {
}
//广点通转化注册 - 发送消息 - 方法内过滤
MqUtils
.
sendRegisterMessageForGdt
(
phoneNo
,
clickId
);
register
=
true
;
}
if
(!
wechatRelateUserIfNecessary
(
user
,
request
))
{
return
JsonResult
.
buildErrorStateResult
(
"登录时微信关联失败"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
3
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
return
new
JsonResult
(
sessionService
.
createSession
(
user
,
loginProperties
));
AuthBean
session
=
sessionService
.
createSession
(
user
,
loginProperties
);
session
.
setRegister
(
register
);
return
new
JsonResult
(
session
);
}
/**
...
...
src/test/java/wechat/WechatTest.java
View file @
4d71199d
...
...
@@ -35,6 +35,18 @@ public class WechatTest {
public
void
test
(){
WechatUserInfo
xyqb
=
weChatUserRepository
.
findByOpenIdAndAppName
(
"ou5l71eY3oO0oM88I-fp3pfC9sQg"
,
"xyqb"
);
log
.
info
(
"xyqb:{} "
,
xyqb
);
WechatUserInfo
xyqb1
=
weChatUserRepository
.
findByUserIdAndAppName
(
58847276L
,
"xyqb"
);
log
.
info
(
"xyqb1:{} "
,
xyqb1
);
WechatUserInfo
xyqb2
=
weChatUserRepository
.
findByPhoneNoAndAppName
(
"13718195234"
,
"xyqb"
);
log
.
info
(
"xyqb2:{} "
,
xyqb2
);
long
xyqb3
=
weChatUserRepository
.
countByOpenIdAndAppName
(
"ou5l71eY3oO0oM88I-fp3pfC9sQg"
,
"xyqb"
);
log
.
info
(
"xyqb3:{} "
,
xyqb3
);
// int xyqb4 = weChatUserRepository.dissociateByUserIdAndAppName(58847276L, "xyqb");
// log.info("xyqb4:{} ",xyqb4);
int
i
=
weChatUserRepository
.
dissociateUser
(
"ou5l71UOXLkIXNz0dtW1znJSTwR0"
,
58847276L
,
"xyqb"
);
log
.
info
(
"xyqb5:{} "
,
i
);
}
...
...
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