Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xinrenli
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郑云飞
xinrenli
Commits
60bc7ccc
Commit
60bc7ccc
authored
Apr 04, 2023
by
郑云飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
小程序登录修改
parent
2124dba5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
12 deletions
+53
-12
yongqi-admin/src/main/java/com/yongqi/web/controller/system/SysLoginController.java
+3
-6
yongqi-system/src/main/java/com/yongqi/system/service/SysLoginService.java
+45
-5
yongqi-xinrenli/src/main/java/com/yongqi/xinrenli/domain/DbInviter.java
+5
-1
No files found.
yongqi-admin/src/main/java/com/yongqi/web/controller/system/SysLoginController.java
View file @
60bc7ccc
...
@@ -17,10 +17,7 @@ import com.yongqi.system.service.ISysUserService;
...
@@ -17,10 +17,7 @@ import com.yongqi.system.service.ISysUserService;
import
com.yongqi.system.service.SysLoginService
;
import
com.yongqi.system.service.SysLoginService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -82,10 +79,10 @@ public class SysLoginController {
...
@@ -82,10 +79,10 @@ public class SysLoginController {
*/
*/
@SaIgnore
@SaIgnore
@GetMapping
(
"/xcxLogin"
)
@GetMapping
(
"/xcxLogin"
)
public
R
<
Map
<
String
,
Object
>>
xcxLogin
(
@NotBlank
(
message
=
"{xcx.code.not.blank}"
)
String
xcxCode
)
{
public
R
<
Map
<
String
,
Object
>>
xcxLogin
(
@NotBlank
(
message
=
"{xcx.code.not.blank}"
)
String
xcxCode
,
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
Long
inviterId
)
{
Map
<
String
,
Object
>
ajax
=
new
HashMap
<>();
Map
<
String
,
Object
>
ajax
=
new
HashMap
<>();
// 生成令牌
// 生成令牌
String
token
=
loginService
.
xcxLogin
(
xcxCode
);
String
token
=
loginService
.
xcxLogin
(
xcxCode
,
inviterId
);
ajax
.
put
(
Constants
.
TOKEN
,
token
);
ajax
.
put
(
Constants
.
TOKEN
,
token
);
return
R
.
ok
(
ajax
);
return
R
.
ok
(
ajax
);
}
}
...
...
yongqi-system/src/main/java/com/yongqi/system/service/SysLoginService.java
View file @
60bc7ccc
...
@@ -33,8 +33,14 @@ import com.yongqi.common.utils.StringUtils;
...
@@ -33,8 +33,14 @@ import com.yongqi.common.utils.StringUtils;
import
com.yongqi.common.utils.redis.RedisUtils
;
import
com.yongqi.common.utils.redis.RedisUtils
;
import
com.yongqi.common.utils.spring.SpringUtils
;
import
com.yongqi.common.utils.spring.SpringUtils
;
import
com.yongqi.system.mapper.SysUserMapper
;
import
com.yongqi.system.mapper.SysUserMapper
;
import
com.yongqi.xinrenli.domain.DbCoupon
;
import
com.yongqi.xinrenli.domain.DbInviter
;
import
com.yongqi.xinrenli.domain.DbUserCoupon
;
import
com.yongqi.xinrenli.domain.DbWxUser
;
import
com.yongqi.xinrenli.domain.DbWxUser
;
import
com.yongqi.xinrenli.enums.DeleteStatusEnum
;
import
com.yongqi.xinrenli.enums.DeleteStatusEnum
;
import
com.yongqi.xinrenli.mapper.DbCouponMapper
;
import
com.yongqi.xinrenli.mapper.DbInviterMapper
;
import
com.yongqi.xinrenli.mapper.DbUserCouponMapper
;
import
com.yongqi.xinrenli.mapper.DbWxUserMapper
;
import
com.yongqi.xinrenli.mapper.DbWxUserMapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -44,8 +50,9 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -44,8 +50,9 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.rmi.ServerException
;
import
java.time.Duration
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.function.Supplier
;
import
java.util.function.Supplier
;
...
@@ -73,6 +80,12 @@ public class SysLoginService {
...
@@ -73,6 +80,12 @@ public class SysLoginService {
private
WxMaService
wxMaService
;
private
WxMaService
wxMaService
;
@Autowired
@Autowired
private
DbWxUserMapper
wxUserMapper
;
private
DbWxUserMapper
wxUserMapper
;
@Autowired
private
DbInviterMapper
inviterMapper
;
@Autowired
private
DbCouponMapper
couponMapper
;
@Autowired
private
DbUserCouponMapper
userCouponMapper
;
/**
/**
* 登录验证
* 登录验证
...
@@ -118,7 +131,7 @@ public class SysLoginService {
...
@@ -118,7 +131,7 @@ public class SysLoginService {
}
}
public
String
xcxLogin
(
String
xcxCode
)
{
public
String
xcxLogin
(
String
xcxCode
,
Long
inviterId
)
{
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
WxMaJscode2SessionResult
sessionInfo
=
null
;
WxMaJscode2SessionResult
sessionInfo
=
null
;
try
{
try
{
...
@@ -129,7 +142,7 @@ public class SysLoginService {
...
@@ -129,7 +142,7 @@ public class SysLoginService {
if
(
sessionInfo
==
null
)
{
if
(
sessionInfo
==
null
)
{
throw
new
RuntimeException
(
"获取微信信息失败"
);
throw
new
RuntimeException
(
"获取微信信息失败"
);
}
}
DbWxUser
user
=
loadUserByOpenid
(
sessionInfo
,
null
);
DbWxUser
user
=
loadUserByOpenid
(
sessionInfo
,
null
,
inviterId
);
// 此处可根据登录用户的数据不同 自行创建 loginUser
// 此处可根据登录用户的数据不同 自行创建 loginUser
XcxLoginUser
loginUser
=
new
XcxLoginUser
();
XcxLoginUser
loginUser
=
new
XcxLoginUser
();
loginUser
.
setUserId
(
user
.
getId
());
loginUser
.
setUserId
(
user
.
getId
());
...
@@ -160,7 +173,7 @@ public class SysLoginService {
...
@@ -160,7 +173,7 @@ public class SysLoginService {
}
}
WxMaJscode2SessionResult
sessionInfo
=
new
WxMaJscode2SessionResult
();
WxMaJscode2SessionResult
sessionInfo
=
new
WxMaJscode2SessionResult
();
sessionInfo
.
setOpenid
(
openId
);
sessionInfo
.
setOpenid
(
openId
);
DbWxUser
user
=
loadUserByOpenid
(
sessionInfo
,
newPhoneNoInfo
.
getPhoneNumber
());
DbWxUser
user
=
loadUserByOpenid
(
sessionInfo
,
newPhoneNoInfo
.
getPhoneNumber
()
,
null
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -254,16 +267,43 @@ public class SysLoginService {
...
@@ -254,16 +267,43 @@ public class SysLoginService {
return
userMapper
.
selectUserByPhonenumber
(
phonenumber
);
return
userMapper
.
selectUserByPhonenumber
(
phonenumber
);
}
}
private
DbWxUser
loadUserByOpenid
(
WxMaJscode2SessionResult
sessionInfo
,
String
phone
)
{
private
DbWxUser
loadUserByOpenid
(
WxMaJscode2SessionResult
sessionInfo
,
String
phone
,
Long
inviterId
)
{
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
DbWxUser
user
=
wxUserMapper
.
selectOne
(
Wrappers
.<
DbWxUser
>
lambdaQuery
().
eq
(
DbWxUser:
:
getOpenId
,
sessionInfo
.
getOpenid
()));
DbWxUser
user
=
wxUserMapper
.
selectOne
(
Wrappers
.<
DbWxUser
>
lambdaQuery
().
eq
(
DbWxUser:
:
getOpenId
,
sessionInfo
.
getOpenid
()));
if
(
ObjectUtil
.
isNull
(
user
))
{
if
(
ObjectUtil
.
isNull
(
user
))
{
log
.
info
(
"登录用户:{} 不存在."
,
sessionInfo
.
getOpenid
());
log
.
info
(
"登录用户:{} 不存在."
,
sessionInfo
.
getOpenid
());
// 新增用户
user
=
new
DbWxUser
();
user
=
new
DbWxUser
();
user
.
setOpenId
(
sessionInfo
.
getOpenid
());
user
.
setOpenId
(
sessionInfo
.
getOpenid
());
user
.
setSessionKey
(
sessionInfo
.
getSessionKey
());
user
.
setSessionKey
(
sessionInfo
.
getSessionKey
());
user
.
setUnionId
(
sessionInfo
.
getUnionid
());
user
.
setUnionId
(
sessionInfo
.
getUnionid
());
wxUserMapper
.
insert
(
user
);
wxUserMapper
.
insert
(
user
);
// 判断是否有邀请人
if
(
ObjectUtil
.
isNotEmpty
(
inviterId
))
{
//获取邀请人信息
DbWxUser
dbWxUser
=
wxUserMapper
.
selectById
(
inviterId
);
// 新增邀请记录
DbInviter
inviter
=
new
DbInviter
();
inviter
.
setInviterId
(
inviterId
);
inviter
.
setInviterName
(
dbWxUser
.
getNickname
());
inviter
.
setStatus
(
1
);
inviter
.
setInviteeId
(
user
.
getId
());
inviter
.
setInviteeName
(
user
.
getNickname
());
inviter
.
setCreateTime
(
new
Date
());
inviterMapper
.
insert
(
inviter
);
}
Date
now
=
new
Date
();
List
<
DbCoupon
>
coupons
=
couponMapper
.
selectList
(
Wrappers
.<
DbCoupon
>
lambdaQuery
()
.
eq
(
DbCoupon:
:
getCouponType
,
1
)
.
le
(
DbCoupon:
:
getEffectiveTime
,
now
)
.
ge
(
DbCoupon:
:
getFailureTime
,
now
));
for
(
DbCoupon
coupon
:
coupons
)
{
DbUserCoupon
userCoupon
=
new
DbUserCoupon
();
userCoupon
.
setUserId
(
user
.
getId
());
userCoupon
.
setCouponId
(
coupon
.
getId
());
userCoupon
.
setUseStatus
(
0
);
userCouponMapper
.
insert
(
userCoupon
);
}
}
else
if
(
DeleteStatusEnum
.
DELETED
.
getCode
().
equals
(
user
.
getDeleteFlag
()))
{
}
else
if
(
DeleteStatusEnum
.
DELETED
.
getCode
().
equals
(
user
.
getDeleteFlag
()))
{
log
.
info
(
"登录用户:{} 已被停用."
,
sessionInfo
.
getOpenid
());
log
.
info
(
"登录用户:{} 已被停用."
,
sessionInfo
.
getOpenid
());
throw
new
RuntimeException
(
"当前用户已停用,请联系管理员"
);
throw
new
RuntimeException
(
"当前用户已停用,请联系管理员"
);
...
...
yongqi-xinrenli/src/main/java/com/yongqi/xinrenli/domain/DbInviter.java
View file @
60bc7ccc
...
@@ -3,6 +3,8 @@ package com.yongqi.xinrenli.domain;
...
@@ -3,6 +3,8 @@ package com.yongqi.xinrenli.domain;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
/**
/**
* 邀请对象 db_Inviter
* 邀请对象 db_Inviter
*
*
...
@@ -37,8 +39,10 @@ public class DbInviter {
...
@@ -37,8 +39,10 @@ public class DbInviter {
*/
*/
private
String
inviteeName
;
private
String
inviteeName
;
/**
/**
* 状态:是否已计入折扣
* 状态:是否已计入折扣
0是1否
*/
*/
private
Integer
status
;
private
Integer
status
;
private
Date
createTime
;
}
}
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