Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
6d4d728d
提交
6d4d728d
authored
4月 29, 2022
作者:
Administrator
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat : 微信小程序用户 根据微信唯一标识获取手机号码,注册小程序账号
上级
ca409c7b
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
172 行增加
和
20 行删除
+172
-20
WxClient.java
app/src/main/java/com/yiring/app/feign/WxClient.java
+7
-11
AppletUserParam.java
...in/java/com/yiring/app/param/appUser/AppletUserParam.java
+36
-0
AppletUserQueryParam.java
...va/com/yiring/app/param/appUser/AppletUserQueryParam.java
+39
-0
AppletUserService.java
.../com/yiring/app/service/appletUser/AppletUserService.java
+14
-6
AppletUserServiceImpl.java
...ng/app/service/appletUser/impl/AppletUserServiceImpl.java
+30
-3
AppletUserController.java
...java/com/yiring/app/web/appUser/AppletUserController.java
+46
-0
没有找到文件。
app/src/main/java/com/yiring/app/feign/WxClient.java
浏览文件 @
6d4d728d
...
...
@@ -2,11 +2,10 @@
package
com
.
yiring
.
app
.
feign
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
@FeignClient
(
url
=
"api.weixin.qq.com"
,
name
=
"wxclient"
)
public
interface
WxClient
{
...
...
@@ -22,13 +21,10 @@ public interface WxClient {
* @date 15:20
*/
@RequestMapping
(
value
=
"/sns/jscode2session"
,
method
=
RequestMethod
.
GET
)
@ApiImplicitParams
(
{
@ApiImplicitParam
(
value
=
"appid"
,
required
=
true
,
name
=
"appid"
),
@ApiImplicitParam
(
value
=
"secret"
,
required
=
true
,
name
=
"secret"
),
@ApiImplicitParam
(
value
=
"js_code"
,
required
=
true
,
name
=
"js_code"
),
@ApiImplicitParam
(
value
=
"grant_type"
,
required
=
true
,
name
=
"grant_type"
),
}
)
JSONObject
getOpenid
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
);
JSONObject
getOpenid
(
@RequestParam
(
"appid"
)
String
appid
,
@RequestParam
(
"secret"
)
String
secret
,
@RequestParam
(
"js_code"
)
String
js_code
,
@RequestParam
(
"grant_type"
)
String
grant_type
);
}
app/src/main/java/com/yiring/app/param/appUser/AppletUserParam.java
0 → 100644
浏览文件 @
6d4d728d
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
appUser
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 13:40
*/
@ApiModel
(
"AppletUserParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
AppletUserParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1684195733142347657L
;
@ApiModelProperty
(
value
=
"手机号"
,
example
=
"17674741309"
,
required
=
true
)
@NotEmpty
(
message
=
"手机号不能为空"
)
String
mobile
;
@ApiModelProperty
(
value
=
"微信唯一标识"
,
example
=
"17674741309"
,
required
=
true
)
@NotEmpty
(
message
=
"微信唯一标识不能为空"
)
String
openid
;
}
app/src/main/java/com/yiring/app/param/appUser/AppletUserQueryParam.java
0 → 100644
浏览文件 @
6d4d728d
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
appUser
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 13:52
*/
@ApiModel
(
"AppletUserQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
AppletUserQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1806727740548075365L
;
@ApiModelProperty
(
value
=
"小程序 appId"
,
example
=
"1"
,
required
=
true
)
String
appid
;
@ApiModelProperty
(
value
=
"小程序 appSecret"
,
example
=
"1"
,
required
=
true
)
String
secret
;
@ApiModelProperty
(
value
=
"登录时获取的 code"
,
example
=
"1"
,
required
=
true
)
String
js_code
;
@ApiModelProperty
(
value
=
"授权类型,此处只需填写 authorization_code"
,
example
=
"1"
,
required
=
true
)
String
grant_type
;
}
app/src/main/java/com/yiring/app/service/appletUser/AppletUserService.java
浏览文件 @
6d4d728d
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
appletUser
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.common.core.Result
;
/**
...
...
@@ -13,12 +15,18 @@ public interface AppletUserService {
/**
* 根据用户唯一标识获取手机号码,通过手机号码查询用户来访信息分页
* @author tzl
* @date 2022/4/24 9:34
* @param appid String
* @param secret String
* @param js_code String
* @param grant_type String
* @date 2022/4/28 13:58
* @param appletUserQueryParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
selectMobile
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
);
Result
<
String
>
selectMobile
(
AppletUserQueryParam
appletUserQueryParam
);
/**
* 小程序注册
* @author tzl
* @date 2022/4/28 13:43
* @param appletUserParam 入参
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
saveAppUser
(
AppletUserParam
appletUserParam
);
}
app/src/main/java/com/yiring/app/service/appletUser/impl/AppletUserServiceImpl.java
浏览文件 @
6d4d728d
...
...
@@ -6,10 +6,17 @@ import com.alibaba.fastjson.JSONObject;
import
com.yiring.app.domain.appletUser.AppletUser
;
import
com.yiring.app.domain.appletUser.AppletUserRepository
;
import
com.yiring.app.feign.WxClient
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.app.service.appletUser.AppletUserService
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
java.util.Optional
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author Administrator
...
...
@@ -17,6 +24,9 @@ import javax.annotation.Resource;
* @description: TODO
* @date 2022/4/24 9:25
*/
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
@Slf4j
public
class
AppletUserServiceImpl
implements
AppletUserService
{
@Resource
...
...
@@ -26,18 +36,35 @@ public class AppletUserServiceImpl implements AppletUserService {
WxClient
wxClient
;
@Override
public
Result
<
String
>
selectMobile
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
)
{
JSONObject
jsonObject
=
wxClient
.
getOpenid
(
appid
,
secret
,
js_code
,
grant_type
);
public
Result
<
String
>
selectMobile
(
AppletUserQueryParam
appletUserQueryParam
)
{
JSONObject
jsonObject
=
wxClient
.
getOpenid
(
appletUserQueryParam
.
getAppid
(),
appletUserQueryParam
.
getSecret
(),
appletUserQueryParam
.
getJs_code
(),
appletUserQueryParam
.
getGrant_type
()
);
Object
openid
=
jsonObject
.
get
(
"openid"
);
if
(
StrUtil
.
isNotBlank
(
openid
.
toString
()))
{
Optional
<
AppletUser
>
optional
=
appletUserRepository
.
findById
(
openid
.
toString
());
//如果该微信为第一次登录小程序
if
(
optional
.
isEmpty
())
{
return
Result
.
ok
(
"绑定手机号码"
);
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
AppletUser
appletUser
=
optional
.
get
();
return
Result
.
ok
(
appletUser
.
getMobile
());
}
return
null
;
}
@Override
public
Result
<
String
>
saveAppUser
(
AppletUserParam
appletUserParam
)
{
Integer
integer
=
appletUserRepository
.
countMobile
(
appletUserParam
.
getMobile
());
if
(
integer
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"手机号已绑定"
);
}
AppletUser
appletUser
=
new
AppletUser
();
BeanUtils
.
copyProperties
(
appletUserParam
,
appletUser
);
appletUserRepository
.
saveAndFlush
(
appletUser
);
return
Result
.
ok
();
}
}
app/src/main/java/com/yiring/app/web/appUser/AppletUserController.java
0 → 100644
浏览文件 @
6d4d728d
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
appUser
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.app.service.appletUser.AppletUserService
;
import
com.yiring.common.core.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 13:48
*/
@Slf4j
@Validated
@Api
(
tags
=
"Map(地图)"
)
@RestController
@RequestMapping
(
"/map/"
)
public
class
AppletUserController
{
@Resource
AppletUserService
appletUserService
;
@ApiOperation
(
"微信绑定手机号码"
)
@PostMapping
(
"saveAppUser"
)
public
Result
<
String
>
saveAppUser
(
@Valid
AppletUserParam
appletUserParam
)
{
return
appletUserService
.
saveAppUser
(
appletUserParam
);
}
@ApiOperation
(
"根据code获取微信用户唯一标识,返回其绑定的手机号码"
)
@GetMapping
(
"selectMobile"
)
public
Result
<
String
>
selectMobile
(
@Valid
AppletUserQueryParam
appletUserQueryParam
)
{
return
appletUserService
.
selectMobile
(
appletUserQueryParam
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论