Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
enterprise-platform
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
赵啸非
enterprise-platform
Commits
2ba83ed9
Commit
2ba83ed9
authored
Nov 19, 2024
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信小程序登录以及手机号绑定;员工名片增加页面展示设置
parent
be35ac55
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
546 additions
and
184 deletions
+546
-184
common-lib/pom.xml
common-lib/pom.xml
+1
-1
doc/企业服务平台 .docx
doc/企业服务平台 .docx
+0
-0
enterprise-manager/src/main/java/com/mortals/xhx/base/login/web/WechatLoginController.java
...com/mortals/xhx/base/login/web/WechatLoginController.java
+136
-0
enterprise-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
...com/mortals/xhx/base/system/user/service/UserService.java
+8
-0
enterprise-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
...ls/xhx/base/system/user/service/impl/UserServiceImpl.java
+23
-0
enterprise-manager/src/main/java/com/mortals/xhx/common/utils/HttpUtils.java
...src/main/java/com/mortals/xhx/common/utils/HttpUtils.java
+71
-0
enterprise-manager/src/main/java/com/mortals/xhx/common/utils/WechatTools.java
...c/main/java/com/mortals/xhx/common/utils/WechatTools.java
+20
-0
enterprise-manager/src/main/java/com/mortals/xhx/module/bussinesscard/model/BussinesscardEntity.java
...s/xhx/module/bussinesscard/model/BussinesscardEntity.java
+6
-1
enterprise-manager/src/main/java/com/mortals/xhx/module/bussinesscard/model/BussinesscardQuery.java
...ls/xhx/module/bussinesscard/model/BussinesscardQuery.java
+179
-123
enterprise-manager/src/main/resources/sqlmap/module/bussinesscard/BussinesscardMapper.xml
...urces/sqlmap/module/bussinesscard/BussinesscardMapper.xml
+100
-58
enterprise-manager/src/main/resources/sqlmap/module/staff/StaffMapper.xml
...er/src/main/resources/sqlmap/module/staff/StaffMapper.xml
+2
-1
No files found.
common-lib/pom.xml
View file @
2ba83ed9
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
<dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
<artifactId>
gson
</artifactId>
<version>
2.
9.0
</version>
<version>
2.
8.7
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
doc/企业服务平台 .docx
View file @
2ba83ed9
No preview for this file type
enterprise-manager/src/main/java/com/mortals/xhx/base/login/web/WechatLoginController.java
0 → 100644
View file @
2ba83ed9
package
com.mortals.xhx.base.login.web
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.web.BaseJsonBodyController
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.utils.WechatTools
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnExpression
;
import
org.springframework.util.StringUtils
;
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
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
@RestController
@Slf4j
@RequestMapping
(
"wechat"
)
public
class
WechatLoginController
extends
BaseJsonBodyController
implements
InitializingBean
{
@Autowired
private
UserService
userService
;
@Autowired
private
StaffService
staffService
;
@Autowired
private
IAuthTokenService
authTokenService
;
@Value
(
"${wechat.appId:wxdb349cd58dd0600b}"
)
private
String
AppId
;
@Value
(
"${wechat.secret:21eb0f1bdb87c79b9fb6f38db2b1a357}"
)
private
String
AppSecret
;
@RequestMapping
(
"login"
)
@UnAuth
public
String
getWxInfo
(
@RequestBody
JSONObject
obj
)
{
JSONObject
ret
=
new
JSONObject
();
JSONObject
wxJson
=
JSONObject
.
parseObject
(
WechatTools
.
getOpenid
(
obj
.
getString
(
"code"
),
AppId
,
AppSecret
));
log
.
info
(
"微信的返回值{}"
,
wxJson
);
if
(
StringUtils
.
isEmpty
(
wxJson
.
getString
(
"openid"
))){
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
ret
.
put
(
KEY_RESULT_MSG
,
wxJson
.
getString
(
"errmsg"
));
ret
.
put
(
"errcode"
,
wxJson
.
getString
(
"errcode"
));
return
ret
.
toJSONString
();
}
else
{
String
ip
=
super
.
getRequestIP
(
request
);
UserEntity
userEntity
=
userService
.
wechatLogin
(
wxJson
.
getString
(
"openid"
),
ip
);
JSONObject
data
=
new
JSONObject
();
data
.
put
(
"userId"
,
userEntity
.
getId
());
if
(
userEntity
.
getStaffId
()==
null
){
data
.
put
(
"staffId"
,
-
1
);
}
else
{
data
.
put
(
"staffId"
,
userEntity
.
getStaffId
());
}
userEntity
.
setLoginTime
(
System
.
currentTimeMillis
());
userEntity
.
setToken
(
IdUtil
.
fastSimpleUUID
());
userEntity
.
setExpireTime
(
DateUtils
.
addCurrDate
(
7
).
getTime
());
String
token
=
authTokenService
.
createToken
(
userEntity
);
data
.
put
(
"token"
,
token
);
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
return
ret
.
toJSONString
();
}
}
@RequestMapping
(
"getPhoneNumber"
)
public
String
getPhoneNumber
(
@RequestBody
JSONObject
obj
){
JSONObject
ret
=
new
JSONObject
();
String
tokenUrl
=
String
.
format
(
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"
,
AppId
,
AppSecret
);
JSONObject
token
=
JSONObject
.
parseObject
(
HttpUtil
.
createGet
(
tokenUrl
).
execute
().
body
());
log
.
info
(
"微信的返回值{}"
,
token
);
String
url
=
"https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="
+
token
.
getString
(
"access_token"
);
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"code"
,
obj
.
getString
(
"code"
));
String
body
=
HttpUtil
.
createPost
(
url
)
.
contentType
(
"application/json"
).
body
(
param
.
toJSONString
()).
execute
().
body
();
log
.
info
(
"微信的返回值{}"
,
body
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
body
);
if
(
jsonObject
.
getIntValue
(
"errcode"
)==
0
){
JSONObject
data
=
new
JSONObject
();
String
phoneNumber
=
jsonObject
.
getJSONObject
(
"phone_info"
).
getString
(
"phoneNumber"
);
data
.
put
(
"phoneNumber"
,
phoneNumber
);
//UserEntity userEntity = this.getContext().getUser().getId();
if
(
this
.
getContext
()!=
null
&&
this
.
getContext
().
getUser
()!=
null
){
UserEntity
userEntity
=
userService
.
get
(
this
.
getContext
().
getUser
().
getId
());
if
(
userEntity
!=
null
){
StaffEntity
staffEntity
=
staffService
.
selectOne
(
new
StaffQuery
().
phoneNumber
(
phoneNumber
));
if
(
staffEntity
!=
null
){
userEntity
.
setStaffId
(
staffEntity
.
getId
());
data
.
put
(
"staffId"
,
staffEntity
.
getId
());
data
.
put
(
"staff"
,
staffEntity
);
}
else
{
data
.
put
(
"staffId"
,
-
1
);
}
userEntity
.
setPhone
(
phoneNumber
);
userEntity
.
setUpdateTime
(
new
Date
());
userEntity
.
setUpdateUserId
(
userEntity
.
getId
());
userService
.
update
(
userEntity
);
}
}
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
return
ret
.
toJSONString
();
}
else
{
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
ret
.
put
(
KEY_RESULT_MSG
,
jsonObject
.
getString
(
"errmsg"
));
ret
.
put
(
"errcode"
,
jsonObject
.
getIntValue
(
"errcode"
));
return
ret
.
toJSONString
();
}
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
}
}
enterprise-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
View file @
2ba83ed9
...
@@ -118,4 +118,12 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
...
@@ -118,4 +118,12 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
UserDao
getUserDao
();
UserDao
getUserDao
();
/***
* 微信小程序登录 openId未绑定则创建新用户
* @param openId
* @param ip
* @return
*/
UserEntity
wechatLogin
(
String
openId
,
String
ip
);
}
}
\ No newline at end of file
enterprise-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
View file @
2ba83ed9
...
@@ -332,4 +332,27 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
...
@@ -332,4 +332,27 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
super
.
removeAfter
(
ids
,
context
,
result
);
super
.
removeAfter
(
ids
,
context
,
result
);
}
}
@Override
public
UserEntity
wechatLogin
(
String
openId
,
String
ip
)
{
UserEntity
userEntity
=
this
.
selectOne
(
new
UserQuery
().
openId
(
openId
));
if
(
userEntity
==
null
){
userEntity
=
new
UserEntity
();
userEntity
.
setStatus
(
1
);
userEntity
.
setOpenId
(
openId
);
userEntity
.
setUserType
(
1
);
userEntity
.
setRealName
(
"微信小程序访客"
);
userEntity
.
setCreateTime
(
new
Date
());
userEntity
.
setCreateUserId
(
1L
);
userEntity
.
setCreateUserName
(
"系统管理员"
);
userEntity
.
setLastLoginTime
(
userEntity
.
getCreateTime
());
userEntity
.
setLastLoginAddress
(
ip
);
this
.
save
(
userEntity
);
}
else
{
userEntity
.
setLastLoginAddress
(
ip
);
userEntity
.
setLastLoginTime
(
new
Date
());
this
.
update
(
userEntity
);
}
return
userEntity
;
}
}
}
\ No newline at end of file
enterprise-manager/src/main/java/com/mortals/xhx/common/utils/HttpUtils.java
0 → 100644
View file @
2ba83ed9
package
com.mortals.xhx.common.utils
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.net.HttpURLConnection
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
public
class
HttpUtils
{
public
static
String
getRequest
(
String
httpurl
)
{
HttpURLConnection
connection
=
null
;
InputStream
is
=
null
;
BufferedReader
br
=
null
;
String
result
=
null
;
// 返回结果字符串
try
{
// 创建远程url连接对象
URL
url
=
new
URL
(
httpurl
);
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
connection
=
(
HttpURLConnection
)
url
.
openConnection
();
// 设置连接方式:get
connection
.
setRequestMethod
(
"GET"
);
// 设置连接主机服务器的超时时间:15000毫秒
connection
.
setConnectTimeout
(
15000
);
// 设置读取远程返回的数据时间:60000毫秒
connection
.
setReadTimeout
(
60000
);
// 发送请求
connection
.
connect
();
// 通过connection连接,获取输入流
if
(
connection
.
getResponseCode
()
==
200
)
{
is
=
connection
.
getInputStream
();
// 封装输入流is,并指定字符集
br
=
new
BufferedReader
(
new
InputStreamReader
(
is
,
"UTF-8"
));
// 存放数据
StringBuffer
sbf
=
new
StringBuffer
();
String
temp
=
null
;
while
((
temp
=
br
.
readLine
())
!=
null
)
{
sbf
.
append
(
temp
);
sbf
.
append
(
"\r\n"
);
}
result
=
sbf
.
toString
();
}
}
catch
(
MalformedURLException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
// 关闭资源
if
(
null
!=
br
)
{
try
{
br
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
if
(
null
!=
is
)
{
try
{
is
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
connection
.
disconnect
();
// 关闭远程连接
}
return
result
;
}
}
enterprise-manager/src/main/java/com/mortals/xhx/common/utils/WechatTools.java
0 → 100644
View file @
2ba83ed9
package
com.mortals.xhx.common.utils
;
public
class
WechatTools
{
public
static
String
getOpenid
(
String
code
,
String
appid
,
String
secret
)
{
// 调用接口必要的参数
StringBuilder
data
=
new
StringBuilder
();
// appid、secret定义在配置文件中,注入到项目里
data
.
append
(
"appid="
+
appid
+
"&"
);
data
.
append
(
"secret="
+
secret
+
"&"
);
data
.
append
(
"js_code="
+
code
+
"&"
);
data
.
append
(
"grant_type="
+
"authorization_code"
);
String
response
=
HttpUtils
.
getRequest
(
"https://api.weixin.qq.com/sns/jscode2session?"
+
data
);
return
response
;
}
}
enterprise-manager/src/main/java/com/mortals/xhx/module/bussinesscard/model/BussinesscardEntity.java
View file @
2ba83ed9
...
@@ -14,7 +14,7 @@ import lombok.Data;
...
@@ -14,7 +14,7 @@ import lombok.Data;
* 名片基本信息实体对象
* 名片基本信息实体对象
*
*
* @author zxfei
* @author zxfei
* @date 202
3-10-10
* @date 202
4-11-19
*/
*/
@Data
@Data
public
class
BussinesscardEntity
extends
BussinesscardVo
{
public
class
BussinesscardEntity
extends
BussinesscardVo
{
...
@@ -100,6 +100,10 @@ public class BussinesscardEntity extends BussinesscardVo {
...
@@ -100,6 +100,10 @@ public class BussinesscardEntity extends BussinesscardVo {
* 发送名片次数
* 发送名片次数
*/
*/
private
Integer
sendBusinessCardTimes
;
private
Integer
sendBusinessCardTimes
;
/**
* 名片展示设置
*/
private
String
setting
;
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
return
this
.
getId
().
hashCode
();
return
this
.
getId
().
hashCode
();
...
@@ -137,5 +141,6 @@ public class BussinesscardEntity extends BussinesscardVo {
...
@@ -137,5 +141,6 @@ public class BussinesscardEntity extends BussinesscardVo {
this
.
sumViews
=
0
;
this
.
sumViews
=
0
;
this
.
viewsByDay
=
0
;
this
.
viewsByDay
=
0
;
this
.
sendBusinessCardTimes
=
0
;
this
.
sendBusinessCardTimes
=
0
;
this
.
setting
=
""
;
}
}
}
}
\ No newline at end of file
enterprise-manager/src/main/java/com/mortals/xhx/module/bussinesscard/model/BussinesscardQuery.java
View file @
2ba83ed9
This diff is collapsed.
Click to expand it.
enterprise-manager/src/main/resources/sqlmap/module/bussinesscard/BussinesscardMapper.xml
View file @
2ba83ed9
This diff is collapsed.
Click to expand it.
enterprise-manager/src/main/resources/sqlmap/module/staff/StaffMapper.xml
View file @
2ba83ed9
...
@@ -61,6 +61,7 @@
...
@@ -61,6 +61,7 @@
<result
property=
"updateUserId"
column=
"updateUserId"
/>
<result
property=
"updateUserId"
column=
"updateUserId"
/>
<result
property=
"updateTime"
column=
"updateTime"
/>
<result
property=
"updateTime"
column=
"updateTime"
/>
<result
property=
"sendBusinessCardTimes"
column=
"sendBusinessCardTimes"
/>
<result
property=
"sendBusinessCardTimes"
column=
"sendBusinessCardTimes"
/>
<result
property=
"setting"
column=
"setting"
/>
</resultMap>
</resultMap>
...
@@ -156,7 +157,7 @@
...
@@ -156,7 +157,7 @@
<!-- 子表所有列 -->
<!-- 子表所有列 -->
<sql
id=
"_columns_sub"
>
<sql
id=
"_columns_sub"
>
<trim
suffixOverrides=
","
suffix=
""
>
<trim
suffixOverrides=
","
suffix=
""
>
b.id,b.staffId,b.staffName,b.name,b.gender,b.birthday,b.photoPath,b.email,b.phoneNumber,b.idCard,b.companyId,b.companyName,b.positionId,b.positionName,b.bio,b.socialMedia,b.qRCode,b.remark,b.sumViews,b.viewsByDay,b.createUserId,b.createTime,b.updateUserId,b.updateTime,b.sendBusinessCardTimes,
b.id,b.staffId,b.staffName,b.name,b.gender,b.birthday,b.photoPath,b.email,b.phoneNumber,b.idCard,b.companyId,b.companyName,b.positionId,b.positionName,b.bio,b.socialMedia,b.qRCode,b.remark,b.sumViews,b.viewsByDay,b.createUserId,b.createTime,b.updateUserId,b.updateTime,b.sendBusinessCardTimes,
b.setting,
</trim>
</trim>
</sql>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<!-- 新增 区分主键自增加还是业务插入 -->
...
...
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